Compare commits
8 Commits
0a69e1d830
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| de92a851b7 | |||
| 69aa5cda40 | |||
| f19d2b5eca | |||
| 78cc9cbccf | |||
| b0c63d3faa | |||
| e2a546218a | |||
| d635ab5081 | |||
| 1efcf2d675 |
@@ -4,6 +4,7 @@ if (process.env.NODE_ENV === 'development') {
|
||||
// 开发环境
|
||||
// baseUrl = "http://192.168.110.100:9200/pb/"; // 张川川
|
||||
baseUrl = "https://api.nuttyreading.com/"; //线上正式
|
||||
// baseUrl = "http://192.168.110.131:9200/pb/"; // 王亚男
|
||||
} else if (process.env.NODE_ENV === 'production') {
|
||||
// baseUrl = "http://192.168.110.100:9200/pb/"; // 张川川
|
||||
baseUrl = "https://api.nuttyreading.com/"; //线上正式
|
||||
|
||||
@@ -82,11 +82,12 @@ $http.getAliToken = function (callback) {
|
||||
//请求开始拦截器
|
||||
$http.requestStart = function (options) {
|
||||
// console.log("请求开始", options);
|
||||
if (options.load && options.data.loadAnimate != 'none') {
|
||||
const resData = options.data || {}
|
||||
if (options.load && resData.loadAnimate != 'none') {
|
||||
//打开加载动画
|
||||
store.commit("setLoadingShow", true);
|
||||
}
|
||||
if (options.data.loadAnimate == 'none') {
|
||||
if (resData.loadAnimate == 'none') {
|
||||
delete options.data.loadAnimate
|
||||
}
|
||||
// 图片、视频上传大小限制
|
||||
|
||||
3
main.js
3
main.js
@@ -61,6 +61,9 @@ Vue.component('common-video', commonVideo);
|
||||
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 commonGoodsList from '@/pages/component/commonComponents/goodsList.vue'
|
||||
Vue.component('common-goods-list', commonGoodsList);
|
||||
import commonCurriculumList from '@/pages/component/commonComponents/curriculum.vue'
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
"name" : "心灵空间",
|
||||
"appid" : "__UNI__BBBDFD2",
|
||||
"description" : "心灵空间",
|
||||
"versionName" : "1.0.49",
|
||||
"versionName" : "1.0.58",
|
||||
"sassImplementationName" : "node-sass",
|
||||
"versionCode" : 1049,
|
||||
"versionCode" : 1058,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
@@ -61,12 +61,16 @@
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
||||
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\" />"
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\" />",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>"
|
||||
],
|
||||
"minSdkVersion" : 23,
|
||||
"targetSdkVersion" : 35,
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
|
||||
"schemes" : "soulspace"
|
||||
"schemes" : "soulspace",
|
||||
"excludePermissions" : []
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios" : {
|
||||
|
||||
12
package-lock.json
generated
12
package-lock.json
generated
@@ -9,7 +9,7 @@
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"edu-core": "file:../edu-core",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13",
|
||||
"jquery": "^3.7.1",
|
||||
"tcplayer.js": "^5.1.0"
|
||||
},
|
||||
@@ -17,11 +17,6 @@
|
||||
"postcss-px-to-viewport": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"../edu-core": {
|
||||
"version": "1.0.6",
|
||||
"license": "ISC",
|
||||
"devDependencies": {}
|
||||
},
|
||||
"node_modules/babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
@@ -73,8 +68,9 @@
|
||||
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
|
||||
},
|
||||
"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/es5-shim": {
|
||||
"version": "4.6.7",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/dcloudio/hello-uniapp#readme",
|
||||
"dependencies": {
|
||||
"edu-core": "file:../edu-core",
|
||||
"edu-core": "git+https://git.nuttyreading.com/chenghuan/edu-core.git#v1.0.13",
|
||||
"jquery": "^3.7.1",
|
||||
"tcplayer.js": "^5.1.0"
|
||||
},
|
||||
|
||||
12
pages.json
12
pages.json
@@ -194,6 +194,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/detail/refundDestination",
|
||||
"style": {
|
||||
"navigationBarTitleText": "钱款去向",
|
||||
"enablePullDownRefresh": false,
|
||||
"app-plus": {
|
||||
"bounce": "none",
|
||||
"titleNView": false,
|
||||
"popGesture": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/my/index",
|
||||
"style": {
|
||||
|
||||
@@ -510,6 +510,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>
|
||||
|
||||
@@ -607,6 +618,9 @@
|
||||
|
||||
orderModalShowInfo: {},
|
||||
orderModalShow: false,
|
||||
presaleRemarkModalShow: false,
|
||||
presaleRemarkModalContent: "",
|
||||
presaleRemarkModalResolve: null,
|
||||
payType: 1,
|
||||
freightNum: 0,
|
||||
addressData: {
|
||||
@@ -1339,6 +1353,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") {
|
||||
@@ -1446,6 +1516,11 @@
|
||||
});
|
||||
thisproduct = thisproduct.join(",");
|
||||
}
|
||||
const passPresaleRemark = await this.checkPresaleRemark();
|
||||
if (!passPresaleRemark) {
|
||||
this.buyingFlag = false;
|
||||
return;
|
||||
}
|
||||
if (
|
||||
this.historyOrderInfo &&
|
||||
thisproduct == this.historyOrderInfo.product &&
|
||||
@@ -2405,4 +2480,4 @@
|
||||
color: $themeColor;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
@@ -180,9 +180,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() {
|
||||
@@ -362,4 +362,8 @@ export default {
|
||||
color: #ff1f00;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.title_list {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view style="background-color: #fff; width: 100%">
|
||||
<view style="background-color: #fff; width: 100%; padding: 0 20rpx;">
|
||||
<u-tabs
|
||||
lineWidth="30"
|
||||
lineColor="#294a97"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<CommonCourseVideo
|
||||
:video-list="videoArray"
|
||||
:current-index="currentVideoIndex !== null ? currentVideoIndex : 0"
|
||||
:course="{courseTitle:options.navTitle, chapterTitle: curriculumData.title}"
|
||||
:course="{courseTitle:options.navTitle, chapterTitle: curriculumData.title, catalogueId: curriculumData.catalogueId || '', courseId: curriculumData.courseId || ''}"
|
||||
:cover="options.curriculumImgUrl"
|
||||
:http="$http"
|
||||
/>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -363,7 +363,8 @@
|
||||
<view class="title">咨询课程</view>
|
||||
<view class="content">
|
||||
<view class="center">
|
||||
<text style="color: #f42c32 ;">此课程仅限为做过心理人格测试,结果显示均为正常的用户开放购买权限。</text>
|
||||
<view style="color: #f42c32 ;">本课程为进阶课程,原则上需完成「心理动力训练」课程后,方可开通学习权限。</view>
|
||||
<view style="color: #f42c32 ;">如尚未学习「心理动力训练」课程,但人格测试结果全部为阴性,可联系客服老师申请开通权限。</view>
|
||||
|
||||
|
||||
<br /><text style="color: #838588;font-size: 13px;">点击图片后长按图片保存到手机,或使用微信扫描二维码添加客服企业微信。</text>
|
||||
@@ -681,7 +682,7 @@ export default {
|
||||
});
|
||||
|
||||
const joinedText = this.textList.join('/');
|
||||
this.goBuyTitle = '购买' + joinedText + 'VIP,即可畅享更多专属权益';
|
||||
this.goBuyTitle = '购买' + joinedText + 'VIP,即可畅享更多专属权益(不包含论坛)';
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -69,6 +69,12 @@
|
||||
<text
|
||||
class="orderState orderState5"
|
||||
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="order_block">
|
||||
@@ -857,14 +863,15 @@ export default {
|
||||
text: "继续付款",
|
||||
});
|
||||
}
|
||||
if (this.orderContet.orderStatus == 0) {
|
||||
this.customButton.push({
|
||||
width: "160rpx",
|
||||
text: "取消订单",
|
||||
color: "#333",
|
||||
backgroundColor: "#f0f0f0",
|
||||
});
|
||||
}
|
||||
// soulspace:注释取消订单按钮
|
||||
// if (this.orderContet.orderStatus == 0) {
|
||||
// this.customButton.push({
|
||||
// width: "160rpx",
|
||||
// text: "取消订单",
|
||||
// color: "#333",
|
||||
// backgroundColor: "#f0f0f0",
|
||||
// });
|
||||
// }
|
||||
if (this.orderContet.orderStatus == 0) {
|
||||
this.titleStat = "待支付";
|
||||
} else if (this.orderContet.orderStatus == 1) {
|
||||
@@ -873,6 +880,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 &&
|
||||
@@ -915,9 +926,27 @@ 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) {
|
||||
if (!this.checkPayTimeout(payItem)) return;
|
||||
if (payItem.paymentMethod == 2) {
|
||||
console.log("阿里支付");
|
||||
setPay(
|
||||
@@ -1054,6 +1083,12 @@ view,uni-view {
|
||||
.orderState5 {
|
||||
background-color: #787878;
|
||||
}
|
||||
.orderState6 {
|
||||
background-color: #f56c6c;
|
||||
}
|
||||
.orderState7 {
|
||||
background-color: #f56c6c;
|
||||
}
|
||||
.guoqi {
|
||||
font-size: 28rpx;
|
||||
align-items: center;
|
||||
|
||||
27
pages/detail/refundDestination.vue
Normal file
27
pages/detail/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>
|
||||
@@ -1,10 +1,12 @@
|
||||
<template>
|
||||
<view class="commonPageBox">
|
||||
<z-paging ref="paging" v-model="dataList" auto-show-back-to-top @query="getDataList">
|
||||
<z-paging ref="paging" v-model="dataList" auto-show-back-to-top :auto="false" @query="getDataList">
|
||||
<template #top>
|
||||
<z-nav-bar title="心理论坛"></z-nav-bar>
|
||||
|
||||
<view class="search_box">
|
||||
<u-search placeholder="请输入文章标题" v-model="query.title" @search="handleSearch" @custom="handleSearch"></u-search>
|
||||
<u-tabs :list="classification" keyName="dictValue" lineWidth="30" class="classification_tabs" @click="handleClassification"></u-tabs>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -39,15 +41,38 @@ export default {
|
||||
},
|
||||
dataList: [], //列表数据
|
||||
statusNull: null, //暂无数据显示
|
||||
classification: []
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
},
|
||||
onLoad() {
|
||||
// this.getDataList(this.query.page, this.query.limit)
|
||||
this.getClassification();
|
||||
},
|
||||
methods: {
|
||||
//免费课程数据
|
||||
// 获取分类
|
||||
getClassification(){
|
||||
this.$http.request({
|
||||
url: "book/sysdictdata/selectByType/psycheForumLabel",
|
||||
method: "GET",
|
||||
header: { "Content-Type": "application/json" },
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0 && res.dataList) {
|
||||
this.classification = res.dataList;
|
||||
this.query.type = res.dataList[0].dictType;
|
||||
this.$refs.paging.reload();
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log("获取分类失败", e);
|
||||
});
|
||||
},
|
||||
handleClassification(e){
|
||||
this.query.type = e.dictType;
|
||||
this.$refs.paging.reload();
|
||||
},
|
||||
// 获取列表
|
||||
getDataList(pageNo, pageSize){
|
||||
this.$http.request({
|
||||
url: 'common/wxPublicAccount/getWxPublicAccountArticleList',
|
||||
@@ -63,7 +88,7 @@ export default {
|
||||
})
|
||||
.then(res=> {
|
||||
if (res.code == 0) {
|
||||
if(res.page.records && res.page.records.length>0){
|
||||
if(res.page.records){
|
||||
this.$refs.paging.complete(res.page.records);
|
||||
}else{
|
||||
this.$refs.paging.complete(false);
|
||||
@@ -85,7 +110,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
<style lang="scss" scoped>
|
||||
.commonPageBox{
|
||||
background: #eff5f8;
|
||||
height: 100vh;
|
||||
@@ -94,6 +119,11 @@ export default {
|
||||
background: #fff;
|
||||
padding: 0 20rpx 20rpx;
|
||||
}
|
||||
.classification_tabs {
|
||||
::v-deep .u-tabs__wrapper__nav__item {
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
}
|
||||
.cateList {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -189,25 +219,24 @@ export default {
|
||||
color: #999;
|
||||
font-size: 22rpx;
|
||||
}
|
||||
|
||||
::v-deep ::-webkit-scrollbar {
|
||||
::v-deep .zp-scroll-view .uni-scroll-view::-webkit-scrollbar {
|
||||
/*滚动条整体样式*/
|
||||
width: 4px !important;
|
||||
height: 1px !important;
|
||||
height: 4px !important;
|
||||
overflow: auto !important;
|
||||
background: #ccc !important;
|
||||
background: #f5f5f5 !important;
|
||||
-webkit-appearance: auto !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
::v-deep ::-webkit-scrollbar-thumb {
|
||||
::v-deep .zp-scroll-view .uni-scroll-view::-webkit-scrollbar-thumb {
|
||||
/*滚动条里面小方块*/
|
||||
border-radius: 10px !important;
|
||||
box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
|
||||
background: #7b7979 !important;
|
||||
background: #eee !important;
|
||||
}
|
||||
|
||||
::v-deep ::-webkit-scrollbar-track {
|
||||
::v-deep .zp-scroll-view .uni-scroll-view::-webkit-scrollbar-track {
|
||||
/*滚动条里面轨道*/
|
||||
// box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2) !important;
|
||||
// border-radius: 10px !important;
|
||||
|
||||
@@ -455,7 +455,12 @@
|
||||
},
|
||||
//点击下单按钮
|
||||
onHandleClickBuy(e) {
|
||||
if(this.buttonType==0){ //如果是加入购物车
|
||||
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({
|
||||
|
||||
@@ -107,6 +107,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",
|
||||
|
||||
@@ -22,13 +22,20 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="userInfoBox">
|
||||
<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>
|
||||
<view class="phone" v-if="userMes.tel">手机号:({{ userMes.tel }})</view>
|
||||
<view class="vip_type" v-if="textList.length>0">
|
||||
<view class="vip_type_item" v-for="(item,index) in textList" :key="index">
|
||||
{{item}}<image src="@/static/icon/chao_vip.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<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>
|
||||
</view>
|
||||
<br clear="both" />
|
||||
</view>
|
||||
@@ -318,6 +325,9 @@ export default {
|
||||
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 || '';
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -427,23 +437,31 @@ export default {
|
||||
}
|
||||
.userInfoBox{
|
||||
padding-left: 20rpx;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
view {
|
||||
|
||||
.name {
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
font-size: 30rpx;
|
||||
line-height: 40rpx;
|
||||
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;
|
||||
line-height: 40rpx;
|
||||
color: #6990c7;
|
||||
color: #6990c7 !important;
|
||||
margin: 6rpx 0;
|
||||
}
|
||||
|
||||
.per_user_img {
|
||||
display: inline-block;
|
||||
width: 40upx;
|
||||
@@ -451,6 +469,12 @@ export default {
|
||||
margin-left: 10rpx;
|
||||
vertical-align: super;
|
||||
}
|
||||
|
||||
.watch-time {
|
||||
margin-top: 10rpx;
|
||||
display: inline-block;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -732,7 +756,7 @@ export default {
|
||||
}
|
||||
|
||||
.modal_vip{
|
||||
margin-top: 50rpx;
|
||||
margin-top: 25rpx;
|
||||
padding: 20rpx 20rpx 0;
|
||||
height: auto;
|
||||
display: flex;
|
||||
@@ -1022,6 +1046,7 @@ export default {
|
||||
margin-top: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.vip_type_item{
|
||||
display: flex;
|
||||
@@ -1035,7 +1060,8 @@ export default {
|
||||
height: 40rpx;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
margin-right: 10rpx;
|
||||
margin-right: 8rpx;
|
||||
margin-bottom: 4rpx;
|
||||
}
|
||||
.vip_type_item:last-child{
|
||||
margin-right: 0;
|
||||
@@ -1044,9 +1070,9 @@ export default {
|
||||
width: 34rpx;
|
||||
height: 24rpx;
|
||||
}
|
||||
.vip_infor{
|
||||
// .vip_infor{
|
||||
|
||||
}
|
||||
// }
|
||||
.vip_infor_item{
|
||||
display: block;
|
||||
color: #fff;
|
||||
@@ -1058,9 +1084,9 @@ export default {
|
||||
.vip_infor_item text{
|
||||
color: #fff;
|
||||
}
|
||||
.vip_btn{
|
||||
// .vip_btn{
|
||||
|
||||
}
|
||||
// }
|
||||
.vip_btn button{
|
||||
background: none;
|
||||
border: 2rpx solid #294a97;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
<view class="commonPageBox commonDetailPage">
|
||||
<z-nav-bar title="我的订单" :backState="2000"></z-nav-bar>
|
||||
<view class="cateList flexbox">
|
||||
<common-sticky itemStyle="width:20%; height: 68rpx;font-size:24rpx;" :list="ordersTabs" label="name"
|
||||
<common-sticky itemStyle="height: 68rpx;font-size:24rpx; padding: 0 20rpx;" :list="ordersTabs" label="name"
|
||||
:currentCateIndex="currentCateIndex" @handleselectCate="ordersTabCLi"></common-sticky>
|
||||
</view>
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
<text class="orderstatus" v-show="slotProps.row.orderStatus == 3">交易成功</text>
|
||||
<text class="orderstatus" v-show="slotProps.row.orderStatus == 4">交易失败</text>
|
||||
<text class="orderstatus" 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>
|
||||
|
||||
@@ -248,8 +250,9 @@
|
||||
</view>
|
||||
|
||||
<view class="operation_box boxShadow" v-if="slotProps.row.isShowMore == true">
|
||||
<view v-if="slotProps.row.orderStatus == 0"
|
||||
@click.stop="canceOrder(slotProps.row)">取消订单</view>
|
||||
<!-- soulspace:注释取消订单入口 -->
|
||||
<!-- <view v-if="slotProps.row.orderStatus == 0"
|
||||
@click.stop="canceOrder(slotProps.row)">取消订单</view> -->
|
||||
</view>
|
||||
<!-- @click.stop="openMore(slotProps.row, slotProps.rowIndex)" 更多 -->
|
||||
<view class="btns flexbox" style="margin-top: 10rpx">
|
||||
@@ -264,7 +267,10 @@
|
||||
@click.stop="seeExpressDetail(slotProps.row)">查看物流</view>
|
||||
<view class="orderstatusbtn" v-if="slotProps.row.orderStatus == 2"
|
||||
@click.stop="OverOrder(slotProps.row)">确认收到</view>
|
||||
<view class="orderstatusbtn" 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>
|
||||
</view>
|
||||
<view style="border-bottom: 2rpx solid #e9e9e9; height: 50rpx"
|
||||
@@ -300,10 +306,12 @@
|
||||
come: "3",
|
||||
isShowTab: false,
|
||||
isLoadingHide: false,
|
||||
moreList: [{
|
||||
name: "取消订单",
|
||||
key: "false",
|
||||
}, ],
|
||||
// soulspace:注释取消订单菜单
|
||||
// moreList: [{
|
||||
// name: "取消订单",
|
||||
// key: "false",
|
||||
// }, ],
|
||||
moreList: [],
|
||||
currentCateIndex: 0,
|
||||
pagination: {
|
||||
page: 1, //页码
|
||||
@@ -347,6 +355,16 @@
|
||||
value: 3,
|
||||
badge: {},
|
||||
},
|
||||
{
|
||||
name: "已退款",
|
||||
value: 6,
|
||||
badge: {},
|
||||
},
|
||||
{
|
||||
name: "退款中",
|
||||
value: 7,
|
||||
badge: {},
|
||||
},
|
||||
],
|
||||
selectOrderInfo: {},
|
||||
ordersListTab: 1,
|
||||
@@ -437,6 +455,48 @@
|
||||
val.orderSn,
|
||||
});
|
||||
},
|
||||
goRefundDestination(row) {
|
||||
uni.navigateTo({
|
||||
url: `/pages/detail/refundDestination?orderId=${row.orderId}`,
|
||||
});
|
||||
},
|
||||
confirmApplyRefund(row) {
|
||||
uni.showModal({
|
||||
title: "申请退款",
|
||||
content: "请确认是否提交退款申请?",
|
||||
confirmText: "确认提交",
|
||||
cancelText: "取消",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
this.submitOrderRefund(row);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
submitOrderRefund(orderRow) {
|
||||
this.$http.request({
|
||||
url: "book/buyOrder/refundOrder",
|
||||
method: "POST",
|
||||
data: {
|
||||
orderId: orderRow.orderId,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$commonJS.showToast("申请退款成功");
|
||||
this.newestpage = 1;
|
||||
this.pagination.page = 1;
|
||||
this.newList = [];
|
||||
this.getBookList(this.ordersListTab, false);
|
||||
return;
|
||||
}
|
||||
this.$commonJS.showToast(res.errMsg || "申请退款失败");
|
||||
}).catch(() => {
|
||||
this.$commonJS.showToast("申请退款失败");
|
||||
});
|
||||
},
|
||||
//初始化获取数据
|
||||
getBookList(flag, refreshflag) {
|
||||
this.isLoadingHide = false;
|
||||
@@ -461,6 +521,8 @@
|
||||
// * 3:已完成
|
||||
// * 4: 交易失败
|
||||
// * 5: 已过期
|
||||
// * 6: 已退款
|
||||
// * 7: 退款中
|
||||
that.map = res.data;
|
||||
|
||||
that.ordersTabs.map((e) => {
|
||||
@@ -489,7 +551,7 @@
|
||||
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
|
||||
}
|
||||
this.$http.request({
|
||||
@@ -522,8 +584,26 @@
|
||||
});
|
||||
this.axiosStatus = 1
|
||||
},
|
||||
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) {
|
||||
if (!this.checkPayTimeout(payItem)) return;
|
||||
if (payItem.paymentMethod == 2) {
|
||||
console.log("阿里支付");
|
||||
setPay({
|
||||
@@ -982,9 +1062,9 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/deep/.u-tabs__wrapper__nav__item {
|
||||
padding: 0 !important;
|
||||
}
|
||||
// /deep/.u-tabs__wrapper__nav__item {
|
||||
// padding: 0 !important;
|
||||
// }
|
||||
.order_box {
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
@@ -828,8 +828,6 @@ export default {
|
||||
color: $themeColor;
|
||||
}
|
||||
|
||||
.emaPho {}
|
||||
|
||||
.emaPho>view {
|
||||
display: inline-block;
|
||||
padding: 10rpx 0;
|
||||
@@ -904,7 +902,8 @@ export default {
|
||||
border-radius: 50rpx;
|
||||
|
||||
&.active {
|
||||
@include theme("btn_bg") color: #fff;
|
||||
@include theme("btn_bg");
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,7 @@
|
||||
<view class="label_content AC_List">
|
||||
<view style=" display: flex; align-items: center; justify-content: space-between;">
|
||||
<view class="left">
|
||||
<view class="title" v-if="slotProps.row.orderType=='购买商品'&&slotProps.row.productName">{{ slotProps.row.orderType }} <br/> {{ slotProps.row.productName }}</view>
|
||||
<view class="title" v-else>{{ slotProps.row.orderType }}</view>
|
||||
<view class="title">{{ slotProps.row.productName || slotProps.row.orderType}}</view>
|
||||
</view>
|
||||
<view class="right Hot">
|
||||
<text v-if="slotProps.row.changeAmount > 0">+</text>
|
||||
@@ -211,6 +210,12 @@ export default {
|
||||
|
||||
.AC_List {
|
||||
overflow: hidden;
|
||||
.title,
|
||||
.AC_note,
|
||||
.AC_mark {
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
.left {
|
||||
width: calc(100% - 140rpx) !important;
|
||||
font-weight: 700;
|
||||
@@ -230,6 +235,19 @@ export default {
|
||||
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 {
|
||||
font-size: 32rpx;
|
||||
|
||||
@@ -362,4 +362,8 @@ button::after {
|
||||
// border-bottom: 0.5px solid #dadbde;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uni-text {
|
||||
white-space: normal;
|
||||
}
|
||||
3
style/mixin.scss
Normal file
3
style/mixin.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
@charset "utf-8";
|
||||
//主题色
|
||||
$themeColor: #7dc1f0;
|
||||
Reference in New Issue
Block a user