From 02ad32582e3a3b0e6f4b2d1b50593eff1d0558e3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期四, 06 三月 2025 13:53:25 +0800 Subject: [PATCH] - --- src/pages/delivergoods/query.vue | 514 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 514 insertions(+), 0 deletions(-) diff --git a/src/pages/delivergoods/query.vue b/src/pages/delivergoods/query.vue index 02409e3..10cc789 100644 --- a/src/pages/delivergoods/query.vue +++ b/src/pages/delivergoods/query.vue @@ -1,8 +1,522 @@ <template> + <up-sticky bgColor="#fff"> + <view class="coreshop-ff content c-p-10"> + <view class="coreshop-ff content c-p-l-10 c-p-t-10 c-p-r-10"> + <up-search placeholder="璇风偣鍑婚�夋嫨鏃ユ湡" @click='clickTime' :show-action="false" @clear='init' disabled + v-model="workTime" search-icon="calendar" @search='init'></up-search> + </view> + <view class="coreshop-ff content c-p-10 chuany-flex chuany-justify-between"> + <!-- <view class="chuany-width82"> --> + <up-search placeholder="璇风偣鍑婚�夋嫨鍙告満" @click="clickAction('driver7')" @clear='init' disabled @change='init' + action-text="鏌ヨ" v-model="deliverKeyName" @search='init' @custom='init'></up-search> + <!-- </view> + <up-text align="right" text='閫佽揣瀹夋帓' size='14' @click="() => show7 = true"></up-text> --> + </view> + </view> + <up-subsection :list="list" current='1' activeColor="#f9ae3d" @change="sectionChange"></up-subsection> + </up-sticky> + <view class="c-p-b-100"> + <view class="c-p-l-20 c-p-r-20" v-if="orderList&&orderList.length>0"> + <view class="listrecord c-p-t-20" v-for="(item,index) in orderList" :key="item.keyid" + @click='goDetail(item)'> + <view class="coreshop-ff chuany-bradius20"> + <view class="chuany-font26"> + <view class="chuany-flex chuany-justify-between"> + <text class="chuany-width7">{{index+1}}</text> + <view class="chuany-width15"> + {{$util.formatDate(item.createTime,'riqi')}} + </view> + <view class="chuany-width73"> + <u-text size='14' :text="item.remark" lines="1"> + </u-text> + </view> + <!-- <view class="chuany-width5" @tap.stop='editOrder(item)'> + <up-icon name="edit-pen"></up-icon> + </view> --> + </view> + </view> + </view> + </view> + <up-loadmore :status="loadStatus" /> + </view> + <view v-else> + <up-empty text='鏆傛棤' icon="/static/order.png"> + </up-empty> + </view> + <up-modal title="閫佽揣瀹夋帓" :show="show7" showCancelButton @confirm="confirmSave" @cancel='cancelModal' + :asyncClose="true"> + <up-form labelPosition="left" :model="arrangeInfo" ref="formRef" labelWidth='140rpx'> + <up-form-item label="閫佽揣鏃ユ湡" prop="deliverTime" required :borderBottom='false' ref="item1" + @click="clickShouTime"> + <!-- <up-input v-model="arrangeInfo.deliverTime" readonly border="none" + placeholder="鐐瑰嚮閫夋嫨宸ヤ綔鏃ユ湡"></up-input> --> + <up-datetime-picker hasInput @confirm='confirmDate' :show="shougHuoshow" v-model="deliverTime" + mode="date" placeholder="鐐瑰嚮閫夋嫨宸ヤ綔鏃ユ湡" :minDate='Number(new Date(minDate))' + @cancel='() => shougHuoshow = false'></up-datetime-picker> + </up-form-item> + <up-form-item label="鍙告満" prop="driverId" required :borderBottom='false' @click="clickAction('driver')" + ref="item1"> + <up-input v-model="driverName" disabled border="none" disabledColor="#ffffff" + placeholder="璇烽�夋嫨鍙告満"></up-input> + </up-form-item> + <up-form-item label="鏀惰揣鍗曚綅" prop="buyerId" required :borderBottom='false' ref="item1"> + <up-input v-model="arrangeInfo.companyName" placeholder="璇烽�夋嫨鏀惰揣鍗曚綅" border="none"> + <template #suffix> + <up-button @tap="clickAction" text="鐐瑰嚮閫夋嫨" type="primary" size="mini"></up-button> + </template> + </up-input> + </up-form-item> + <up-form-item label="鑱旂郴浜�" prop="lianxiren" :borderBottom='false' ref="item1"> + <up-input v-model="arrangeInfo.lianxiren" border="none" placeholder="璇疯緭鍏ヨ仈绯讳汉"></up-input> + </up-form-item> + <up-form-item label="鑱旂郴鐢佃瘽" prop="dianhua" required :borderBottom='false' ref="item1"> + <up-input v-model="arrangeInfo.dianhua" border="none" placeholder="璇疯緭鍏ヨ仈绯荤數璇�"></up-input> + </up-form-item> + <up-form-item label="閫佽揣鍦板潃" prop="dizhi" required :borderBottom='false' ref="item1"> + <up-input v-model="arrangeInfo.dizhi" border="none" placeholder="璇疯緭鍏ラ�佽揣鍦板潃"></up-input> + </up-form-item> + <up-form-item label="閫佽揣浜嬬敱" prop="remark" required :borderBottom='false' ref="item1"> + <up-textarea v-model="arrangeInfo.remark" border="none" placeholder="璇疯緭鍏ラ�佽揣浜嬬敱"></up-textarea> + </up-form-item> + </up-form> + </up-modal> + <fui-date-picker range :show="datePickerShow" :value="getFirstDayOfMonth()" type="3" zIndex="10000" + @change="changePicker" :minDate='minDate' :maxDate='maxDate' @cancel="clickTime"></fui-date-picker> + <up-action-sheet :show="showActions" :actions="actions" title="璇烽�夋嫨" @close="showActions = false" + wrapMaxHeight='500px' @select="selectItem"> + </up-action-sheet> + </view> </template> <script> + import { + mapGetters + } from 'vuex' + export default { + data() { + return { + list: ['鍏ㄩ儴', '鏈��', '宸查��'], + datePickerShow: false, + shougHuoshow: false, + workTime: '', + orderList: [], + loadStatus: 'loadmore', + pageIndex: 1, + pageSize: 20, + contentVal: '', + customerList: [], + isEdit: false, + editItem: {}, + isLoading: false, + show7: false, + showActions: false, + driverName: '', + actions: [], + selectAc: '', + deliveredState:'Undeliver', + minDate: this.$util.formatDate(new Date(), null, -7), + maxDate: this.$util.formatDate(new Date(), null, 7), + deliverTime: Number(new Date(this.$util.formatDate(new Date(), null, 1))), + arrangeInfo: { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + companyName: '' + }, + rules: { + 'deliverTime': { + type: 'string', + required: true, + message: '璇烽�夋嫨鏃ユ湡', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.driverId': { + type: 'string', + max: 1, + required: true, + message: '璇烽�夋嫨鍙告満', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.dianhua': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ヨ仈绯荤數璇�', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.dizhi': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ラ�佽揣鍦板潃', + trigger: ['blur', 'change'] + }, + 'arrangeInfo.remark': { + type: 'string', + max: 1, + required: true, + message: '璇疯緭鍏ラ�佽揣浜嬬敱', + trigger: ['blur', 'change'] + }, + }, + radio: '', + switchVal: false, + driverList: [], + buyerName: '', + timeStart: '', + timeEnd: '', + sevenDaysDriver: [], + deliverKeyID: '', + deliverKeyName: '' + } + }, + onShow() { + this.init() + }, + computed: { + ...mapGetters(['userInfo']), + isAdmin() { + return this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false + }, + }, + onReady() { + this.$refs.formRef.setRules(this.rules); + }, + onLoad() { + this.Getdrivers() + this.getCustomer() + this.GetDriversOfWithin7days() + }, + onReachBottom() { + if (this.loadStatus != 'nomore') { + this.getList() + } + }, + onPullDownRefresh() { + this.startDate = '' + this.endDate = '' + this.workTime = '' + this.deliverKeyName = '' + this.init() + uni.stopPullDownRefresh(); + }, + methods: { + sectionChange(val) { + switch (val) { + case 0: + this.deliveredState = null + break; + case 1: + this.deliveredState = 'Undeliver' + break; + case 2: + this.deliveredState = 'Delivered' + break; + } + this.init() + }, + goDetail(item) { + uni.navigateTo({ + url: `/pages/delivergoods/querydetail?KeyId=${item.keyid}&isAdmin=${this.isAdmin}` + }); + }, + GetDriversOfWithin7days() { + this.$api.GetDriversOfWithin7days().then(res => { + if (res.code == 1) { + this.sevenDaysDriver = res.data + } + }) + }, + changePicker(val) { + console.log(val); + this.workTime = val.startDate.result + '鑷�' + val.endDate.result + this.timeStart = new Date(val.startDate.result) //宸ヤ綔寮�濮嬫椂闂� + this.timeEnd = new Date(val.endDate.result) + this.datePickerShow = !this.datePickerShow + this.getList() + }, + confirmDate(val) { + console.log(val); + this.arrangeInfo.deliverTime = val + this.shougHuoshow = false + }, + getCustomer() { + this.$api.GeCorporateClients().then(res => { + if (res.code == 1) { + this.customerList = res.data + this.customerList.forEach(item => { + item.name = item.companyName + }) + } + }) + }, + selectItem(item) { + if (this.selectAc == 'driver') { + this.driverName = item.name + this.arrangeInfo.driverId = item.keyid + } else if (this.selectAc == 'driver7') { + this.deliverKeyID = item.keyid + this.deliverKeyName = item.name + this.init() + } else { + this.buyerName = item.name + this.arrangeInfo.buyerId = item.keyid + this.arrangeInfo.dizhi = item.adder + this.arrangeInfo.dianhua = item.companyPhone + this.arrangeInfo.lianxiren = item.businessManagers + this.arrangeInfo.companyName = item.companyName + } + this.selectAc = '' + }, + getFirstDayOfMonth() { + var currentDate = new Date(); + // currentDate.setDate(1); // 灏嗘棩鏈熻涓�1 + return this.$util.formatDate(currentDate); + }, + clickTime() { + this.datePickerShow = !this.datePickerShow + }, + clickShouTime() { + this.shougHuoshow = !this.shougHuoshow + }, + clickAction(val) { + switch (val) { + case 'driver': + this.actions = this.driverList + break + case 'driver7': + this.actions = this.sevenDaysDriver + break + default: + this.actions = this.customerList + break + } + this.selectAc = val + this.showActions = true + uni.hideKeyboard() + }, + editOrder(item) { + this.isEdit = true + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: item.driverId, + buyerId: item.buyerId, + dianhua: item.dianhua, + remark: item.remark, + lianxiren: item.lianxiren, + dizhi: item.dizhi, + keyid: item.keyid, + companyName: item.companyName + } + this.show7 = true + this.driverName = item.driver.name + // let obj = this.customerList.find(ite => { + // return ite.keyid == item.buyerId + // }) + // this.buyerName = obj.companyName + }, + delOrder(item) { + let that = this + uni.showModal({ + title: '鎻愮ず', + content: '纭鍒犻櫎璇ラ�佽揣鍚楋紵', + success: function(res) { + if (res.confirm) { + // 鎵ц纭鍚庣殑鎿嶄綔 + that.$api.DelAppointmentDeliver({ + keyid: item.keyid + }).then(req => { + if (req.code == 1) { + that.$util.showToast({ + title: '鍒犻櫎鎴愬姛锛�' + }) + that.init() + } else { + that.$util.showToast({ + title: req.error + }) + } + }) + } else { + // 鎵ц鍙栨秷鍚庣殑鎿嶄綔 + } + } + }) + }, + init() { + this.pageIndex = 1 + this.pageSize = 20 + this.loadStatus = 'loadmore' + this.orderList = [] + this.contentVal = '' + this.getList() + }, + confirmSave() { + this.$refs.formRef.validate().then(res => { + if (this.isEdit) { + this.$api.UpDataDeliverPlans(this.arrangeInfo).then(res => { + if (res.code == 1) { + this.isEdit = false + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + } + this.show7 = false + this.driverName = '' + this.buyerName = '' + this.init() + } else { + this.$util.showToast({ + title: res.error + }) + } + this.isLoading = false + }) + return + } + this.$api.CreatDeliverPlan(this.arrangeInfo).then(res => { + if (res.code == 1) { + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + } + this.show7 = false + this.driverName = '' + this.buyerName = '' + this.init() + } else { + this.$util.showToast({ + title: res.error + }) + } + this.isLoading = false + }) + }) + + }, + cancelModal() { + this.arrangeInfo = { + deliverTime: this.$util.formatDate(new Date(), null, 1), + driverId: '', + buyerId: '', + dianhua: '', + remark: '', + lianxiren: '', + dizhi: '', + } + this.show7 = false + this.driverName = '' + this.buyerName = '' + }, + Getdrivers() { + this.$api.Getdrivers().then(res => { + if (res.code == 1) { + this.driverList = res.data + } + }) + }, + getList() { + this.deliverKeyName == '' ? this.deliverKeyID = '' : null + let data = { + deliveredState:this.deliveredState, + page: { + pageIndex: this.pageIndex, + pageSize: this.pageSize, + } + } + if (this.timeStart) { + data.timeStart = this.timeStart + } + if (this.timeEnd) { + data.timeEnd = this.timeEnd + } + if (this.deliverKeyID) { + data.deliverKeyID = this.deliverKeyID + } + let getListApi = null + if (this.isAdmmin) { + getListApi = this.$api.GetDeliverPlans + } else { + getListApi = this.$api.workerGetDeliverPlans + } + getListApi(data).then(res => { + if (res.code == 1) { + if (this.pageIndex == 1) { + this.orderList = res.data.data + } else { + this.orderList = this.orderList.concat(...res.data.data) + } + console.log(this.orderList, 'orderList鈥�'); + // totalPages = res.data.totalCount + // 鏍规嵁count鏁伴噺鍒ゆ柇鏄惁杩樻湁鏁版嵁 + if (res.data.page.totalCount > this.orderList.length) { + this.loadStatus = 'loadmore' + this.pageIndex++ + } else { + // 鏁版嵁宸插姞杞藉畬姣� + this.loadStatus = 'nomore' + } + } else { + // _that.$refs.uToast.show({ message: res.msg, type: 'error' }); + } + }) + }, + accept(item) { + let that = this + uni.showModal({ + title: '鎻愮ず', + content: '纭鍙楃悊璇ラ�佽揣鍚楋紵', + success: function(res) { + if (res.confirm) { + // 鎵ц纭鍚庣殑鎿嶄綔 + that.$api.AcceptAppointmentDeliver(item.keyid).then(req => { + if (req.code == 1) { + that.$util.showToast({ + title: '鍙楃悊鎴愬姛锛�' + }) + that.init() + } else { + that.$util.showToast({ + title: req.error + }) + } + }) + } else { + // 鎵ц鍙栨秷鍚庣殑鎿嶄綔 + } + } + }) + }, + actionClick(item, e) { + console.log(e); + if (e.index == 0) { + this.contentVal = item.remark + } + } + } + } </script> <style> + .u-textarea { + padding: 0 !important; + } + + .u-form-item__body { + padding: 5px 0 !important; + } </style> \ No newline at end of file -- Gitblit v1.9.1