Browse Source

服务申请单编辑

xiaohaizhao 3 months ago
parent
commit
94191d0ee2

+ 72 - 1
E-service/serviceBillList/detail.js

@@ -27,7 +27,7 @@ Page({
   onLoad(options) {
     console.log("options", options)
     this.setData({
-      options: options.type || "default",
+      type: options.type || "default",
       sa_serviceorderid: options.id
     })
     this.getDetail()
@@ -58,9 +58,58 @@ Page({
         detail: res.data
       })
       this.setPreview(res);
+      this.setTabbar()
       this.partialRenewal();
     })
   },
+  tabbarOnClick(e) {
+    switch (e.detail.label) {
+      case '编辑':
+        wx.navigateTo({
+          url: `/E-service/serviceBillList/insert?type=${this.data.type}&edit=true`
+        })
+        break;
+    }
+  },
+  /* 底部功能 */
+  async setTabbar() {
+    let status = this.data.detail.status,
+      tabbarList = [];
+    let options = {
+      编辑: {
+        icon: "icon-bianji2",
+        label: "编辑"
+      },
+      转工单: {
+        icon: "icon-dibu-biangengchengjiaozhuangtai",
+        label: "转工单"
+      },
+      提交: {
+        icon: "icon-zhongzhi",
+        label: "提交"
+      },
+      中止: {
+        icon: "icon-zhongzhi",
+        label: "中止"
+      },
+      退回: {
+        icon: "icon-dibu-tuihui",
+        label: "退回"
+      },
+      删除: {
+        icon: "icon-shanchu1",
+        label: "删除"
+      }
+    };
+    let statusOptions = {
+      新建: ['编辑', '提交', '删除'],
+      已提交: ['编辑', '转工单', '退回', '中止'],
+    };
+    if (statusOptions[status]) tabbarList = statusOptions[status].map(v => options[v])
+    this.setData({
+      tabbarList
+    })
+  },
   setPreview(res) {
     /* 基本信息 */
     let list1 = [{
@@ -220,4 +269,26 @@ Page({
 
     }
   },
+  onUnload() {
+    getCurrentPages().forEach(page => {
+      if (page.__route__ == 'E-service/serviceBillList/index') {
+        let content = JSON.parse(JSON.stringify(page.data.content));
+        content.pageSize = (content.pageNumber - 1) * content.pageSize;
+        content.pageNumber = 1;
+        _Http.basic({
+          id: page.data.id,
+          content
+        }).then(res => {
+          console.log("更新列表", res);
+          if (res.code == '1') {
+            page.setData({
+              list: res.data,
+              "content.total": res.total
+            })
+          }
+        })
+      } else {
+      }
+    })
+  }
 })

+ 7 - 5
E-service/serviceBillList/detail.wxml

@@ -14,17 +14,17 @@
 		<view class="label">{{language['状态']||'状态'}}</view>
 		<view class="value" style="color:{{sColors[detail.status]}};">{{language[detail.status]||detail.status}}</view>
 	</view>
-	<view class="row">
+	<view class="row" wx:if="{{detail.sonum}}">
 		<view class="label">{{language['关联订单']||'关联订单'}}</view>
 		<view class="value">{{detail.sonum}}</view>
 	</view>
 	<view class="row">
 		<view class="label">{{language['企业名称']||'企业名称'}}</view>
-		<view class="value">{{language[detail.enterprisename]||detail.enterprisename}}</view>
+		<view class="value">{{language[detail.enterprisename]||detail.enterprisename||'--'}}</view>
 	</view>
 	<view class="row">
 		<view class="label">{{language['项目名称']||'项目名称'}}</view>
-		<view class="value">{{language[detail.projectnote]||detail.projectnote}}</view>
+		<view class="value">{{language[detail.projectnote]||detail.projectnote ||'--'}}</view>
 	</view>
 	<view class="row">
 		<view class="label">{{language['服务开始时间']||'服务开始时间'}}</view>
@@ -44,5 +44,7 @@
 	<Product slot='服务商品' id="Product" sa_orderid='{{detail.sa_orderid}}' disabled='{{detail.status!="新建"}}' />
 	<Preview slot='申请信息' list1='{{list1}}' list2='{{list2}}' />
 	<Preview slot='受理信息' title="确认信息" list1='{{list3}}' list2='{{list4}}' />
-	<view style="height: 150rpx;" />
-</Yl_FunTabs>
+	<view style="height: 180rpx;" />
+</Yl_FunTabs>
+
+<Yl_Tabbar wx:if="{{tabbarList.length}}" list='{{tabbarList}}' bind:callback="tabbarOnClick" />

+ 47 - 13
E-service/serviceBillList/insert.js

@@ -175,14 +175,14 @@ Page({
     }],
     "content": {
       "sa_serviceorderid": "0"
-    }
+    },
+    sa_orderid: ""
   },
   onLoad(options) {
     getApp().globalData.Language.getLanguagePackage(this, '新建申请单');
     this.setData({
       type: options.type || "default"
     })
-    console.log("options.type", options.type)
     if (options.type == 'admin') {
       this.data.form.unshift({
         label: "企业名称",
@@ -208,14 +208,36 @@ Page({
         valueName: "sys_enterpriseid",
         checking: "base",
         required: true,
-        interrupt: true
+        interrupt: true,
+        disabled: options.edit ? true : false
       })
       this.setData({
         form: this.data.form
       })
     }
-
-    this.getOptions()
+    this.getOptions();
+    if (options.edit) {
+      let form = this.data.form,
+        data = getCurrentPages().find(v => v.__route__ == 'E-service/serviceBillList/detail').data.detail;
+      data.region = data.province ? [data.province, data.city, data.county] : [];
+      this.data.sa_orderid = data.sa_orderid ? [data.sonum, [data.sa_orderid]] : '';
+      form = form.map(v => {
+        switch (v.valueName) {
+          case 'sys_enterpriseid':
+            v.value = data[v.valueName] ? [data.enterprisename, [data.sys_enterpriseid]] : ''
+            break;
+          default:
+            v.value = data[v.valueName] || ''
+            break;
+        }
+        return v
+      })
+      this.setData({
+        form,
+        "content.sa_serviceorderid": data.sa_serviceorderid
+      })
+      this.setOrdeForm();
+    }
     this.setOrdeForm();
   },
   submit() {
@@ -243,10 +265,8 @@ Page({
     try {
       if (content.sys_enterpriseid.length) {
         content.sys_enterpriseid = content.sys_enterpriseid[1][0]
-      } else {
-      }
-    } catch (error) {
-    }
+      } else {}
+    } catch (error) {}
 
     _Http.basic({
       "id": "20230206091403",
@@ -257,6 +277,9 @@ Page({
       })
       console.log("创建申请单", res)
       if (res.code == 1) {
+        if (content.sa_serviceorderid) wx.navigateBack({
+          delta: 2
+        })
         wx.navigateTo({
           url: `/E-service/serviceBillList/detail?id=${res.data.sa_serviceorderid}&type=${this.data.type}`,
           success: () => {
@@ -288,11 +311,20 @@ Page({
     } else if (detail.temporary.item.valueName == "sys_enterpriseid") {
       detail.form[detail.form.findIndex(v => v.valueName == 'sys_enterpriseid')].value = detail.data.value;
       this.setData({
-        form: detail.form
+        form: detail.form,
+        sa_orderid: ""
       })
       this.setOrdeForm();
       wx.navigateBack()
-    }
+    } else if (detail.temporary.item.valueName == "sa_orderid") {
+      detail.form[detail.form.findIndex(v => v.valueName == 'sa_orderid')].value = detail.data.value;
+      this.setData({
+        form: detail.form,
+        sa_orderid: detail.data.value
+      })
+      wx.navigateBack()
+    };
+    this.selectComponent("#Form").confirm()
   },
   setOrdeForm(e) {
     let value = this.data.form.find(v => v.valueName == 'servicetype').value,
@@ -314,8 +346,9 @@ Page({
               "pageNumber": 1
             }
           },
+          interrupt: true,
           query: '&radio=true',
-          value: "",
+          value: this.data.sa_orderid,
           placeholder: "选择订单号",
           valueName: "sa_orderid",
           checking: "base",
@@ -330,6 +363,7 @@ Page({
           errMsg: "",
           type: "route",
           url: "/packageA/toolBill/modules/selectOrder/index",
+          interrupt: true,
           params: {
             "id": "20230206091503",
             "content": {
@@ -342,7 +376,7 @@ Page({
             }
           },
           query: '&radio=true',
-          value: "",
+          value: this.data.sa_orderid,
           placeholder: "选择订单号",
           valueName: "sa_orderid",
           disabled: sys_enterpriseid.length == 0,

+ 1 - 2
E-service/serviceBillList/product/index.wxml

@@ -58,5 +58,4 @@
     </view>
   </view>
 </view>
-
-<My_empty wx:if="{{list.length==0}}" />
+<Yl_Empty wx:if="{{list.length==0}}" />

+ 1 - 0
components/Yl_Field/index.js

@@ -32,6 +32,7 @@ Component({
             const {
                 item
             } = e.currentTarget.dataset;
+            if (item.disabled) return;
             getApp().globalData.handleSelect = this.handleRoute.bind(this);
             wx.navigateTo({
                 url: item.url + '?params=' + JSON.stringify(item.params) + item.query