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 | 283 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 208 insertions(+), 75 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 566490d..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 @@ -1,91 +1,143 @@ <!-- 鏌ョ湅鐨瘺鍑�鏄庣粏 --> <template> <view class="main"> + <u-empty mode="data" + icon="http://cdn.uviewui.com/uview/empty/data.png" + textSize="30" + iconSize="1000" + 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;"> - 鐨�</view> + :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;"> - 姣�</view> + :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;"> - 鍑�</view> + :style="{ backgroundImage: `url(${onlineurl}/appimg/image/banner/clean.png)`, backgroundSize: 'cover', backgroundRepeat: 'no-repeat' }"> + 鍑� + </view> <view class="num">{{ item.clean }}</view> </view> </view> <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 - class="count-input"><u--input placeholder="璇疯緭鍏ユ姌鎵g巼" + <view v-if='roleType===4&&!flag' + class="count-input"> + <u--input placeholder="璇疯緭鍏ユ墸娓�" border="bottom" clearable - v-model="item.discount" - @input='v=>discountInputHandle(v,i,item.clean)'></u--input></view> + 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)"></u-tag> + @click="goodsPopoverShow(i)" + v-if='item.breed&&item.spec||roleType===4'></u-tag> </view> - <view class="confirm-button" - v-if='roleType===1'> - <u-button type="primary" - shape="circle" - text="纭" - @click="confirmInput(item)" - :loading="loading" - loading-text="纭"></u-button> + <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> - <view v-if='roleType===1'> - <u-picker :show="show" - :columns="columns" - @cancel='cancel' - @confirm='confirm'></u-picker> + <!-- 鐗╄祫鏄庣粏 --> + <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" + cancelText='鍙栨秷' + :closeOnClickOverlay='true' + @close='productNameClose' + @select="selectClick"></u-action-sheet> </view> + </view> + <view class="confirm-button" + v-if='roleType===4&&!flag'> + <u-button type="primary" + shape="circle" + text="纭" + @click="confirmInput" + :loading="loading" + loading-text="纭"></u-button> </view> </view> </template> <script> - import loginVue from '../../../../login/login.vue'; + 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 + selectIndex: null, + // 鐗╄祫鏄庣粏 + goodsList: [], + goodsShow: false, + goodsIndex: null, + // 浜у搧鍒楄〃 + actionsList: [], + actionShow: false, + actionIndex: null, + onlineurl, + havedInput: false, + flag: false, + orderCode: null, + + modifyProductName: null, + // 鏄惁淇敼 + isModify: false }; }, computed: { @@ -95,10 +147,14 @@ }, 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: { getTakeCoal() { @@ -108,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() { @@ -122,14 +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.showWeigh = this.showWeigh.map(v => { - // return { - // ...v, - // loading: false - // } - // }) + this.orderCode = res.data.orderCode + this.showWeigh = this.coalDetailsData[this.index].tmTaskCoals ? this.coalDetailsData[ + this.index].tmTaskCoals : [], uni.hideLoading(); } else { this.$u.toast('鍔犺浇澶辫触') @@ -137,37 +208,80 @@ } }); }, + getJcProductList() { + this.$reqGet('getJcProductList').then(res => { + if (res.code === 0) { + this.actionsList = res.data.map(v => { + return { + ...v, + name: v.secondCategoryName + v.spec + } + }) + } + }) + }, // 杈撳叆鎶樻墸鐜囧悗鐐瑰嚮纭 - confirmInput(item) { + confirmInput() { this.loading = true - console.log(this.coalDetailsData); - this.$reqPost('updateTmTaskCoalItem', this.coalDetailsData[this.index].tmTaskCoalItems, 'json').then( + 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) { - this.show = true - this.selectIndex = i + // 鐗╄祫鏄庣粏 + goodsPopoverShow(index) { + this.goodsShow = true + this.goodsIndex = index }, - confirm(e) { - this.show = false - this.coalDetailsData[this.index].tmTaskCoalItems[this.selectIndex].level = e.value[0] + goodsNameClose() { + this.goodsShow = false }, - cancel() { - this.show = 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 = index + } + }, + productNameClose() { + this.actionShow = false + }, + selectClick(val) { + 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) { - console.log(value, index); - this.coalDetailsData[this.index].tmTaskCoalItems[index].discountWeight = (Number(value) * clean) / 100 + this.showWeigh[index].cinderWeight = Number(value) + this.showWeigh[index].weight = (clean - (Number(value)).toFixed(2)); } }, } @@ -186,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; @@ -243,6 +358,7 @@ .rate, .weigh { width: 50%; + height: vww(80); display: flex; align-items: center; justify-content: space-around; @@ -250,9 +366,12 @@ .count-input { width: 70%; - // border-bottom: 1px solid rgb(218, 219, 222); - + border-bottom: 1px solid rgb(218, 219, 222); } + } + + .weigh { + justify-content: space-between; } .count { @@ -263,20 +382,34 @@ } .level { - width: 120rpx; + width: 60%; margin-top: 30rpx; margin-left: 80rpx; + display: flex; + justify-content: space-between; } - .confirm-button { + .select-button { + width: 100%; + @include flex; + justify-content: flex-end; + margin-bottom: 40rpx; position: absolute; - bottom: 10rpx; - right: 10rpx; + right: vww(-120); + bottom: vww(-10); /deep/ .u-button { width: 180rpx !important; } } + + } + + .confirm-button { + width: 100%; + @include flex; + justify-content: center; + margin-bottom: 40rpx; } } </style> \ No newline at end of file -- Gitblit v1.9.1