Sfoglia il codice sorgente

服务申请管理,服务申请详情页调整

qymljy 4 mesi fa
parent
commit
3813c84913

+ 81 - 21
src/HDrpManagement/serveBill/modules/detail.vue

@@ -9,20 +9,11 @@
       idname="sa_serviceorderid"
       ownertable="sa_serviceorder"
       :delApiId="20230206091803"
-      :statusCheck="[
-        { key: 'status', value: '待处理' },
-        { key: 'status', value: '进行中' },
-        { key: 'status', value: '提交' },
-        { key: 'status', value: '待指派' },
-        { key: 'status', value: '已完成' },
-      ]"
+      :statusCheck="[{key:'status',value:'已受理'},{key:'status',value:'已中止'}]"
       :status="mainData.status"
+      :delHide="mainData.status !== '新建' || submitDis"
       tags=""
-      :tabs="
-        mainData.servicetype == '售前' || mainData.servicetype == '历史售后'
-          ? ['详细信息', '关联工单']
-          : ['详细信息', '服务商品', '关联工单']
-      "
+      :tabs="['服务申请']"
       @hrMain="hrMain"
       @pageChange="pageChange"
       @onEditSuccess="queryMainData($route.query.id)"
@@ -30,16 +21,14 @@
       <div slot="tags"></div>
       <div slot="customOperation">
         <Edit
