From e755ab6c6edddf4accb51e241e6ec04c27cea091 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 16 九月 2025 11:35:07 +0800
Subject: [PATCH] 前端
---
small-program/pages/demand-hall/demand-hall.vue | 256 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 187 insertions(+), 69 deletions(-)
diff --git a/small-program/pages/demand-hall/demand-hall.vue b/small-program/pages/demand-hall/demand-hall.vue
index 635bcbd..49f3a7c 100644
--- a/small-program/pages/demand-hall/demand-hall.vue
+++ b/small-program/pages/demand-hall/demand-hall.vue
@@ -6,7 +6,6 @@
<text>鎴戠殑璁㈠崟</text>
</view>
</view>
-
<!-- 鏈櫥褰� -->
<view class="index-wu" v-if="!isLogin">
<image src="/static/icon/default_login@2x.png" mode="widthFix"></image>
@@ -18,38 +17,41 @@
<template v-else>
<!-- 鍙戝崟鏂� -->
<view class="index-labs" v-if="typeViewId === 0" :style="{ top: statusbarHeight + navHeight + 'px' }">
- <scroll-view scroll-x class="scroll-view_H">
- <view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :key="index" @click="clickOrderType(item.id)">
+ <scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status">
+ <view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list1" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)">
{{item.name}}
- <view class="index-labs-row-x" v-if="item.id === status"></view>
+ <view class="index-labs-row-x" v-if=" item.id === status"></view>
</view>
</scroll-view>
</view>
<!-- 鎺ュ崟鏂� -->
<view class="index-labs" v-if="typeViewId === 1" :style="{ top: statusbarHeight + navHeight + 'px' }">
- <scroll-view scroll-x class="scroll-view_H">
- <view :class="item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :key="index" @click="clickOrderType(item.id)">
+ <scroll-view scroll-x class="scroll-view_H" :scroll-into-view="'view'+status">
+ <view :class=" item.id === status ? 'index-labs-row active' : 'index-labs-row'" v-for="(item, index) in list" :id="'view'+item.id" :key="item.id" @click="clickOrderType(item.id)">
{{item.name}}
- <view class="index-labs-row-x" v-if="item.id === status"></view>
+ <view class="index-labs-row-x" v-if=" item.id === status "></view>
</view>
</scroll-view>
</view>
<!-- 鍙戝崟鏂� -->
<view class="index-list" v-if="typeViewId === 0">
- <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)">
+ <view class="index-list-wu" v-if="orderList.length === 0">
+ <text>宸插姞杞藉叏閮ㄦ暟鎹�</text>
+ </view>
+ <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else>
<view class="index-list-item-head">
<view class="index-list-item-head-l">
<view class="xoam"></view>
<text v-if="item.type === 0 && item.workType === 0">鐢ㄥ伐鍗� - 閲囨憳宸�</text>
<text v-else-if="item.type === 0 && item.workType === 1">鐢ㄥ伐鍗� - 鍒嗘嫞宸�</text>
<text v-else-if="item.type === 0 && item.workType === 2">鐢ㄥ伐鍗� - 鍖呰宸�</text>
- <text v-else-if="item.type === 1">杩愯揣鍗�-{{item.categoryName}}-{{item.carUnit}}</text>
+ <text v-else-if="item.type === 1">杩愯揣鍗� - {{item.categoryName}}</text>
<text v-else-if="item.type === 2">璁㈤鍗�</text>
</view>
- <view class="index-list-item-head-r" v-if="item.status === 1">寰呮帴鍗曟柟鎺ュ崟</view>
+ <view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">寰呮敮浠�</view>
+ <view class="index-list-item-head-r" v-if="item.status === 1">寰呮帴鍗�</view>
<view class="index-list-item-head-r" v-if="item.status === 2">宸叉帴鍗�</view>
<view class="index-list-item-head-r" v-if="item.status === 3">杩涜涓�</view>
- <view class="index-list-item-head-r" v-if="item.status === 2 && item.isUpdate === 1">宸蹭慨鏀癸紝寰呮帴鍗曟柟纭</view>
<view class="index-list-item-head-r hui" v-if="item.status === 4 && item.commentStatus !== 0">宸插畬鎴�</view>
<view class="index-list-item-head-r hui" v-if="item.status === 99">宸插彇娑�</view>
<view class="index-list-item-head-r" v-if="item.status === 4 && item.commentStatus === 0">寰呰瘎浠�</view>
@@ -58,13 +60,19 @@
{{item.categoryName}}锝渰{item.priceNum1}}鏂�
</view>
<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
- {{item.categoryName}}锝渰{item.priceNum1}}浜�
+ {{item.categoryName}}锝渰{item.priceNum2}}浜�
</view>
- <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
- {{item.categoryName}}锝渰{item.priceNum1}}浜�
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0">
+ {{item.categoryName}}锝渰{item.priceNum1}}澶� | {{item.priceNum2}}浜�
+ </view>
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1">
+ {{item.categoryName}}锝渰{item.priceNum1}}灏忔椂 | {{item.priceNum2}}浜�
+ </view>
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2">
+ {{item.categoryName}}锝渰{item.priceNum1}}鏂� | {{item.priceNum2}}浜�
</view>
<view class="index-list-item-info" v-if="item.type === 1">
- {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}澶�
+ {{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}{{item.carType === 0?"澶�":"娆�"}}
</view>
<view class="index-list-item-info" v-if="item.type === 2">
{{item.wayInfoCopy}}
@@ -88,38 +96,50 @@
<text>{{item.startDate}} 鑷� {{item.endDate}}锛坽{item.totalDays}}澶╋級</text>
</view>
</template>
- <view class="index-list-item-price">
- <text>棰勪及锛�</text>
- <text>楼{{item.estimatedAccount / 100}}</text>
+ <view class="index-list-item-price">
+ <text v-if="item.status==4 || item.type==2">宸叉敮浠橈細</text>
+ <text v-if="item.status!=4&& item.type!=2">棰勪及锛�</text>
+ <text>楼{{item.payAccount / 100}}</text>
</view>
<view class="eidt">
- <view></view>
+ <view>
+ <view class="eidt-tips" v-if="item.status === 2 && item.isUpdate == 1"><text>宸蹭慨鏀癸紝寰呮帴鍗曟柟纭</text></view>
+ <view class="eidt-tips" v-if="item.status === 5">
+ <image src="/static/icon/ic_tip@2x.png" mode="widthFix"></image>
+ <text>鎺ュ崟鏂瑰凡纭璐圭敤锛岃鏀粯</text>
+ </view>
+ </view>
<view class="eidt-right">
<view class="eidt-close" v-if="[0,1,2].includes(item.status)" @click.stop="orderId = item.id, show = true">鍙栨秷璁㈠崟</view>
<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" @click.stop="jumpEdit(item)">淇敼璁㈠崟</view>
- <view class="eidt-btn" v-if="(item.type === 2 && item.status === 0) || (item.type === 2 && item.status === 3)" @click.stop="jumpEdit(item)">缁х画鏀粯</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="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.status === 3" @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>
</view>
</view>
<!-- 鎺ュ崟鏂� -->
<view class="index-list" v-if="typeViewId === 1">
- <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)">
+ <view class="index-list-wu" v-if="orderList.length === 0">
+ <text>宸插姞杞藉叏閮ㄦ暟鎹�</text>
+ </view>
+ <view class="index-list-item" v-for="(item, index) in orderList" :key="index" @click="jumpDesc(item)" v-else>
<view class="index-list-item-head">
<view class="index-list-item-head-l">
<view class="xoam"></view>
<text v-if="item.type === 0 && item.workType === 0">鐢ㄥ伐鍗� - 閲囨憳宸�</text>
<text v-else-if="item.type === 0 && item.workType === 1">鐢ㄥ伐鍗� - 鍒嗘嫞宸�</text>
<text v-else-if="item.type === 0 && item.workType === 2">鐢ㄥ伐鍗� - 鍖呰宸�</text>
- <text v-else-if="item.type === 1">杩愯揣鍗�-{{item.categoryName}}-{{item.carUnit}}</text>
+ <text v-else-if="item.type === 1">杩愯揣鍗� - {{item.categoryName}}</text>
<text v-else-if="item.type === 2">璁㈤鍗�</text>
- <view class="tips" v-if="item.acceptType === 1">绯荤粺娲惧崟</view>
- <view class="tips1" v-if="item.acceptType === 0">鑷富鎶㈠崟</view>
+ <view class="tips" v-if="item.acceptType === 1">娲惧崟</view>
+ <view class="tips1" v-if="item.acceptType === 0">鎶㈠崟</view>
</view>
+ <view class="index-list-item-head-r" v-if="item.status === 0 || item.status === 5">寰呮敮浠�</view>
<view class="index-list-item-head-r" v-if="item.status === 2">宸叉帴鍗�</view>
<view class="index-list-item-head-r" v-if="item.status === 3">杩涜涓�</view>
<view class="index-list-item-head-r hui" v-if="item.status === 4">宸插畬鎴�</view>
@@ -129,13 +149,19 @@
{{item.categoryName}}锝渰{item.priceNum1}}鏂�
</view>
<view class="index-list-item-info" v-if="item.type === 0 && item.workType === 1">
- {{item.categoryName}}锝渰{item.priceNum1}}浜�
+ {{item.categoryName}}锝渰{item.priceNum2}}浜�
</view>
- <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
- {{item.categoryName}}锝渰{item.priceNum1}}浜�
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 0">
+ {{item.categoryName}}锝渰{item.priceNum1}}澶� 锝渰{item.priceNum2}}浜�
</view>
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 1">
+ {{item.categoryName}}锝渰{item.priceNum1}}灏忔椂 锝渰{item.priceNum2}}浜�
+ </view>
+ <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2&& item.carType === 2">
+ {{item.categoryName}}锝渰{item.priceNum1}}鏂�
+ </view>
<view class="index-list-item-info" v-if="item.type === 1">
- {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}澶�
+ {{item.carUnit}} | {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}锝滅敤杞{item.priceNum1}}{{item.carType === 0?"澶�":"娆�"}}
</view>
<view class="index-list-item-info" v-if="item.type === 2">
{{item.wayInfoCopy}}
@@ -160,8 +186,9 @@
</view>
</template>
<view class="index-list-item-price">
- <text>棰勪及锛�</text>
- <text>楼{{item.estimatedAccount / 100}}</text>
+ <text v-if="item.status==4">宸叉敮浠橈細</text>
+ <text v-if="item.status!=4">棰勪及锛�</text>
+ <text>楼{{item.payAccount / 100}}</text>
</view>
<view class="eidt">
<view class="eidt-tips" v-if="item.isUpdate === 1">
@@ -203,52 +230,93 @@
computed: {
...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid', 'latitude', 'longitude'])
},
- onShow(options) {
- this.typeViewId = 0
+ async onShow(options) {
+ var flag = getApp().globalData.orderStatus
+ console.log(getApp().globalData,"=====================================")
+ // this.status = ''
+ // this.commentStatus=''
+ // status: this.status === 5 ? 4 : this.status,
+ // commentStatus: this.status === 5 ? 0 : '',
+ if(flag =='1'){//鍙戝崟鏂瑰緟鎺ュ崟
+ this.status = 1
+ }else if(flag =='2'){//鍙戝崟鏂硅繘琛屼腑
+ this.status = 3
+ }else if(flag =='3'){//鍙戝崟鏂瑰緟璇勪环
+ this.status = 6
+ }else if(flag =='4'){//鎺ュ崟鏂瑰凡鎺ュ崟
+ this.status =2
+ }else if(flag =='5'){//鎺ュ崟鏂硅繘琛屼腑
+ this.status =3
+ }else if(flag =='6'){//鎺ュ崟鏂瑰凡瀹屾垚
+ this.status =4
+ }else if(flag =='0'){
+ this.status = -1
+ }
+ console.log(getApp().globalData,this.status ,"=====================================")
+ // this.typeViewId = 0
if(this.token && this.token != '' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
console.log('宸茬櫥闄�')
this.isLogin = true
+ /* this.getOrderList()
if (!this.isOnce) {
this.commentStatus = ''
this.orderList = []
this.next = true
this.page = 1
this.getOrderList()
- }
+ } */
} else {
this.isLogin = false
+ this.typeViewId = 0
console.log('鏈櫥闄�')
}
- if (this.userInfo && this.userInfo.useIdentity == 1) {
- this.typeViewId = 1
+ if(this.isLogin){
+ if(this.typeViewId !== this.userInfo.useIdentity || flag !=null){
+ this.typeViewId = this.userInfo.useIdentity || 0
+ //濡傛灉鍙戠敓
+ this.initOrderList()
+ }else{
+ //濡傛灉鏈彂鐢熷彉鍖栦笉鍒锋柊
+ this.typeViewId = this.userInfo.useIdentity || 0
+ if(!this.orderList || !this.orderList.length){
+ this.initOrderList()
+ }else{
+ if( this.tempOrderId){
+ this.getOrderData()
+ }
+ }
+ console.log('this.tempOrderId',this.tempOrderId)
+ }
}
+ getApp().globalData.orderStatus =null
},
data() {
return {
show: false,
isLogin: false,
- typeViewId: 0,
+ typeViewId: -1,
+ tempOrderId:null,
list: [
- { name: '鍏ㄩ儴', id: '' },
+ { name: '鍏ㄩ儴', id: -1 },
{ name: '宸叉帴鍗�', id: 2 },
{ name: '杩涜涓�', id: 3 },
+ { name: '寰呮敮浠�', id: 5 },
{ name: '宸插畬鎴�', id: 4 },
- { name: '宸插彇娑�', id: 99 },
+ // { name: '宸插彇娑�', id: 99 },
],
list1: [
- { name: '鍏ㄩ儴', id: '' },
+ { name: '鍏ㄩ儴', id: -1 },
{ name: '寰呮敮浠�', id: 0 },
{ name: '寰呮帴鍗�', id: 1 },
{ name: '宸叉帴鍗�', id: 2 },
- { name: '杩涜涓�', id: 3 },
+ { name: '杩涜涓�', id: 3 },
{ name: '宸插畬鎴�', id: 4 },
{ name: '宸插彇娑�', id: 99 },
- { name: '寰呰瘎浠�', id: [4, 0] }
+ { name: '寰呰瘎浠�', id: 6 }
],
orderId: null,
- status: '',
- commentStatus: '',
-
+ status: -1,
+ commentStatus: '',
next: true,
page: 1,
orderList: [],
@@ -257,7 +325,7 @@
},
async onLoad() {
await this.$onLaunched;
- uni.$on('refresh', (data) => {
+ /* uni.$on('refresh', (data) => {
console.log('鎴戠殑璁㈠崟椤靛埛鏂�');
this.status = ''
this.commentStatus = ''
@@ -265,17 +333,26 @@
this.next = true
this.page = 1
this.getOrderList()
- })
- this.getOrderList()
+ }) */
+
},
onReachBottom() {
- this.getOrderList()
+ if(this.isLogin){
+ this.getOrderList()
+ }
},
methods: {
toLogin() {
uni.navigateTo({
url: '/pages/login/login'
})
+ },
+ initOrderList() {
+ this.commentStatus = ''
+ this.orderList = []
+ this.next = true
+ this.page = 1
+ this.getOrderList()
},
startJobs(orderId) {
this.$u.api.begin({ orderId })
@@ -291,13 +368,15 @@
})
},
- 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}`
})
+ this.tempOrderId = item.id
},
// 淇敼
jumpEdit(item) {
+ this.tempOrderId =item.id
if (item.type === 0 && item.workType === 0) {
uni.navigateTo({
url: `/pages/using-workers/using-workers?id=${item.id}`
@@ -326,14 +405,49 @@
this.next = true
this.page = 1
this.getOrderList()
- }
-
+ }
})
},
phoneCall(phoneNumber) {
uni.makePhoneCall({
phoneNumber
});
+ },
+ getOrderData(){
+ var that = this
+ var param ={ orderId:that.tempOrderId}
+ this.$u.api.getDetail(param).then(res =>{
+ if(res.code ===200 && res.data){
+ var isDel = false
+ var tempIndex = -1
+ that.orderList.forEach((item,index) =>{
+ if(item.id == res.data.id){
+ item.status = res.data.status
+ item.isUpdate = res.data.isUpdate
+ item.commentStatus = res.data.commentStatus
+ tempIndex = index
+ }
+
+ })
+ if(tempIndex > -1 ){
+ console.log(tempIndex,that.status,res.data.status,"===================")
+ if(that.status >=0 ){
+ //濡傛灉鏈夋爣绛鹃〉
+ if(that.status ===6 && res.data.commentStatus == 1){
+ isDel =true
+ console.log(tempIndex,that.status,res.data.status,"==================1")
+ }else if(that.status !=6 && that.status !== res.data.status){
+ isDel =true
+ console.log(tempIndex,that.status,res.data.status,"===================2")
+ }
+ }
+ if(isDel){
+ console.log(tempIndex,that.status,res.data.status,"===================3")
+ that.orderList.splice(tempIndex,1)
+ }
+ }
+ }
+ })
},
// 璁㈠崟鍒嗛〉
getOrderList() {
@@ -343,7 +457,8 @@
page: this.page,
model: {
queryMyOrderType: this.userInfo.useIdentity,
- status: this.status,
+ status: this.status === 6 ? 4 : (this.status ==-1?"":this.status),
+ commentStatus: this.status === 6 ? 0 : '',
queryLat: this.latitude,
queryLgt: this.longitude
}
@@ -361,23 +476,17 @@
item.wayInfo = JSON.parse(item.wayInfo)
}
})
- this.orderList = [...this.orderList, ...res.data.records]
-
- if (this.orderList.length === res.data.total) {
+ this.orderList = [...this.orderList, ...res.data.records]
+ if (this.orderList.length >= res.data.total) {
this.next = false
} else {
this.page += 1
}
})
},
- clickOrderType(id) {
- if (typeof id === 'object') {
- this.status = id[0]
- this.commentStatus = id[1]
- } else {
- this.commentStatus = ''
- this.status = id
- }
+ clickOrderType(id) {
+ this.commentStatus = ''
+ this.status = id
this.orderList = []
this.next = true
this.page = 1
@@ -450,6 +559,15 @@
width: 100%;
padding: 20rpx 30rpx;
box-sizing: border-box;
+ .index-list-wu {
+ width: 100%;
+ margin-top: 40rpx;
+ text-align: center;
+ text {
+ font-size: 24rpx;
+ color: #666666;
+ }
+ }
.index-list-item {
width: 100%;
padding: 30rpx;
@@ -690,7 +808,7 @@
.active {
font-weight: 500 !important;
font-size: 32rpx !important;
- color: #222222 !important;
+ color: #00BC12 !important;
}
.index-labs-row {
display: inline-block;
@@ -700,7 +818,7 @@
font-size: 30rpx;
color: #666666;
position: relative;
- margin-right: 62rpx;
+ margin-right: 50rpx;
&:last-child {
margin: 0 !important;
}
@@ -709,7 +827,7 @@
bottom: 0;
left: 50%;
width: 40rpx;
- height: 2rpx;
+ height: 4rpx;
background-color: #00BC12;
transform: translate(-50%, 0);
}
--
Gitblit v1.9.3