From a28d0135ee42809b2c5863609da37155d3ecba5b Mon Sep 17 00:00:00 2001 From: yangan <yangan0921@163.com> Date: 星期二, 29 四月 2025 15:11:39 +0800 Subject: [PATCH] feat:增加类型显示 --- pages/doorkeeper-page/doorkeeper-index/exit-index.vue | 720 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 644 insertions(+), 76 deletions(-) diff --git a/pages/doorkeeper-page/doorkeeper-index/exit-index.vue b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue index fa0fd82..856ad77 100644 --- a/pages/doorkeeper-page/doorkeeper-index/exit-index.vue +++ b/pages/doorkeeper-page/doorkeeper-index/exit-index.vue @@ -1,44 +1,295 @@ <template> <view class="appointment"> - <view class="wait-collection" - style="background: url('https://mx.jzeg.cn:9096/appimg/image/banner/diverbanner.png') no-repeat;background-size:contain"> + <view class="searchview"> + <u-search @change="change" :searchIconSize="40" placeholder="璇疯緭鍏ヨ溅鐗屽彿" height="60" clearabled v-model="carNo" @search="search" @custom="custom" @clear="clear" > + </u-search > </view> - <uni-table border - stripe - emptyText="鏆傛棤鏇村鏁版嵁"> - <uni-tr> - <uni-th align="center">鍙告満</uni-th> - <uni-th align="center">浜у搧</uni-th> - <uni-th align="center">杞︾墝鍙�</uni-th> - <uni-th align="center">鎵嬫満鍙�</uni-th> - <uni-th align="center">鎿嶄綔</uni-th> - </uni-tr> - <uni-tr v-for="(item, index) in driverBillOfLoadingData" - :key="item.id"> - <uni-td align="center">{{ item.driver }}</uni-td> - <uni-td align="center">{{ item.productName || '' }}</uni-td> - <uni-td align="center">{{ item.carNo || '' }}</uni-td> - <uni-td align="center">{{ item.phone || '' }}</uni-td> - <uni-td><u-button text="閫夋嫨" - type="primary" - @click="yuYueBtnClick(item)"></u-button></uni-td> - </uni-tr> - </uni-table> + <u-collapse + ref="myCollapse" + :value='["1"]' + > + <u-collapse-item + ref="collapseHeight" + name='1' + class="collItem" + :title="'寰呮鏌ヨ溅杈�'"> + <view style="position: relative;top: -40px;"> + <u-empty mode="data" + icon="http://cdn.uviewui.com/uview/empty/data.png" + textSize="30" + iconSize="1000" + text="鏆傛棤杞﹁締" + v-if="driverBillOfLoadingData.length == 0"></u-empty> + </view> + <view class="collection-form"> + <view class="collection-form-item" + v-for="(item, index) in driverBillOfLoadingData" + :key="index"> + <view class="first-line"> + <view class="dispatch-receive"> + <view class="dispatch-dept">{{ item.code || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.customerName ||'' }}</view> + </view> + <view class="point-number"> + <text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text> + </view> + </view> + <view class="second-line" v-if="item.splicingOrderId"> + <text style="color:red">姝ゅ崟鍖呭惈鎷煎崟锛�</text> + </view> + <view class="second-line"> + <view class="coal-name"> + <view class="dispatch-dept">{{ item.carNo || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.driver ||'' }}</view> + <view class="black-bar"></view> + <text>{{ item.phone || '' }}</text> + <view class="black-bar"></view> + <view class="dispatch-dept">{{ item.orderType || '' }}</view> + </view> + </view> + <view class="second-line"> + <view class="coal-name"> + <view>鍑�閲嶏細{{item.clean || 0}}</view> + <view class="black-bar"></view> + <view>鏁伴噺锛歿{item.productQuantity || 0}}</view> + </view> + </view> + <view class="third-line"> + <view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view> + </view> + <view class="fourth-line"> + <view + v-if="item.splicingOrderId" + @click.stop="checkDetail(item)"> + <view class="button-image"> + <u-button type='primary'>鏌ョ湅鎷煎崟</u-button> + </view> + </view> + <view class="forward" + @click.stop="yuYueBtnClick(item)"> + <view class="button-image">妫�鏌�</view> + </view> + </view> + </view> + </view> + </u-collapse-item> + </u-collapse> + <u-collapse + ref="myCollapse" + > + <u-collapse-item + ref="collapseHeights" + name='3' + class="collItem" + :title="'涓存椂鍑哄満杞﹁締'"> + <view style="position: relative;top: -40px;"> + <u-empty mode="data" + icon="http://cdn.uviewui.com/uview/empty/data.png" + textSize="30" + iconSize="1000" + text="鏆傛棤杞﹁締" + v-if="driverTemporaryEntry.length == 0"></u-empty> + </view> + <view class="collection-form"> + <view class="collection-form-item" + v-for="(item, index) in driverTemporaryEntry" + :key="index"> + <view class="second-line"> + <view class="coal-name"> + <view class="dispatch-dept">{{ item.carNo || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.tempEntrancePlan.driver ||'' }}</view> + <view class="black-bar"></view> + <text>{{ item.tempEntrancePlan.phone || '' }}</text> + <view class="black-bar"></view> + <view class="dispatch-dept">{{ item.orderType || '' }}</view> + </view> + </view> + <view class="third-line"> + <view class="time-icon"> + <view + style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover"> + </view> + </view> + <view class="send-date">{{ item.tempEntrancePlan.sendDate }} {{ item.tempEntrancePlan.startTime || '' }}-{{item.tempEntrancePlan.endTime || ""}}</view> + </view> + <view class="first-line"> + <view class="dispatch-receive"> + <view class="dispatch-dept">{{ item.tempEntrancePlan.coalName || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.tempEntrancePlan.customerName ||'' }}</view> + </view> + <view class="point-number"> + <text class="order-type">{{ item.tempEntrancePlan.productNames?limitString(item.tempEntrancePlan.productNames,20,'...'):'' || '' }}</text> + </view> + </view> + <view class="fourth-line"> + <view class="forward" + @click.stop="yuYueLiShBtnClick(item)"> + <view class="button-image">妫�鏌�</view> + </view> + </view> + </view> + </view> + </u-collapse-item> + </u-collapse> + <u-collapse + ref="myCollapse" + > + <u-collapse-item + name='2' + class="collItem" + :title="'宸叉鏌ヨ溅杈�'"> + <view style="position: relative;top: -40px;"> + <u-empty mode="data" + icon="http://cdn.uviewui.com/uview/empty/data.png" + textSize="30" + iconSize="1000" + text="鏆傛棤杞﹁締" + v-if="driverBillOfLoadingDatas.length == 0"></u-empty> + </view> + <view class="collection-form" style="margin-bottom: 60px;"> + <view class="collection-form-item" + v-for="(item, index) in driverBillOfLoadingDatas" + :key="index"> + <view class="first-line"> + <view class="dispatch-receive"> + <view class="dispatch-dept">{{ item.code || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.customerName ||'' }}</view> + </view> + <view class="point-number"> + <text class="order-type">{{ item.productNames?limitString(item.productNames,20,'...'):'' || '' }}</text> + </view> + </view> + <view class="second-line" v-if="item.splicingOrderId"> + <text style="color:red">姝ゅ崟鍖呭惈鎷煎崟锛�</text> + </view> + <view class="second-line"> + <view class="coal-name"> + <view>鍑�閲嶏細{{item.clean|| 0}}</view> + <view class="black-bar"></view> + <view>鏁伴噺锛歿{item.productQuantity|| 0}}</view> + </view> + </view> + <view class="second-line"> + <view class="coal-name"> + <view class="dispatch-dept">{{ item.carNo || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ item.driver ||'' }}</view> + <view class="black-bar"></view> + <text>{{ item.phone || '' }}</text> + <view class="black-bar"></view> + <view class="dispatch-dept">{{ item.orderType || '' }}</view> + + </view> + </view> + <view class="second-line"> + <view class="coal-name"> + <view>鍑�閲嶏細{{item.clean|| 0}}</view> + <view class="black-bar"></view> + <view>鏁伴噺锛歿{item.productQuantity|| 0}}</view> + </view> + </view> + <view class="third-line"> + <view class="time-icon"> + <view + style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover"> + </view> + </view> + <view class="send-date">{{ item.outTime?item.outTime.slice(10,19):null }} </view> + </view> + <view class="third-line"> + <view class="send-date">{{ item.isEmptyCar?item.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view> + </view> + <view class="fourth-line"> + <view + v-if="item.splicingOrderId" + @click.stop="checkDetail(item)"> + <view class="button-image"> + <u-button type='primary'>鏌ョ湅鎷煎崟</u-button> + </view> + </view> + </view> + </view> + </view> + </u-collapse-item> + </u-collapse> <u-popup :show="show" @close="close" @open="open" mode="center" round="10"> <view class="receiverPopup"> + <uni-table border + stripe + type="selection" + @selection-change="selectionChange" + emptyText="鏆傛棤鏇村鏁版嵁"> + <uni-tr> + <uni-th align="center">妫�娴嬮」</uni-th> + </uni-tr> + <uni-tr v-for="(item, index) in inspectData" + :key="item.id"> + <uni-td align="center">{{ item.title }}</uni-td> + </uni-tr> + </uni-table> <view class="receiverPopup__title"><text>纭畾妫�鏌ュ畬姣�</text></view> <view class="receiverPopup__btn"><u-button text="纭畾" type="primary" @click="popClick" - :disabled="canClick" :loading="ClickLoading"></u-button></view> </view> </u-popup> <tab-bar :current="1"></tab-bar> + <view class="logoutModel"> + <u-modal :show="logoutShow" + :title="logoutTitle" + showCancelButton + :content="logoutContent" + @confirm="logoutConfirm" + @cancel="logoutCancel"></u-modal> + </view> + <view class="falseModel"> + <u-modal :show="TemporaryEntryShow" + :title="logoutTitle" + showCancelButton + :content="logoutContent" + @confirm="TemporaryEntryConfirm" + @cancel="TemporaryEntryCancel"></u-modal> + </view> + <u-modal :width='750' :show="showModal" :title="title" @confirm='confrim'> + <view class="collection-form-item"> + <view class="first-line"> + <view class="dispatch-receive"> + <view class="dispatch-dept">{{ activeObj.code || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ activeObj.customerName ||'' }}</view> + </view> + <view class="point-number"> + <text class="order-type">{{ activeObj.productNames?limitString(activeObj.productNames,20,'...'):'' || '' }}</text> + </view> + </view> + <view class="second-line" v-if="activeObj.splicingOrderId"> + <text style="color:red">鎷煎崟</text> + </view> + <view class="second-line"> + + <view class="coal-name"> + <view class="dispatch-dept">{{ activeObj.carNo || '' }}</view> + <view class="black-bar"></view> + <view class="dispatch">{{ activeObj.driver ||'' }}</view> + <view class="black-bar"></view> + <text>{{ activeObj.phone || '' }}</text> + </view> + </view> + <view class="third-line"> + <view class="send-date">{{ activeObj.isEmptyCar?activeObj.isEmptyCar=='0'?'闈炵┖杞﹀嚭鍦�':'绌鸿溅鍑哄満':'闈炵┖杞﹀嚭鍦�' }}</view> + </view> + </view> + </u-modal> </view> </template> @@ -48,44 +299,135 @@ }, data() { return { + door:'', + temporaryPlanId:"", show: false, // 寮瑰嚭鍏ㄩ儴棰嗗彇鎻愮ず + showModal:false, + title:'鎷煎崟', driverBillOfLoadingData:[], + driverBillOfLoadingDatas:[], + driverTemporaryEntry:[], + inspectData:[], isAllSelected:false, form:{}, - ClickLoading:false + carNo:'', + logoutShow: false, + TemporaryEntryShow:false, + logoutTitle: '鎻愮ず', + logoutContent: '鏄惁妫�鏌ュ畬姣�', + previewImageSrc:"", + ClickLoading:false, + activeObj:{}, } }, onShow() { + this.door=uni.getStorageSync('door', this.door) this.init(); }, methods: { + handleOpenChange() { + this.$nextTick(() => { + this.$refs.collapseHeight.init() + }); + this.$nextTick(() => { + this.$refs.collapseHeights.init() + }); + }, + limitString(str, limit, suffix = '...') { + if (str.length <= limit) return str; + return str.slice(0, limit) + suffix; + }, + logoutConfirm() { + uni.showLoading({ title: '鍔犺浇涓�...' }); + this.$reqPost('addCheckLog',{ + carNo:this.form.carNo, + taskId:this.form.id, + taskcode:this.form.code, + }, 'json').then(res => { + if (res.code === 0) { + uni.$u.toast('妫�鏌ユ垚鍔�') + this.form={} + this.ClickLoading = false; + this.TaskCoalList() + this.logoutShow = false; + } else { + uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�') + this.logoutShow = false; + } + }) + }, + TemporaryEntryConfirm(){ + this.$reqPut('temporaryentryinspection',{ + id:this.temporaryPlanId, + }, 'json').then(res => { + if (res.code === 0) { + uni.$u.toast('妫�鏌ユ垚鍔�') + this.form={} + this.ClickLoading = false; + this.show = false; + this.TaskCoalList() + this.TemporaryEntryShow = false; + } else { + uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�') + this.TemporaryEntryShow = false; + } + }) + }, + logoutCancel() { + this.logoutShow = false; + }, yuYueBtnClick(item){ + this.logoutShow = true; + this.inspectData=[] this.form=item - this.show = true; + }, + TemporaryEntryCancel() { + this.TemporaryEntryShow = false; + }, + selectionChange(items){ + const allIds = this.inspectData.map(item => item); + this.isAllSelected = items?.detail.index.length === allIds.length }, init() { this.isAllSelected=false this.TaskCoalList(); this.form={} + this.inspectData=[] + }, + yuYueLiShBtnClick(item){ + this.temporaryPlanId=item.id + this.TemporaryEntryShow = true; }, popClick() { - this.ClickLoading = true; - uni.showLoading({ title: '鍔犺浇涓�...' }); - this.$reqPost('addCheckLog',{ - carNo:this.form.carNo, - taskId:this.form.id, - taskcode:this.form.code, - }, 'json').then(res => { - if (res.code === 0) { - uni.$u.toast('妫�鏌ユ垚鍔�') - this.form={} - this.ClickLoading = false; - this.show = false; - this.TaskCoalList() - } else { - uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�') - } - }) + if(this.isAllSelected==true){ + this.ClickLoading = true; + this.inspectData=this.inspectData.map(item=>{ + return { + ...item, + valve:"閫氳繃" + } + }) + uni.showLoading({ title: '鍔犺浇涓�...' }); + this.$reqPost('addCheckLog',{ + carNo:this.form.carNo, + taskId:this.form.id, + taskcode:this.form.code, + inspectedResult:JSON.stringify(this.inspectData) + }, 'json').then(res => { + if (res.code === 0) { + uni.$u.toast('妫�鏌ユ垚鍔�') + this.form={} + this.ClickLoading = false; + this.inspectData=[] + this.show = false; + this.TaskCoalList() + } else { + uni.$u.toast(res.msg ? res.msg : '妫�鏌ュけ璐�') + } + }) + }else{ + uni.$u.toast('蹇呴』鍏ㄩ儴妫�娴�') + } }, open() {}, close() { @@ -96,17 +438,87 @@ uni.showLoading({ title: '鍔犺浇涓�...' }); - this.$reqGet('getCheckTaskCoal',{flag:1}).then(res => { - uni.hideLoading(); - this.driverBillOfLoadingData = res.data; - }); + if(!this.carNo){ + this.$reqGet('getCheckTaskCoal',{flag:1,door:this.door}).then(res => { + uni.hideLoading(); + this.driverBillOfLoadingData = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }) + this.$reqGet('getTemporaryEntryOutInspectionList',{}).then(res => { + uni.hideLoading(); + this.driverTemporaryEntry = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }); + }else{ + this.$reqGet('getCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => { + uni.hideLoading(); + this.driverBillOfLoadingData = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }); + this.$reqGet('getTemporaryEntryOutInspectionList',{carNo:this.carNo}).then(res => { + uni.hideLoading(); + this.driverTemporaryEntry = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }); + } + if(!this.carNo){ + this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,door:this.door}).then(res => { + uni.hideLoading(); + this.driverBillOfLoadingDatas = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }); + }else{ + this.$reqGet('getAlreadyCheckTaskCoal',{flag:1,carNo:this.carNo,door:this.door}).then(res => { + uni.hideLoading(); + this.driverBillOfLoadingDatas = res.data; + uni.stopPullDownRefresh(); + this.handleOpenChange(); + }); + } }, + onPullDownRefresh() { + this.TaskCoalList() + }, + change(res) { + console.log(res) + }, + search(res) { + console.log(res) + this.TaskCoalList() + }, + clear(res) { + this.carNo="" + }, + custom(res) { + console.log(res) + }, + //鏌ョ湅鎷煎崟 + checkDetail(item){ + this.activeObj = item.splicingOrders ? item.splicingOrders : {}; + this.showModal = true; + + }, + confrim(){ + this.showModal = false; + } } }; </script> <style lang="scss" scoped> + .searchview{ + margin: 20rpx 0; + height: 100rpx; + u-search{ + width: 100rpx; + } + } .receiverPopup { height: vww(110); width: 300rpx; @@ -127,11 +539,8 @@ } } } - .wait-collection { - width: 100%; - height: 600rpx; - } ::v-deep.appointment { + margin-bottom: vww(100); .appointment-description { margin: vww(8) 0; color: #fd1446; @@ -142,31 +551,6 @@ margin-left: vww(5); color: #252525; } - } - @mixin fourthLine { - width: 64%; - height: vww(68); - display: flex; - align-items: center; - position: relative; - left: vww(102); - bottom: vww(3); - - .button-img { - width: vww(122); - height: vww(41); - background: url('https://mx.jzeg.cn:9096/appimg/image/banner/button.png') no-repeat; - background-size: cover; - font-size: 28rpx; - font-weight: 300; - color: #ffffff; - text-align: center; - line-height: vww(40); - - } - } - .fourth-line { - @include fourthLine; } // 琛ㄦ牸 @@ -203,4 +587,188 @@ } } } + .wait-appointment, + .Reserved { + position: relative; + top: vww(-120); + } + @mixin flex { + display: flex; + justify-content: space-between; + align-items: center; + } + .collection-form-item { + margin: 0 vww(15); + width: 95%; + height: 370rpx; + background: #ffffff; + box-shadow: 4rpx 6rpx 25rpx 0rpx rgba(73, 120, 240, 0.15); + border-radius: 20rpx; + overflow: hidden; + @include flex; + flex-direction: column; + position: relative; + align-items: flex-start; + margin-top: vww(10); + + .first-line { + width: 94%; + height: vww(30); + margin: vww(10) vww(16) 0 vww(16); + display: flex; + justify-content: space-between; + + .dispatch-receive { + width: 70%; + display: flex; + justify-content: flex-start; + align-items: center; + + .dispatch-dept { + + display: flex; + align-items: center; + } + + .black-bar { + width: 2rpx; + height: 30rpx; + background: #515151; + margin-left: vww(12); + } + + .dispatch { + margin-left: vww(12); + min-width: vww(50); + } + + } + + .point-number { + width: 33%; + + .order-type { + color: #035cfb; + border-radius: 4rpx; + text-align: center; + } + // text { + // font-size: 24rpx; + // font-weight: 400; + // color: #c78a64; + // } + + // .residue { + // font-size: 40rpx; + // font-weight: 400; + // color: #f81414; + // } + } + } + + .second-line { + width: 100%; + height: vww(30); + margin-left: vww(16); + display: flex; + align-items: center; + justify-content: flex-start; + + .coal-name { + flex-grow: 1; + height: 30rpx; + font-size: 30rpx; + font-weight: 300; + color: #515151; + position: relative; + display: flex; + align-items: center; + + .black-bar { + width: 2rpx; + height: 30rpx; + background: #515151; + margin: 0 vww(12) ; + } + + .coal-type { + margin-left: vww(12); + min-width: vww(50); + height: 30rpx; + line-height: 30rpx; + font-size: 30rpx; + font-weight: 300; + color: #515151; + } + } + } + .third-line { + height: vww(30); + margin-left: vww(15); + display: flex; + justify-content: flex-start; + align-items: center; + .send-date { + margin-left: vww(14); + height: 24rpx; + line-height: 24rpx; + font-size: 28rpx; + font-weight: 300; + color: #515151; + } + } + .fourth-line { + width: 100%; + height: vww(30); + @include flex; + justify-content: flex-start; + position: relative; + bottom: vww(10); + left: 25%; + + .receive, + .forward { + width: vww(123); + height: vww(48); + @include flex; + justify-content: center; + color: #ffffff; + font-size: 28rpx; + position: absolute; + + .button-image { + width: 100%; + height: 100%; + background: url('../../../static/image/banner/button.png') no-repeat; + background-size: cover; + font-size: 28rpx; + font-weight: 300; + color: #ffffff; + text-align: center; + line-height: vww(45); + } + } + + .receive { + left: vww(20); + } + + .forward { + width: vww(106); + left: vww(140); + + .button-image { + width: 100%; + height: 100%; + background: url('../../../static/image/banner/transpartent.png') no-repeat; + background-size: cover; + font-size: 28rpx; + font-weight: 300; + color: #3b56eb; + text-align: center; + line-height: vww(45); + } + } + } + } </style> \ No newline at end of file -- Gitblit v1.9.1