-          v-if="
-            tool.checkAuth($route.name, 'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1)
-          "
-          class="inline-16"
+            v-if="tool.checkAuth($route.name,'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1) && mainData.status != '已受理' && mainData.status != '已中止'"
+            class="inline-16"
           :data="mainData"
           @onSuccess="queryMainData"
         />
         <changeBill
           v-if="
-            mainData.status == '待指派' &&
+            mainData.status == '已提交' &&
             tool.checkAuth($route.name, 'changeBill')
           "
           class="inline-16"
@@ -54,6 +43,7 @@
           :id="$route.query.id"
           :paramData="[{ key: 'issumbit', value: 1 }]"
           @onSuccess="queryMainData"
+          :disabled="(hrid == 0 && usertype == 0) || submitDis"
           class="inline-16"
           v-if="
             mainData.status == '新建' && tool.checkAuth($route.name, 'submit')
@@ -67,18 +57,39 @@
           :id="$route.query.id"
           :paramData="[{ key: 'issumbit', value: 0 }]"
           :dialog="true"
+          :checkString="true"
           dialogTitle="请输入退回原因"
           dialogKey="backreason"
           @onSuccess="queryMainData"
+          errorMessage="退回原因不可为空"
           class="inline-16"
           v-if="
-            mainData.status == '待指派' &&
+            mainData.status == '已提交' &&
             tool.checkAuth($route.name, 'resubmit')
           "
         />
+        <customBtn
+            btnName="中止"
+            message="确认中止当前服务申请单吗?"
+            idName="2026012414051502"
+            keyName="sa_serviceorderid"
+            :id="$route.query.id"
+            :dialog="true"
+            :checkString="true"
+            dialogTitle="请输入中止原因"
+            dialogKey="abortreason"
+            @onSuccess="queryMainData"
+            errorMessage="中止原因不可为空"
+            class="inline-16"
+            v-if="mainData.status == '已提交' && tool.checkAuth($route.name,'suspension')"
+        />
       </div>
       <div slot="slot0">
-        <detailInfo :more="true" :data="detailInfo"></detailInfo>
+<!--        <detailInfo :more="true" :data="detailInfo"></detailInfo>-->
+        <serviceApplication
+            :detailInfo="detailInfo" :mainData="mainData" :detailInfo2="detailInfo2"
+            :activeName="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'?'申请信息':'服务商品'">
+        </serviceApplication>
       </div>
       <div slot="slot2">
         <workBill ref="workBill">
@@ -145,6 +156,7 @@ import Edit from "../components/edit";
 import workBill from "./workBill/index";
 import productTable from "./product/index";
 import addProduct from "./product/add";
+import serviceApplication from "@/HDrpManagement/serveBillMag/components/serviceApplication";
 export default {
   name: "detail",
   data() {
@@ -152,7 +164,13 @@ export default {
       mainData: {},
       mainAreaData: {},
       detailInfo: [],
-      isworker:''
+      detailInfo2:[],
+      isworker:'',
+      hrid:JSON.parse(sessionStorage.getItem('active_account')).hrid,
+      nowUserid:JSON.parse(sessionStorage.getItem('active_account')).userid,
+      usertype:JSON.parse(sessionStorage.getItem('active_account')).usertype,
+      submitDis:true,
+      hrData:''
     };
   },
   components: {
@@ -162,11 +180,32 @@ export default {
     workBill,
     productTable,
     addProduct,
+    serviceApplication
   },
   methods: {
     hrMain(data){
-      console.log(data,'输出data')
+      this.hrData = data
+      this.submitDis = true
       this.isworker = data.isworker
+      if (data.hrid == this.mainData.saler_hrid){
+        this.submitDis = false
+      }else {
+        this.proxyData(this.mainData.saler_userid)
+      }
+    },
+    async proxyData(userid){
+      const res = await this.$api.requested({
+        "id":20230302174201,
+        "content": {
+          "leaderuserid": userid,
+          "isproxy":1
+        }
+      })
+      res.data.forEach(item => {
+        if (item.userid == this.nowUserid && item.editable){
+          this.submitDis = false
+        }
+      })
     },
     async queryMainData(id) {
       const res = await this.$api.requested({
@@ -178,6 +217,7 @@ export default {
       this.mainData = res.data;
 
       this.changeDataStructure();
+      this.hrMain(this.hrData)
     },
     changeDataStructure() {
       let that = this;
@@ -280,6 +320,26 @@ export default {
             {label:'提交人',value:this.mainData.submitby},
           ],
         },
+      ]
+      this.detailInfo2 = [
+        {
+          title:'确认信息',
+          info: [
+            {label:'供应方',value:this.mainData.supplier}
+          ]
+        },
+        {
+          title:'系统信息',
+          info: [
+            {label:'最近编辑人',value:this.mainData.changeby},
+            {label:'最近编辑时间',value:this.mainData.changedate},
+            {label:'转单人',value:this.mainData.transformer},
+            {label:'转单时间',value:this.mainData.transdate},
+            {label:'退回原因',value:this.mainData.backreason},
+            {label:'中止时间',value:this.mainData.abortdate},
+            {label:'中止原因',value:this.mainData.abortreason}
+          ]
+        }
       ];
     },
     // 监听切换数据,上一页,下一页

+ 47 - 5
src/HDrpManagement/serveBillMag/modules/detail.vue

@@ -11,7 +11,7 @@
         :delApiId="20230206091803"
         :status="mainData.status"
         :statusCheck="[{key:'status',value:'已受理'},{key:'status',value:'已中止'}]"
-        :delHide="mainData.status !== '新建'"
+        :delHide="mainData.status !== '新建' || submitDis"
         tags=""
         :tabs="['服务申请']"
         @hrMain="hrMain"
@@ -20,7 +20,8 @@
       <div slot="tags">
       </div>
       <div slot="customOperation" >
-        <Edit v-if="tool.checkAuth($route.name,'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1) && mainData.status != '已受理' && mainData.status != '已中止'" class="inline-16" :data="mainData" @onSuccess="queryMainData" />
+        <Edit v-if="tool.checkAuth($route.name,'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1) && mainData.status != '已受理' && mainData.status != '已中止'"
+              class="inline-16" :data="mainData" @onSuccess="queryMainData" />
         <changeBill v-if="mainData.status == '已提交' && tool.checkAuth($route.name,'changeBill')" class="inline-16" @onSuccess="queryMainData" :data="mainData"></changeBill>
         <customBtn
           btnName="提交"
@@ -30,7 +31,7 @@
           :id="$route.query.id"
           :paramData="[{key:'issumbit',value:1}]"
           @onSuccess="queryMainData"
-          :disabled="hrid == 0 && usertype == 0"
+          :disabled="(hrid == 0 && usertype == 0) || submitDis"
           class="inline-16"
           v-if="mainData.status == '新建' && tool.checkAuth($route.name,'submit')"
         />
@@ -42,12 +43,29 @@
           :id="$route.query.id"
           :paramData="[{key:'issumbit',value:0}]"
           :dialog="true"
+          :checkString="true"
           dialogTitle="请输入退回原因"
           dialogKey="backreason"
           @onSuccess="queryMainData"
+          errorMessage="退回原因不可为空"
           class="inline-16"
           v-if="mainData.status == '已提交' && tool.checkAuth($route.name,'resubmit')"
         />
+        <customBtn
+            btnName="中止"
+            message="确认中止当前服务申请单吗?"
+            idName="2026012414051502"
+            keyName="sa_serviceorderid"
+            :id="$route.query.id"
+            :dialog="true"
+            :checkString="true"
+            dialogTitle="请输入中止原因"
+            dialogKey="abortreason"
+            @onSuccess="queryMainData"
+            errorMessage="中止原因不可为空"
+            class="inline-16"
+            v-if="mainData.status == '已提交' && tool.checkAuth($route.name,'suspension')"
+        />
       </div>
       <div slot="slot0" >
 <!--        <detailInfo :more="true" :data="detailInfo"></detailInfo>-->
@@ -99,7 +117,10 @@ export default {
       detailInfo2:[],
       isworker:'',
       hrid:JSON.parse(sessionStorage.getItem('active_account')).hrid,
-      usertype:JSON.parse(sessionStorage.getItem('active_account')).usertype
+      nowUserid:JSON.parse(sessionStorage.getItem('active_account')).userid,
+      usertype:JSON.parse(sessionStorage.getItem('active_account')).usertype,
+      submitDis:true,
+      hrData:''
     }
   },
   components:{
@@ -113,8 +134,28 @@ export default {
   },
   methods:{
     hrMain(data){
-      console.log(data,'输出data')
+      this.hrData = data
+      this.submitDis = true
       this.isworker = data.isworker
+      if (data.hrid == this.mainData.saler_hrid){
+        this.submitDis = false
+      }else {
+        this.proxyData(this.mainData.saler_userid)
+      }
+    },
+    async proxyData(userid){
+      const res = await this.$api.requested({
+        "id":20230302174201,
+        "content": {
+          "leaderuserid": userid,
+          "isproxy":1
+        }
+      })
+      res.data.forEach(item => {
+        if (item.userid == this.nowUserid && item.editable){
+          this.submitDis = false
+        }
+      })
     },
     async queryMainData(id) {
       const res = await this.$api.requested({
@@ -127,6 +168,7 @@ export default {
       console.log(this.mainData);
 
       this.changeDataStructure()
+      this.hrMain(this.hrData)
     },
     changeDataStructure() {
       let that = this

+ 14 - 1
src/components/customBtn/index.vue

@@ -31,8 +31,10 @@ export default {
     dialogTitle: String,
     dialogKey: String,
     checkContent: Boolean,
+    checkString: Boolean,
     size: String,
     delType: String,
+    errorMessage:String
   },
   data() {
     return {};
@@ -45,7 +47,8 @@ export default {
         this.$prompt(this.$t(this.dialogTitle), this.$t("提示"), {
           confirmButtonText: this.$t("确定"),
           cancelButtonText: this.$t("取消"),
-          inputPattern: this.checkContent ? /^[\d.]+$/ : "",
+          inputPattern: this.checkContent ? /^[\d.]+$/ : this.checkString ? /^\S.*$/ : "",
+          inputErrorMessage: this.$t(this.errorMessage)
         }).then(async ({ value }) => {
           let param = {
             content: {},
@@ -73,6 +76,11 @@ export default {
               this.$emit("onSuccess", res.data);
             });
           }
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: this.$t('已取消')
+          });
         });
       } else {
         this.$confirm(this.$t(this.message), this.$t("提示"), {
@@ -92,6 +100,11 @@ export default {
           this.tool.showMessage(res, () => {
             this.$emit("onSuccess", res.data);
           });
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: this.$t('已取消')
+          });
         });
       }
     },