|
|
@@ -12,9 +12,12 @@
|
|
|
|
|
|
<view class="status-bar">
|
|
|
<scroll-view class="scroll-view_H" direction="horizontal" show-scrollbar="false">
|
|
|
- <view class="scroll-view-item_H uni-bg-red" v-if="checkPermi(['gxt:order:all']) && !dealLoad">
|
|
|
+ <view class="scroll-view-item_H uni-bg-red">
|
|
|
<text class="status-txt" :class="{'stauts-sel': currentStatus === 'all'}" @click="switchStatus('all')">全部</text>
|
|
|
</view>
|
|
|
+ <!-- <view class="scroll-view-item_H uni-bg-green" v-if="checkPermi(['gxt:maintenance:order:edit','gxt:repairOrder:edit']) && !dealLoad">
|
|
|
+ <text class="status-txt" :class="{'stauts-sel': currentStatus === 'to_issue,accept_return'}" @click="switchStatus('to_issue,accept_return')">待下发</text>
|
|
|
+ </view> -->
|
|
|
<view class="scroll-view-item_H uni-bg-green" v-if="checkPermi(['gxt:maintenance:order:accept','gxt:repairOrder:accept']) && !dealLoad">
|
|
|
<text class="status-txt" :class="{'stauts-sel': currentStatus === 'assigned'}" @click="switchStatus('assigned')">待接单</text>
|
|
|
</view>
|
|
|
@@ -61,28 +64,28 @@
|
|
|
</view>
|
|
|
<view class="info-value">
|
|
|
<button
|
|
|
- v-if="currentStatus === 'assigned' && canHandleOrder(item)"
|
|
|
+ v-if="getOrderStatus(item) == 'assigned' && canHandleOrder(item)"
|
|
|
class="btn-primary info-value"
|
|
|
@click.stop="handleItemClick(item)"
|
|
|
>
|
|
|
接单
|
|
|
</button>
|
|
|
<button
|
|
|
- v-else-if="currentStatus === 'to_approve' && canHandleOrder(item)"
|
|
|
+ v-else-if="getOrderStatus(item) == 'to_approve' && canHandleOrder(item)"
|
|
|
class="btn-primary info-value"
|
|
|
@click.stop="handleItemClick(item)"
|
|
|
>
|
|
|
审批
|
|
|
</button>
|
|
|
<button
|
|
|
- v-else-if="currentStatus === 'to_finish' && canHandleOrder(item)"
|
|
|
+ v-else-if="getOrderStatus(item) == 'to_finish' && canHandleOrder(item)"
|
|
|
class="btn-primary info-value"
|
|
|
@click.stop="handleItemClick(item)"
|
|
|
>
|
|
|
挂起
|
|
|
</button>
|
|
|
<button
|
|
|
- v-else-if="currentStatus === 'suspended' && canHandleOrder(item)"
|
|
|
+ v-else-if="getOrderStatus(item) == 'suspended' && canHandleOrder(item)"
|
|
|
class="btn-primary info-value"
|
|
|
@click.stop="handleItemClick(item)"
|
|
|
>
|
|
|
@@ -138,6 +141,12 @@ const statusConfig: StatusItem[] = [
|
|
|
{ key: 'completed', permis: ['gxt:maintenance:order:restart','gxt:repairOrder:restart'], condition: () => !dealLoad.value }
|
|
|
]
|
|
|
|
|
|
+ const getOrderStatus = (item: any | null): string => {
|
|
|
+ if (item == null) return ''
|
|
|
+ const orderItem = item as acceptOrderInfo
|
|
|
+ return orderItem.workOrderStatus ?? ''
|
|
|
+ }
|
|
|
+
|
|
|
// 获取工单状态字典列表
|
|
|
const loadStatusDictList = async (): Promise<void> => {
|
|
|
try {
|
|
|
@@ -368,6 +377,8 @@ const statusConfig: StatusItem[] = [
|
|
|
return '退回时间:' + orderInfoItem.updateTime
|
|
|
} else if(orderInfoItem.workOrderStatus == 'completed') {
|
|
|
return '结单时间:' + orderInfoItem.updateTime
|
|
|
+ } else if(orderInfoItem.workOrderStatus == 'archived') {
|
|
|
+ return '归档时间:' + orderInfoItem.updateTime
|
|
|
}
|
|
|
|
|
|
// 默认显示创建时间
|
|
|
@@ -435,7 +446,7 @@ const statusConfig: StatusItem[] = [
|
|
|
const handleSearchOnBlur = (): void => {
|
|
|
handleSearch()
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 方法:判断当前工单是否显示操作按钮(基于 orderType)
|
|
|
const canHandleOrder = (item: any | null): boolean => {
|
|
|
if (item == null) return false
|
|
|
@@ -456,7 +467,7 @@ const statusConfig: StatusItem[] = [
|
|
|
} else {
|
|
|
return false
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// const orderType = (item as acceptOrderInfo).orderType
|
|
|
return checkPermi(permit)
|
|
|
}
|
|
|
@@ -466,31 +477,36 @@ const statusConfig: StatusItem[] = [
|
|
|
const handleItemClick = (item: any | null): void => {
|
|
|
if (item == null) return
|
|
|
const orderItem = item as acceptOrderInfo
|
|
|
- if(currentStatus.value === '' || currentStatus.value === 'completed' || currentStatus.value === 'all') {
|
|
|
- // 传递orderType参数以便详情页决定调用哪个API
|
|
|
- uni.navigateTo({
|
|
|
- url: `/pages/order/detail/index?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
- })
|
|
|
- } else if(currentStatus.value === 'assigned') {
|
|
|
+ // if(currentStatus.value === '' || currentStatus.value === 'completed' || currentStatus.value === 'all') {
|
|
|
+ // // 传递orderType参数以便详情页决定调用哪个API
|
|
|
+ // uni.navigateTo({
|
|
|
+ // url: `/pages/order/detail/index?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
+ // })
|
|
|
+ // } else
|
|
|
+ if(orderItem.workOrderStatus == 'assigned') {
|
|
|
// 跳转到接单页面
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/detail/acceptIndex?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
})
|
|
|
- } else if(currentStatus.value === 'to_finish') {
|
|
|
+ } else if(orderItem.workOrderStatus == 'to_finish') {
|
|
|
// 跳转到待结单页面
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/detail/suspendIndex?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
})
|
|
|
- } else if(currentStatus.value === 'to_approve') {
|
|
|
+ } else if(orderItem.workOrderStatus == 'to_approve') {
|
|
|
// 跳转到待审批页面
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/detail/approveIndex?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
})
|
|
|
- } else if(currentStatus.value === 'suspended') {
|
|
|
+ } else if(orderItem.workOrderStatus == 'suspended') {
|
|
|
// 跳转到恢复页面
|
|
|
uni.navigateTo({
|
|
|
url: `/pages/order/detail/resumeIndex?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
})
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages/order/detail/index?id=${orderItem.id}&orderType=${orderItem.orderType}`
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -520,8 +536,10 @@ const statusConfig: StatusItem[] = [
|
|
|
dealLoad.value = true;
|
|
|
}
|
|
|
loadStatusDictList()
|
|
|
- // ✅ 自动选中第一个可显示的状态
|
|
|
- currentStatus.value = getFirstVisibleStatus()
|
|
|
+ // 自动选中第一个可显示的状态
|
|
|
+ // currentStatus.value = getFirstVisibleStatus()
|
|
|
+ currentStatus.value = 'all'
|
|
|
+
|
|
|
loadData(true as boolean | null)
|
|
|
|
|
|
// 监听首页切换状态事件
|