doum
2025-09-03 b5391c8c5a802d6662f4336e1e2290439d0a91c4
前端
已修改3个文件
239 ■■■■■ 文件已修改
server/services/src/main/java/com/doumee/core/constants/Constants.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/demand-hall/demand-hall.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/order-details/order-details.vue 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -445,6 +445,8 @@
        AUTO_COMMENT(13, "系统-自动评价","超出7日未评价,系统已自动评价",2),
        AUTO_AGREE(14, "系统-自动同意","接单方超时未处理,已自动同意",2),
        FEE_CONFIRM(15, "接单方-确认费用","{userName}已确认费用",1),
        ;
        // 成员变量
        private String name;
@@ -564,6 +566,7 @@
        accept(2, "已接单"),
        doing(3, "进行中"),
        done(4, "已完成"),
        feeconfirm(5, "已确认费用"),
        cancel(99, "已取消"),
        ;
        // 成员变量
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>
@@ -46,7 +45,7 @@
                            <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">运货单</text>
                            <text v-else-if="item.type === 2">订餐单</text>
                        </view>
                        <view class="index-list-item-head-r" v-if="item.status === 1">待接单方接单</view>
@@ -65,6 +64,9 @@
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
                        {{item.categoryName}}|{{item.priceNum1}}人
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 1">
                        {{item.categoryName}}-{{item.carUnit}}
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 1">
                        {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}天
@@ -122,7 +124,7 @@
                            <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">运货单</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>
@@ -140,6 +142,9 @@
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 0 && item.workType === 2">
                        {{item.categoryName}}|{{item.priceNum1}}人
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 1">
                        {{item.categoryName}}-{{item.carUnit}}
                    </view>
                    <view class="index-list-item-info" v-if="item.type === 1">
                        {{item.transportTypeName}} | {{item.transportNum}}{{item.transportUnit}}|用车{{item.priceNum1}}天
@@ -267,9 +272,10 @@
                    { name: '待接单', id: 1 },
                    { name: '已接单', id: 2 },
                    { name: '进行中', id: 3 },
                    { name: '确认费用', id: 5 },
                    { name: '已完成', id: 4 },
                    { name: '已取消', id: 99 },
                    { name: '待评价', id: 5 }
                    { name: '待评价', id: 6 }
                ],
                orderId: null,
                status: '',
@@ -369,8 +375,8 @@
                    page: this.page,
                    model: {
                        queryMyOrderType: this.userInfo.useIdentity,
                        status: this.status === 5 ? 4 : this.status,
                        commentStatus: this.status === 5 ? 0 : '',
                        status: this.status === 6 ? 4 : this.status,
                        commentStatus: this.status === 6 ? 0 : '',
                        queryLat: this.latitude,
                        queryLgt: this.longitude
                    }
small-program/pages/order-details/order-details.vue
@@ -11,8 +11,7 @@
            <view class="order-head-info" v-else >{{getStatusInfo()}}</view> 
        </view>
        <view class="order-quxiao">
            <view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.acceptMemberId && info.status ===2">取消订单</view>
            <view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.releaseMemberId  &&  info.isUpdate!=1 &&  info.status ===2">取消订单</view>
            <view class="order-quxiao-btn" @click="show = true" v-if="(userInfo.id === info.acceptMemberId && info.status ===2) || (userInfo.id === info.releaseMemberId  &&  info.isUpdate!=1 &&  info.status ===2)">取消订单</view>
            <view class="order-quxiao-btn1" v-if="userInfo.id === info.releaseMemberId && info.type!=2 &&  info.isUpdate!=1 &&   info.status ===2 " @click="jumpEdit()">修改订单</view>
        </view>
        <view class="order-user"  v-if="userInfo.id === info.releaseMemberId && info.acceptMemberId">
@@ -39,7 +38,7 @@
                        </view>
                    </view>
                </view>
                <view class="user-info-r" @click="contactPhone(info.acceptPhone)">
                <view class="user-info-r" @click="contactPhone(info.acceptPhone)" v-if="info.status ==2||info.status==3||info.status==5">
                    <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
                    <text>联系师傅</text>
                </view>
@@ -133,7 +132,7 @@
                <view class="order-ren-left-tip">业主</view>
            </view>
            <view class="order-ren-x"></view>
            <view class="order-ren-lx"  @click="contactPhone(info.releasePhone)">
            <view class="order-ren-lx"  v-if="info.status ==2||info.status==3||info.status==5"  @click="contactPhone(info.releasePhone)">
                <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
                <text>发单方</text>
            </view>
