Compare commits
9 Commits
8259195eca
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 6274ac6cd6 | |||
| a38187c13f | |||
| 3b5920cfa5 | |||
| 6fddc1cb4a | |||
| 32c625ab2a | |||
| 2fd84c57e0 | |||
| ddb8bf6cab | |||
| 03e031ac81 | |||
| 2b208f5dd6 |
@@ -1,38 +0,0 @@
|
||||
{
|
||||
// launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
|
||||
"version" : "0.0",
|
||||
"configurations" : [
|
||||
{
|
||||
"app" : {
|
||||
"launchtype" : "remote"
|
||||
},
|
||||
"app-plus" : {
|
||||
"launchtype" : "remote"
|
||||
},
|
||||
"default" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"h5" : {
|
||||
"launchtype" : "remote"
|
||||
},
|
||||
"mp-weixin" : {
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"provider" : "aliyun",
|
||||
"type" : "uniCloud"
|
||||
},
|
||||
{
|
||||
"playground" : "custom",
|
||||
"type" : "uni-app:app-ios"
|
||||
},
|
||||
{
|
||||
"playground" : "custom",
|
||||
"type" : "uni-app:app-android"
|
||||
},
|
||||
{
|
||||
"playground" : "standard",
|
||||
"type" : "uni-app:app-ios_simulator"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -2,8 +2,10 @@ let baseUrl = "";
|
||||
let socketUrl = "";
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// 开发环境
|
||||
// baseUrl = "https://testapi.nuttyreading.com/"; // 线上测试
|
||||
baseUrl = "https://api.nuttyreading.com/"; //线上正式'
|
||||
// baseUrl = "http://192.168.110.100:9200/pb/"; //张川川
|
||||
// baseUrl = "http://192.168.110.131:9200/pb/"; // 王亚男
|
||||
} else if (process.env.NODE_ENV === 'production') {
|
||||
// 生产环境11
|
||||
baseUrl = "https://api.nuttyreading.com/"; //线上正式
|
||||
|
||||
3
main.js
3
main.js
@@ -92,6 +92,9 @@ Vue.component('common-order-submit', commonOrderSubmit);
|
||||
import CommonCourseVideo from 'edu-core/components/course-video'
|
||||
Vue.component('CommonCourseVideo', CommonCourseVideo);
|
||||
|
||||
import CommonRefundDestination from 'edu-core/components/order/refund-destination.vue'
|
||||
Vue.component('common-refund-destination', CommonRefundDestination);
|
||||
|
||||
import commonCoupon from '@/pages/component/commonComponents/coupon/index.vue'
|
||||
Vue.component('common-coupon', commonCoupon);
|
||||
import commonGoodsList from '@/pages/component/commonComponents/goodsList.vue'
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
"src" : "图片路径"
|
||||
}
|
||||
],
|
||||
"versionName" : "2.0.43",
|
||||
"versionCode" : 2043,
|
||||
"versionName" : "2.0.49",
|
||||
"versionCode" : 2049,
|
||||
"sassImplementationName" : "node-sass",
|
||||
"app-plus" : {
|
||||
"nvueCompiler" : "uni-app",
|
||||
@@ -63,6 +63,7 @@
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
@@ -70,6 +71,8 @@
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
|
||||
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
|
||||
@@ -437,7 +440,9 @@
|
||||
"uniStatistics" : {
|
||||
"enable" : true
|
||||
}
|
||||
}
|
||||
},
|
||||
"fallbackLocale" : "zh-Hans",
|
||||
"locale" : "zh-Hans"
|
||||
}
|
||||
// 小程序特有相关
|
||||
|
||||
|
||||
20
package-lock.json
generated
20
package-lock.json
generated
@@ -11,7 +11,7 @@
|
||||
"dependencies": {
|
||||
"animate.css": "^4.1.1",
|
||||
"e-peanut": "file:",
|
||||
"edu-core": "file:../edu-core",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13",
|
||||
"element-plus": "^2.9.6",
|
||||
"epubjs": "^0.3.93",
|
||||
"jquery": "^2.2.4",
|
||||
@@ -23,11 +23,6 @@
|
||||
" ../edu-core": {
|
||||
"extraneous": true
|
||||
},
|
||||
"../edu-core": {
|
||||
"version": "1.0.7",
|
||||
"license": "ISC",
|
||||
"devDependencies": {}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.27.1",
|
||||
"resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
|
||||
@@ -440,8 +435,9 @@
|
||||
"link": true
|
||||
},
|
||||
"node_modules/edu-core": {
|
||||
"resolved": "../edu-core",
|
||||
"link": true
|
||||
"version": "1.0.13",
|
||||
"resolved": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#b5ece8b8abfeba98428f6e2191efae3312b5036f",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/element-plus": {
|
||||
"version": "2.11.5",
|
||||
@@ -4177,7 +4173,7 @@
|
||||
"requires": {
|
||||
"animate.css": "^4.1.1",
|
||||
"e-peanut": "file:",
|
||||
"edu-core": "file:../edu-core",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13",
|
||||
"element-plus": "^2.9.6",
|
||||
"epubjs": "^0.3.93",
|
||||
"jquery": "^2.2.4",
|
||||
@@ -4498,7 +4494,8 @@
|
||||
}
|
||||
},
|
||||
"edu-core": {
|
||||
"version": "file:../edu-core"
|
||||
"version": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#b5ece8b8abfeba98428f6e2191efae3312b5036f",
|
||||
"from": "edu-core@git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13"
|
||||
},
|
||||
"element-plus": {
|
||||
"version": "2.11.5",
|
||||
@@ -7259,7 +7256,8 @@
|
||||
}
|
||||
},
|
||||
"edu-core": {
|
||||
"version": "file:../edu-core"
|
||||
"version": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#b5ece8b8abfeba98428f6e2191efae3312b5036f",
|
||||
"from": "edu-core@git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13"
|
||||
},
|
||||
"element-plus": {
|
||||
"version": "2.11.5",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"dependencies": {
|
||||
"animate.css": "^4.1.1",
|
||||
"e-peanut": "file:",
|
||||
"edu-core": "file:../edu-core",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13",
|
||||
"element-plus": "^2.9.6",
|
||||
"epubjs": "^0.3.93",
|
||||
"jquery": "^2.2.4",
|
||||
|
||||
12
pages.json
12
pages.json
@@ -170,6 +170,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/bookShop/refundDestination",
|
||||
"style": {
|
||||
"navigationBarTitleText": "钱款去向",
|
||||
"enablePullDownRefresh": false,
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
"popGesture": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/hufen/hufen",
|
||||
"style": {
|
||||
|
||||
@@ -90,6 +90,16 @@
|
||||
v-if="orderContet.orderStatus == 5"
|
||||
>已超时</text
|
||||
>
|
||||
<text
|
||||
class="orderState orderState6"
|
||||
v-if="orderContet.orderStatus == 6"
|
||||
>已退款</text
|
||||
>
|
||||
<text
|
||||
class="orderState orderState7"
|
||||
v-if="orderContet.orderStatus == 7"
|
||||
>退款中</text
|
||||
>
|
||||
</view>
|
||||
<view
|
||||
class="orderContent"
|
||||
@@ -775,6 +785,8 @@ export default {
|
||||
this.OverOrder();
|
||||
} else if (data.text == "查看物流") {
|
||||
this.seeExpressDetail(this.orderContet);
|
||||
} else if (data.text == "申请退款") {
|
||||
this.confirmApplyRefund();
|
||||
}
|
||||
},
|
||||
async clickIcon(data) {
|
||||
@@ -783,6 +795,53 @@ export default {
|
||||
this.kefu();
|
||||
}
|
||||
},
|
||||
confirmApplyRefund() {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "确认申请订单内所有商品退款吗?",
|
||||
confirmText: "确认",
|
||||
cancelText: "取消",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
this.submitOrderRefund();
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
submitOrderRefund() {
|
||||
if (!this.orderContet || !this.orderContet.orderId) return;
|
||||
this.$http
|
||||
.request({
|
||||
url: "book/buyOrder/refundOrder",
|
||||
method: "POST",
|
||||
data: {
|
||||
order_id: this.orderContet.orderId,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: "退款成功",
|
||||
});
|
||||
this.getOrderList();
|
||||
return;
|
||||
}
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: (res && (res.msg || res.errMsg)) || "退款失败",
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: (e && (e.msg || e.errMsg)) || "退款失败",
|
||||
});
|
||||
});
|
||||
},
|
||||
// 复制到剪切板
|
||||
copyData(data) {
|
||||
uni.setClipboardData({
|
||||
@@ -1188,10 +1247,19 @@ export default {
|
||||
text: "继续付款",
|
||||
});
|
||||
}
|
||||
if (this.orderContet.orderStatus == 0) {
|
||||
// medicine:注释取消订单按钮
|
||||
// if (this.orderContet.orderStatus == 0) {
|
||||
// this.customButton.push({
|
||||
// width: "160rpx",
|
||||
// text: "取消订单",
|
||||
// color: "#333",
|
||||
// backgroundColor: "#f0f0f0",
|
||||
// });
|
||||
// }
|
||||
if (this.orderContet.refundableStatus === true) {
|
||||
this.customButton.push({
|
||||
width: "160rpx",
|
||||
text: "取消订单",
|
||||
text: "申请退款",
|
||||
color: "#333",
|
||||
backgroundColor: "#f0f0f0",
|
||||
});
|
||||
@@ -1214,6 +1282,10 @@ export default {
|
||||
this.titleStat = "待收到";
|
||||
} else if (this.orderContet.orderStatus == 3) {
|
||||
this.titleStat = "已完成";
|
||||
} else if (this.orderContet.orderStatus == 6) {
|
||||
this.titleStat = "已退款";
|
||||
} else if (this.orderContet.orderStatus == 7) {
|
||||
this.titleStat = "退款中";
|
||||
}
|
||||
if (
|
||||
this.orderContet.orderStatus >= 2 &&
|
||||
@@ -1256,10 +1328,28 @@ export default {
|
||||
},
|
||||
});
|
||||
},
|
||||
checkPayTimeout(payItem) {
|
||||
const createTime = payItem && payItem.createTime;
|
||||
if (!createTime) return true;
|
||||
const createdAt = new Date(String(createTime).replace(/-/g, "/")).getTime();
|
||||
if (!createdAt) return true;
|
||||
const expired = Date.now() - createdAt > 10 * 60 * 1000;
|
||||
if (expired) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "订单已超时,不能继续支付,请重新下单",
|
||||
confirmText: "知道了",
|
||||
showCancel: false,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
// 支付
|
||||
goPay(payItem) {
|
||||
console.log(payItem, "订单数据");
|
||||
if (!this.checkPayTimeout(payItem)) return;
|
||||
if (payItem.paymentMethod == 2) {
|
||||
console.log("阿里支付");
|
||||
setPay(
|
||||
@@ -1403,6 +1493,12 @@ export default {
|
||||
.orderState5 {
|
||||
background-color: #787878;
|
||||
}
|
||||
.orderState6 {
|
||||
background-color: #f56c6c;
|
||||
}
|
||||
.orderState7 {
|
||||
background-color: #f56c6c;
|
||||
}
|
||||
.guoqi {
|
||||
font-size: 28rpx;
|
||||
align-items: center;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</z-nav-bar>
|
||||
<view class="cateList flexbox">
|
||||
<common-sticky
|
||||
itemStyle="width:20%; height: 68rpx;font-size:24rpx;"
|
||||
itemStyle="width:auto; padding: 0 20rpx; height: 68rpx;font-size:22rpx;"
|
||||
:list="ordersTabs"
|
||||
label="name"
|
||||
:currentCateIndex="currentCateIndex"
|
||||
@@ -111,6 +111,16 @@
|
||||
v-show="slotProps.row.orderStatus == 5"
|
||||
>已过期</text
|
||||
>
|
||||
<text
|
||||
class="orderstatus"
|
||||
v-show="slotProps.row.orderStatus == 6"
|
||||
>已退款</text
|
||||
>
|
||||
<text
|
||||
class="orderstatus"
|
||||
v-show="slotProps.row.orderStatus == 7"
|
||||
>退款中</text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="slotProps.row.orderType == 'trainingClass'" class="bookinfolist">
|
||||
@@ -392,17 +402,12 @@
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="operation_box boxShadow"
|
||||
v-if="slotProps.row.isShowMore == true"
|
||||
class="btns flexbox"
|
||||
:class="{ 'btns-no-more': !hasMoreActions(slotProps.row) }"
|
||||
style="margin-top: 10rpx"
|
||||
>
|
||||
<view
|
||||
v-if="slotProps.row.orderStatus == 0"
|
||||
@click.native.stop="canceOrder(slotProps.row)"
|
||||
>取消订单</view
|
||||
>
|
||||
</view>
|
||||
<view class="btns flexbox" style="margin-top: 10rpx">
|
||||
<view
|
||||
v-if="hasMoreActions(slotProps.row)"
|
||||
class="left"
|
||||
style="color: #c0c4cc"
|
||||
@click.native.stop="
|
||||
@@ -442,6 +447,21 @@
|
||||
v-if="slotProps.row.orderStatus == 3"
|
||||
>申请售后</view
|
||||
>
|
||||
<view
|
||||
class="orderstatusbtn"
|
||||
v-if="
|
||||
slotProps.row.orderStatus == 6 ||
|
||||
slotProps.row.orderStatus == 7
|
||||
"
|
||||
@click.stop="goRefundDestination(slotProps.row)"
|
||||
>钱款去向</view
|
||||
>
|
||||
<view
|
||||
class="orderstatusbtn"
|
||||
v-if="slotProps.row.refundableStatus === true"
|
||||
@click.stop="confirmApplyRefund(slotProps.row)"
|
||||
>申请退款</view
|
||||
>
|
||||
<!-- <view
|
||||
class="orderstatusbtn"
|
||||
v-if="item.orderStatus == 3 && userRecordid == null"
|
||||
@@ -615,12 +635,7 @@ export default {
|
||||
come: "2",
|
||||
isShowTab: false,
|
||||
isLoadingHide: false,
|
||||
moreList: [
|
||||
{
|
||||
name: "取消订单",
|
||||
key: "false",
|
||||
},
|
||||
],
|
||||
moreList: [],
|
||||
currentCateIndex: 0,
|
||||
pagination: {
|
||||
// 请求参数
|
||||
@@ -671,6 +686,16 @@ export default {
|
||||
value: 3,
|
||||
badge: {},
|
||||
},
|
||||
{
|
||||
name: "已退款",
|
||||
value: 6,
|
||||
badge: {},
|
||||
},
|
||||
{
|
||||
name: "退款中",
|
||||
value: 7,
|
||||
badge: {},
|
||||
},
|
||||
],
|
||||
selectOrderInfo: {},
|
||||
ordersListTab: 1,
|
||||
@@ -742,15 +767,26 @@ export default {
|
||||
},
|
||||
selectClick(index) {
|
||||
console.log("index at line 609:", index);
|
||||
if (index.key == "false") {
|
||||
if (index.key == "cancelOrder") {
|
||||
this.isShowMore = false;
|
||||
this.canceOrder(this.selectOrderInfo);
|
||||
}
|
||||
},
|
||||
openMore(row, index) {
|
||||
const actions = this.getMoreActions(row);
|
||||
if (!actions.length) return;
|
||||
this.moreList = actions;
|
||||
this.selectOrderInfo = row;
|
||||
this.isShowMore = true;
|
||||
},
|
||||
hasMoreActions(row) {
|
||||
return this.getMoreActions(row).length > 0;
|
||||
},
|
||||
getMoreActions(row) {
|
||||
const actions = [];
|
||||
// 取消订单功能已屏蔽,更多操作为空时不展示“更多”按钮
|
||||
return actions;
|
||||
},
|
||||
handleCopy(value, title) {
|
||||
this.$commonJS.handleCopy(value, title);
|
||||
},
|
||||
@@ -813,6 +849,60 @@ export default {
|
||||
val.orderSn,
|
||||
});
|
||||
},
|
||||
goRefundDestination(row) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/bookShop/refundDestination?orderId=" + row.orderId,
|
||||
});
|
||||
},
|
||||
confirmApplyRefund(row) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "确认申请订单内所有商品退款吗?",
|
||||
confirmText: "确认",
|
||||
cancelText: "取消",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
this.submitOrderRefund(row);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
submitOrderRefund(orderRow) {
|
||||
if (!orderRow || !orderRow.orderId) return;
|
||||
this.$http
|
||||
.request({
|
||||
url: "book/buyOrder/refundOrder",
|
||||
method: "POST",
|
||||
data: {
|
||||
orderId: orderRow.orderId,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: "退款成功",
|
||||
});
|
||||
this.pagination.page = 1;
|
||||
this.newList = [];
|
||||
this.getBookList(this.ordersListTab, false);
|
||||
return;
|
||||
}
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: (res && (res.msg || res.errMsg)) || "退款失败",
|
||||
});
|
||||
})
|
||||
.catch((e) => {
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: (e && (e.msg || e.errMsg)) || "退款失败",
|
||||
});
|
||||
});
|
||||
},
|
||||
getBookList(flag, refreshflag) {
|
||||
this.isLoadingHide = false;
|
||||
var that = this;
|
||||
@@ -843,6 +933,8 @@ export default {
|
||||
// * 3:已完成
|
||||
// * 4: 交易失败
|
||||
// * 5: 已过期
|
||||
// * 6: 已退款
|
||||
// * 7: 退款中
|
||||
|
||||
console.log("res at line 757:", res);
|
||||
that.map = res.data;
|
||||
@@ -872,7 +964,7 @@ export default {
|
||||
var params = {
|
||||
userId: this.userInfo.id,
|
||||
come: this.come,
|
||||
orderStatus: flag == -1 ? "" : flag, //传null为全部,订单状态 0-未付款 1-待发出 2-待收到 3-交易成功 4-交易失败 5-过期
|
||||
orderStatus: flag == -1 ? "" : flag, //传null为全部,订单状态 0-未付款 1-待发出 2-待收到 3-交易成功 4-交易失败 5-过期 6-已退款 7-退款中
|
||||
...this.pagination,
|
||||
// limit: 10,
|
||||
// page: this.newestpage,
|
||||
@@ -908,9 +1000,27 @@ export default {
|
||||
console.log(e);
|
||||
});
|
||||
},
|
||||
checkPayTimeout(payItem) {
|
||||
const createTime = payItem && payItem.createTime;
|
||||
if (!createTime) return true;
|
||||
const createdAt = new Date(String(createTime).replace(/-/g, "/")).getTime();
|
||||
if (!createdAt) return true;
|
||||
const expired = Date.now() - createdAt > 10 * 60 * 1000;
|
||||
if (expired) {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
content: "订单已超时,不能继续支付,请重新下单",
|
||||
confirmText: "知道了",
|
||||
showCancel: false,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
// 支付
|
||||
goPay(payItem) {
|
||||
console.log(payItem, "订单数据");
|
||||
if (!this.checkPayTimeout(payItem)) return;
|
||||
if (payItem.paymentMethod == 2) {
|
||||
console.log("阿里支付");
|
||||
setPay(
|
||||
@@ -1542,6 +1652,15 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btns.btns-no-more {
|
||||
justify-content: flex-end;
|
||||
|
||||
.right {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mb30 {
|
||||
@@ -1584,7 +1703,7 @@ export default {
|
||||
}
|
||||
|
||||
/deep/.u-tabs__wrapper__nav__item {
|
||||
padding: 0 !important;
|
||||
// padding: 0 !important;
|
||||
}
|
||||
|
||||
.commonDetailPage {
|
||||
|
||||
27
pages/bookShop/refundDestination.vue
Normal file
27
pages/bookShop/refundDestination.vue
Normal file
@@ -0,0 +1,27 @@
|
||||
<template>
|
||||
<view class="page-wrap">
|
||||
<public-module></public-module>
|
||||
<common-refund-destination :order-id="orderId" :http="$http" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
orderId: '',
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
if (options && options.orderId != null) {
|
||||
this.orderId = options.orderId
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.page-wrap {
|
||||
min-height: 100vh;
|
||||
}
|
||||
</style>
|
||||
@@ -519,6 +519,17 @@
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<u-modal
|
||||
:show="presaleRemarkModalShow"
|
||||
title="提示"
|
||||
:content="presaleRemarkModalContent"
|
||||
:showCancelButton="true"
|
||||
confirmText="继续购买"
|
||||
cancelText="取消"
|
||||
@confirm="handlePresaleRemarkConfirm"
|
||||
@cancel="handlePresaleRemarkCancel"
|
||||
@close="handlePresaleRemarkCancel"
|
||||
></u-modal>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -616,6 +627,9 @@
|
||||
|
||||
orderModalShowInfo: {},
|
||||
orderModalShow: false,
|
||||
presaleRemarkModalShow: false,
|
||||
presaleRemarkModalContent: "",
|
||||
presaleRemarkModalResolve: null,
|
||||
payType: 1,
|
||||
freightNum: 0,
|
||||
addressData: {
|
||||
@@ -1350,6 +1364,62 @@
|
||||
this.content = this.remark;
|
||||
}
|
||||
},
|
||||
openPresaleRemarkModal(content) {
|
||||
this.presaleRemarkModalContent = content;
|
||||
this.presaleRemarkModalShow = true;
|
||||
return new Promise((resolve) => {
|
||||
this.presaleRemarkModalResolve = resolve;
|
||||
});
|
||||
},
|
||||
handlePresaleRemarkConfirm() {
|
||||
this.presaleRemarkModalShow = false;
|
||||
if (this.presaleRemarkModalResolve) {
|
||||
const resolve = this.presaleRemarkModalResolve;
|
||||
this.presaleRemarkModalResolve = null;
|
||||
resolve(true);
|
||||
}
|
||||
},
|
||||
handlePresaleRemarkCancel() {
|
||||
this.presaleRemarkModalShow = false;
|
||||
if (this.presaleRemarkModalResolve) {
|
||||
const resolve = this.presaleRemarkModalResolve;
|
||||
this.presaleRemarkModalResolve = null;
|
||||
resolve(false);
|
||||
}
|
||||
},
|
||||
async checkPresaleRemark() {
|
||||
if (this.pageType != "goods") {
|
||||
return true;
|
||||
}
|
||||
const productIds = this.goodsDataList
|
||||
.map((e) => e.productId)
|
||||
.filter((id) => id)
|
||||
.join(",");
|
||||
if (!productIds || !this.urlList.presaleRemark) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
const res = await this.$http.request({
|
||||
url: `${this.urlList.presaleRemark}`,
|
||||
method: "POST",
|
||||
data: {
|
||||
productIds,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
});
|
||||
const remark =
|
||||
res && typeof res.remark == "string" ? res.remark.trim() : "";
|
||||
if (!remark) {
|
||||
return true;
|
||||
}
|
||||
return await this.openPresaleRemarkModal(remark);
|
||||
} catch (error) {
|
||||
console.log("presaleRemark error:", error);
|
||||
return true;
|
||||
}
|
||||
},
|
||||
async goBuyJie() {
|
||||
if (this.pageType == "vip") {
|
||||
if (this.radioValue != "1") {
|
||||
@@ -1457,6 +1527,11 @@
|
||||
});
|
||||
thisproduct = thisproduct.join(",");
|
||||
}
|
||||
const passPresaleRemark = await this.checkPresaleRemark();
|
||||
if (!passPresaleRemark) {
|
||||
this.buyingFlag = false;
|
||||
return;
|
||||
}
|
||||
if (
|
||||
this.historyOrderInfo &&
|
||||
thisproduct == this.historyOrderInfo.product &&
|
||||
@@ -2437,4 +2512,4 @@
|
||||
font-size: 24rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
@@ -249,9 +249,9 @@ export default {
|
||||
gotoDetail(v) {
|
||||
this.$emit("hancleClick", v);
|
||||
},
|
||||
onHandleClickBuy() {
|
||||
onHandleClickBuy(e) {
|
||||
this.$emit("selectGoodsData", this.selectGoodsData);
|
||||
this.$emit("onHandleClickBuy");
|
||||
this.$emit("onHandleClickBuy", e);
|
||||
},
|
||||
},
|
||||
onBackPress() {
|
||||
@@ -430,4 +430,8 @@ export default {
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
.title_list {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<!-- <scroll-view class="scroll-view_H cateList" scroll-x="true" scroll-left="0"> -->
|
||||
<view class="" style="background-color: #fff; width: 100%">
|
||||
<view class="" style="background-color: #fff; width: 100%; padding: 0 20rpx;">
|
||||
<u-tabs
|
||||
lineWidth="30"
|
||||
lineColor="#258feb"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<CommonCourseVideo
|
||||
:video-list="videoArray"
|
||||
:current-index="currentCateIndex !== null ? currentCateIndex : 0"
|
||||
:course="{courseTitle:options.navTitle, chapterTitle: curriculumData.title}"
|
||||
:course="{courseTitle:options.navTitle, chapterTitle: curriculumData.title, catalogueId: curriculumData.catalogueId || '', courseId: curriculumData.courseId || options.courseId || ''}"
|
||||
:cover="options.curriculumImgUrl || ''"
|
||||
:http="$http"
|
||||
/>
|
||||
@@ -120,7 +120,7 @@
|
||||
<view class="page-body">
|
||||
<view class='wrapper'>
|
||||
<view class="editor-wrapper">
|
||||
<editor @input="editorIput" id="editor" class="ql-container" placeholder="请输入您的见解..."
|
||||
<editor @input="editorIput" id="editor" class="ql-container" placeholder="请您一次性提交答题内容,提交后会进入评分流程"
|
||||
show-img-size show-img-toolbar show-img-resize
|
||||
@statuschange="onStatusChange" :read-only="readOnly"
|
||||
@ready="onEditorReady">
|
||||
@@ -934,9 +934,9 @@
|
||||
}
|
||||
|
||||
|
||||
.u-grid-list {
|
||||
// height: 40rpx;
|
||||
}
|
||||
// .u-grid-list {
|
||||
// // height: 40rpx;
|
||||
// }
|
||||
|
||||
.searchList {
|
||||
.item {
|
||||
@@ -1133,7 +1133,8 @@
|
||||
|
||||
button {
|
||||
font-size: 32rpx;
|
||||
@include theme('btn_bg') color: #fff;
|
||||
@include theme('btn_bg');
|
||||
color: #fff;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
border-radius: 50rpx;
|
||||
@@ -1236,11 +1237,11 @@
|
||||
// align-items: center;
|
||||
}
|
||||
|
||||
.headImage {
|
||||
// height: 400rpx !important;
|
||||
}
|
||||
// .headImage {
|
||||
// // height: 400rpx !important;
|
||||
// }
|
||||
|
||||
.commonDetailPage {}
|
||||
// .commonDetailPage {}
|
||||
|
||||
.curriulum_box {
|
||||
margin-top: 20rpx;
|
||||
@@ -1263,9 +1264,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
/deep/.titleItem {
|
||||
// width: calc(100% - 120rpx) !important;
|
||||
}
|
||||
// /deep/.titleItem {
|
||||
// // width: calc(100% - 120rpx) !important;
|
||||
// }
|
||||
|
||||
/deep/.scroll-view-item:nth-child(2n-1) {
|
||||
background-color: transparent !important;
|
||||
@@ -1396,7 +1397,7 @@
|
||||
width: calc(100% - 150rpx) !important;
|
||||
|
||||
.aui-text-danger {
|
||||
display: inline-block;
|
||||
// display: inline-block;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1308,7 +1308,7 @@
|
||||
});
|
||||
|
||||
const joinedText = this.textList.join('/');
|
||||
this.goBuyTitle = '购买'+joinedText+'VIP,即可畅享更多专属权益';
|
||||
this.goBuyTitle = '购买'+joinedText+'VIP,即可畅享更多专属权益(不包含论坛)';
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -790,8 +790,13 @@ export default {
|
||||
this.$refs.commonSelectGoods.open();
|
||||
},
|
||||
//点击下单按钮
|
||||
onHandleClickBuy() {
|
||||
if(this.buttonType==0){ //如果是加入购物车
|
||||
onHandleClickBuy(e) {
|
||||
if (e && e.content && e.content.text === "购物车") {
|
||||
this.onHandleClick();
|
||||
return;
|
||||
}
|
||||
const clickType = typeof (e && e.index) === "number" ? e.index : this.buttonType;
|
||||
if(clickType==0){ //如果是加入购物车
|
||||
console.log('剩余', this.selectGoodsData.productStock)
|
||||
if(this.selectGoodsData.productStock==0){
|
||||
uni.showToast({
|
||||
|
||||
@@ -132,6 +132,7 @@ export default {
|
||||
list: "app/phone.do?getCourseDetail_new",
|
||||
initPrepareOrder: "common/buyOrder/initPrepareOrder",
|
||||
buyOrder: "book/buyOrder/placeOrder",
|
||||
presaleRemark: "book/buyOrder/presaleRemark",
|
||||
curriculumInfo: "app/phone.do?getCourseInfo",
|
||||
detailInfo: "app/phoneDoctor.do?getTaiHuClassInfo_new",
|
||||
userInfo: "common/user/getUserInfo",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -29,7 +29,12 @@
|
||||
</view>
|
||||
<view class="userInfoBox" style="margin-left: 20rpx;">
|
||||
<template>
|
||||
<view class="name">{{ userMes.nickname ? userMes.nickname : "未设置" }}</view>
|
||||
<view class="name">
|
||||
{{ userMes.nickname ? userMes.nickname : "未设置" }}
|
||||
<text v-if="userMes.profile" class="user-profile">({{userMes.profile}})</text>
|
||||
</view>
|
||||
|
||||
<!-- <u-tag v-if="userMes.profile" :text="userMes.profile" size="mini" plain plainFill type="success"></u-tag> -->
|
||||
</template>
|
||||
<template v-if="userMes.tel">
|
||||
<view class="phone">手机号:({{ userMes.tel }})</view>
|
||||
@@ -41,6 +46,12 @@
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<template>
|
||||
<view>
|
||||
<u-tag v-if="userMes.todayWatch" :text="userMes.todayWatch" size="mini" plain plainFill type="success" class="watch-time"></u-tag>
|
||||
<u-tag v-if="userMes.totalWatch" :text="userMes.totalWatch" size="mini" plain plainFill class="watch-time"></u-tag>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -128,13 +139,14 @@
|
||||
<view class="xiugai boxShadow box_fillet">
|
||||
<common-list :dataList="pageList" @hancleClick="handleClickTab" label="name">
|
||||
<template slot="rightSlot" slot-scope="slotProps">
|
||||
<text
|
||||
class="fdButtonBox aui-text-success"
|
||||
v-if="slotProps.row.contentType&&slotProps.row.contentType == 'hufen'&&hufenNumber>0"
|
||||
style="line-height: 40rpx; font-size: 40rpx;color: #258feb;float: right;"
|
||||
>{{ hufenNumber }}<text style="font-size: 30rpx;margin-left: 4rpx;">湖分</text></text
|
||||
>
|
||||
</template>
|
||||
<text
|
||||
v-if="slotProps.row.contentType&&slotProps.row.contentType == 'hufen'&&hufenNumber>0"
|
||||
class="fdButtonBox aui-text-success"
|
||||
style="line-height: 40rpx; font-size: 40rpx;color: #258feb;float: right;"
|
||||
>
|
||||
{{ hufenNumber }}<text style="font-size: 30rpx;margin-left: 4rpx;">湖分</text>
|
||||
</text>
|
||||
</template>
|
||||
</common-list>
|
||||
</view>
|
||||
</view>
|
||||
@@ -483,6 +495,9 @@
|
||||
if (this.userInfo.id != undefined) {
|
||||
this.$http.post("common/user/getUserInfo").then((res) => {
|
||||
this.userMes = res.result;
|
||||
this.userMes.profile = res.des || '';
|
||||
this.userMes.todayWatch = res.todayWatch || '';
|
||||
this.userMes.totalWatch = res.totalWatch || '';
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -636,15 +651,23 @@
|
||||
|
||||
view {
|
||||
.name {
|
||||
width: 100%;
|
||||
width: 90%;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #6990c7 !important;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.user-profile{
|
||||
font-size: 28rpx;
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.phone {
|
||||
font-size: 26rpx;
|
||||
color: #6990c7 !important;
|
||||
margin: 6rpx 0;
|
||||
}
|
||||
|
||||
.per_user_img {
|
||||
@@ -654,6 +677,12 @@
|
||||
margin-left: 10rpx;
|
||||
vertical-align: super;
|
||||
}
|
||||
|
||||
.watch-time {
|
||||
margin-top: 6rpx;
|
||||
display: inline-block;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -71,17 +71,19 @@
|
||||
>
|
||||
<template slot="labelSlot" slot-scope="slotProps">
|
||||
<view class="label_content AC_List">
|
||||
<view class="left">
|
||||
<view class="title" v-if="slotProps.row.productName">{{ slotProps.row.productName }}</view>
|
||||
<view class="title" v-else>{{ slotProps.row.orderType }}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="`right ${
|
||||
slotProps.row.changeAmount > 0 ? 'Hot' : ''
|
||||
}`"
|
||||
>
|
||||
<text v-if="slotProps.row.changeAmount > 0">+</text>
|
||||
<text>{{ slotProps.row.changeAmount }}</text> </view>
|
||||
<view style=" display: flex; align-items: center; justify-content: space-between;">
|
||||
<view class="left">
|
||||
<view class="title">{{ slotProps.row.productName || slotProps.row.orderType}}</view>
|
||||
</view>
|
||||
<view
|
||||
:class="`right ${
|
||||
slotProps.row.changeAmount > 0 ? 'Hot' : ''
|
||||
}`"
|
||||
>
|
||||
<text v-if="slotProps.row.changeAmount > 0">+</text>
|
||||
<text>{{ slotProps.row.changeAmount }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="AC_mark" v-if="slotProps.row.remark">{{slotProps.row.remark}}</view>
|
||||
<view class="AC_note" v-if="slotProps.row.note&&slotProps.row.note!='null'">说明:{{slotProps.row.note}}</view>
|
||||
<view class="AC_time">{{ slotProps.row.createTime }}</view>
|
||||
@@ -339,6 +341,12 @@ export default {
|
||||
|
||||
.AC_List {
|
||||
overflow: hidden;
|
||||
.title,
|
||||
.AC_note,
|
||||
.AC_mark {
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
.left {
|
||||
width: calc(100% - 120rpx) !important;
|
||||
font-weight: 700;
|
||||
@@ -355,6 +363,19 @@ export default {
|
||||
font-size: 32rpx;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
> view:first-child {
|
||||
.left {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
width: auto !important;
|
||||
float: none;
|
||||
}
|
||||
.right {
|
||||
flex-shrink: 0;
|
||||
float: none;
|
||||
width: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
.AC_title {
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
<view class="in">
|
||||
<view class="uni-textarea">
|
||||
<textarea v-show="false" placeholder-style="font-size:26rpx" v-model="form.content"
|
||||
auto-height placeholder="请输入内容" />
|
||||
auto-height placeholder="请您一次性提交答题内容,提交后会进入评分流程" />
|
||||
<view class="editor-wrapper">
|
||||
<editor @input="editorIput" id="editor" class="ql-container" placeholder="请输入内容..." show-img-size
|
||||
<editor @input="editorIput" id="editor" class="ql-container" placeholder="请您一次性提交答题内容,提交后会进入评分流程" show-img-size
|
||||
show-img-toolbar show-img-resize @statuschange="onStatusChange"
|
||||
:read-only="readOnly" @ready="onEditorReady">
|
||||
</editor>
|
||||
@@ -537,4 +537,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
<view class="in">
|
||||
<view class="uni-textarea">
|
||||
<textarea placeholder-style="font-size:26rpx" v-model="form.content" maxlength="-1"
|
||||
auto-height placeholder="请输入内容" />
|
||||
auto-height placeholder="请您一次性提交答题内容,提交后会进入评分流程" />
|
||||
|
||||
</view>
|
||||
</view>
|
||||
@@ -750,4 +750,4 @@
|
||||
background-image: linear-gradient(30deg, #d4eaf0 0%, #d4eaf0 50%, #fdf0ed 100%);
|
||||
min-height: 100vh;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -642,11 +642,16 @@ export default {
|
||||
//存储的需要固定分类
|
||||
this.fixed = uni.getStorageSync("fixed");
|
||||
//固定分类
|
||||
if (this.fixed) {
|
||||
this.curseClick(this.currentItem, this.currentIndex);
|
||||
} else {
|
||||
if (this.currentIndex === null || this.currentIndex === undefined) {
|
||||
this.currentIndex = 0;
|
||||
this.currentItem = null;
|
||||
}
|
||||
if (
|
||||
this.fixed &&
|
||||
this.currentItem &&
|
||||
this.currentIndex !== null &&
|
||||
this.currentIndex !== undefined
|
||||
) {
|
||||
this.curseClick(this.currentItem, this.currentIndex);
|
||||
}
|
||||
uni.hideTabBar();
|
||||
// #ifdef APP-PLUS
|
||||
|
||||
@@ -389,4 +389,6 @@ button::after {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uni-text {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user