From 837c21ced9ed0aafe17a7c0c16975a1b6731eb9d Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期五, 07 七月 2023 11:30:37 +0800 Subject: [PATCH] 验质功能修改,websocket优化 --- pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue | 230 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 154 insertions(+), 76 deletions(-) diff --git a/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue b/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue index cdd4203..dcb00fb 100644 --- a/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue +++ b/pages/driver-page/driver-index/bill-of-lading-details/weighDetail/weighDetail.vue @@ -8,25 +8,25 @@ v-if="showWeigh.length===0"></u-empty> <view class="main-block" v-for="(item,i) in showWeigh" - :key="i"> + :key="item.id"> <view class="weigh-item"> <view class="item"> <view class="concrete" - style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/skin.png') no-repeat;background-size: cover;"> + :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/skin.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }"> 鐨� </view> <view class="num">{{ item.skin }}</view> </view> <view class="item"> <view class="concrete" - style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/hair.png') no-repeat;background-size: cover;"> + :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/hair.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }"> 姣� </view> <view class="num">{{ item.hair }}</view> </view> <view class="item"> <view class="concrete" - style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/clean.png') no-repeat;background-size: cover;"> + :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/clean.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }"> 鍑� </view> <view class="num">{{ item.clean }}</view> @@ -35,43 +35,59 @@ <view class="discount"> <view class="rate"> <view class="label-text"> - 鎶樻墸鐜� + 鎵f福 </view> - <view v-if='roleType!==1' - class="count">{{ item.discount }}% - </view> - <view v-else + <view v-if='roleType===4&&!flag' class="count-input"> - <u--input placeholder="璇疯緭鍏ユ姌鎵g巼" + <u--input placeholder="璇疯緭鍏ユ墸娓�" border="bottom" clearable - v-model="item.discount" + v-model="item.cinderWeight" @input='v=>discountInputHandle(v,i,item.clean)'></u--input> + </view> + <view v-else-if='flag' + class="count">{{ item.cinderWeight }} </view> </view> <view class="weigh"> <view class="label-text"> - 鎶樻墸鍚庨噸閲� + 鎵f福鍚庡噣閲� </view> - <view class="count">{{ item.discountWeight }}</view> + <view class="count">{{ item.weight }}</view> </view> </view> - <view class="level"> - <u-tag :text="item.level||'璇烽�夋嫨'" + <view class="level" + v-if='!flag'> + <view class="" + style="width: 140rpx;"> + <u--text text="鐗╄祫鏄庣粏" + size='32'></u--text> + </view> + <u-tag :text="item.breed+item.spec||item.modifygoodsName||'鏆傛棤'" plain - @click="popoverShow(i)" - v-if='item.level||roleType===1'></u-tag> - <u-tag :text="item.productName||'璇烽�夋嫨'" - plain - @click="productNamePopoverShow(i)" - v-if='item.level||roleType===1'></u-tag> + @click="goodsPopoverShow(i)" + v-if='item.breed&&item.spec||roleType===4'></u-tag> </view> - <view v-if='roleType===1'> - <u-picker :show="show" - :columns="columns" - @cancel='cancel' - @confirm='confirm'></u-picker> + <view class="level" + v-if='item.modifygoodsName||flag'> + <view style="width: 140rpx;"> + <u--text text="浜у搧鍚嶇О" + size='32'></u--text> + </view> + <view v-if="showWeighCopy[i].modifyProductName||item.breed&&item.spec"> + <u-tag :text="!flag?showWeighCopy[i].modifyProductName:item.breed+item.spec" + plain + @click="productNamePopoverShow(i)"></u-tag> + </view> </view> + <!-- 鐗╄祫鏄庣粏 --> + <u-action-sheet :actions="goodsList" + :show="goodsShow" + cancelText='鍙栨秷' + :closeOnClickOverlay='true' + @close='goodsNameClose' + @select="goodsselectClick"></u-action-sheet> + <!-- 浜у搧鍒楄〃 --> <view class=""> <u-action-sheet :actions="actionsList" :show="actionShow" @@ -82,7 +98,7 @@ </view> </view> <view class="confirm-button" - v-if='roleType===1'> + v-if='roleType===4&&!flag'> <u-button type="primary" shape="circle" text="纭" @@ -94,25 +110,34 @@ </template> <script> + import { onlineurl } from '@/api/request.js' export default { data() { return { orderPlanId: "", - index: null, coalDetailsData: {}, showWeigh: [], + showWeighCopy: [], discountrate: "", loading: false, show: false, - columns: [ - ['杞昏川', '涓川', '閲嶈川'] - ], - level: '璇烽�夋嫨', selectIndex: null, + // 鐗╄祫鏄庣粏 + goodsList: [], + goodsShow: false, + goodsIndex: null, // 浜у搧鍒楄〃 actionsList: [], actionShow: false, - actionIndex: null + actionIndex: null, + onlineurl, + havedInput: false, + flag: false, + orderCode: null, + + modifyProductName: null, + // 鏄惁淇敼 + isModify: false }; }, computed: { @@ -122,10 +147,13 @@ }, onLoad(params) { this.orderPlanId = params.orderPlanId ? params.orderPlanId : '' - this.index = params.index ? params.index : '' + this.flag = params.flag ? params.flag : false }, onShow() { this.roleType === 1 ? this.GetOrderPlan() : this.getTakeCoal() + if (this.orderCode) { + this.getMaterialDetailByOrderCode() + } this.getJcProductList() }, methods: { @@ -136,13 +164,33 @@ this.$reqGet('getTakeCoal', { takeCoalId: this.orderPlanId }).then(res => { if (res.code == 0) { this.coalDetailsData = res.data; + this.orderCode = res.data.orderCode this.showWeigh = this.coalDetailsData.tmTaskCoalItems ? this.coalDetailsData - .tmTaskCoalItems : [], - uni.hideLoading() + .tmTaskCoalItems : []; + this.showWeigh = this.showWeigh.map(v => { + return { + ...v, + modifyProductName: '', + modifygoodsName: '' + + } + }) + this.showWeighCopy = JSON.parse(JSON.stringify(this.showWeigh)) + uni.hideLoading() } else { this.$u.toast('鍔犺浇澶辫触') uni.hideLoading() } + }).then(() => { + this.$reqGet('getMaterialDetailByOrderCode', { orderCode: this.orderCode }).then(r => { + this.goodsList = r.data.map(v => { + return { + ...v, + name: v.breed + v.spec + } + }) + uni.hideLoading() + }) }) }, GetOrderPlan() { @@ -150,8 +198,9 @@ this.$reqGet('GetOrderPlan').then(res => { if (res.data) { this.coalDetailsData = res.data; - this.showWeigh = this.coalDetailsData[this.index].tmTaskCoalItems ? this.coalDetailsData[ - this.index].tmTaskCoalItems : [], + this.orderCode = res.data.orderCode + this.showWeigh = this.coalDetailsData[this.index].tmTaskCoals ? this.coalDetailsData[ + this.index].tmTaskCoals : [], uni.hideLoading(); } else { this.$u.toast('鍔犺浇澶辫触') @@ -165,7 +214,7 @@ this.actionsList = res.data.map(v => { return { ...v, - name: v.productName + name: v.secondCategoryName + v.spec } }) } @@ -174,49 +223,65 @@ // 杈撳叆鎶樻墸鐜囧悗鐐瑰嚮纭 confirmInput() { this.loading = true + this.showWeigh = this.showWeigh.map((v, i) => { + return { + ...v, + breed: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].breed : v.breed, + spec: this.showWeighCopy[i].modifyProductName ? this.showWeighCopy[i].spec : v.spec + } + }) this.$reqPost('updateTmTaskCoalItem', this.showWeigh, 'json').then( res => { if (res.code == 0) { this.loading = false - this.$u.toast('鎿嶄綔鎴愬姛') + this.$u.toast('鎿嶄綔鎴愬姛,鍗冲皢杩斿洖涓婁竴椤�') + setTimeout(() => { + uni.navigateBack({ + delta: 1 + }) + }, 800) } else { this.loading = false this.$u.toast('鎿嶄綔澶辫触') } }) }, - // 閫夋嫨璐ㄩ噺 - popoverShow(i) { - if (this.roleType === 1) { - this.show = true - this.selectIndex = i - } + // 鐗╄祫鏄庣粏 + goodsPopoverShow(index) { + this.goodsShow = true + this.goodsIndex = index }, - // 閫夋嫨浜у搧 - productNamePopoverShow(i) { - if (this.roleType === 1) { + goodsNameClose() { + this.goodsShow = false + }, + goodsselectClick(val) { + this.showWeigh[this.goodsIndex].modifygoodsName = val.name + this.showWeigh[this.goodsIndex].itemId = val.itemId + this.showWeigh[this.goodsIndex].num = val.num + this.showWeigh[this.goodsIndex].numUnit = val.numUnit + this.showWeigh[this.goodsIndex].remark = val.remark + this.showWeigh[this.goodsIndex].breed = val.breed + this.showWeigh[this.goodsIndex].spec = val.spec + }, + // 浜у搧鍒楄〃 + productNamePopoverShow(index) { + if (this.roleType === 4 && !this.flag) { this.actionShow = true - this.actionIndex = i + this.actionIndex = index } - }, - confirm(e) { - this.show = false - this.showWeigh[this.selectIndex].level = e.value[0] - }, - cancel() { - this.show = false }, productNameClose() { this.actionShow = false }, selectClick(val) { - console.log(this.showWeigh); - this.showWeigh[this.actionIndex].productName = val.productName - this.showWeigh[this.actionIndex].productId = val.id + this.showWeighCopy[this.actionIndex].modifyProductName = val.name + this.showWeighCopy[this.actionIndex].breed = val.secondCategoryName + this.showWeighCopy[this.actionIndex].spec = val.spec }, // 鎶樻墸鐜囪緭鍏� discountInputHandle(value, index, clean) { - this.showWeigh[index].discountWeight = (Number(value) * clean) / 100 + this.showWeigh[index].cinderWeight = Number(value) + this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2)); } }, } @@ -235,16 +300,17 @@ } .main { - width: 100%; - height: 100vh; + width: 96%; + height: 100%; + min-height: 400rpx; background-color: #fff; - margin: 0 auto; + margin: 10rpx auto; display: flex; flex-direction: column; .main-block { width: 690rpx; - height: 360rpx; + min-height: 360rpx; margin: vww(20) auto; padding: vww(5); background: #ffffff; @@ -292,6 +358,7 @@ .rate, .weigh { width: 50%; + height: vww(80); display: flex; align-items: center; justify-content: space-around; @@ -300,8 +367,11 @@ .count-input { width: 70%; border-bottom: 1px solid rgb(218, 219, 222); - } + } + + .weigh { + justify-content: space-between; } .count { @@ -312,26 +382,34 @@ } .level { - width: 40%; - margin-top: 30 rpx; - margin-left: 80 rpx; + width: 60%; + margin-top: 30rpx; + margin-left: 80rpx; display: flex; justify-content: space-between; + } + + .select-button { + width: 100%; + @include flex; + justify-content: flex-end; + margin-bottom: 40rpx; + position: absolute; + right: vww(-120); + bottom: vww(-10); + + /deep/ .u-button { + width: 180rpx !important; + } } } .confirm-button { - // position: relative; - // bottom: 10rpx; - // right: 10rpx; width: 100%; @include flex; justify-content: center; - - /deep/ .u-button { - width: 180 rpx !important; - } + margin-bottom: 40rpx; } } </style> \ No newline at end of file -- Gitblit v1.9.1