@@ -186,10 +185,9 @@
                <view class="order-footer-btn-a" @click="show = true" v-if="1==2&& userInfo.id === info.acceptMemberId && info.status ===2">取消订单</view>
                <view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)">取消订单</view>
                <view class="order-footer-btn-b" @click="show2=true" v-if="userInfo.id === info.releaseMemberId && (info.status ===4 && info.commentStatus!=1)">去评价</view>
                <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===3 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '完成并支付'}}</view>
                <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===5 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">{{info.type === 2 ? '继续支付' : '完成并支付'}}</view>
                <view class="order-footer-btn-a" @click="show7 = true" v-if=" info.type!==2 && userInfo.id === info.acceptMemberId && info.status ===3">确认费用</view>
                <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && ((info.status ===3 && info.type===2))" @click="payment1">完成作业</view>
                <view class="order-footer-btn-b" v-if="info.type !=2 && info.isUpdate!=1&& userInfo.id === info.releaseMemberId && (info.status ===0 ||  info.status ===1|| info.status ===2)" @click="jumpEdit()">修改订单</view>
                <view class="order-footer-btn-b" @click="show5 =true" v-if="userInfo.id === info.acceptMemberId && (info.isUpdate==1 && info.status ===2)">修改确认</view>
                <!-- <view class="order-footer-btn-b" @click="startJobs()" v-if="userInfo.id === info.releaseMemberId && (info.status ===2)">开始作业</view> -->
@@ -278,7 +276,66 @@
                <view class="zhifu-botton" @click="payment">确认支付</view>
            </view>
        </u-popup>
        <!-- 支付弹窗 -->
        <u-popup :show="show7" round="15" mode="bottom">
            <view class="querenfee">
                <view class="querenfee-head">
                    <view></view>
                    <text>费用确认</text>
                    <image @click="show7 = false" src="/static/icon/ic_close@2x.png" mode="widthFix"></image>
                </view>
                <view class="querenfee-c">
                    <view class="querenfee-c-info1">费用标准:</view>
                    <viem class=" money">{{((info.price||0)/100).toFixed(2) }}{{info.priceUnit || '' }}</viem>
                </view>
                <view class="querenfee-c" >
                    <view class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==0"><text style="color: red;">*</text>实际用车天数:</view>
                    <view class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==1"><text style="color: red;">*</text>实际用车次数:</view>
                    <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==0"><text style="color: red;">*</text>实际采摘重量:</view>
                    <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==1"><text style="color: red;">*</text>实际用工天数:</view>
                    <view class="querenfee-c-info1" v-if="info.type ==0 && info.workType ==2"><text style="color: red;">*</text>实际用车次数:</view>
                    <view class="querenfee-c-input">
                        <input type="number" v-model="feeForm.priceNum1"   placeholder="请输入" />
                    </view>
                    <text class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==0">天</text>
                    <text class="querenfee-c-info1" v-if="info.type ==1 && info.carType ==1">次</text>
                </view>
                <view class="querenfee-c"  v-if="info.type ==0 && (info.workType ==1 ||info.workType ==2)">
                    <view class="querenfee-c-info1" v-if="info.workType ==1"><text style="color: red;">*</text>实际用工人数:</view>
                    <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==0"><text style="color: red;">*</text>实际用工人数:</view>
                    <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==1"><text style="color: red;">*</text>实际用工时间:</view>
                    <view class="querenfee-c-info1" v-if="info.workType ==2 && info.carType ==1"><text style="color: red;">*</text>实际用工时间:</view>
                    <view class="querenfee-c-input">
                        <input type="number" v-model="feeForm.priceNum2"   placeholder="请输入" />
                    </view>
                    <text class="querenfee-c-info1" v-if="info.workType ==1">人</text>
                    <text class="querenfee-c-info1" v-if="info.workType ==2 && ">次</text>
                </view>
                <view class="querenfee-c">
                    <view class="querenfee-c-info1">其他费用:</view>
                    <view class="querenfee-c-input">
                        <input type="number" v-model="feeForm.confirmOtherFee"  placeholder="请输入" />
                    </view>
                </view>
                <view class="querenfee-c">
                    <view class="querenfee-c-info1">备注信息:</view>
                    <view class="querenfee-c-input">
                        <u--textarea placeholder="如需备注,请输入" border="none" v-model="feeForm.confirmFeeRemark"  ></u--textarea>
                    </view>
                </view>
                <view class="querenfee-c">
                    <view class="querenfee-c-info1">实际总费用:</view>
                    <view class="querenfee-c-input">
                        <image src="/static/icon/ic_money@2x.png" mode="widthFix"></image>
                        <text class="querenfee-c-input money">{{confirmPayFee}}</text>
                    </view>
                </view>
                <view class="querenfee-c">
                    <view class="querenfee-tips">最终费用由发单方支付,接单方收到的金额将扣除平台手续费用</view>
                </view>
                <view class="querenfee-botton" @click="confirmFee">确认费用</view>
            </view>
        </u-popup>
        <!-- 评价 -->
        <u-popup :show="show2" round="15" mode="bottom">
            <view class="zhifu">
