
43 changed files with 2393 additions and 1853 deletions
@ -0,0 +1,424 @@ |
|||||
|
<template> |
||||
|
<view style="width: 100%;height: 100%;background: #60CA2C;display: flex;flex-direction: column;"> |
||||
|
|
||||
|
<NavBar ref="nav" navTitle="预约提货" :showIcon="true" :supportChange="false"> |
||||
|
</NavBar> |
||||
|
|
||||
|
<loading-state ref="pageView" @request="request"> |
||||
|
|
||||
|
<!-- <view style="background: #FFA35A;width: 100%;height: 100%;"> --> |
||||
|
|
||||
|
|
||||
|
<view style="display: flex;flex-direction: column;background: #F2F2F2; width: 100%; |
||||
|
border-radius: 25px;height: 100vh; padding: 10px;box-sizing: border-box;"> |
||||
|
|
||||
|
<view style="display: flex;flex-direction: column;background: #fff; |
||||
|
border-radius: 15px;padding: 15px 10px;"> |
||||
|
|
||||
|
<view v-if="info.storeSid!=''" |
||||
|
style="display: flex;flex-direction: row;align-items: center;justify-content: space-between;"> |
||||
|
|
||||
|
<text |
||||
|
style="font-size: 16px;color: #000; font-weight: 600;font-family: sans-serif;">{{info.storeName}}</text> |
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;" @click="address()"> |
||||
|
<text style="font-size: 12px;color: #FF9900;">切换</text> |
||||
|
<image src="../../static/right_icon.png" style="width: 15px;height: 15px;margin-left: 5px;"> |
||||
|
</image> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
<view v-if="info.storeSid==''" |
||||
|
style="display: flex;flex-direction: row;align-items: center;justify-content: space-between;"> |
||||
|
|
||||
|
<text |
||||
|
style="font-size: 16px;color: #000; font-weight: 600;font-family: sans-serif;">暂无提货点信息</text> |
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;" @click="address()"> |
||||
|
<text style="font-size: 12px;color: #FF9900;">去完善</text> |
||||
|
<image src="../../static/right_icon.png" style="width: 15px;height: 15px;margin-left: 5px;"> |
||||
|
</image> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
<view v-if="info.storeSid!=''" |
||||
|
style="display: flex;flex-direction: row;align-items: center;margin-top: 15px;"> |
||||
|
<image src="https://supervise.yxtsoft.com/lpk/image/date.png" style="width:20px;height: 20px;"> |
||||
|
</image> |
||||
|
<text |
||||
|
style="margin-left: 5px;flex: 1;color: #666;font-size: 14px;">{{info.businessHours}}</text> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
<view v-if="info.storeSid!=''" |
||||
|
style="display: flex;flex-direction: row;align-items: center;margin-top: 15px;"> |
||||
|
<image src="https://supervise.yxtsoft.com/lpk/image/location.png" |
||||
|
style="width: 20px;height: 20px;"> |
||||
|
</image> |
||||
|
<text style="margin-left: 5px;flex: 1; color: #666;font-size: 14px;">{{info.address}}</text> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
<!-- <view style="display: flex;flex-direction: row;align-items: center;"> |
||||
|
|
||||
|
<text |
||||
|
style="font-size: 14px;color: #000; font-weight: 600;font-family: sans-serif; ">配送地址</text> |
||||
|
|
||||
|
<textarea bindblur="bindTextAreaBlur" :value="info.userAddress" @input="onKeyInput2" |
||||
|
style=" margin-left: 15px;border-bottom: 1px solid #ccc; padding-bottom: 5px; flex: 1;" |
||||
|
auto-height placeholder="请输入详细配送地址精确到门牌号" /> |
||||
|
</view> |
||||
|
--> |
||||
|
|
||||
|
<view |
||||
|
style="display: flex;flex-direction: row;align-items: center;justify-content: center;margin-top: 16px;"> |
||||
|
<text |
||||
|
style="font-size: 14px;color: #000; font-weight: 600;font-family: sans-serif; flex: 1;">提货时间</text> |
||||
|
|
||||
|
<uni-datetime-picker type="date" v-model="info.reserveDate" :start="info.start" |
||||
|
:clearIcon="false" :border="false" :disabledDate="disabledDate" /> |
||||
|
<image src="../../static/right_icon.png" style="width: 15px;height: 15px;margin-left: 5px;"> |
||||
|
</image> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
<view style="margin-top: 10px;display: flex;flex-direction: row;background: #fff;align-items: center; |
||||
|
border-radius: 15px;padding: 15px 10px;justify-content: space-between;"> |
||||
|
|
||||
|
<text style="font-size: 14px;color: #000; font-weight: 600;font-family: sans-serif;">联系人</text> |
||||
|
|
||||
|
<view v-if="info.name!=''" style="display: flex;flex-direction: row;align-items: center;" |
||||
|
@click="changePer()"> |
||||
|
|
||||
|
<text |
||||
|
style="font-size: 14px;color: #000; font-weight: 600;font-family: sans-serif;">{{info.name}}</text> |
||||
|
<text style="font-size: 12px;color: #999; margin-left: 8px;">{{info.phone}}</text> |
||||
|
|
||||
|
<image src="../../static/right_icon.png" style="width: 15px;height: 15px;margin-left: 5px;"> |
||||
|
</image> |
||||
|
</view> |
||||
|
|
||||
|
<view v-if="info.name==''" style="display: flex;flex-direction: row;align-items: center;" |
||||
|
@click="changePer()"> |
||||
|
|
||||
|
<text style="font-size: 12px;color: #999; margin-left: 8px;">去完善</text> |
||||
|
|
||||
|
<image src="../../static/right_icon.png" style="width: 15px;height: 15px;margin-left: 5px;"> |
||||
|
</image> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
<view |
||||
|
style="margin-top: 10px;display: flex;flex-direction: column;background: #fff;border-radius: 15px;padding: 10px;"> |
||||
|
|
||||
|
<text style="font-size: 15px; color: #000; font-weight: 600;font-family: sans-serif;">提货列表</text> |
||||
|
|
||||
|
<scroll-view scroll-y="true" style="max-height:calc(100vh - 400px); width: 100%; box-sizing: border-box; margin-top: 10px;; |
||||
|
" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll"> |
||||
|
|
||||
|
<view style="width: 100%; display: flex;flex-direction: column; margin-top: 10px;"> |
||||
|
<view v-for="(item,index) in pickingUpGoods" |
||||
|
style="display: flex;flex-direction: column;justify-content: center;width: 100%; margin-top: 15px; "> |
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;width: 100%; "> |
||||
|
|
||||
|
<image :src="item.iconUrl" @click="itemClick(item.goodsSid)" |
||||
|
style="width: 90px;height: 90px; border-radius: 10px; " mode="aspectFill"> |
||||
|
</image> |
||||
|
|
||||
|
<view |
||||
|
style="display: flex;flex-direction: column;flex: 1; padding-bottom: 15px; margin-left: 10px;" |
||||
|
:style="{'border-bottom':(index == pickingUpGoods.length-1 ? 'none' : '1px #EFEFEF solid')}"> |
||||
|
|
||||
|
<text style="font-size: 13px;color: #000;" |
||||
|
@click="itemClick(item.goodsSid)">{{item.name}}</text> |
||||
|
|
||||
|
<!-- <text |
||||
|
style="font-size: 10px;color: #999;margin-top: 5px;">{{item.remark}}</text> --> |
||||
|
|
||||
|
<view |
||||
|
style="display: flex;flex-direction: row;align-items: center;margin-top: 8px;"> |
||||
|
<text style="border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px; |
||||
|
font-size: 10px;color: #EE752F; ">{{item.weight}}{{item.specificationUnit}}/{{item.unitName}}</text> |
||||
|
|
||||
|
<text v-show="item.remarks!=''" style="margin-left: 10px; border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px; |
||||
|
font-size: 10px;color: #EE752F;">{{item.remarks}}</text> |
||||
|
<text |
||||
|
style="border: 1px #EE752F solid; background: #FF9900; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;" |
||||
|
v-if="item.type=='0'">百姓菜!</text> |
||||
|
<text |
||||
|
style="border: 1px #3AA15F solid; background: #40C772; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;" |
||||
|
v-if="item.type=='1'">精品菜!</text> |
||||
|
<text |
||||
|
style="border: 1px #1D60C7 solid; background: #2489F7; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;" |
||||
|
v-if="item.type=='2'">企业菜!</text> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;justify-content: space-between; margin-top: 15px; |
||||
|
margin-right: 15px;"> |
||||
|
|
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;"> |
||||
|
<text style="font-size: 12px;color: #FF5006;">存量:</text> |
||||
|
<text |
||||
|
style="font-size: 14px;color: #FF5006;">{{item.goodsNumber}}</text> |
||||
|
</view> |
||||
|
|
||||
|
|
||||
|
|
||||
|
<view style="display: flex;flex-direction: row;align-items: center;"> |
||||
|
|
||||
|
<image src="../../static/jian_icon.png" mode="aspectFill" |
||||
|
style="width: 20px;height: 20px;" @click.stop="jian(item)"> |
||||
|
</image> |
||||
|
|
||||
|
<text |
||||
|
style="font-size: 14px;margin-left: 8px;margin-right: 8px;">{{item.count}}</text> |
||||
|
<image src="../../static/jia_icon.png" mode="aspectFill" |
||||
|
style="width: 20px;height: 20px;" @click.stop="jia(item)"> |
||||
|
</image> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
</scroll-view> |
||||
|
|
||||
|
</view> |
||||
|
|
||||
|
<view |
||||
|
style=" position: fixed;bottom: 0; width: 100%; box-sizing: border-box; padding-left: 10vw;padding-right: 10vw;display: flex;flex-direction: row; justify-content: center;align-items: center;"> |
||||
|
<text style=" background: #60CA2C;color: #fff;margin-bottom: 20px; border-radius: 20px; |
||||
|
padding-top: 10px;padding-bottom: 10px;padding-left: 25vw;padding-right: 25vw; text-align: center;" |
||||
|
@click="congirmExtract()">确认提货</text> |
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
<!-- </view> --> |
||||
|
</loading-state> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
affiliation: "", |
||||
|
delivery: "", |
||||
|
info: { |
||||
|
|
||||
|
}, |
||||
|
pickingUpGoods: [], |
||||
|
disabledDate: [ |
||||
|
// '2023-12-16' |
||||
|
], |
||||
|
btnDisabled: false |
||||
|
} |
||||
|
}, |
||||
|
onLoad(options) { |
||||
|
|
||||
|
uni.$on("address", (e) => { |
||||
|
// 相当与下拉刷新 |
||||
|
this.info.storeSid = e.sid; |
||||
|
this.info.storeName = e.name; |
||||
|
this.info.businessHours = e.businessHours; |
||||
|
this.info.address = e.address; |
||||
|
}) |
||||
|
|
||||
|
uni.$on("changePer", (e) => { |
||||
|
// 相当与下拉刷新 |
||||
|
this.info.name = e.name; |
||||
|
this.info.phone = e.phone; |
||||
|
}) |
||||
|
|
||||
|
|
||||
|
this.pickingUpGoods = JSON.parse(decodeURIComponent(options.pickingUpGoods)) |
||||
|
this.affiliation = options.affiliation |
||||
|
this.delivery = options.delivery |
||||
|
|
||||
|
console.log(">>>>>", options); |
||||
|
console.log(">>>>>", this.pickingUpGoods); |
||||
|
console.log(">>>>>", this.affiliation); |
||||
|
console.log(">>>>>", this.delivery); |
||||
|
|
||||
|
this.request() |
||||
|
this.getSun() |
||||
|
|
||||
|
}, |
||||
|
onUnload() { |
||||
|
uni.$off('address'); |
||||
|
uni.$off('changePer'); |
||||
|
}, |
||||
|
methods: { |
||||
|
onKeyInput2(val) { |
||||
|
this.info.userAddress = val.detail.value |
||||
|
}, |
||||
|
itemClick(goodsSid) { |
||||
|
uni.navigateTo({ |
||||
|
url: '/pages/good/goodsDetail?sid=' + goodsSid |
||||
|
}) |
||||
|
}, |
||||
|
getSun() { |
||||
|
let _this = this |
||||
|
_this.$api.getExtractSaturAndSun().then((resp) => { |
||||
|
|
||||
|
_this.disabledDate = resp |
||||
|
|
||||
|
}).catch(e => { |
||||
|
|
||||
|
}) |
||||
|
}, |
||||
|
address() { |
||||
|
uni.navigateTo({ |
||||
|
url: '/pages/SelectAddressActivity' |
||||
|
}) |
||||
|
}, |
||||
|
changePer() { |
||||
|
uni.navigateTo({ |
||||
|
url: '/pages/good/changePersonnel?name=' + this.info.name + "&phone=" + this.info.phone |
||||
|
}) |
||||
|
}, |
||||
|
// 获取数据 |
||||
|
request() { |
||||
|
let _this = this |
||||
|
var params = { |
||||
|
customerSid: getApp().globalData.sid, |
||||
|
delivery: _this.delivery |
||||
|
} |
||||
|
|
||||
|
console.log(">>>>>", params); |
||||
|
_this.$api.getStoreBySid(params).then((resp) => { |
||||
|
_this.info = resp |
||||
|
_this.$nextTick(() => { |
||||
|
_this.$refs.pageView.setLoadState(2) |
||||
|
}) |
||||
|
|
||||
|
}).catch(e => { |
||||
|
console.log(e); |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
jian(item) { |
||||
|
console.log("item》》》》", item) |
||||
|
const that = this |
||||
|
if (Number(item.count) == 1) { |
||||
|
|
||||
|
wx.showModal({ |
||||
|
content: '确定不要了吗', |
||||
|
cancelText: "再想想", |
||||
|
confirmText: "删除", |
||||
|
confirmColor: "#FF9900", |
||||
|
success(res) { |
||||
|
if (res.confirm) { |
||||
|
console.log('用户点击确定') |
||||
|
item.count = 0 |
||||
|
const index = that.pickingUpGoods.findIndex((info) => info.goodsSid === item |
||||
|
.goodsSid) |
||||
|
console.log("index》》》》", index) |
||||
|
that.pickingUpGoods.splice(index, 1) |
||||
|
} else if (res.cancel) { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
} else { |
||||
|
if (Number(item.count) > 0) { |
||||
|
item.count = Number(item.count) - 1 |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
jia(item) { |
||||
|
if (item.count < item.goodsNumber) |
||||
|
item.count = Number(item.count) + 1 |
||||
|
}, |
||||
|
congirmExtract() { |
||||
|
let _this = this |
||||
|
|
||||
|
if (this.btnDisabled) { |
||||
|
this.shortToast('请勿重复点击') |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.btnDisabled = true |
||||
|
|
||||
|
if (_this.info.storeSid == '') { |
||||
|
this.shortToast('请完善提货点信息') |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
|
||||
|
if (_this.info.reserveDate == '') { |
||||
|
this.shortToast('请选择日期') |
||||
|
this.btnDisabled = false |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
if (this.info.name == "" || this.info.phone == '') { |
||||
|
this.shortToast('请完善联系人信息') |
||||
|
this.btnDisabled = false |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
let list = [] |
||||
|
|
||||
|
for (var i = 0; i < this.pickingUpGoods.length; i++) { |
||||
|
var item = this.pickingUpGoods[i] |
||||
|
if (item.count > 0) |
||||
|
list.push({ |
||||
|
goodsSid: item.goodsSid, |
||||
|
select: item.count, |
||||
|
}) |
||||
|
} |
||||
|
// console.log("ddd", list); |
||||
|
|
||||
|
if (list.length == 0) { |
||||
|
this.shortToast('请添加商品') |
||||
|
this.btnDisabled = false |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
var params = { |
||||
|
customerSid: getApp().globalData.sid, |
||||
|
affiliation: _this.affiliation, |
||||
|
reserveDate: _this.info.reserveDate, |
||||
|
storeSid: _this.info.storeSid, |
||||
|
userAddress: '', |
||||
|
userName: _this.info.name, |
||||
|
userPhone: _this.info.phone, |
||||
|
goodsVos: list |
||||
|
} |
||||
|
console.log("pppp", params); |
||||
|
|
||||
|
_this.$api.submissionExtract2(params).then((resp) => { |
||||
|
uni.navigateBack() |
||||
|
_this.btnDisabled = false |
||||
|
}).catch(e => { |
||||
|
console.log(e); |
||||
|
_this.btnDisabled = false |
||||
|
}) |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
|
||||
|
</style> |
Loading…
Reference in new issue