From 9d901b4215323c97a00a068cd962f5c9c04dadfa Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期四, 04 九月 2025 10:15:09 +0800 Subject: [PATCH] 前端 --- admin/src/components/business/OperaOrderDetailWindow.vue | 99 +++++++++++++++++++++++- small-program/pages/packaging-worker/packaging-worker.vue | 6 + small-program/pages/demand-hall/demand-hall.vue | 8 +- small-program/pages/order-details/order-details.vue | 89 +++++++++++++++++++--- small-program/pages/freight/freight.vue | 31 ++++++- 5 files changed, 205 insertions(+), 28 deletions(-) diff --git a/admin/src/components/business/OperaOrderDetailWindow.vue b/admin/src/components/business/OperaOrderDetailWindow.vue index 5a4af7e..8658b5a 100644 --- a/admin/src/components/business/OperaOrderDetailWindow.vue +++ b/admin/src/components/business/OperaOrderDetailWindow.vue @@ -59,8 +59,8 @@ <div class="cont"><span class="label">鍝佺锛�</span> <span class="txt">{{info.categoryName || ''}}</span></div> </div> <div class="line"> - <div class="cont"><span class="label" v-if="info.workType==1">浜烘暟锛�</span> <span class="txt">{{info.priceNum1 || '' }}浜�</span></div> - <div class="cont"><span class="label" v-if="info.workType==0">閲嶉噺锛�</span> <span class="txt">{{info.priceNum1 || '' }}鏂�</span></div> + <div class="cont" v-if="info.workType==1"><span class="label">浜烘暟锛�</span> <span class="txt">{{info.priceNum1 || '' }}浜�</span></div> + <div class="cont" v-if="info.workType==0"><span class="label">閲嶉噺锛�</span> <span class="txt">{{info.priceNum1 || '' }}鏂�</span></div> <div class="cont"><span class="label">鐢ㄥ伐鏃堕棿锛�</span><span class="txt">{{info.startDate|| '' }}-{{info.endDate|| '' }}</span></div> <div class="cont"><span class="label">鐢ㄥ伐澶╂暟锛�</span><span class="txt">{{info.totalDays || 0 }}澶�</span></div> </div> @@ -185,6 +185,22 @@ </div> </div> </div> + <div class="renzheng" v-if="(info.type ===0 || info.type===1)&&(info.status===5|| info.status===4)" > + <div class="info" > + <span class="m10">璐圭敤纭</span> + </div> + <div class="detail" style=" "> + <div class="line"> + <div class="cont"><span class="label">瀹為檯{{feeFrom.priceParam1.name }}锛�</span><span class="txt">{{info.priceNum1 || 0 }}{{feeFrom.priceParam1.unit }}</span></div> + <div class="cont" v-if="feeFrom.priceParam2.name!=null"><span class="label">瀹為檯{{feeFrom.priceParam2.name }}锛�</span><span class="txt">{{info.priceNum2 || 0 }}{{feeFrom.priceParam2.unit }}</span></div> + <div class="cont" :style="feeFrom.priceParam2.name!=null?'':'flex: 2'"><span class="label">鍏朵粬璐圭敤锛�</span> <span class="txt">{{((info.confirmOtherFee||0)/100).toFixed(2) }}鍏�</span></div> + </div> + <div class="line"> + <div class="cont"><span class="label">瀹為檯鎬昏垂鐢細</span><span class="txt yellowbtn">{{((info.estimatedAccount||0)/100).toFixed(2) }}鍏�</span></div> + <div class="cont" style="flex: 2"><span class="label">澶囨敞锛�</span><span class="txt">{{info.confirmFeeRemark || '' }}</span></div> + </div> + </div> + </div> <div class="renzheng" > <div class="info" > <span class="m10">鍙戝崟鏂逛俊鎭�</span> @@ -248,9 +264,19 @@ data () { return { id: '', - wayList:[], + wayList: [], info: {}, - loading: false + loading: false, + feeFrom: { + priceParam1: { + name: null, + unit: null + }, + priceParam2: { + name: null, + unit: null + } + } } }, methods: { @@ -259,7 +285,17 @@ this.visible = true this.tableData2 = [] this.id = row.id - this.wayList=[] + this.wayList = [] + this.feeFrom = { + priceParam1: { + name: null, + unit: null + }, + priceParam2: { + name: null, + unit: null + } + } this.getData() }, getData () { @@ -267,9 +303,10 @@ .then(res => { this.info = res this.visible = true - if(this.info.wayInfo){ + if (this.info.wayInfo) { this.wayList = JSON.parse(this.info.wayInfo) } + this.initPriceNumParam() console.log(this.wayList) }) }, @@ -277,7 +314,7 @@ }, showLogList () { - this.$refs.orderProgress.open('璁㈠崟娴佽浆鏃ュ織', this.info.orderLogList||[]) + this.$refs.orderProgress.open('璁㈠崟娴佽浆鏃ュ織', this.info.orderLogList || []) }, getScoreLevel (num) { if (this.info.commentLevel && this.info.commentLevel >= num) { @@ -312,6 +349,54 @@ }) }) }) + }, + initPriceNumParam () { + this.feeFrom.priceParam1.name = null + this.feeFrom.priceParam1.unit = null + this.feeFrom.priceParam2.name = null + this.feeFrom.priceParam2.unit = null + if (this.info.type === 0 && this.info.workType === 1) { + // 鍒嗘嫞宸� + this.feeFrom.priceParam1.name = '鐢ㄥ伐澶╂暟锛�' + this.feeFrom.priceParam1.unit = '澶�' + this.feeFrom.priceParam2.name = '鐢ㄥ伐浜烘暟锛�' + this.feeFrom.priceParam2.unit = '浜�' + } else if (this.info.type === 0 && this.info.workType === 0) { + // 閲囨憳宸� + this.feeFrom.priceParam1.name = '閲囨憳閲嶉噺锛�' + this.feeFrom.priceParam1.unit = '鏂�' + this.feeFrom.priceParam2.name = null + this.feeFrom.priceParam2.unit = null + } else if (this.info.type === 0 && this.info.workType === 2) { + // 鍖呰宸� + if (this.info.carType === 0) { + // 鎸夊ぉ + this.feeFrom.priceParam1.name = '鐢ㄥ伐澶╂暟' + this.feeFrom.priceParam1.unit = '澶�' + this.feeFrom.priceParam2.name = '鐢ㄥ伐浜烘暟' + this.feeFrom.priceParam2.unit = '浜�' + } else if (this.info.carType === 1) { + // 鎸夊皬鏃� + this.feeFrom.priceParam1.name = '宸ヤ綔鏃堕暱' + this.feeFrom.priceParam1.unit = '鏃�' + this.feeFrom.priceParam2.name = '鐢ㄥ伐浜烘暟' + this.feeFrom.priceParam2.unit = '浜�' + } else if (this.info.carType === 1) { + // 鎸夊皬鏃� + this.feeFrom.priceParam1.name = '鍖呰閲嶉噺' + this.feeFrom.priceParam1.unit = '鏂�' + this.feeFrom.priceParam2.name = null + this.feeFrom.priceParam2.unit = null + } + } else if (this.info.type === 1 && this.info.carType === 0) { + // 杩愯揣鍗� 鎸夊ぉ鏁� + this.feeFrom.priceParam1.name = '鐢ㄨ溅澶╂暟' + this.feeFrom.priceParam1.unit = '澶�' + } else if (this.info.type === 1 && this.info.carType === 1) { + // 杩愯揣鍗� 鎸夋鏁� + this.feeFrom.priceParam1.name = '鐢ㄨ溅娆℃暟' + this.feeFrom.priceParam1.unit = '娆�' + } } } } diff --git a/small-program/pages/demand-hall/demand-hall.vue b/small-program/pages/demand-hall/demand-hall.vue index 6bbf0a1..b92e48e 100644 --- a/small-program/pages/demand-hall/demand-hall.vue +++ b/small-program/pages/demand-hall/demand-hall.vue @@ -107,9 +107,9 @@ <view class="eidt-phone" v-if="[2].includes(item.status)">鑱旂郴甯堝倕</view> <view class="eidt-phone" v-if="item.status === 4 && item.commentStatus === 0">璇勪环璁㈠崟</view> <view class="eidt-btn" v-if="[0,1,2].includes(item.status) && item.type !== 2 && item.isUpdate!=1" @click.stop="jumpEdit(item)">淇敼璁㈠崟</view> - <view class="eidt-btn" v-if="(item.type == 2 && item.status === 0)" @click.stop="jumpEdit(item)">缁х画鏀粯</view> + <view class="eidt-btn" v-if="(item.type == 2 && item.status === 0)" @click.stop="jumpDesc(item,1)">缁х画鏀粯</view> <!-- <view class="eidt-btn" v-if="item.status === 2" @click.stop="startJobs(item.id)">寮�濮嬩綔涓�</view> --> - <view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item)">绔嬪嵆鏀粯</view> + <view class="eidt-btn" v-if="item.type != 2 && item.status === 5" @click.stop="jumpDesc(item,2)">绔嬪嵆鏀粯</view> <view class="eidt-btn" v-if="item.type == 2 && item.status === 3" @click.stop="jumpDesc(item)">瀹屾垚浣滀笟</view> </view> </view> @@ -332,9 +332,9 @@ }) }, - jumpDesc(item) { + jumpDesc(item,flag) { uni.navigateTo({ - url: `/pages/order-details/order-details?id=${item.id}` + url: `/pages/order-details/order-details?id=${item.id}&flag=${flag}` }) }, // 淇敼 diff --git a/small-program/pages/freight/freight.vue b/small-program/pages/freight/freight.vue index 20d0bfc..9951efe 100644 --- a/small-program/pages/freight/freight.vue +++ b/small-program/pages/freight/freight.vue @@ -91,12 +91,15 @@ <view class="list-item-row"> <view class="list-item-row-label">杩愯緭閲嶉噺/鏁伴噺<b>*</b></view> <view class="list-item-row-val"> - <input type="text" style="flex: 1;" v-model="form.transportNum" placeholder="璇疯緭鍏�" /> - <view @click="show4 = true" style="width: 100rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end;"> + <input type="text" style="flex: 3;" v-model="form.transportNum" placeholder="璇疯緭鍏�" /> + <!-- <view @click="show4 = true" style="width: 100rpx; flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end;"> <text>{{form.transportUnit}}</text> <u-icon name="arrow-down" color="#111111" size="16"></u-icon> - </view> + </view> --> + <view style="flex: 1;" :class="form.transportUnit ==='涓�' ? 'val-cate-item val-active' : 'val-cate-item'" @click="form.transportUnit = '涓�'">涓�</view> + <view style="flex: 1;" :class="form.transportUnit ==='鏂�' ? 'val-cate-item val-active' : 'val-cate-item'" @click="form.transportUnit = '鏂�'">鏂�</view> </view> + </view> <view class="list-item-row" v-if="viewStatus"> <view class="list-item-row-label">闇�姹傝ˉ鍏�</view> @@ -438,7 +441,7 @@ }).then(res => { if (res.code == 200) { uni.showToast({ - title: '缂栬緫鎴愬姛', + title: '淇敼鎴愬姛', icon: 'success', mask: true, duration: 2000 @@ -552,6 +555,7 @@ if ([2].includes(type)) { this.form.latitude = res.latitude this.form.longitude = res.longitude + this.form.location = res.name || res.address this.form.address = res.name || res.address } else if (type === 3) { this.form.locationEnd = res.name || res.address @@ -989,6 +993,25 @@ font-size: 30rpx; color: #111111; } + .val-active { + background: #00BC12 !important; + color: #ffffff !important; + } + .val-cate-item { + width: 208rpx; + height: 72rpx; + line-height: 72rpx; + text-align: center; + font-weight: 400; + font-size: 28rpx; + color: #333333; + background: #EEEEEE; + border-radius: 36rpx; + margin-right: 24rpx; + &:last-child { + margin: 0 !important; + } + } } } } diff --git a/small-program/pages/order-details/order-details.vue b/small-program/pages/order-details/order-details.vue index 93e9dea..eadd734 100644 --- a/small-program/pages/order-details/order-details.vue +++ b/small-program/pages/order-details/order-details.vue @@ -9,7 +9,7 @@ 璁㈠崟淇℃伅宸蹭慨鏀癸紝璇峰強鏃剁‘璁わ紝{{timeInfo}}鍚庡皢鑷姩鍚屾剰 </view> <view class="order-head-info" v-if="isPushlishor && info.type ==2 && info.status ==0" style="color: red;"> - 鍓╀綑鏀粯鏀粯鏃堕棿锛寋{timeInfo1}}鍚庡皢鑷姩鍙栨秷 + 鍓╀綑鏀粯鏃堕棿锛寋{timeInfo1}}鍚庡皢鑷姩鍙栨秷 </view> <view class="order-head-info" v-else >{{getStatusInfo()}}</view> </view> @@ -94,11 +94,11 @@ <view class="order-info-price"> <view class="price-row" v-if="feeFrom.priceParam1.name"> <view class="price-row-label">{{feeFrom.priceParam1.name}}</view> - <view class="price-row-val" > {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view> + <view class="price-row-val" > {{(info.originPriceNum1||0) }}{{feeFrom.priceParam1.unit}} </view> </view> <view class="price-row" v-if="feeFrom.priceParam2.name"> <view class="price-row-label">{{feeFrom.priceParam2.name}}</view> - <view class="price-row-val" > {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view> + <view class="price-row-val" > {{(info.originPriceNum2||0) }}{{feeFrom.priceParam2.unit}} </view> </view> <view class="price-row"> <view class="price-row-label">璐圭敤鏍囧噯</view> @@ -112,17 +112,65 @@ <view class="price-row"> <view class="price-row-label">棰勪及鎬昏垂鐢�(鍏�)</view> <view class="price-row-val" :style="{color: userInfo.id !== info.acceptMemberId ? '#FF0000' : ''}"> - 楼{{((info.estimatedAccount||0)/100).toFixed(2) }} + 楼{{((info.originEstimatedAccount||0)/100).toFixed(2) }} </view> </view> - - <view class="price-row" v-if="isAcceptor"> + <view class="price-row" v-if="isAcceptor&&(info.type==2 || (info.status!=5&& info.status!=4))"> <view class="price-row-label">瀹為檯鍒拌处(鍏�)</view> <view class="price-row-val" style="color: #FF0000;"> - 楼{{((info.estimatedAccount * (1 - (info.platformRata || 0))) / 100).toFixed(2) }} + 楼{{((info.receiveAccount || 0) / 100).toFixed(2) }} </view> </view> </view> + <template v-if="info.type!=2&&(info.status==5|| info.status==4)"> + <view class="order-info-x"></view> + <view class="order-info-supplement" > + <view class="order-info-supplement-title">宸茬‘璁よ垂鐢�</view> + </view> + <view class="order-info-price"> + <view class="price-row" v-if="feeFrom.priceParam1.name"> + <view class="price-row-label">瀹為檯{{feeFrom.priceParam1.name}}</view> + <view class="price-row-val" > {{(info.priceNum1||0) }}{{feeFrom.priceParam1.unit}} </view> + </view> + <view class="price-row" v-if="feeFrom.priceParam2.name"> + <view class="price-row-label">瀹為檯{{feeFrom.priceParam2.name}}</view> + <view class="price-row-val" > {{(info.priceNum2||0) }}{{feeFrom.priceParam2.unit}} </view> + </view> + <view class="price-row" > + <view class="price-row-label">鍏朵粬璐圭敤</view> + <view class="price-row-val" >楼{{((info.confirmOtherFee||0)/100).toFixed(2) }} </view> + </view> + <view class="price-row"> + <view class="price-row-label">瀹為檯鎬昏垂鐢�(鍏�)</view> + <view class="price-row-val" style="color: #FF0000"> + 楼{{((info.estimatedAccount||0)/100).toFixed(2) }} + </view> + </view> + <view class="price-row" > + <view class="price-row-label">澶囨敞</view> + <view class="price-row-val" > + {{ info.confirmFeeRemark ||'' }} + </view> + </view> + </view> + </template> + <template v-if="info.type==2 || info.status==4"> + <view class="order-info-x"></view> + <view class="order-info-supplement" > + <view class="order-info-supplement-title">瀹為檯璐圭敤</view> + </view> + <view class="order-info-price"> + <view class="price-row"> + <view class="price-row-label" v-if="isPushlishor">瀹為檯鏀粯</view> + <view class="price-row-val" style="color: #FF0000;">楼{{((info.payAccount||0)/100).toFixed(2) }} </view> + </view> + <view class="price-row" v-if="isAcceptor && info.status==4" > + <view class="price-row-label">瀹為檯鍒拌处</view> + <view class="price-row-val" style="color: #FF0000;">楼{{((info.receiveAccount||0)/100).toFixed(2) }} </view> + </view> + + </view> + </template> </view> <view class="order-info" v-if="info.commentStatus ===1"> <view class="order-info-title"> @@ -169,6 +217,10 @@ <text>寮�濮嬫椂闂达細</text> <text>{{info.workStartTime||'-'}}</text> </view> + <view class="order-info-list-item" v-if="info.confirmFeeTime"> + <text>璐圭敤纭鏃堕棿锛�</text> + <text>{{info.confirmFeeTime||'-'}}</text> + </view> <view class="order-info-list-item" v-if="info.finishTime"> <text>瀹屾垚鏃堕棿锛�</text> <text>{{info.finishTime||'-'}}</text> @@ -206,7 +258,6 @@ </view> <view style="width: 100%; height: env(safe-area-inset-bottom);"></view> </view> - <u-modal title="娓╅Θ鎻愮ず" :show="show" @@ -316,7 +367,7 @@ <view class="querenfee-c"> <view class="querenfee-c-info1">鍏朵粬璐圭敤锛�</view> <view class="querenfee-c-input"> - <input type="number" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="璇疯緭鍏�" /> + <input type="digit" v-model="feeFrom.confirmOtherFee" placeholder-style="color: #999999; font-size: 56rpx; font-weight: 500;" placeholder="璇疯緭鍏�" /> </view> <text class="querenfee-c-danw">鍏�</text> </view> @@ -388,6 +439,7 @@ show5:false, show6:false, show7:false, + actionFlag:null, timeInfo:'00:00:00', timeInfo1:'00:00:00', lessTime:null, @@ -421,6 +473,7 @@ console.log(options) var id = options.id this.id = id + this.actionFla=options.flag }, onShow(options) { this.getOrderData() @@ -500,17 +553,29 @@ icon: 'none' }) } + uni.requestSubscribeMessage({ + tmplIds: ['3rOz7DAnawrkKDM8b5_XW4FLivISWYov6d7QSC4ORsg'], + success(res) { + that.doConfirmFeeBiz() + }, + fail(err) { + that.doConfirmFeeBiz() + } + }) + }, + doConfirmFeeBiz(){ + var that = this this.$u.api.confirmFee({ confirmFeeRemark: this.feeFrom.confirmFeeRemark, - confirmOtherFee: this.feeFrom.confirmOtherFee, + confirmOtherFee: (this.feeFrom.confirmOtherFee||0)*100, orderId: this.info.id, priceNum1: this.feeFrom.priceNum1, priceNum2: this.feeFrom.priceNum2 }).then(res => { if (res.code === 200) { - this.show7 = false + that.show7 = false uni.showToast({ title: '鎿嶄綔鎴愬姛', icon: 'success', duration: 2000 }); - this.getOrderData() + that.getOrderData() } }) }, diff --git a/small-program/pages/packaging-worker/packaging-worker.vue b/small-program/pages/packaging-worker/packaging-worker.vue index 9998066..85f3044 100644 --- a/small-program/pages/packaging-worker/packaging-worker.vue +++ b/small-program/pages/packaging-worker/packaging-worker.vue @@ -251,12 +251,16 @@ if (!this.form.categoryId) { return uni.showToast({ title: '璇烽�夋嫨鍒嗘嫞鍝佺', icon: 'none' }) } + if (this.form.carType !=0 && !this.form.priceNum1) { + var t = this.form.carType ==1?"宸ヤ綔鏃堕暱":"鍖呰閲嶉噺" + return uni.showToast({ title: '璇疯緭鍏�'+t, icon: 'none' }) + } if (!this.form.priceNum2) { return uni.showToast({ title: '璇疯緭鍏ョ敤宸ユ暟閲�', icon: 'none' }) } if (!this.form.price) { return uni.showToast({ title: '璇疯緭鍏ヨ垂鐢ㄦ爣鍑�', icon: 'none' }) - } + } if (!this.form.linkPhone) { return uni.showToast({ title: '璇疯緭鍏ヨ仈绯荤數璇�', icon: 'none' }) } -- Gitblit v1.9.3