Bladeren bron

feat(repair): 调整工单操作按钮并新增派工功能

- 移除拒单、转派、完成、提交审核等操作按钮
- 新增派工按钮,仅维修主管(MM)在待分配/已驳回状态下可见
- 接收按钮增加角色控制,仅维修人员/主管可见
- 新增 handleDispatch 方法跳转派工页
- 服务页设备名称后追加显示设备编号
dazhaxie 2 weken geleden
bovenliggende
commit
c38aa2e8d7
2 gewijzigde bestanden met toevoegingen van 22 en 20 verwijderingen
  1. 21 19
      pages/repair-detail/repair-detail.vue
  2. 1 1
      pages/service/service.vue

+ 21 - 19
pages/repair-detail/repair-detail.vue

@@ -93,28 +93,19 @@
     <view class="divider"></view>
     <view class="px3">
       <u-grid :col="3" :border="false">
-        <u-grid-item v-show="infoData.status === 1" @tap="handleReceive()">
-          <view class="iconfont icon-baoxiu" style="color: #0f6fb9"></view>
-          <view class="grid-text">接收</view>
-        </u-grid-item>
-        <u-grid-item v-show="infoData.status === 1" @tap="handleReject()">
+        <!-- 派工:仅维修主管(MM)可见,且工单尚未被接收处理(待分配1/已驳回5),与 PC 端一样选人下发 -->
+        <u-grid-item
+          v-show="(infoData.status === 1 || infoData.status === 5) && isMMRole"
+          @tap="handleDispatch()">
           <view class="iconfont icon-baoxiu" style="color: #0f6fb9"></view>
-          <view class="grid-text">拒单</view>
+          <view class="grid-text">派工</view>
         </u-grid-item>
-        <!-- 仅维修中(状态2)可转派,与后端 transfer 接口状态校验保持一致;转派审批中(状态8)等状态不显示 -->
+        <!-- 接收:维修人员/主管可见,且工单尚未被接收处理(待分配1/已驳回5) -->
         <u-grid-item
-          v-show="infoData.status === 2 && !infoData.fourRepairUser && infoData.repairUserId"
-          @tap="handleTransfer()">
+          v-show="(infoData.status === 1 || infoData.status === 5) && isRepairRole"
+          @tap="handleReceive()">
           <view class="iconfont icon-baoxiu" style="color: #0f6fb9"></view>
-          <view class="grid-text">转派</view>
-        </u-grid-item>
-        <u-grid-item v-show="infoData.status === 2" @tap="handleFinish()">
-          <view class="iconfont icon-start main-color-text"></view>
-          <view class="grid-text">完成</view>
-        </u-grid-item>
-        <u-grid-item v-show="infoData.status === 3 || infoData.status === 5" @tap="handleExamine()">
-          <view class="iconfont icon-start main-color-text"></view>
-          <view class="grid-text">提交审核</view>
+          <view class="grid-text">接收</view>
         </u-grid-item>
         <!--                <u-grid-item v-if="infoData.status != 7" @tap="handleStop()">
                     <view class="iconfont icon-stop1 main-color-text"></view>
@@ -159,7 +150,10 @@ export default {
       id: '',
       imagesList: [],
       repairImagesList: [],
-      zjList: []
+      zjList: [],
+      // 角色标志:控制派工/接收按钮显示
+      isMMRole: false,
+      isRepairRole: false
     }
   },
   onLoad(options) {
@@ -201,6 +195,8 @@ export default {
       });
   },
   onShow() {
+    this.isMMRole = this.$BaseTool.UserUtil.hasRoleCode('MM')
+    this.isRepairRole = this.$BaseTool.UserUtil.isRepairRole()
     this.getInfo()
   },
   methods: {
@@ -265,6 +261,12 @@ export default {
         success() { }
       })
     },
+    // 派工:跳转到派工页,与 PC 端一样选择维修人下发
+    handleDispatch() {
+      uni.navigateTo({
+        url: '/pages/deliver-add/deliver-add?id=' + this.detailId
+      })
+    },
     // 接收
     handleReceive() {
       var that = this

+ 1 - 1
pages/service/service.vue

@@ -7,7 +7,7 @@
                     @tap="handleDetail(item)" @longpress="showMask(item.id, $event)">
                     <common-mask :item="item" :maskId="maskId" @hide="maskId = 0" @del="handleDel(item.id)" />
                     <view class="d-flex j-between border-bottom pb-2 a-center">
-                        <view class="text-color-b f-size-26">{{ item.sbName }}</view>
+                        <view class="text-color-b f-size-26">{{ item.sbName }} ({{ item.sbNo }})</view>
                         <view class="f-size-24 state-orange">{{
                             statusMap[item.status]
                             }}</view>