@@ -321,6 +378,7 @@
                show4:false,
                show5:false,
                show6:false,
                show7:true,
                timeInfo:'00:00:00',
                lessTime:null,
                value:0,
@@ -330,7 +388,14 @@
                loading:false,
                commentInfo:'',
                info: {},
                amount: ''
                amount: '',
                confirmPayFee:0.00,
                feeFrom:{
                    priceNum1:null,
                    priceNum2:null,
                    confirmFeeRemark:null,
                    confirmOtherFee:null,
                }
            };
        },
        onLoad(options) {
@@ -389,6 +454,9 @@
                        that.getOrderData()
                    }
                })
            },
            confirmFee(){
                console.log("confirmFee")
            },
            payment() {
                var that = this
@@ -575,14 +643,17 @@
                } 
                var that =this
                this.lessTime = Math.floor( Number(that.info.confirmCountdown || 0)/1000) ;
                this.timer =  setInterval(function(){
                       let h = Math.floor(that.lessTime/60/60) ;
                       let m = Math.floor((that.lessTime - h*60*60)/60);
                       let s=  Math.floor(that.lessTime- h*60*60 -m*60);
                       that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                       that.lessTime =that.lessTime-1;
                       // console.log( that.timeInfo)
                },1000)
                if(lessTime>0){
                    this.timer =  setInterval(function(){
                           let h = Math.floor(that.lessTime/60/60) ;
                           let m = Math.floor((that.lessTime - h*60*60)/60);
                           let s=  Math.floor(that.lessTime- h*60*60 -m*60);
                           that.timeInfo =(h<10?'0':'')+ h+":"+(m<10?'0':'')+m+":"+(s<10?'0':'')+s;
                           that.lessTime =that.lessTime-1;
                           // console.log( that.timeInfo)
                    },1000)
                }
            },
            getOrderData(){
                var that = this
@@ -630,6 +701,116 @@
<style lang="scss" scoped>
    .order {
        width: 100%;
        .querenfee {
            width: 100%;
            padding: 40rpx 30rpx;
            box-sizing: border-box;
            .querenfee-textarea {
                width: 100%;
                height: 364rpx;
                padding: 30rpx;
                box-sizing: border-box;
                background: #F7F7F7;
                border-radius: 16rpx;
                border: 1rpx solid #EEEEEE;
                margin-top: 48rpx;
                display: flex;
                align-items: start;
                image {
                    flex-shrink: 0;
                    width: 29rpx;
                    height: 29rpx;
                    margin-right: 10rpx;
                }
            }
            .querenfee-head {
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: space-between;
                image {
                    width: 28rpx;
                    height: 28rpx;
                }
                text {
                    font-weight: 500;
                    font-size: 32rpx;
                    color: #222222;
                }
            }
            .querenfee-c {
                width: 100%;
                margin-top: 46rpx;
                display: flex;
                .querenfee-c-info {
                    align-items: center;
                    font-weight: 500;
                    font-size: 30rpx;
                    color: #222222;
                    margin-bottom: 30rpx;
                    text {
                        color: #00BC12;
                        margin-left: 10rpx;
                    }
                }
                .querenfee-c-info1 {
                    width: 50%;
                    font-weight: 400;
                    font-size: 30rpx;
                    color: #666666;
                    margin-bottom: 20rpx;
                }
                .querenfee-tips{
                    width: 100%;
                    font-weight: 400;
                    font-size: 26rpx;
                    color: #999999;
                    line-height: 36rpx;
                }
                .money{
                    width: 50%;
                    text-align: right;
                    color: red !important;
                }
                .querenfee-c-input {
                    width: 100%;
                    padding: 0 30rpx;
                    box-sizing: border-box;
                    height: 60rpx;
                    background: #F7F7F7;
                    border-radius: 10rpx;
                    border: 1rpx solid #EEEEEE;
                    display: flex;
                    align-items: center;
                    image {
                        flex-shrink: 0;
                        width: 28rpx;
                        height: 60rpx;
                        margin-right: 24rpx;
                    }
                    input {
                        flex: 1;
                        height: 100%;
                        font-weight: 500;
                        color: #222222;
                    }
                }
            }
            .querenfee-botton {
                width: 100%;
                height: 88rpx;
                line-height: 88rpx;
                text-align: center;
                font-weight: 500;
                font-size: 32rpx;
                color: #FFFFFF;
                background: #00BC12;
                border-radius: 44rpx;
                margin-top: 264rpx;
            }
        }
        .zhifu {
            width: 100%;
            padding: 40rpx 30rpx;
@@ -702,6 +883,9 @@
                    color: #666666;
                    margin-bottom: 20rpx;
                }
                .money{
                    color: red !important;
                }
                .zhifu-c-input {
                    width: 100%;
                    padding: 0 30rpx;