4 Commits

Author SHA1 Message Date
84484bf597 feat: 新增预售书重复购买提示
在结算页面中新增预售备注的弹窗功能,用户在结算时可查看相关备注信息。更新manifest.json中的版本号至1.2.87。
2026-03-25 11:40:40 +08:00
7c0308b991 chore: 修改学术传承分类 2026-03-24 18:51:49 +08:00
211bbbb6c2 fix: 更新阳经穴位属性及版本号
修正阳经穴位属性中的错误描述,将"脾经(土)"改为"胃经(土)","心(火)"改为"小肠(火)","后匾(母穴)"改为"后溪(母穴)"。同时更新应用版本号至1.2.85。
2026-03-24 17:27:24 +08:00
e8b98a62cb docs: 统一收货相关术语为收件并更新版本号
将“收货地址”、“收货人”、“待发货”、“待收货”等术语统一修改为“收件地址”、“收件人”、“待发出”、“待收到”等更准确的表述
更新manifest.json中的版本号为1.2.84
2026-03-05 09:35:28 +08:00
26 changed files with 1035 additions and 751 deletions

View File

@@ -2,6 +2,7 @@ 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/"; // 张川川
} else if (process.env.NODE_ENV === 'production') {

View File

@@ -13,8 +13,8 @@
}
],
"sassImplementationName" : "node-sass",
"versionName" : "1.2.83",
"versionCode" : 1283,
"versionName" : "1.2.87",
"versionCode" : 1287,
"app-plus" : {
"compatible" : {
"ignoreVersion" : true

View File

@@ -66,11 +66,11 @@
SunList: {
title: '阳经',
vlue: '属性',
attribute: ['阳经', '属性', '大肠经(金)', '经(土)', '(火)', '膀胱经(水)', '三焦经(冬至前相火,冬至后相水)', '胆经(木)'],
attribute: ['阳经', '属性', '大肠经(金)', '经(土)', '小肠(火)', '膀胱经(水)', '三焦经(冬至前相火,冬至后相水)', '胆经(木)'],
arry: [
['井', '金', '商阳(本穴)', '厉兑(子穴)', '少泽', '至阴(母穴)', '关冲(冬至后母穴)', '窍阴'],
['荥', '水', '二间(子穴)', '内庭(泄井当泄荥)', '前谷', '通谷(本穴)', '液门(冬至后本穴)', '侠溪(母穴)'],
['俞', '木', '三间', '陷谷', '后(母穴)', '束骨(子穴)', '中渚(冬至前回穴,冬至后子穴)', '临泣(本穴)'],
['俞', '木', '三间', '陷谷', '后(母穴)', '束骨(子穴)', '中渚(冬至前回穴,冬至后子穴)', '临泣(本穴)'],
['经', '火', '阳溪', '解溪(母穴)', '阳谷(本穴)', '昆仑', '支沟(冬至前本穴)', '阳辅(子穴)'],
['合', '土', '曲池(母穴)', '足三里(本穴)', '小海(子穴)', '委中(补井当补合)', '天井(冬至前子穴)', '阳陵泉'],
['原', '', '合谷', '冲阳', '腕骨', '京骨', '阳池', '丘墟'],

View File

@@ -34,7 +34,7 @@
<view>1.2 您通过我们的服务进行通讯的信息例如曾通讯的账号</view>
<view>1.3 您通过我们的服务分享的内容所包含的信息元数据例如拍摄或上传的共享照片或录像的日期时间或地点等</view>
<view class="dp_con2">2位置信息指您开启设备定位功能并使用我们基于位置提供的相关服务时收集的有关您位置的信息包括</view>
<view>2.1 您通过具有定位功能的移动设备使用我们的服务时通过GPS或WiFi等方式收集的您的地理位置信息用于 健康超市收 提供位置信息</view>
<view>2.1 您通过具有定位功能的移动设备使用我们的服务时通过GPS或WiFi等方式收集的您的地理位置信息用于 健康超市收 提供位置信息</view>
<view>
2.2 您或其他用户提供的包含您所处地理位置的实时信息例如您提供的账户信息中包含的您所在地区信息您上传的显示您当前或曾经所处地理位置的共享信息您或其他人共享的照片包含的地理标记信息
</view>

View File

@@ -9,7 +9,7 @@
<view class="sl_tit">
<text class="bok_name">
{{item.productName}}
<span v-if="item.productStock==0" style="color: #aaa;font-size:26rpx;"></span>
<span v-if="item.productStock==0" style="color: #aaa;font-size:26rpx;">库存</span>
</text>
</view>
<view class="sl_ric">

View File

@@ -20,7 +20,7 @@
</view>
<view class="commodityyName">
{{productInfo.productName}}
<span v-if="productInfo.productStock==0" style="color: #aaa;font-size:26rpx;"></span>
<span v-if="productInfo.productStock==0" style="color: #aaa;font-size:26rpx;">库存</span>
<view><text class="SoldNumber">已售<span>{{productInfo.sumSales}}</span></text></view>
</view>
<view class="contentButton">

View File

@@ -127,7 +127,7 @@
<span
v-if="productInfo.productStock == 0"
style="color: #aaa; font-size: 28rpx"
>(无</span
>(无库存</span
>
<view
style="

View File

@@ -104,9 +104,9 @@
if (this.orderContet.orderStatus == 0) {
this.titleStat = '待支付'
} else if (this.orderContet.orderStatus == 1) {
this.titleStat = '待发'
this.titleStat = '待发'
} else if (this.orderContet.orderStatus == 2) {
this.titleStat = '待收'
this.titleStat = '待收'
} else if (this.orderContet.orderStatus == 3) {
this.titleStat = '已完成'
}

View File

@@ -27,8 +27,8 @@
<view class="orderItem">
<view class="" style="position: relative; height: 120rpx;">
<text class="orderState orderState0" v-if="orderContet.orderStatus==0">待支付</text>
<text class="orderState orderState1" v-if="orderContet.orderStatus==1">待发</text>
<text class="orderState orderState2" v-if="orderContet.orderStatus==2">待收</text>
<text class="orderState orderState1" v-if="orderContet.orderStatus==1">待发</text>
<text class="orderState orderState2" v-if="orderContet.orderStatus==2">待收</text>
<text class="orderState orderState3" v-if="orderContet.orderStatus==3">已完成</text>
<text class="orderState orderState5" v-if="orderContet.orderStatus==5">已超时</text>
</view>
@@ -128,7 +128,7 @@
<text style="font-size: 24rpx;color: #666;">{{orderContet.paymentDate}}</text>
</view>
<!-- <view class="orderReal" v-if="orderContet.orderStatus >= 2 && orderContet.orderStatus != 5">
<span style="color: #666;margin-right: 10rpx;float: left;">时间 : </span>
<span style="color: #666;margin-right: 10rpx;float: left;">时间 : </span>
<text style="font-size: 24rpx;color: #666;">{{orderContet.shippingTime}}</text>
</view> -->
<view class="orderOper">
@@ -138,7 +138,7 @@
</u-button> -->
<view v-if="orderContet.orderStatus==2 && sheetList.length > 0 && orderContet.orderStatus != 5" class="opFix" @click="seeExpressDetail(orderContet)">查看物流</view>
<view v-if="orderContet.orderStatus==2" class="opCan" @click="OverOrder" >确认收</view>
<view v-if="orderContet.orderStatus==2" class="opCan" @click="OverOrder" >确认收</view>
<view v-if="orderContet.orderStatus==0" class="opFix" @click="canceOrder">取消订单</view>
<view v-if="orderContet.orderStatus==0" class="opCan" @click="goPay(orderContet)">去支付</view>
@@ -208,7 +208,7 @@
<h4 style="margin-bottom: 10rpx;">包裹 {{index+1}}</h4>
<view class="">运单号{{item.expressOrderSn}}
<u-tag @click="copyData(item.expressOrderSn)" size="mini" class="copyCode" text="复制单号" plain type="success" /></view>
<view class="">时间{{item.createTime}}</view>
<view class="">时间{{item.createTime}}</view>
</view>
</view>
@@ -565,10 +565,10 @@
url: "./deliverDetail?objId=" + item
})
},
OverOrder() { // 确认收
OverOrder() { // 确认收
uni.showModal({
title: '提示',
content: '确认收',
content: '确认收',
success: res => {
let data = {
orderId: this.orderID,
@@ -587,7 +587,7 @@
if (res.code == 0) {
uni.hideLoading()
uni.showToast({
title: '收货成功',
title: '确认收到成功',
icon: 'success',
duration: 1000
})
@@ -624,9 +624,9 @@
if (this.orderContet.orderStatus == 0) {
this.titleStat = '待支付'
} else if (this.orderContet.orderStatus == 1) {
this.titleStat = '待发'
this.titleStat = '待发'
} else if (this.orderContet.orderStatus == 2) {
this.titleStat = '待收'
this.titleStat = '待收'
} else if (this.orderContet.orderStatus == 3) {
this.titleStat = '已完成'
}

View File

@@ -13,8 +13,8 @@
<view class="orderList" v-if="orderList.length > 0">
<view class="orderItem" v-for="(ifex,inten) in orderList" @click="goOrdiCont(ifex)" :key="inten">
<text class="orderState orderState0" v-if="ifex.orderStatus==0">待支付</text>
<text class="orderState orderState1" v-if="ifex.orderStatus==1">待发</text>
<text class="orderState orderState2" v-if="ifex.orderStatus==2">待收</text>
<text class="orderState orderState1" v-if="ifex.orderStatus==1">待发</text>
<text class="orderState orderState2" v-if="ifex.orderStatus==2">待收</text>
<text class="orderState orderState3" v-if="ifex.orderStatus==3">已完成</text>
<text class="orderState orderState5" v-if="ifex.orderStatus==5">已超时</text>
<view class="guoqi flexbox" v-if="ifex.orderStatus==0 && ifex.overTime > 0">
@@ -122,10 +122,10 @@
name: '待支付',
value: 0
}, {
name: '待发',
name: '待发',
value: 1
}, {
name: '待收',
name: '待收',
value: 2
}, {
name: '已完成',

View File

@@ -26,8 +26,8 @@
<view class="mainContent">
<view class="item" @click.stop="toDetail(item)">
<view class="orderstatus" v-show="item.orderStatus == 0">未付款</view>
<view class="orderstatus" v-show="item.orderStatus == 1">待发</view>
<view class="orderstatus" v-show="item.orderStatus == 2">已发货</view>
<view class="orderstatus" v-show="item.orderStatus == 1">待发</view>
<view class="orderstatus" v-show="item.orderStatus == 2">待收到</view>
<view class="orderstatus" v-show="item.orderStatus == 3">交易成功</view>
<view class="orderstatus" v-show="item.orderStatus == 4">交易失败</view>
<view class="orderstatus" v-show="item.orderStatus == 5">过期</view>
@@ -90,9 +90,9 @@
<span class="right flexbox opbtns">
<view class="orderstatusbtn" v-if="item.orderStatus == 0" @click.stop="canceOrder(item)">取消订单</view>
<view class="orderstatusbtn" v-if="item.orderStatus == 0" @click.stop="goPay(item)">付款</view>
<!-- <view class="orderstatusbtn alertDeliver" v-if="item.orderStatus == 1">催发</view> -->
<!-- <view class="orderstatusbtn alertDeliver" v-if="item.orderStatus == 1">催发</view> -->
<view class="orderstatusbtn" v-if="item.orderStatus == 2" @click.stop="seeExpressDetail(item)">查看物流</view>
<view class="orderstatusbtn" v-if="item.orderStatus == 2" @click.stop="OverOrder(item)">确认收</view>
<view class="orderstatusbtn" v-if="item.orderStatus == 2" @click.stop="OverOrder(item)">确认收</view>
<!-- <view class="orderstatusbtn" v-if="item.orderStatus == 3">申请售后</view> -->
<!-- -->
<!-- <view class="orderstatusbtn" v-if=" userRecordid == null && item.come == 0" @click.stop="pingji(item.id)">评价</view> -->
@@ -206,10 +206,10 @@ import { data } from 'jquery';
name: '待付款',
value: 0
}, {
name: '待发',
name: '待发',
value: 1
}, {
name: '待收',
name: '待收',
value: 2
}, {
name: '已完成',
@@ -317,7 +317,7 @@ import { data } from 'jquery';
var params = {
"userId": this.userInfo.id,
"orderStatus":flag,//传null为全部订单状态 0-未付款 1-待发 2-已发货 3-交易成功 4-交易失败 5-过期
"orderStatus":flag,//传null为全部订单状态 0-未付款 1-待发 2-待收到 3-交易成功 4-交易失败 5-过期
"limit": 10,
"page": this.newestpage
}
@@ -511,11 +511,11 @@ import { data } from 'jquery';
})
// }
},
// 确认收
// 确认收
OverOrder(item) {
uni.showModal({
title: '提示',
content: '确认收',
content: '确认收',
success: res => {
let data = {
orderId: item.orderId,
@@ -534,7 +534,7 @@ import { data } from 'jquery';
if (res.code == 0) {
uni.hideLoading()
uni.showToast({
title: '收货成功',
title: '确认收到成功',
icon: 'success',
duration: 1000
})

View File

@@ -189,10 +189,10 @@ import { data } from 'jquery';
name: '待付款',
value: 2
}, {
name: '待发',
name: '待发',
value: 3
}, {
name: '待收',
name: '待收',
value: 4
}, {
name: '已完成',

View File

@@ -13,7 +13,7 @@
size="20"
style="display: inline-block; margin-right: 10rpx"
></u-icon>
请添加收地址
请添加收地址
</view>
<view
@@ -171,7 +171,7 @@
size="12"
style="display: inline-block; margin-right: 10rpx"
></u-icon>
注:如订单包含一种或多种预售书,预售书和现书需分开发(即需要收取多次快递首重费用);如多本书会按照实际重量,收取快递续重费用。
注:如订单包含一种或多种预售书,预售书和现书需分开发(即需要收取多次快递首重费用);如多本书会按照实际重量,收取快递续重费用。
</view>
<view class="yq_yunfei" v-if="districtAmount > 0" style="color: #202020">
@@ -374,6 +374,18 @@
</view>
</u-popup>
<u-modal
:show="presaleRemarkModalShow"
title="提示"
:content="presaleRemarkModalContent"
:showCancelButton="true"
confirmText="继续购买"
cancelText="取消"
@confirm="handlePresaleRemarkConfirm"
@cancel="handlePresaleRemarkCancel"
@close="handlePresaleRemarkCancel"
></u-modal>
<music-play :playData="playData"></music-play>
</view>
</template>
@@ -413,6 +425,9 @@ export default {
realPrice: 0,
payType: 1,
nowClick: true,
presaleRemarkModalShow: false,
presaleRemarkModalContent: "",
presaleRemarkModalResolve: null,
paylist: [
{
title: "支付宝",
@@ -556,6 +571,59 @@ export default {
}
},
// 获取优惠券列表
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() {
const productIds = this.cartList
.map((e) => e.productId)
.filter((id) => id)
.join(",");
if (!productIds) {
return true;
}
try {
const res = await $http.request({
url: "book/buyOrder/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;
}
},
getCourpe() {
let proId = "";
for (let i = 0; i < this.cartList.length; i++) {
@@ -894,7 +962,7 @@ export default {
this.youhuiShow = false;
},
// 提交结算
goBuyJie() {
async goBuyJie() {
if (this.addressList.length == 0) {
this.dizhiShow = true; // 如果没有地址信息
return;
@@ -923,11 +991,16 @@ export default {
quantity: this.cartList[i].productAmount,
});
}
const passPresaleRemark = await this.checkPresaleRemark();
if (!passPresaleRemark) {
this.nowClick = true;
return;
}
let data = {
buyType: this.typeId, //0- 商品页直接下单 1- 购物车结算
userId: this.userInfo.id, //下单人ID
shippingUser: this.adressMoRen.consigneeName, //收人姓名
userPhone: this.adressMoRen.consigneePhone, //收人手机号
shippingUser: this.adressMoRen.consigneeName, //收人姓名
userPhone: this.adressMoRen.consigneePhone, //收人手机号
// province: this.adressMoRen.areaidpathtext.split(' ')[0], //省
// city: this.adressMoRen.areaidpathtext.split(' ')[1], //市

View File

@@ -5,7 +5,7 @@
<z-nav-bar title="商品结算"></z-nav-bar>
<view v-if="adressMoRen.username==undefined" class="addShouhuo" @click="toAddress()">
<u-icon name="plus" size="20" style="display: inline-block;margin-right: 10rpx;"></u-icon>
请添加收地址
请添加收地址
</view>
<view class="adDefault" @click="dizhiShow = true" v-if="adressMoRen.username!=undefined">
<view class="defalTop">
@@ -606,8 +606,8 @@
let data = {
buyType: this.typeId, //0- 商品页直接下单 1- 购物车结算
userId: this.userInfo.id, //下单人ID
shippingUser: this.adressMoRen.username, //收人姓名
userPhone: this.adressMoRen.userphone, //收人手机号
shippingUser: this.adressMoRen.username, //收人姓名
userPhone: this.adressMoRen.userphone, //收人手机号
province: this.adressMoRen.areaidpathtext.split(' ')[0], //省
city: this.adressMoRen.areaidpathtext.split(' ')[1], //市
district: this.adressMoRen.areaidpathtext.split(' ')[2], //区

View File

@@ -59,10 +59,10 @@
v-if="orderContet.orderStatus == 0">待支付</text>
<text
class="orderState orderState1"
v-if="orderContet.orderStatus == 1">待发</text>
v-if="orderContet.orderStatus == 1">待发</text>
<text
class="orderState orderState2"
v-if="orderContet.orderStatus == 2">待收</text>
v-if="orderContet.orderStatus == 2">待收</text>
<text
class="orderState orderState3"
v-if="orderContet.orderStatus == 3">已完成</text>
@@ -325,7 +325,7 @@
plain
type="success"
/></view>
<view class="">发时间:{{ item.createTime }}</view>
<view class="">发时间:{{ item.createTime }}</view>
</view>
</view>
</view>
@@ -421,7 +421,7 @@ export default {
this.goPay(this.orderContet);
} else if (data.text == "取消订单") {
this.canceOrder();
} else if (data.text == "确认收") {
} else if (data.text == "确认收") {
this.OverOrder();
} else if (data.text == "查看物流") {
this.seeExpressDetail(this.orderContet);
@@ -531,10 +531,10 @@ export default {
});
},
OverOrder() {
// 确认收
// 确认收
uni.showModal({
title: "提示",
content: "确认收",
content: "确认收",
success: (res) => {
let data = {
orderId: this.orderID,
@@ -554,7 +554,7 @@ export default {
if (res.code == 0) {
uni.hideLoading();
uni.showToast({
title: "收货成功",
title: "确认收到成功",
icon: "success",
duration: 1000,
});
@@ -604,7 +604,7 @@ export default {
if (this.orderContet.orderStatus == 2) {
this.customButton.push({
width: "160rpx",
text: "确认收",
text: "确认收",
color: "#fff",
});
@@ -626,9 +626,9 @@ export default {
if (this.orderContet.orderStatus == 0) {
this.titleStat = "待支付";
} else if (this.orderContet.orderStatus == 1) {
this.titleStat = "待发";
this.titleStat = "待发";
} else if (this.orderContet.orderStatus == 2) {
this.titleStat = "待收";
this.titleStat = "待收";
} else if (this.orderContet.orderStatus == 3) {
this.titleStat = "已完成";
}

File diff suppressed because it is too large Load Diff

View File

@@ -227,9 +227,9 @@
if (this.orderDetail.orderStatus == 0) {
this.titleStat = '待支付'
} else if (this.orderDetail.orderStatus == 1) {
this.titleStat = '待发'
this.titleStat = '待发'
} else if (this.orderDetail.orderStatus == 2) {
this.titleStat = '待收'
this.titleStat = '待收'
} else if (this.orderDetail.orderStatus == 3) {
this.titleStat = '已完成'
}

View File

@@ -279,7 +279,7 @@
let data = {
userId: that.userInfo.id, //下单人ID
userPhone: that.userInfo.tel, //收人手机号
userPhone: that.userInfo.tel, //收人手机号
paymentMethod: that.payType, //1支付宝2微信3ios内购
orderMoney: that.stepsVc.money * 1, //订单金额
districtMoney: 0, //优惠金额

View File

@@ -566,7 +566,7 @@ export default {
let that = this;
let data = {
userId: that.userInfo.id, //下单人ID
userPhone: that.userInfo.tel, //收人手机号
userPhone: that.userInfo.tel, //收人手机号
paymentMethod: that.payType, //2支付宝1微信3ios内购
orderMoney: that.stepsCj.money * 1, //订单金额
districtMoney: 0, //优惠金额

View File

@@ -350,7 +350,7 @@
let that = this
let data = {
userId: that.userInfo.id, //下单人ID
userPhone: that.userInfo.tel, //收人手机号
userPhone: that.userInfo.tel, //收人手机号
paymentMethod: that.payType, //2支付宝1微信3ios内购
orderMoney: that.stepsCj.money * 1, //订单金额
districtMoney: 0, //优惠金额

View File

@@ -33,7 +33,7 @@
</view>
<view class="addressFooter">
<view class="addAddress" @click="toAddress(0,0)">
+ 添加收地址
+ 添加收地址
</view>
</view>
<music-play :playData="playData"></music-play>

View File

@@ -176,7 +176,7 @@
</view>
<view class="commodityyName">
{{productInfo.productName}}
<span v-if="productInfo.productStock==0" style="color: #aaa;font-size:26rpx;"></span>
<span v-if="productInfo.productStock==0" style="color: #aaa;font-size:26rpx;">库存</span>
<view><text class="SoldNumber">已售<span
style="padding-left:10rpx;">{{productInfo.sumSales}}</span></text></view>
</view>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long