瀏覽代碼

服务工单详情操作

NULL1222 2 周之前
父節點
當前提交
3aa34bf59c
共有 6 個文件被更改,包括 205 次插入29 次删除
  1. 1 0
      app.json
  2. 2 3
      bgj/handling/detail.js
  3. 175 20
      bgj/workOrder/detail.js
  4. 9 0
      bgj/workOrder/detail.scss
  5. 6 2
      bgj/workOrder/detail.wxml
  6. 12 4
      static/icon.wxss

+ 1 - 0
app.json

@@ -85,6 +85,7 @@
         "van-checkbox": "@vant/weapp/checkbox/index",
         "van-checkbox-group": "@vant/weapp/checkbox-group/index",
         "van-transition": "@vant/weapp/transition/index",
+        "van-dialog": "@vant/weapp/dialog/index",
         "viewDate": "/components/viewDate/index",
         "filtrate": "/components/filtrate/filtrate"
     },

+ 2 - 3
bgj/handling/detail.js

@@ -160,7 +160,6 @@ Page({
   },
 
   tabbarOnClick({ detail }) {
-    const item = this.data.detail;
     switch (detail.label) {
       case '转工单':
         wx.navigateTo({
@@ -178,8 +177,8 @@ Page({
   setTabbar() {
     this.setData({
       tabbarList: [
-        { icon: "icon-tijiao", label: "转工单" },
-        { icon: "icon-bianji2", label: "指派经销商" }
+        { icon: "icon-zhuangongdan", label: "转工单" },
+        { icon: "icon-zhipaijingxiaoshang", label: "指派经销商" }
       ]
     })
   },

+ 175 - 20
bgj/workOrder/detail.js

@@ -2,18 +2,22 @@ const _Http = getApp().globalData.http;
 
 Page({
   data: {
+    delShow: false,
+    reason: {
+      voidreason: ""
+    },
     sc_workorderid: '',
     detail: {},
     tabsList: [{
       label: "工序信息",
       idname: "sc_workorderid"
-    },{
+    }, {
       label: "工单物料",
       idname: "sc_workorderid"
-    },{
+    }, {
       label: "团队信息",
       idname: "sc_workorderid"
-    },{
+    }, {
       label: "工单信息",
       idname: "sc_workorderid"
     }, {
@@ -191,36 +195,187 @@ Page({
     } catch (error) {}
   },
 
+  onCancel() {
+    this.setData({
+      delShow: false,
+      reason: {
+        voidreason: ""
+      }
+    })
+  },
+  areaInput(e) {
+    this.data.reason[e.currentTarget.dataset.name] = e.detail.value;
+  },
+  // 作废
+  onSuspend() {
+    let that = this;
+    setTimeout(() => {
+      let voidreason = that.data.reason.voidreason;
+      if (voidreason == '') return wx.showToast({
+        title: getApp().globalData.Language.getMapText("请填写作废原因"),
+        icon: "none"
+      })
+      _Http.basic({
+        "content": {
+          "sc_workorderid": that.data.detail.sc_workorderid,
+          voidreason
+        },
+        "id": 2026052113565202,
+      }).then(res => {
+        getApp().globalData.Language.showToast(res.code == '1' ? "作废成功" : res.msg)
+        if (res.code == 1) that.getDetail();
+      })
+    });
+  },
+
   tabbarOnClick({
     detail
   }) {
-    const item = this.data.detail;
+    let that = this;
     switch (detail.label) {
-      case '转工单':
-        wx.navigateTo({
-          url: '/bgj/handling/transferWorkOrder/transfer?sc_workorderid=' + this.data.sc_workorderid
-        });
+      case '开始工单':
+        wx.showModal({
+          title: getApp().globalData.Language.getMapText('提示'),
+          content: getApp().globalData.Language.getMapText(`确认开始工单吗`) + '?',
+          confirmBtn: getApp().globalData.Language.getMapText('确定'),
+          cancelBtn: getApp().globalData.Language.getMapText('取消'),
+          complete: ({
+            confirm
+          }) => {
+            if (confirm) _Http.basic({
+              "content": {
+                "sc_workorderid": this.data.sc_workorderid
+              },
+              "id": "2026052113540302",
+            }).then(res => {
+              getApp().globalData.Language.showToast(res.code == '1' ? "开始成功" : res.msg)
+              that.getDetail()
+            })
+          }
+        })
+        break;
+      case '作废':
+        console.log(this.data.delShow,"delShow")
+        this.setData({
+          delShow: true
+        })
+        console.log(this.data.delShow,"delShow2")
+
+        break;
+      case '完结工单':
+        wx.showModal({
+          title: getApp().globalData.Language.getMapText('提示'),
+          content: getApp().globalData.Language.getMapText(`确认完结工单吗`) + '?',
+          confirmBtn: getApp().globalData.Language.getMapText('确定'),
+          cancelBtn: getApp().globalData.Language.getMapText('取消'),
+          complete: ({
+            confirm
+          }) => {
+            if (confirm) _Http.basic({
+              "content": {
+                "sc_workorderid": this.data.sc_workorderid
+              },
+              "id": "2026052113561302",
+            }).then(res => {
+              getApp().globalData.Language.showToast(res.code == '1' ? "完结成功" : res.msg)
+              that.getDetail()
+            })
+          }
+        })
         break;
-      case '指派经销商':
-        wx.navigateTo({
-          url: '/bgj/handling/assignAgent/assign?sc_workorderid=' + this.data.sc_workorderid
-        });
+      case '暂停':
+        wx.showModal({
+          title: getApp().globalData.Language.getMapText('提示'),
+          content: getApp().globalData.Language.getMapText(`是否暂停执行该工单`) + '?',
+          confirmBtn: getApp().globalData.Language.getMapText('确定'),
+          cancelBtn: getApp().globalData.Language.getMapText('取消'),
+          complete: ({
+            confirm
+          }) => {
+            if (confirm) _Http.basic({
+              "content": {
+                "sc_workorderid": this.data.sc_workorderid
+              },
+              "id": "2026052113545402",
+            }).then(res => {
+              getApp().globalData.Language.showToast(res.code == '1' ? "暂停成功" : res.msg)
+              that.getDetail()
+            })
+          }
+        })
+        break;
+      case '启用':
+        wx.showModal({
+          title: getApp().globalData.Language.getMapText('提示'),
+          content: getApp().globalData.Language.getMapText(`是否继续执行该工单`) + '?',
+          confirmBtn: getApp().globalData.Language.getMapText('确定'),
+          cancelBtn: getApp().globalData.Language.getMapText('取消'),
+          complete: ({
+            confirm
+          }) => {
+            if (confirm) _Http.basic({
+              "content": {
+                "sc_workorderid": this.data.sc_workorderid
+              },
+              "id": "2026052113553202",
+            }).then(res => {
+              getApp().globalData.Language.showToast(res.code == '1' ? "启用成功" : res.msg)
+              that.getDetail()
+            })
+          }
+        })
         break;
     }
   },
-
   setTabbar() {
-    this.setData({
-      tabbarList: [{
-          icon: "icon-tijiao",
-          label: "转工单"
+    const {
+      status = ''
+    } = this.data.detail;
+    console.log("status", status);
+
+    // 按钮列表 配置表
+    const statusMap = {
+      "已完成": [],
+      "质保卡审批": [],
+      "作废": [],
+      "待开始": [{
+          icon: "icon-kaishigongdan",
+          label: "开始工单"
+        },
+        {
+          icon: "icon-zuofei",
+          label: "作废"
+        }
+      ],
+      "进行中": [{
+          icon: "icon-wanjiegongdan",
+          label: "完结工单"
+        },
+        {
+          icon: "icon-zanting",
+          label: "暂停"
+        },
+        {
+          icon: "icon-zuofei",
+          label: "作废"
+        }
+      ],
+      "暂停": [{
+          icon: "icon-qiyong",
+          label: "启用"
         },
         {
-          icon: "icon-bianji2",
-          label: "指派经销商"
+          icon: "icon-zuofei",
+          label: "作废"
         }
       ]
-    })
+    };
+
+    // 匹配对应按钮,未知状态默认空
+    const tabbarList = statusMap[status] || [];
+    this.setData({
+      tabbarList
+    });
   },
 
   onUnload() {

+ 9 - 0
bgj/workOrder/detail.scss

@@ -62,3 +62,12 @@
     text-transform: none;
   }
 }
+.textarea {
+	width: 90%;
+	height: 200rpx;
+	box-sizing: border-box;
+	padding: 20rpx 30rpx;
+	background-color: #F7F8FA;
+	margin: 20rpx auto;
+	border-radius: 8rpx;
+}

+ 6 - 2
bgj/workOrder/detail.wxml

@@ -13,7 +13,7 @@
     <text style="margin-right: 20rpx;color: #3874F6;">{{detail.scenecontactphonenumber}}</text>
   </view>
   <view class="row">{{language['负责人']||'负责人'}}:{{detail.leadername}} </view>
-  <view class="row" style="color:{{sColors[detail.status]}};">{{language['工单状态']||'工单状态'}}:{{language[detail.status] || detail.status}} </view>
+  <view class="row">{{language['工单状态']||'工单状态'}}:<text style="color:{{sColors[detail.status]}};">{{language[detail.status] || detail.status}}</text> </view>
   <view class="row">{{language['完成时间']||'完成时间'}}:{{detail.finishdate||"--"}} </view>
   <view class="row">{{language['作废原因']||'作废原因'}}:{{detail.voidreason||"--"}} </view>
 </view>
@@ -25,4 +25,8 @@
   <Files slot='附件' id="Files" ownertable='sc_serviceform' ownerid='{{detail.sc_serviceformid}}' />
   <view style="height: 180rpx;" />
 </Yl_FunTabs>
-<Yl_Tabbar wx:if="{{tabbarList.length}}" list='{{tabbarList}}' bind:callback="tabbarOnClick" />
+<Yl_Tabbar wx:if="{{tabbarList.length}}" list='{{tabbarList}}' bind:callback="tabbarOnClick" />
+
+<van-dialog confirmButtonText="{{language['确定']||'确定'}}" cancelButtonText="{{language['取消']||'取消'}}" use-slot title="{{language['作废']||'作废'}}" show="{{ delShow }}" show-cancel-button confirm-button-color='#3874F6' bind:confirm='onSuspend' bind:cancel='onCancel'>
+	<textarea placeholder="{{language['请填写作废原因']||'请填写作废原因'}}" value="{{reason.voidreason}}" data-name="voidreason" bindinput="areaInput" class="textarea" />
+</van-dialog>

+ 12 - 4
static/icon.wxss

@@ -1,9 +1,9 @@
 @font-face {
   font-family: "iconfont"; /* Project id 5176012 */
-  src: url('//at.alicdn.com/t/c/font_5176012_a6xpu2oep5i.woff2?t=1779696861887') format('woff2'),
-       url('//at.alicdn.com/t/c/font_5176012_a6xpu2oep5i.woff?t=1779696861887') format('woff'),
-       url('//at.alicdn.com/t/c/font_5176012_a6xpu2oep5i.ttf?t=1779696861887') format('truetype'),
-       url('//at.alicdn.com/t/c/font_5176012_a6xpu2oep5i.svg?t=1779696861887#iconfont') format('svg');
+  src: url('//at.alicdn.com/t/c/font_5176012_se72sc1gu1q.woff2?t=1780033529010') format('woff2'),
+       url('//at.alicdn.com/t/c/font_5176012_se72sc1gu1q.woff?t=1780033529010') format('woff'),
+       url('//at.alicdn.com/t/c/font_5176012_se72sc1gu1q.ttf?t=1780033529010') format('truetype'),
+       url('//at.alicdn.com/t/c/font_5176012_se72sc1gu1q.svg?t=1780033529010#iconfont') format('svg');
 }
 
 .iconfont {
@@ -14,6 +14,14 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-zhipaijingxiaoshang:before {
+  content: "\e736";
+}
+
+.icon-zhuangongdan:before {
+  content: "\e737";
+}
+
 .icon-zanting:before {
   content: "\e729";
 }