Compare commits

..

No commits in common. "dcdde91a49ee58a16440ba7d7a676dc17a039e5d" and "ea4bdceefc30fee88bf694422406ccfc54da8ecc" have entirely different histories.

4 changed files with 90 additions and 124 deletions

View File

@ -8,16 +8,3 @@ export const ticketPoolInfo = (data : any = {}) => get('v1/ticket/pool/info', da
export const ticketAccept = (data : any = {}) => get('v1/ticket/accept', data); export const ticketAccept = (data : any = {}) => get('v1/ticket/accept', data);
// 我的工单 // 我的工单
export const myTicketList = (data : any = {}) => get('v1/ticket/my/list', data); export const myTicketList = (data : any = {}) => get('v1/ticket/my/list', data);
// 我的工单
export const myTicketInfo = (data : any = {}) => get('v1/ticket/my/info', data);

View File

@ -101,7 +101,7 @@
{ {
"path": "my_order/detail", "path": "my_order/detail",
"style": { "style": {
"enablePullDownRefresh": false, "enablePullDownRefresh": true,
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationStyle": "custom", "navigationStyle": "custom",
"navigationBarTitleText": "我的工单详情" "navigationBarTitleText": "我的工单详情"

View File

@ -22,68 +22,62 @@
<view class="li-mb-20"> <view class="li-mb-20">
<view class="li-flex li-items-center li-text-#5f5f5f li-pl-20 li-pt-20 li-text-28 li-mb-12"> <view class="li-flex li-items-center li-text-#5f5f5f li-pl-20 li-pt-20 li-text-28 li-mb-12">
<text class="ri-todo-line li-mr-3"></text> <text class="ri-todo-line li-mr-3"></text>
<text>{{ticketInfo.ticket_no}}</text> <text>JD2424234324325</text>
<text class="ri-file-copy-line li-text-#009aff li-ml-15"></text> <text class="ri-file-copy-line li-text-#009aff li-ml-15"></text>
</view> </view>
<text class="li-pl-20 li-text-28 li-text-#5f5f5f">创建时间:&nbsp;{{ticketInfo.create_time}}</text> <text class="li-pl-20 li-text-28 li-text-#5f5f5f">创建时间:&nbsp;2025-07-09</text>
</view> </view>
<view class="li-text-28 !li-rd-bl-50 li-px-40 li-py-6" style="color: #37A5FF; backgroundColor: #e8f4ff"> <view class="li-text-28 !li-rd-bl-50 li-px-40 li-py-6"
<text v-if="ticketInfo.type == 'F2'">派送</text> :style="{ color: getStatusColor(2), backgroundColor: getStatusBgColor(2) }">
<text v-if="ticketInfo.type == 'F4'">量房</text> {{getStatusText(2)}}
<text v-if="ticketInfo.type == 'F6'">维修</text>
</view> </view>
</view> </view>
<view class="li-flex li-items-start li-pt-20 li-pl-20"> <view class="li-flex li-items-start li-pt-20 li-pl-20">
<view class="ri-checkbox-circle-fill li-text-#009aff li-mr-12 li-text-40 li-pt-2"></view> <view class="ri-checkbox-circle-fill li-text-#009aff li-mr-12 li-text-40 li-pt-2"></view>
<!-- <text class="ri-close-circle-fill li-text-#ff0000"></text> --> <!-- <text class="ri-close-circle-fill li-text-#ff0000"></text> -->
<view v-if="ticketInfo.status == 0" class="li-flex li-flex-col"> <view class="li-flex li-flex-col">
<text class="li-text-32">待接单</text> <text class="li-text-32">{{getStatusText(2)}}</text>
<text class="li-text-28">待接单</text> <text class="li-text-28">工单已完成干得漂亮请确认完成状态</text>
</view>
<view v-if="ticketInfo.status == 1" class="li-flex li-flex-col">
<text class="li-text-32">已接单</text>
<text class="li-text-28">已接单</text>
</view>
<view v-if="ticketInfo.status == 2" class="li-flex li-flex-col">
<text class="li-text-32">已完结</text>
<text class="li-text-28">已完结</text>
</view>
<view v-if="ticketInfo.status == 3" class="li-flex li-flex-col">
<text class="li-text-32">已取消</text>
<text class="li-text-28">已取消</text>
</view> </view>
</view> </view>
</view> </view>
<!-- 联系信息 --> <!-- card -->
<view class="bg-#FFFFFF li-w-92% li-mx-auto li-mt-20 li-rd-20 li-task-card li-pb-30 overflow-hidden"> <view class="bg-#FFFFFF li-w-92% li-mx-auto li-mt-20 li-rd-20 li-task-card li-pb-30 overflow-hidden">
<view class="li-pl-30 li-pt-30">联系信息</view> <view class="li-pl-30 li-pt-30">业主信息</view>
<view class="li-pl-30 li-pr-30 li-mt-30"> <view class="li-pl-30 li-pr-30 li-mt-30">
<view class="li-flex li-items-start li-justify-between li-text-28"> <view class="li-flex li-items-center li-justify-between li-text-28">
<text class="li-w-150 li-text-#9a9a9a">小区名称</text> <text class="li-w-150 li-text-#9a9a9a">业主姓名</text>
<text class="li-w-400 li-two-line li-text-right">{{ticketInfo?.order?.village_name}}</text> <text class="li-w-400 li-single-line li-text-right">邓大仙儿</text>
</view> </view>
<view class="li-flex li-items-center li-justify-between li-mt-30 li-text-28"> <view class="li-flex li-items-center li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">联系人</text> <text class="li-w-150 li-text-#9a9a9a">联系方式</text>
<text class="li-w-400 li-single-line li-text-right">{{ticketInfo.order.name}}</text>
</view>
<view class="li-flex li-items-center li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">联系电话</text>
<view class="li-flex li-items-center li-w-400 li-single-line justify-between"> <view class="li-flex li-items-center li-w-400 li-single-line justify-between">
<!-- 左侧留空 --> <!-- 左侧留空 -->
<view></view> <view></view>
<!-- 右侧内容 --> <!-- 右侧内容 -->
<view class="li-flex li-items-center"> <view class="li-flex li-items-center">
<text class="ri-phone-line li-text-#009aff li-mr-6"></text> <text class="ri-phone-line li-text-#009aff li-mr-6"></text>
<text>{{ticketInfo.order.mobile}}</text> <text>177****4485</text>
</view> </view>
</view> </view>
</view> </view>
<!-- <view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28"> <view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">配送地址</text>
<text class="li-w-400 li-two-line li-text-right">中金北区17号楼一单元201室号</text>
</view>
<view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">商品备注</text>
<text class="li-w-400 li-two-line li-text-right">放在门口即可</text>
</view>
<view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">商品信息</text> <text class="li-w-150 li-text-#9a9a9a">商品信息</text>
<view class="li-flex li-flex-col li-w-400 justify-end"> <view class="li-flex li-flex-col li-w-400 justify-end">
<text class="li-two-line li-text-right">燕京 8度U8 500ML*12/*2 送燕京9度菊花听500ML*12</text> <text class="li-two-line li-text-right">燕京 8度U8 500ML*12/*2 送燕京9度菊花听500ML*12</text>
<!-- <text class="li-text-#009aff li-text-right">x2</text> -->
<view class="li-flex justify-between li-items-center li-mt-20"> <view class="li-flex justify-between li-items-center li-mt-20">
<!-- 左侧留空 -->
<view></view> <view></view>
<!-- 右侧内容 -->
<view class="li-flex li-items-center"> <view class="li-flex li-items-center">
<image class="li-w-110 li-h-110 li-rd-10" src="../../static/swiper/1.png" mode=""> <image class="li-w-110 li-h-110 li-rd-10" src="../../static/swiper/1.png" mode="">
</image> </image>
@ -92,30 +86,36 @@
</view> </view>
</view> </view>
</view> </view>
</view> --> </view>
</view> </view>
</view> </view>
<!-- card -->
<!-- 报修信息 --> <view class="bg-#FFFFFF li-w-92% li-mx-auto li-mt-20 li-rd-20 li-task-card li-pb-30 overflow-hidden">
<view v-if="ticketInfo?.type == 'F6'" class="bg-#FFFFFF li-w-92% li-mx-auto li-mt-20 li-rd-20 li-task-card li-pb-30 overflow-hidden"> <view class="li-pl-30 li-pt-30">员工信息</view>
<view class="li-pl-30 li-pt-30">报修信息</view>
<view class="li-pl-30 li-pr-30 li-mt-30"> <view class="li-pl-30 li-pr-30 li-mt-30">
<view class="li-flex li-items-center li-justify-between li-text-28"> <view class="li-flex li-items-center li-justify-between li-text-28">
<text class="li-w-150 li-text-#9a9a9a">报修位置</text> <text class="li-w-150 li-text-#9a9a9a">员工姓名</text>
<text class="li-w-400 li-single-line li-text-right">{{ticketInfo?.order?.region_name}}{{ticketInfo?.order?.cell_name}}{{ticketInfo?.order?.house_name}}{{ticketInfo?.order?.address}}</text> <text class="li-w-400 li-single-line li-text-right">张三丰</text>
</view>
<view class="li-flex li-items-center li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">联系方式</text>
<text>135****6645</text>
</view> </view>
<view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28"> <view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">问题描述</text> <text class="li-w-150 li-text-#9a9a9a">工单描述</text>
<text class="li-w-400 li-two-line li-text-right">{{ticketInfo.order.content}}</text> <text class="li-w-400 li-two-line li-text-right">敲门未应答已按照业主要求放在门口</text>
</view> </view>
<view v-if="ticketInfo.order.images" class="li-flex li-items-start li-justify-between li-mt-30 li-text-28"> <view class="li-flex li-items-start li-justify-between li-mt-30 li-text-28">
<text class="li-w-150 li-text-#9a9a9a">现场照片</text> <text class="li-w-150 li-text-#9a9a9a">附件上传</text>
<view class="li-flex li-flex-col li-w-400 justify-end"> <view class="li-flex li-flex-col li-w-400 justify-end">
<view class="li-flex justify-between li-items-center li-mt-20"> <view class="li-flex justify-between li-items-center li-mt-20">
<!-- 左侧留空 --> <!-- 左侧留空 -->
<view></view> <view></view>
<!-- 右侧内容 -->
<view class="li-flex li-items-center"> <view class="li-flex li-items-center">
<image v-for="(item) in ticketInfo?.order?.images?.split(',')" :key="item" class="li-w-110 li-h-110 li-rd-10 li-mr-20" :src="item"> <image class="li-w-110 li-h-110 li-rd-10" src="../../static/logo.png" mode="">
</image>
<image class="li-w-110 li-h-110 li-rd-10 li-ml-20" src="../../static/logo.png" mode="">
</image> </image>
</view> </view>
</view> </view>
@ -123,14 +123,6 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 工单记录 -->
<view class="bg-#FFFFFF li-w-92% li-mx-auto li-mt-20 li-rd-20 li-task-card li-pb-30 overflow-hidden">
<view class="li-pl-30 li-pt-30">工单记录</view>
<view class="li-pl-30 li-pr-30 li-mt-30">
<!-- todo 此处最好用时间线展示 类似物流信息 -->
</view>
</view>
<!-- footer --> <!-- footer -->
<view <view
class="li-flex li-fixed li-bottom-0 li-bg-white li-w-100% li-items-center li-justify-between li-py-35 li-task-card li-rd-10"> class="li-flex li-fixed li-bottom-0 li-bg-white li-w-100% li-items-center li-justify-between li-py-35 li-task-card li-rd-10">
@ -138,12 +130,10 @@
<view></view> <view></view>
<view class="li-flex li-items-center li-mr-30"> <view class="li-flex li-items-center li-mr-30">
<view> <view>
<!-- todo 退单要进行二次确认 --> <wd-button :round="false" type="error">取消工单</wd-button>
<wd-button :round="false" type="error">退单</wd-button>
</view> </view>
<view class="li-ml-15"> <view class="li-ml-15">
<!-- todo 结单根据要求是否跳转到结单页拍照+填写信息 --> <wd-button :round="false">确认送达</wd-button>
<wd-button :round="false">结单</wd-button>
</view> </view>
</view> </view>
</view> </view>
@ -152,35 +142,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref } from 'vue' import { ref } from 'vue'
import { onLoad, onShow } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { useNavigation } from '@/hooks/useNavigation' import { useNavigation } from '@/hooks/useNavigation'
import {myTicketInfo} from '@/api/ticket'
import { useToast } from '@/uni_modules/wot-design-uni'
const Toast = useToast()
const loading = ref<boolean>(false)
const bntloading = ref<boolean>(false)
const ticketInfo = ref<any>({
ticket_no: '',
create_time: '',
status: undefined,
type: '',
order: {
name: '',
mobile: '',
region_name: '',
cell_name: '',
house_name: '',
address: '',
appoint_date: '',
appoint_time: '',
building_area: '',
status: 0,
images: '',
remark: ''
}
})
// 使 composable // 使 composable
const { const {
hasMultiplePages, // hasMultiplePages, //
@ -188,16 +151,29 @@
checkRouteStack // checkRouteStack //
} = useNavigation() } = useNavigation()
onLoad((q) => { onLoad(() => {
checkRouteStack() checkRouteStack()
if (q.ticket_id) {
loadInfo(q.ticket_id)
}
}) })
//
const getStatusColor = (status : number) => {
const colorMap = {
1: '#ff9d00', //
2: '#00b42a', //
3: '#37A5FF', //
4: '#F42429' //
}
return colorMap[status] || '#666666'
}
const loadInfo = async (ticket_id : string) => { //
const res = await myTicketInfo({ ticket_id }) const getStatusBgColor = (status : number) => {
ticketInfo.value = res.data const bgColorMap = {
1: '#fff6e9', //
2: '#e8ffea', //
3: '#e8f4ff', //
4: '#ffe8e8' //
}
return bgColorMap[status] || '#f5f5f5'
} }
// //
@ -211,6 +187,8 @@
return textMap[status] || '未知状态' return textMap[status] || '未知状态'
} }
const toPages = (item : any) => { const toPages = (item : any) => {
console.log(item); console.log(item);
switch (item.type) { switch (item.type) {

View File

@ -22,9 +22,13 @@
<wd-tab :title="item.name" :badge-props="item.badgeProps"></wd-tab> <wd-tab :title="item.name" :badge-props="item.badgeProps"></wd-tab>
</block> </block>
</wd-tabs> </wd-tabs>
<!-- <view class="border-red li-flex li-items-center li-justify-center li-w-130">
<text class="ri-filter-line li-text-20"></text>
<text class="li-text-28">筛选</text>
</view> -->
</view> </view>
</view> </view>
<view class="li-flex li-items-center li-mx-auto li-w-92% li-mt-check-costom"> <view class="li-flex li-items-center li-mx-auto li-w-92% li-mt-check-costom">
<text v-for="(item,index) in orderStatusList" :key="index" <text v-for="(item,index) in orderStatusList" :key="index"
:class="item.id==query.status?'space-check':'space-checkOut'" @click="handleStatusChange(item.id)"> :class="item.id==query.status?'space-check':'space-checkOut'" @click="handleStatusChange(item.id)">
{{item.title}} {{item.title}}
@ -48,27 +52,24 @@
</view> </view>
<view> <view>
<view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20"> <view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20">
<text class="li-text-#9a9a9a">工单类型</text> <text class="li-text-#9a9a9a">配送地址</text>
<text v-if="item.type == 'F2'">配送</text> <text>{{item.address}}</text>
<text v-if="item.type == 'F6'">维修</text>
<text v-if="item.type == 'F4'">量房</text>
</view> </view>
<view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20"> <view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20">
<text class="li-text-#9a9a9a">小区名称</text> <text class="li-text-#9a9a9a">收货人</text>
<text>{{item.order.village_name}}</text> <text>{{item.name}}</text>
</view> </view>
<view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20"> <view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20">
<text class="li-text-#9a9a9a">联系</text> <text class="li-text-#9a9a9a">联系方式</text>
<text>{{item.order.name}}</text> <text>{{item.phone}}</text>
</view> </view>
<view class="li-flex li-items-center li-justify-between li-text-26 li-mt-20"> <view class="li-mt-20 bg-#f9f9f9 li-rd-10 li-p-15 li-text-24">
<text class="li-text-#9a9a9a">联系电话</text> <text>{{item.remarks}}</text>
<text>{{item.order.mobile}}</text>
</view> </view>
</view> </view>
<view class="li-flex li-items-center li-justify-between li-mt-20"> <view class="li-flex li-items-center li-justify-between li-mt-20">
<text class="li-text-24 li-text-#999">{{item.create_time}}</text> <text class="li-text-24 li-text-#999">{{item.time}}</text>
<wd-button custom-class="custom-shadow" size="small" v-if="item.status === 1">详情</wd-button> <wd-button custom-class="custom-shadow" size="small" v-if="item.status === 1">开始配送</wd-button>
</view> </view>
</view> </view>
</view> </view>
@ -182,7 +183,7 @@
id: 'ALL' id: 'ALL'
}, },
{ {
title: '完成', title: '完成',
id: 1 id: 1
}, },
{ {
@ -232,7 +233,7 @@
break; break;
case 'detail': case 'detail':
uni.navigateTo({ uni.navigateTo({
url: '/pagesA/my_order/detail?ticket_id=' + item.value.ticket_id url: '/pagesA/my_order/detail'
}) })
break; break;
default: default: