tianyi 1 month ago
parent
commit
cbe4990a1d
  1. 22
      package2/group/groupBuySingle.vue
  2. 221
      package2/myCenter/partTimeJobRegister.vue
  3. 300
      package2/shop/afterService.vue

22
package2/group/groupBuySingle.vue

@ -153,6 +153,9 @@
<view class="goods-deal1"> <view class="goods-deal1">
销量 <text> {{item.tailWarn != null ? item.tailWarn : 0}}</text> 销量 <text> {{item.tailWarn != null ? item.tailWarn : 0}}</text>
</view> </view>
<view style="width: 40%;text-align: right;font-size: 14px;color: #777;font-weight: 700;text-decoration: line-through;" v-if="groupId && item.isMoreBuy != 0">
¥{{item.attributeListPrice | sliceMsg}}
</view>
</view> </view>
<view class="shop-tag1"> <view class="shop-tag1">
<view class="goods-tag" @tap.stop="openOrderWait(item)" <view class="goods-tag" @tap.stop="openOrderWait(item)"
@ -377,7 +380,7 @@
</view> </view>
</view> </view>
<view class="goods-team" v-if="moreBuyList.length > 0 && isPintuan" style="min-height: 280rpx;"> <view class="goods-team" v-if="moreBuyList.length > 0 && isPintuan" style="height: 300rpx;">
<view :class="spec.isChecked ? 'team-check1' : 'team2'" v-for="(spec, sIndex) in moreBuyList" <view :class="spec.isChecked ? 'team-check1' : 'team2'" v-for="(spec, sIndex) in moreBuyList"
:key="sIndex" @tap="selectMoreBuy(spec,sIndex)"> :key="sIndex" @tap="selectMoreBuy(spec,sIndex)">
<view> <view>
@ -822,6 +825,10 @@
const info = uni.getSystemInfoSync(); const info = uni.getSystemInfoSync();
this.navBarHeight = info.statusBarHeight + 40; this.navBarHeight = info.statusBarHeight + 40;
}, },
onPullDownRefresh() {
this.getCategory(this.shopItem.id);
this.getProduct('');
},
onReady() { onReady() {
// container // container
setTimeout(() => { setTimeout(() => {
@ -932,6 +939,7 @@
this.searchForm.categoryId = categoryId; this.searchForm.categoryId = categoryId;
that.tui.request("/app/product/getShareList", "POST", this.searchForm, false, false).then((res) => { that.tui.request("/app/product/getShareList", "POST", this.searchForm, false, false).then((res) => {
that.loadStatus = 'nomore'; that.loadStatus = 'nomore';
uni.stopPullDownRefresh()
if (res.code == 200) { if (res.code == 200) {
if (that.searchForm.pageNum == 1) { if (that.searchForm.pageNum == 1) {
that.productItem = res.result.records; that.productItem = res.result.records;
@ -1772,10 +1780,14 @@
this.$refs.couponPopup.open('bottom'); this.$refs.couponPopup.open('bottom');
}, },
back() { back() {
uni.navigateBack() const pages = getCurrentPages();
if (pages.length > 1) {
uni.navigateBack();
} else {
uni.switchTab({ url: '/pages/index/index' });
}
} }
} }
} }
</script> </script>
@ -2330,7 +2342,7 @@
border-radius: 10px; border-radius: 10px;
float: left; float: left;
text-align: center; text-align: center;
margin-right: 20px; margin: 10px 20px 0 0;
padding: 10px 10px 0; padding: 10px 10px 0;
position: relative; position: relative;
} }
@ -2342,7 +2354,7 @@
border-radius: 10px; border-radius: 10px;
float: left; float: left;
text-align: center; text-align: center;
margin-right: 20px; margin: 10px 20px 0 0;
padding: 10px 10px 0; padding: 10px 10px 0;
position: relative; position: relative;
} }

221
package2/myCenter/partTimeJobRegister.vue

@ -21,7 +21,8 @@
<view class="box1"> <view class="box1">
<view class="reg-name"> <view class="reg-name">
<text style="color:red;">*</text> 学生证上传 <text style="font-weight: 400;color: #777;font-size: 11px;">身份信息仅用于认证身份平台会严格保密</text> <text style="color:red;">*</text> 学生证上传 <text
style="font-weight: 400;color: #777;font-size: 11px;">身份信息仅用于认证身份平台会严格保密</text>
</view> </view>
<view class="reg-value"> <view class="reg-value">
<img @tap="pictureAdd('mentou')" <img @tap="pictureAdd('mentou')"
@ -80,7 +81,8 @@
</view> </view>
</view> </view>
<view class="guize-list"> <view class="guize-list">
<view class="guize1" v-for="(item, index) in waimaRuleList" :key="index" style="flex-direction: column; padding-bottom: 20rpx; border-bottom: 1px solid #ddd;"> <view class="guize1" v-for="(item, index) in waimaRuleList" :key="index"
style="flex-direction: column; padding-bottom: 20rpx; border-bottom: 1px solid #ddd;">
<view style="display: flex; width: 100%;"> <view style="display: flex; width: 100%;">
<view class="guize1-qusong"> <view class="guize1-qusong">
<view class="qusong1"> <view class="qusong1">
@ -99,13 +101,17 @@
</view> </view>
</view> </view>
<view class="qusong3" style="display:flex; align-items:center;"> <view class="qusong3" style="display:flex; align-items:center;">
<input type="digit" v-model="item.orderBkge" placeholder="填写配送费" style="flex:1;"> <input type="digit" v-model="item.orderBkge" placeholder="填写配送费"
<uni-icons type="closeempty" size="20" @click="removeRule('waima', index)" color="#ff0000" style="margin-left:10rpx;"></uni-icons> style="flex:1;">
<uni-icons type="closeempty" size="20" @click="removeRule('waima', index)"
color="#ff0000" style="margin-left:10rpx;"></uni-icons>
</view> </view>
</view> </view>
<view style="display: flex; width: 100%; margin-top: 20rpx; align-items: center;"> <view style="display: flex; width: 100%; margin-top: 20rpx; align-items: center;">
<text style="margin: 0 20rpx 0 10rpx; color: #777; font-size: 26rpx; font-weight: bold;">备注</text> <text
<input type="text" v-model="item.remark" placeholder="填写备注,如:限时/大件加钱" style="flex:1; background: #fff; border-radius: 10rpx; padding: 0 20rpx; height: 60rpx; line-height: 60rpx;"> style="margin: 0 20rpx 0 10rpx; color: #777; font-size: 26rpx; font-weight: bold;">备注</text>
<input type="text" v-model="item.remark" placeholder="填写备注,如:限时/大件加钱"
style="flex:1; background: #fff; border-radius: 10rpx; padding: 0 20rpx; height: 60rpx; line-height: 60rpx;">
</view> </view>
</view> </view>
</view> </view>
@ -121,7 +127,8 @@
</view> </view>
</view> </view>
<view class="guize-list"> <view class="guize-list">
<view class="guize1" v-for="(item, index) in paotuiRuleList" :key="index" style="flex-direction: column; padding-bottom: 20rpx; border-bottom: 1px solid #ddd;"> <view class="guize1" v-for="(item, index) in paotuiRuleList" :key="index"
style="flex-direction: column; padding-bottom: 20rpx; border-bottom: 1px solid #ddd;">
<view style="display: flex; width: 100%;"> <view style="display: flex; width: 100%;">
<view class="guize1-qusong"> <view class="guize1-qusong">
<view class="qusong1"> <view class="qusong1">
@ -140,13 +147,17 @@
</view> </view>
</view> </view>
<view class="qusong3" style="display:flex; align-items:center;"> <view class="qusong3" style="display:flex; align-items:center;">
<input type="digit" v-model="item.orderBkge" placeholder="填写配送费" style="flex:1;"> <input type="digit" v-model="item.orderBkge" placeholder="填写配送费"
<uni-icons type="closeempty" size="20" @click="removeRule('paotui', index)" color="#ff0000" style="margin-left:10rpx;"></uni-icons> style="flex:1;">
<uni-icons type="closeempty" size="20" @click="removeRule('paotui', index)"
color="#ff0000" style="margin-left:10rpx;"></uni-icons>
</view> </view>
</view> </view>
<view style="display: flex; width: 100%; margin-top: 20rpx; align-items: center;"> <view style="display: flex; width: 100%; margin-top: 20rpx; align-items: center;">
<text style="margin: 0 20rpx 0 10rpx; color: #777; font-size: 26rpx; font-weight: bold;">备注</text> <text
<input type="text" v-model="item.remark" placeholder="填写备注,如:限时/大件加钱" style="flex:1; background: #fff; border-radius: 10rpx; padding: 0 20rpx; height: 60rpx; line-height: 60rpx;"> style="margin: 0 20rpx 0 10rpx; color: #777; font-size: 26rpx; font-weight: bold;">备注</text>
<input type="text" v-model="item.remark" placeholder="填写备注,如:限时/大件加钱"
style="flex:1; background: #fff; border-radius: 10rpx; padding: 0 20rpx; height: 60rpx; line-height: 60rpx;">
</view> </view>
</view> </view>
</view> </view>
@ -156,7 +167,8 @@
<view <view
style="width: 240rpx;height: 280rpx;background: rgba(166, 255, 234, 1);margin: 20rpx auto;border-radius: 40rpx;text-align: center;"> style="width: 240rpx;height: 280rpx;background: rgba(166, 255, 234, 1);margin: 20rpx auto;border-radius: 40rpx;text-align: center;">
<img show-menu-by-longpress src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/d23a9043a8c24731831ec4db909fe3b4.jpg" alt="" <img show-menu-by-longpress
src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/d23a9043a8c24731831ec4db909fe3b4.jpg" alt=""
style="width: 180rpx;height: 180rpx;margin-top: 20rpx;" /> style="width: 180rpx;height: 180rpx;margin-top: 20rpx;" />
<view style="height: 50rpx;line-height: 50rpx;font-weight: 700;">关注公众号</view> <view style="height: 50rpx;line-height: 50rpx;font-weight: 700;">关注公众号</view>
</view> </view>
@ -170,6 +182,20 @@
<img :src="bigImg" alt="" style="width: 100%;height: 100%;"> <img :src="bigImg" alt="" style="width: 100%;height: 100%;">
</view> </view>
</uni-popup> </uni-popup>
<!-- 温馨提示弹出层 -->
<uni-popup ref="lianggePopup" background-color="#fff" @change="changePopup">
<view class="liangge-popup-content">
<view class="liangge-title">
温馨提示
</view>
<view class="liangge-text">
1.送单规则需要在<text style="color:red">配送</text>页面开启才能生效
</view>
<view class="liangge-text">
2.您还没有关注公众号关注公众号后可提现佣金
</view>
</view>
</uni-popup>
<!-- 规则选择弹出层 --> <!-- 规则选择弹出层 -->
<uni-popup ref="guizePopup" background-color="#fff"> <uni-popup ref="guizePopup" background-color="#fff">
<view class="guize-popup-content"> <view class="guize-popup-content">
@ -178,8 +204,8 @@
alt="" style="width: 204rpx;height: 50rpx;" /> alt="" style="width: 204rpx;height: 50rpx;" />
</view> </view>
<view style="margin-top: 20rpx;height: auto;overflow:hidden;min-height: 90rpx;"> <view style="margin-top: 20rpx;height: auto;overflow:hidden;min-height: 90rpx;">
<view class="box-check-btn" @tap="qucanOrsongcan('qucan',index)" v-for="(item,index) in qucan" :key="index" <view class="box-check-btn" @tap="qucanOrsongcan('qucan',index)" v-for="(item,index) in qucan"
style="float: left;padding: 0 20rpx;width: auto;margin-bottom:20rpx;" :key="index" style="float: left;padding: 0 20rpx;width: auto;margin-bottom:20rpx;"
:style="{background:item.checked?'rgba(180, 255, 238, 0.27)':'rgba(247, 248, 248, 0.6)',border:item.checked?'1px solid rgba(180, 255, 238, 1)':'1px solid #777'}"> :style="{background:item.checked?'rgba(180, 255, 238, 0.27)':'rgba(247, 248, 248, 0.6)',border:item.checked?'1px solid rgba(180, 255, 238, 1)':'1px solid #777'}">
{{item.title}} {{item.title}}
</view> </view>
@ -190,8 +216,8 @@
alt="" style="width: 204rpx;height: 50rpx;" /> alt="" style="width: 204rpx;height: 50rpx;" />
</view> </view>
<view style="margin-top: 20rpx;height: auto;overflow:hidden;min-height: 90rpx;"> <view style="margin-top: 20rpx;height: auto;overflow:hidden;min-height: 90rpx;">
<view class="box-check-btn" @tap="qucanOrsongcan('songcan',index)" v-for="(item,index) in songcan" :key="index" <view class="box-check-btn" @tap="qucanOrsongcan('songcan',index)" v-for="(item,index) in songcan"
style="float: left;padding: 0 20rpx;width: auto;margin-bottom:20rpx;" :key="index" style="float: left;padding: 0 20rpx;width: auto;margin-bottom:20rpx;"
:style="{background:item.checked?'rgba(180, 255, 238, 0.27)':'rgba(247, 248, 248, 0.6)',border:item.checked?'1px solid rgba(180, 255, 238, 1)':'1px solid #777'}"> :style="{background:item.checked?'rgba(180, 255, 238, 0.27)':'rgba(247, 248, 248, 0.6)',border:item.checked?'1px solid rgba(180, 255, 238, 1)':'1px solid #777'}">
{{item.title}} {{item.title}}
</view> </view>
@ -200,7 +226,8 @@
<view class="guize-btn" @tap="closeGuize"> <view class="guize-btn" @tap="closeGuize">
确定 确定
</view> </view>
<view style="position: absolute;bottom: -100rpx;left: 50%;transform:translateX(-50%);" @tap.stop="$refs.guizePopup.close()"> <view style="position: absolute;bottom: -100rpx;left: 50%;transform:translateX(-50%);"
@tap.stop="$refs.guizePopup.close()">
<uni-icons type="close" size="40" color="#fff"></uni-icons> <uni-icons type="close" size="40" color="#fff"></uni-icons>
</view> </view>
</view> </view>
@ -219,12 +246,12 @@
highFloorFee: 0, highFloorFee: 0,
paotui: false, paotui: false,
waima: false, waima: false,
mobile:'', mobile: '',
studentCard: '', studentCard: '',
}, },
bigImg: '', bigImg: '',
qucan:[], qucan: [],
songcan:[], songcan: [],
shopArea: [], shopArea: [],
waimaRuleList: [], waimaRuleList: [],
paotuiRuleList: [], paotuiRuleList: [],
@ -242,48 +269,51 @@
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect() this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
}, },
methods: { methods: {
getWorkerMessage(){ getWorkerMessage() {
let that = this let that = this
that.tui.request("/app/workerRelaPrice/getByWorkerId?workerId=" + uni.getStorageSync('worker').workerId, "GET", {}, false, true).then((res) => { that.tui.request("/app/workerRelaPrice/getByWorkerId?workerId=" + uni.getStorageSync('worker').workerId,
"GET", {}, false, true).then((res) => {
if (res.code == 200) { if (res.code == 200) {
if(res.result != null){ if (res.result != null) {
let data = res.result; let data = res.result;
if (data.workerName) that.formData.name = data.workerName; if (data.workerName) that.formData.name = data.workerName;
if (data.cardPicture) that.formData.studentCard = data.cardPicture; if (data.cardPicture) that.formData.studentCard = data.cardPicture;
if (data.mobile) that.formData.mobile = data.mobile; if (data.mobile) that.formData.mobile = data.mobile;
if (data.highFloorFee !== undefined && data.highFloorFee !== null) that.formData.highFloorFee = data.highFloorFee; if (data.highFloorFee !== undefined && data.highFloorFee !== null) that.formData
.highFloorFee = data.highFloorFee;
let list = data.workerRelaPriceList || []; let list = data.workerRelaPriceList || [];
let waimaList = list.filter(item => item.orderType == 0); let waimaList = list.filter(item => item.orderType == 0);
let paotuiList = list.filter(item => item.orderType == 1); let paotuiList = list.filter(item => item.orderType == 1);
if(waimaList.length > 0) { if (waimaList.length > 0) {
that.formData.waima = true; that.formData.waima = true;
that.waimaRuleList = waimaList; that.waimaRuleList = waimaList;
} }
if(paotuiList.length > 0) { if (paotuiList.length > 0) {
that.formData.paotui = true; that.formData.paotui = true;
that.paotuiRuleList = paotuiList; that.paotuiRuleList = paotuiList;
} }
that.$forceUpdate(); that.$forceUpdate();
} }
} else { } else {
that.tui.toast(res.message,1000) that.tui.toast(res.message, 1000)
return return
} }
}).catch((res) => {}) }).catch((res) => {})
}, },
getShopArea(){ getShopArea() {
let that = this let that = this
that.tui.request("/app/shopArea/getByParentId/"+JSON.parse(uni.getStorageSync('area')).id, "GET", {}, false, true).then((res) => { that.tui.request("/app/shopArea/getByParentId/" + JSON.parse(uni.getStorageSync('area')).id, "GET", {},
false, true).then((res) => {
if (res.code == 200) { if (res.code == 200) {
if(res.result != null){ if (res.result != null) {
for(let m = 0;m<res.result.length;m++){ for (let m = 0; m < res.result.length; m++) {
that.shopArea.push(res.result[m]) that.shopArea.push(res.result[m])
} }
} }
} else { } else {
that.tui.toast(res.message,1000) that.tui.toast(res.message, 1000)
return return
} }
}).catch((res) => {}) }).catch((res) => {})
@ -304,7 +334,7 @@
} }
this.$forceUpdate() this.$forceUpdate()
}, },
qucanOrsongcan(type,index){ qucanOrsongcan(type, index) {
if (type == 'qucan') { if (type == 'qucan') {
this.qucan[index].checked = !this.qucan[index].checked this.qucan[index].checked = !this.qucan[index].checked
} else { } else {
@ -312,12 +342,15 @@
} }
this.$forceUpdate() this.$forceUpdate()
}, },
closeGuize(){ closeGuize() {
let selectedQucan = this.qucan.filter(item => item.checked); let selectedQucan = this.qucan.filter(item => item.checked);
let selectedSongcan = this.songcan.filter(item => item.checked); let selectedSongcan = this.songcan.filter(item => item.checked);
if(selectedQucan.length == 0 || selectedSongcan.length == 0) { if (selectedQucan.length == 0 || selectedSongcan.length == 0) {
uni.showToast({title: '请至少选择一个取货地址和一个送货地址', icon: 'none'}); uni.showToast({
title: '请至少选择一个取货地址和一个送货地址',
icon: 'none'
});
return; return;
} }
@ -326,12 +359,13 @@
let userId = uni.getStorageSync('id') || ''; let userId = uni.getStorageSync('id') || '';
selectedQucan.forEach(q => { selectedQucan.forEach(q => {
selectedSongcan.forEach(s => { selectedSongcan.forEach(s => {
let existing = currentRuleList.find(r => r.getAreaId == q.id && r.putAreaId == s.id); let existing = currentRuleList.find(r => r.getAreaId == q.id && r.putAreaId == s
.id);
if (existing) { if (existing) {
newRules.push(existing); newRules.push(existing);
} else { } else {
newRules.push({ newRules.push({
workerId: "W"+userId, workerId: "W" + userId,
getAreaId: q.id, getAreaId: q.id,
getAreaName: q.title, getAreaName: q.title,
putAreaId: s.id, putAreaId: s.id,
@ -352,6 +386,11 @@
this.$refs.guizePopup.close() this.$refs.guizePopup.close()
}, },
changePopup(e){
if(e.show == false){
uni.navigateBack()
}
},
checkAddress(type) { checkAddress(type) {
let that = this let that = this
this.currentConfigType = type; this.currentConfigType = type;
@ -365,41 +404,68 @@
let isPutChecked = currentRuleList.some(r => r.putAreaId == item.id); let isPutChecked = currentRuleList.some(r => r.putAreaId == item.id);
if (item.isCanteen == isCanteenVal) { if (item.isCanteen == isCanteenVal) {
that.qucan.push({...item, checked: isGetChecked}); that.qucan.push({
...item,
checked: isGetChecked
});
} else { } else {
that.songcan.push({...item, checked: isPutChecked}); that.songcan.push({
...item,
checked: isPutChecked
});
} }
}); });
this.$refs.guizePopup.open() this.$refs.guizePopup.open()
}, },
removeRule(type, index) { removeRule(type, index) {
if(type == 'waima') { if (type == 'waima') {
this.waimaRuleList.splice(index, 1); this.waimaRuleList.splice(index, 1);
} else { } else {
this.paotuiRuleList.splice(index, 1); this.paotuiRuleList.splice(index, 1);
} }
}, },
submit() { submit() {
if (!this.formData.name) return uni.showToast({title: '请填写姓名', icon: 'none'}); if (!this.formData.name) return uni.showToast({
if (!this.formData.studentCard) return uni.showToast({title: '请上传学生证', icon: 'none'}); title: '请填写姓名',
if (!this.formData.waima && !this.formData.paotui) return uni.showToast({title: '请至少选择一种兼职类型', icon: 'none'}); icon: 'none'
});
if (!this.formData.studentCard) return uni.showToast({
title: '请上传学生证',
icon: 'none'
});
if (!this.formData.waima && !this.formData.paotui) return uni.showToast({
title: '请至少选择一种兼职类型',
icon: 'none'
});
if (this.formData.waima && this.waimaRuleList.length == 0) { if (this.formData.waima && this.waimaRuleList.length == 0) {
return uni.showToast({title: '请配置外卖规则', icon: 'none'}); return uni.showToast({
title: '请配置外卖规则',
icon: 'none'
});
} }
if (this.formData.paotui && this.paotuiRuleList.length == 0) { if (this.formData.paotui && this.paotuiRuleList.length == 0) {
return uni.showToast({title: '请配置快递规则', icon: 'none'}); return uni.showToast({
title: '请配置快递规则',
icon: 'none'
});
} }
let workerRelaPriceList = []; let workerRelaPriceList = [];
if (this.formData.waima) { if (this.formData.waima) {
let invalid = this.waimaRuleList.find(item => !item.orderBkge); let invalid = this.waimaRuleList.find(item => !item.orderBkge);
if (invalid) return uni.showToast({title: '请填写外卖配送费', icon: 'none'}); if (invalid) return uni.showToast({
title: '请填写外卖配送费',
icon: 'none'
});
workerRelaPriceList = workerRelaPriceList.concat(this.waimaRuleList); workerRelaPriceList = workerRelaPriceList.concat(this.waimaRuleList);
} }
if (this.formData.paotui) { if (this.formData.paotui) {
let invalid = this.paotuiRuleList.find(item => !item.orderBkge); let invalid = this.paotuiRuleList.find(item => !item.orderBkge);
if (invalid) return uni.showToast({title: '请填写快递配送费', icon: 'none'}); if (invalid) return uni.showToast({
title: '请填写快递配送费',
icon: 'none'
});
workerRelaPriceList = workerRelaPriceList.concat(this.paotuiRuleList); workerRelaPriceList = workerRelaPriceList.concat(this.paotuiRuleList);
} }
@ -412,32 +478,28 @@
workerRelaPriceList: workerRelaPriceList workerRelaPriceList: workerRelaPriceList
}; };
uni.showLoading({title: '提交中...', mask: true}); uni.showLoading({
title: '提交中...',
mask: true
});
this.tui.request('/app/workerRelaPrice/batchAdd', 'post', submitData).then(res => { this.tui.request('/app/workerRelaPrice/batchAdd', 'post', submitData).then(res => {
uni.hideLoading(); uni.hideLoading();
if (res.code == 200) { if (res.code == 200) {
let user = res.result; let user = res.result;
uni.setStorageSync('officialAccountOpenid',user.officialAccountOpenid) uni.setStorageSync('officialAccountOpenid', user.officialAccountOpenid)
if(user.officialAccountOpenid == null || user.officialAccountOpenid == '' || user.officialAccountOpenid == undefined){ if (user.officialAccountOpenid == null || user.officialAccountOpenid == '' || user
uni.showModal({ .officialAccountOpenid == undefined) {
title: '提示', this.$refs.lianggePopup.open()
content: '您还没有关注公众号,关注公众号后可提现佣金', } else {
cancelText:'去关注', uni.showToast({
confirmText:'暂时不用', title: '提交成功'
success: function (res) {
if (res.confirm) {
uni.showToast({title: '提交成功'});
setTimeout(() => {
uni.navigateBack();
}, 1500);
}
}
}); });
}else{
uni.showToast({title: '提交成功'});
} }
} else { } else {
uni.showToast({title: res.message, icon: 'none'}); uni.showToast({
title: res.message,
icon: 'none'
});
} }
}).catch(err => { }).catch(err => {
uni.hideLoading(); uni.hideLoading();
@ -558,6 +620,26 @@
height: 500rpx; height: 500rpx;
} }
.liangge-popup-content {
background: #fff;
border-radius: 10px;
padding: 10px;
height: 150px;
}
.liangge-title{
height: 50px;
line-height: 35px;
text-align: center;
font-size: 16px;
font-weight: 700;
}
.liangge-text{
height: 30px;
font-size: 14px;
font-weight: 700;
}
.box-check-btn { .box-check-btn {
width: 160rpx; width: 160rpx;
height: 70rpx; height: 70rpx;
@ -667,7 +749,8 @@
overflow: scroll; overflow: scroll;
position: relative; position: relative;
} }
.guize-btn{
.guize-btn {
background: #00231c; background: #00231c;
border-radius: 100rpx; border-radius: 100rpx;
height: 100rpx; height: 100rpx;
@ -677,7 +760,7 @@
clear: both; clear: both;
text-align: center; text-align: center;
line-height: 100rpx; line-height: 100rpx;
font-size:30rpx; font-size: 30rpx;
font-weight: 700 font-weight: 700
} }
</style> </style>

300
package2/shop/afterService.vue

@ -52,121 +52,6 @@
</view> </view>
</view> </view>
<uni-popup ref="orderPopup" background-color="#fff">
<view class="popup-area-content" style="height: 1200rpx;overflow: scroll;">
<view class="popup-area-title">
<text>订单详情</text>
</view>
<view class="box1">
<view style="width: 100%;line-height: 70rpx;font-size: 28rpx;font-weight: 700;">
{{orderDetail.shopName}}
<img @tap="makeCall(orderDetail.shopPhone)"
src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/869a7af6a1c24bf3a0d523c4a18b55c6.png"
alt="" style="width: 60rpx;height: 60rpx;" />
</view>
<view v-for="(item1,index1) in goodsList" :key="index1" v-if="goodsList != null && goodsList.length > 0" style="display: flex;padding: 20rpx;background: rgba(247, 248, 248, 0.6);border-radius: 20rpx;">
<view class="goods-img">
<img :src="item1.productPicture" alt="">
</view>
<view class="goods-content">
<view class="goods-name">
{{item1.productName}}
</view>
<view class="goods-content-center">
<view class="goods-deal1">
{{item1.specs}}
</view>
</view>
<view class="goods-content-bottom">
<view style="width: 50%;">
X{{item1.quantity}}
</view>
<view class="pintuan-left-price">
{{item1.price}}
</view>
</view>
</view>
</view>
<view>
<view style="height: 80rpx;line-height: 80rpx;display: flex;" v-if="orderDetail.packageFee != null && orderDetail.packageFee > 0">
<view style="flex: 1;color: #777;font-weight: 700;">
打包费
</view>
<view style="color: #000;font-weight:700;">
{{orderDetail.packageFee}}
</view>
</view>
<view style="height: 80rpx;line-height: 80rpx;display: flex;" v-if="orderDetail.deliveryType == 1">
<view style="flex: 1;color: #777;font-weight: 700;">
配送费
</view>
<view style="color: #000;font-weight:700;">
{{orderDetail.deliveryFee}}
</view>
</view>
<view style="height: 80rpx;line-height: 80rpx;display: flex;">
<view style="flex: 1;color: #777;font-weight: 700;">
优惠券
</view>
<view style="color: #000;font-weight:700;">
-1 <uni-icons type="right" size="12"></uni-icons>
</view>
</view>
</view>
<view style="display: flex;height: 80rpx;line-height: 100rpx;border-top: 1px solid #eee;font-size: 32rpx;font-weight: 700;">
<view style="flex: 1;">
实付
</view>
<view class="">
{{orderDetail.totalAmount}}
</view>
</view>
</view>
<view class="box1">
<view>
<!-- <view style="height: 80rpx;line-height: 80rpx;display: flex;">
<view style="flex: 1;color: #777;font-weight: 700;">
收件地址
</view>
<view style="color: #000;font-weight: 700;">
北校区1号宿舍楼5楼512(0702)
</view>
</view> -->
<view style="height: 80rpx;line-height: 80rpx;display: flex;" v-if="orderDetail.numberCode != null">
<view style="flex: 1;color: #777;font-weight: 700;">
订单号
</view>
<view style="color: #000;font-weight: 700;">
{{orderDetail.numberCode}}
</view>
</view>
<view style="height: 80rpx;line-height: 80rpx;display: flex;">
<view style="flex: 1;color: #777;font-weight: 700;">
下单时间
</view>
<view style="color: #000;font-weight: 700;">
{{orderDetail.createTime | formatISOTime}}
</view>
</view>
<view style="height: 80rpx;line-height: 80rpx;display: flex;" v-if="orderDetail.shopMakeTime != null">
<view style="flex: 1;color: #777;font-weight: 700;">
商家出餐时间
</view>
<view style="color: #000;font-weight: 700;">
{{orderDetail.shopMakeTime ? orderDetail.shopMakeTime : '' | formatISOTime}}
</view>
</view>
</view>
</view>
<view class="popup-area-container" v-for="(item,index) in productData" :key="index">
<text style="display: inline-block">{{item.productName}} {{item.specs}} * {{item.quantity}}</text>
</view>
</view>
</uni-popup>
<!-- 拼团详情弹窗 --> <!-- 拼团详情弹窗 -->
<uni-popup ref="pintuanPopup" background-color="#fff"> <uni-popup ref="pintuanPopup" background-color="#fff">
<view class="guize-list"> <view class="guize-list">
@ -230,6 +115,37 @@
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
<uni-popup ref="orderPopup" background-color="transparent">
<view class="product-popup-content">
<view class="product-popup-header">
<view class="product-popup-title">商品详情</view>
<view class="product-popup-subtitle">请核对商品规格和数量</view>
</view>
<view class="product-popup-list" v-if="goodsList != null && goodsList.length > 0">
<view class="product-popup-card" v-for="(item1,index1) in goodsList" :key="index1">
<view class="product-popup-img">
<img :src="item1.productPicture" alt="">
</view>
<view class="product-popup-info">
<view class="product-popup-name">
{{item1.productName}}
</view>
<view class="product-popup-spec">
<text class="product-popup-label">规格</text>
<text class="product-popup-spec-text">{{item1.specs | delNode}}</text>
</view>
</view>
<view class="product-popup-quantity">
<view class="product-popup-quantity-num">x{{item1.quantity}}</view>
<view class="product-popup-quantity-label">数量</view>
</view>
</view>
</view>
<view class="product-popup-empty" v-else>
暂无商品详情
</view>
</view>
</uni-popup>
</view> </view>
</view> </view>
</template> </template>
@ -265,6 +181,23 @@
const minutes = date.getMinutes().toString().padStart(2, '0'); const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0'); const seconds = date.getSeconds().toString().padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
delNode(data) {
// 1.
let str;
if (typeof data === 'object' && data !== null) {
// JSON
str = JSON.stringify(data);
} else if (typeof data === 'string') {
str = data;
} else {
//
str = String(data);
}
// 2. { } "
const result = str.replace(/[{}"]/g, '');
return result;
} }
}, },
onShow() { onShow() {
@ -545,4 +478,141 @@
padding-right:20rpx; padding-right:20rpx;
font-weight: 700; font-weight: 700;
} }
.product-popup-content {
width: 680rpx;
max-height: 880rpx;
padding: 34rpx 28rpx 30rpx;
box-sizing: border-box;
overflow: scroll;
border-radius: 36rpx;
background:
radial-gradient(circle at 92% 4%, rgba(166, 255, 234, 0.38) 0, rgba(166, 255, 234, 0) 180rpx),
linear-gradient(180deg, #ffffff 0%, #f8fffc 100%);
box-shadow: 0 24rpx 56rpx rgba(0, 35, 28, 0.18);
}
.product-popup-header {
margin-bottom: 26rpx;
text-align: center;
}
.product-popup-title {
color: #143d35;
font-size: 36rpx;
font-weight: 900;
line-height: 48rpx;
}
.product-popup-subtitle {
margin-top: 8rpx;
color: #7b8a85;
font-size: 24rpx;
line-height: 34rpx;
}
.product-popup-list {
display: flex;
flex-direction: column;
gap: 20rpx;
}
.product-popup-card {
display: flex;
align-items: center;
padding: 22rpx;
border: 1px solid rgba(166, 255, 234, 0.58);
border-radius: 28rpx;
background: rgba(255, 255, 255, 0.88);
box-shadow: 0 12rpx 28rpx rgba(0, 35, 28, 0.06);
}
.product-popup-img {
width: 128rpx;
height: 128rpx;
flex-shrink: 0;
overflow: hidden;
border-radius: 22rpx;
background: #f0f5f3;
img {
width: 100%;
height: 100%;
background-size: 100%;
}
}
.product-popup-info {
flex: 1;
min-width: 0;
padding: 0 22rpx;
}
.product-popup-name {
color: #172f2a;
font-size: 30rpx;
font-weight: 900;
line-height: 42rpx;
}
.product-popup-spec {
display: flex;
align-items: flex-start;
margin-top: 16rpx;
}
.product-popup-label {
flex-shrink: 0;
height: 34rpx;
padding: 0 14rpx;
border-radius: 999rpx;
background: rgba(166, 255, 234, 0.72);
color: #126255;
font-size: 20rpx;
font-weight: 800;
line-height: 34rpx;
}
.product-popup-spec-text {
flex: 1;
margin-left: 12rpx;
color: #65736f;
font-size: 24rpx;
line-height: 34rpx;
word-break: break-all;
}
.product-popup-quantity {
width: 92rpx;
height: 92rpx;
flex-shrink: 0;
border-radius: 28rpx;
background: linear-gradient(135deg, #fff4ce 0%, #a6ffea 100%);
color: #103f36;
text-align: center;
box-shadow: 0 10rpx 20rpx rgba(0, 35, 28, 0.08);
}
.product-popup-quantity-num {
padding-top: 16rpx;
font-size: 30rpx;
font-weight: 900;
line-height: 34rpx;
}
.product-popup-quantity-label {
margin-top: 2rpx;
color: #52736b;
font-size: 20rpx;
line-height: 28rpx;
}
.product-popup-empty {
padding: 80rpx 20rpx;
border-radius: 28rpx;
background: rgba(247, 255, 251, 0.9);
color: #7b8a85;
font-size: 28rpx;
font-weight: 700;
text-align: center;
}
</style> </style>
Loading…
Cancel
Save