qymljy hace 3 meses
padre
commit
1b81f1cf3d

+ 5 - 135
src/HDrpManagement/serveBill/modules/detail.vue

@@ -13,7 +13,7 @@
       :status="mainData.status"
       :delHide="mainData.status !== '新建' || submitDis"
       tags=""
-      :tabs="['服务申请']"
+      :tabs="['服务申请','服务工单','服务改善']"
       @hrMain="hrMain"
       @pageChange="pageChange"
       @onEditSuccess="queryMainData($route.query.id)"
@@ -85,64 +85,11 @@
         />
       </div>
       <div slot="slot0">
-<!--        <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">
-          <!-- <template v-slot:delProduct="scope">
-            <delete-btn nameId="20230206162003" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderid" @deleteSuccess="$refs.workBill.listData()"></delete-btn>
-          </template> -->
-        </workBill>
+        <serviceApplication  ref="serviceApplicationRef" v-if="mainData" :mainData="mainData"></serviceApplication>
       </div>
       <div slot="slot1">
-        <workBill
-          ref="workBill"
-          v-if="
-            mainData.servicetype == '售前' || mainData.servicetype == '历史售后'
-          "
-        >
-        </workBill>
-        <productTable ref="product" v-else>
-          <addProduct
-            v-if="
-              tool.checkAuth($route.name, 'serveProduct') &&
-              mainData.status == '新建'
-            "
-            slot="addProduct"
-            :data="mainData"
-            @onSuccess="$refs.product.listData()"
-          />
-          <template v-slot:editProduct="scope">
-            <el-button
-              class="inline-16"
-              v-if="
-                tool.checkAuth($route.name, 'serveProduct') &&
-                mainData.status == '新建'
-              "
-              type="text"
-              size="mini"
-              @click="$refs.product.currentProduct = scope.data"
-              >{{ $t("编 辑") }}</el-button
-            >
-          </template>
-          <template v-slot:delProduct="scope">
-            <delete-btn
-              nameId="20230206162003"
-              v-if="
-                tool.checkAuth($route.name, 'serveProduct') &&
-                mainData.status == '新建'
-              "
-              nameKey="sa_serviceorderitemsids"
-              :id="scope.data.sa_serviceorderitemsid"
-              @deleteSuccess="$refs.product.listData()"
-            ></delete-btn>
-          </template>
-        </productTable>
-
+      </div>
+      <div slot="slot2">
       </div>
     </basicDetails>
   </div>
@@ -218,6 +165,7 @@ export default {
 
       this.changeDataStructure();
       this.hrMain(this.hrData)
+      this.$refs.serviceApplicationRef.changeDataStructure(this.mainData)
     },
     changeDataStructure() {
       let that = this;
@@ -270,84 +218,6 @@ export default {
         {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
         {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
       ];
-      this.detailInfo = [
-        {
-          title: "基本信息",
-          info: [
-            {label:'申请单号',value:this.mainData.billno},
-            {label:'单据日期',value:this.mainData.billdate},
-            {label:'状态',value:this.$t(this.mainData.status),
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.status)
-                return style
-              }
-            },
-            {label:'企业名称',value:this.mainData.enterprisename},
-            {label:'企业编号',value:this.mainData.agentnum},
-            {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
-            {label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
-            {label:'关联订单',value:this.mainData.sonum},
-            {label:'服务类型',value:this.mainData.servicetype,
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.servicetype)
-                return style
-              }
-            },
-            {label:'现场联系人',value:this.mainData.scenecontact},
-            {label:'身份备注',value:this.mainData.scenecontactrole},
-            {label:'现场联系人电话',value:this.mainData.scenecontactphonenumber},
-            {label:'应用系统',value:this.mainData.class1},
-            {label:'客诉大类',value:this.mainData.class2},
-            {label:'问题描述',value:this.mainData.reason},
-            {label:'服务开始日期',value:this.mainData.begdate ? this.mainData.begdate.slice(0,this.mainData.begdate.indexOf(' ')) : ''},
-            {label:'服务结束日期',value:this.mainData.enddate ? this.mainData.enddate.slice(0,this.mainData.enddate.indexOf(' ')) : ''},
-            {label:'项目名称',value:this.mainData.projectnote ? this.mainData.projectnote : ''},
-            {label:'业务员',value:this.mainData.saler_name ? this.mainData.saler_name : ''},
-            {label:'业务员电话',value:this.mainData.saler_phonenumber ? this.mainData.saler_phonenumber : ''},
-            {label:'异常类型',value:this.mainData.exception_type ? this.mainData.exception_type : ''},
-            {label:'服务等级',value:this.mainData.service_level ? this.mainData.service_level : '',
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.service_level)
-                return style
-              }
-            },
-            {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
-            {label:'历史服务次数',value:this.mainData.historicalservicesqty ? this.mainData.historicalservicesqty : ''},
-            {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
-          ],
-        },
-        {
-          title: "系统信息",
-          info: [
-            {label:'创建时间',value:this.mainData.createdate},
-            {label:'最近编辑时间',value:this.mainData.changedate},
-            {label:'提交时间',value:this.mainData.submitdate},
-            {label:'创建人',value:this.mainData.createby},
-            {label:'最近编辑人',value:this.mainData.changeby},
-            {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}
-          ]
-        }
-      ];
     },
     // 监听切换数据,上一页,下一页
     pageChange(id, rowindex, tabIndex) {

+ 376 - 0
src/HDrpManagement/serveBill/modules/detailCopy.vue

@@ -0,0 +1,376 @@
+<template>
+  <div>
+    <basicDetails
+      ref="details"
+      :titleText="mainData.billno"
+      :editData="mainData"
+      :mainAreaData="mainAreaData"
+      turnPageId="20230206091703"
+      idname="sa_serviceorderid"
+      ownertable="sa_serviceorder"
+      :delApiId="20230206091803"
+      :statusCheck="[{key:'status',value:'已受理'},{key:'status',value:'已中止'}]"
+      :status="mainData.status"
+      :delHide="mainData.status !== '新建' || submitDis"
+      tags=""
+      :tabs="['服务申请']"
+      @hrMain="hrMain"
+      @pageChange="pageChange"
+      @onEditSuccess="queryMainData($route.query.id)"
+    >
+      <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"
+        />
+        <changeBill
+          v-if="
+            mainData.status == '已提交' &&
+            tool.checkAuth($route.name, 'changeBill')
+          "
+          class="inline-16"
+          @onSuccess="queryMainData"
+          :data="mainData"
+        ></changeBill>
+        <customBtn
+          btnName="提交"
+          message="确认提交当前服务申请单吗?"
+          idName="20230206101403"
+          keyName="sa_serviceorderid"
+          :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')
+          "
+        />
+        <customBtn
+          btnName="退回"
+          message="确认退回当前服务申请单吗?"
+          idName="20230206101403"
+          keyName="sa_serviceorderid"
+          :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>-->
+        <serviceApplication
+            :detailInfo="detailInfo" :mainData="mainData" :detailInfo2="detailInfo2"
+            :activeName="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'?'申请信息':'服务商品'">
+        </serviceApplication>
+      </div>
+      <div slot="slot2">
+        <workBill ref="workBill">
+          <!-- <template v-slot:delProduct="scope">
+            <delete-btn nameId="20230206162003" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderid" @deleteSuccess="$refs.workBill.listData()"></delete-btn>
+          </template> -->
+        </workBill>
+      </div>
+      <div slot="slot1">
+        <workBill
+          ref="workBill"
+          v-if="
+            mainData.servicetype == '售前' || mainData.servicetype == '历史售后'
+          "
+        >
+        </workBill>
+        <productTable ref="product" v-else>
+          <addProduct
+            v-if="
+              tool.checkAuth($route.name, 'serveProduct') &&
+              mainData.status == '新建'
+            "
+            slot="addProduct"
+            :data="mainData"
+            @onSuccess="$refs.product.listData()"
+          />
+          <template v-slot:editProduct="scope">
+            <el-button
+              class="inline-16"
+              v-if="
+                tool.checkAuth($route.name, 'serveProduct') &&
+                mainData.status == '新建'
+              "
+              type="text"
+              size="mini"
+              @click="$refs.product.currentProduct = scope.data"
+              >{{ $t("编 辑") }}</el-button
+            >
+          </template>
+          <template v-slot:delProduct="scope">
+            <delete-btn
+              nameId="20230206162003"
+              v-if="
+                tool.checkAuth($route.name, 'serveProduct') &&
+                mainData.status == '新建'
+              "
+              nameKey="sa_serviceorderitemsids"
+              :id="scope.data.sa_serviceorderitemsid"
+              @deleteSuccess="$refs.product.listData()"
+            ></delete-btn>
+          </template>
+        </productTable>
+
+      </div>
+    </basicDetails>
+  </div>
+</template>
+
+<script>
+import detailInfo from "@/components/detailInfo/index";
+import changeBill from "../components/changeBill";
+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() {
+    return {
+      mainData: {},
+      mainAreaData: {},
+      detailInfo: [],
+      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: {
+    detailInfo,
+    changeBill,
+    Edit,
+    workBill,
+    productTable,
+    addProduct,
+    serviceApplication
+  },
+  methods: {
+    hrMain(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({
+        id: 20230206091603,
+        content: {
+          sa_serviceorderid: this.$route.query.id,
+        },
+      });
+      this.mainData = res.data;
+
+      this.changeDataStructure();
+      this.hrMain(this.hrData)
+    },
+    changeDataStructure() {
+      let that = this;
+      this.mainAreaData = [
+        {label:'单号',value:this.mainData.billno ? this.mainData.billno : ''},
+        {label:'单据日期',value:this.mainData.billdate ? this.mainData.billdate : ''},
+        {label:'状态',value:this.mainData.status ?this.$t(this.mainData.status)  : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.status)
+            return style
+          }
+        },
+        {label:'企业名称',value:this.mainData.enterprisename ? this.mainData.enterprisename : ''},
+        {label:'企业编码',value:this.mainData.agentnum ? this.mainData.agentnum : ''},
+        {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
+        {label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
+        {label:'关联订单',value:this.mainData.sonum ? this.mainData.sonum : ''},
+        {label:'服务类型',value:this.mainData.servicetype ? this.mainData.servicetype : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.servicetype)
+            return style
+          }
+        },
+        {label:'现场联系人',value:this.mainData.scenecontact ? this.mainData.scenecontact : ''},
+        {label:'身份备注',value:this.mainData.scenecontactrole ? this.mainData.scenecontactrole : ''},
+        {label:'现场联系电话',value:this.mainData.scenecontactphonenumber ? this.mainData.scenecontactphonenumber : ''},
+        {label:'应用系统',value:this.mainData.class1 ? this.mainData.class1 : ''},
+        {label:'客诉大类',value:this.mainData.class2 ? this.mainData.class2 : ''},
+        {label:'服务开始日期',value:this.mainData.begdate ? this.mainData.begdate.slice(0,this.mainData.begdate.indexOf(' ')) : ''},
+        {label:'服务结束日期',value:this.mainData.enddate ? this.mainData.enddate.slice(0,this.mainData.enddate.indexOf(' ')) : ''},
+        {label:'问题描述',value:this.mainData.reason ? this.mainData.reason : ''},
+        {label:'业务员',value:this.mainData.saler_name ? this.mainData.saler_name : ''},
+        {label:'业务员电话',value:this.mainData.saler_phonenumber ? this.mainData.saler_phonenumber : ''},
+        {label:'项目名称',value:this.mainData.projectnote ? this.mainData.projectnote : ''},
+        {label:'历史服务次数',value:this.mainData.historicalservicesqty ? this.mainData.historicalservicesqty : ''},
+        {label:'工单状态',value:this.mainData.status_workorder ? this.mainData.status_workorder : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.status_workorder)
+            return style
+          }
+        },
+        {label:'工单完成时间',value:this.mainData.finishdate_workorder ? this.mainData.finishdate_workorder : ''},
+        {label:'异常类型',value:this.mainData.exception_type ? this.mainData.exception_type : ''},
+        {label:'服务等级',value:this.mainData.service_level ? this.mainData.service_level : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.service_level)
+            return style
+          }
+        },
+        {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
+        {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
+      ];
+      this.detailInfo = [
+        {
+          title: "基本信息",
+          info: [
+            {label:'申请单号',value:this.mainData.billno},
+            {label:'单据日期',value:this.mainData.billdate},
+            {label:'状态',value:this.$t(this.mainData.status),
+              style:function () {
+                let style = that.tool.getStatusColor(that.mainData.status)
+                return style
+              }
+            },
+            {label:'企业名称',value:this.mainData.enterprisename},
+            {label:'企业编号',value:this.mainData.agentnum},
+            {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
+            {label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
+            {label:'关联订单',value:this.mainData.sonum},
+            {label:'服务类型',value:this.mainData.servicetype,
+              style:function () {
+                let style = that.tool.getStatusColor(that.mainData.servicetype)
+                return style
+              }
+            },
+            {label:'现场联系人',value:this.mainData.scenecontact},
+            {label:'身份备注',value:this.mainData.scenecontactrole},
+            {label:'现场联系人电话',value:this.mainData.scenecontactphonenumber},
+            {label:'应用系统',value:this.mainData.class1},
+            {label:'客诉大类',value:this.mainData.class2},
+            {label:'问题描述',value:this.mainData.reason},
+            {label:'服务开始日期',value:this.mainData.begdate ? this.mainData.begdate.slice(0,this.mainData.begdate.indexOf(' ')) : ''},
+            {label:'服务结束日期',value:this.mainData.enddate ? this.mainData.enddate.slice(0,this.mainData.enddate.indexOf(' ')) : ''},
+            {label:'项目名称',value:this.mainData.projectnote ? this.mainData.projectnote : ''},
+            {label:'业务员',value:this.mainData.saler_name ? this.mainData.saler_name : ''},
+            {label:'业务员电话',value:this.mainData.saler_phonenumber ? this.mainData.saler_phonenumber : ''},
+            {label:'异常类型',value:this.mainData.exception_type ? this.mainData.exception_type : ''},
+            {label:'服务等级',value:this.mainData.service_level ? this.mainData.service_level : '',
+              style:function () {
+                let style = that.tool.getStatusColor(that.mainData.service_level)
+                return style
+              }
+            },
+            {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
+            {label:'历史服务次数',value:this.mainData.historicalservicesqty ? this.mainData.historicalservicesqty : ''},
+            {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
+          ],
+        },
+        {
+          title: "系统信息",
+          info: [
+            {label:'创建时间',value:this.mainData.createdate},
+            {label:'最近编辑时间',value:this.mainData.changedate},
+            {label:'提交时间',value:this.mainData.submitdate},
+            {label:'创建人',value:this.mainData.createby},
+            {label:'最近编辑人',value:this.mainData.changeby},
+            {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}
+          ]
+        }
+      ];
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange(id, rowindex, tabIndex) {
+      this.flag = false;
+      tabIndex = this.$route.query.tabIndex;
+      this.$router.replace({
+        path: "/serveBillDetail",
+        query: { id: id, rowindex: rowindex, tabIndex: tabIndex },
+      });
+      this.queryMainData(id);
+    },
+    onSuccess() {
+      this.visible = false;
+      this.queryMainData(this.$route.query.id);
+      this.$emit("onSuccess");
+    },
+  },
+  mounted() {
+    this.queryMainData(this.$route.query.id);
+  },
+  created() {},
+};
+</script>
+
+<style scoped>
+</style>

+ 97 - 2
src/HDrpManagement/serveBillMag/components/serviceApplication.vue

@@ -30,14 +30,109 @@ import infoDetail from '@/components/InfoDetail/index'
 export default {
   name: "serviceApplication",
   components:{detailInfo,productTable,addProduct,infoDetail},
-  props:['detailInfo','mainData','activeName','detailInfo2'],
+  props:["mainData"],
   data(){
     return {
-
+      detailInfo:{},
+      detailInfo2:{},
+      activeName:'',
+      internalData:{ ...this.mainData }
     }
   },
   methods:{
+    changeDataStructure(newData){
+
+      if (newData){
+        this.internalData = { ...newData }
+      }else {
+        this.internalData = { ...this.mainData }
+      }
+      console.log(this.internalData,'internalData')
+      this.activeName = this.internalData.servicetype == '售前' || this.internalData.servicetype == '历史售后'?'申请信息':'服务商品'
+      let that = this;
+      this.detailInfo = [
+        {
+          title: "基本信息",
+          info: [
+            {label:'申请单号',value:this.internalData.billno},
+            {label:'单据日期',value:this.internalData.billdate},
+            {label:'状态',value:this.$t(this.internalData.status),
+              style:function () {
+                let style = that.tool.getStatusColor(that.internalData.status)
+                return style
+              }
+            },
+            {label:'企业名称',value:this.internalData.enterprisename},
+            {label:'企业编号',value:this.internalData.agentnum},
+            {label:'省市县',value:`${this.internalData.province}-${this.internalData.city}-${this.internalData.county}`},
+            {label:'详细地址',value:this.internalData.address ? this.internalData.address : ''},
+            {label:'关联订单',value:this.internalData.sonum},
+            {label:'服务类型',value:this.internalData.servicetype,
+              style:function () {
+                let style = that.tool.getStatusColor(that.internalData.servicetype)
+                return style
+              }
+            },
+            {label:'现场联系人',value:this.internalData.scenecontact},
+            {label:'身份备注',value:this.internalData.scenecontactrole},
+            {label:'现场联系人电话',value:this.internalData.scenecontactphonenumber},
+            {label:'应用系统',value:this.internalData.class1},
+            {label:'客诉大类',value:this.internalData.class2},
+            {label:'问题描述',value:this.internalData.reason},
+            {label:'服务开始日期',value:this.internalData.begdate ? this.internalData.begdate.slice(0,this.internalData.begdate.indexOf(' ')) : ''},
+            {label:'服务结束日期',value:this.internalData.enddate ? this.internalData.enddate.slice(0,this.internalData.enddate.indexOf(' ')) : ''},
+            {label:'项目名称',value:this.internalData.projectnote ? this.internalData.projectnote : ''},
+            {label:'业务员',value:this.internalData.saler_name ? this.internalData.saler_name : ''},
+            {label:'业务员电话',value:this.internalData.saler_phonenumber ? this.internalData.saler_phonenumber : ''},
+            {label:'异常类型',value:this.internalData.exception_type ? this.internalData.exception_type : ''},
+            {label:'服务等级',value:this.internalData.service_level ? this.internalData.service_level : '',
+              style:function () {
+                let style = that.tool.getStatusColor(that.internalData.service_level)
+                return style
+              }
+            },
+            {label:'评估意见',value:this.internalData.evaluation_comment ? this.internalData.evaluation_comment : ''},
+            {label:'历史服务次数',value:this.internalData.historicalservicesqty ? this.internalData.historicalservicesqty : ''},
+            {label:'备注',value:this.internalData.remarks ? this.internalData.remarks : ''},
+          ],
+        },
+        {
+          title: "系统信息",
+          info: [
+            {label:'创建时间',value:this.internalData.createdate},
+            {label:'最近编辑时间',value:this.internalData.changedate},
+            {label:'提交时间',value:this.internalData.submitdate},
+            {label:'创建人',value:this.internalData.createby},
+            {label:'最近编辑人',value:this.internalData.changeby},
+            {label:'提交人',value:this.internalData.submitby},
+          ],
+        },
+      ]
+      this.detailInfo2 = [
+        {
+          title:'确认信息',
+          info: [
+            {label:'供应方',value:this.internalData.supplier}
+          ]
+        },
+        {
+          title:'系统信息',
+          info: [
+            {label:'最近编辑人',value:this.internalData.changeby},
+            {label:'最近编辑时间',value:this.internalData.changedate},
+            {label:'转单人',value:this.internalData.transformer},
+            {label:'转单时间',value:this.internalData.transdate},
+            {label:'退回原因',value:this.internalData.backreason},
+            {label:'中止时间',value:this.internalData.abortdate},
+            {label:'中止原因',value:this.internalData.abortreason}
+          ]
+        }
+      ];
+    },
     handleClick(){}
+  },
+  mounted() {
+    this.changeDataStructure()
   }
 }
 </script>

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

@@ -13,7 +13,7 @@
         :statusCheck="[{key:'status',value:'已受理'},{key:'status',value:'已中止'}]"
         :delHide="mainData.status !== '新建' || submitDis"
         tags=""
-        :tabs="['服务申请']"
+        :tabs="['服务申请','服务工单','服务改善']"
         @hrMain="hrMain"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
@@ -68,31 +68,11 @@
         />
       </div>
       <div slot="slot0" >
-<!--        <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">
-          <!-- <template v-slot:delProduct="scope">
-            <delete-btn nameId="20230206162003" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderid" @deleteSuccess="$refs.workBill.listData()"></delete-btn>
-          </template> -->
-        </workBill>
+        <serviceApplication  ref="serviceApplicationRef" v-if="mainData" :mainData="mainData"></serviceApplication>
       </div>
       <div slot="slot1">
-        <workBill ref="workBill" v-if="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'">
-        </workBill>
-        <productTable ref="product" v-else>
-          <addProduct v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" slot="addProduct" :data="mainData" @onSuccess="$refs.product.listData()" />
-          <template v-slot:editProduct="scope">
-            <el-button class="inline-16" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" type="text" size="mini" @click="$refs.product.currentProduct=scope.data">{{$t('编 辑')}}</el-button>
-          </template>
-          <template v-slot:delProduct="scope">
-            <delete-btn nameId="20230206162003" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderitemsid" @deleteSuccess="$refs.product.listData()"></delete-btn>
-          </template>
-        </productTable>
+      </div>
+      <div slot="slot2" >
       </div>
     </basicDetails>
   </div>
@@ -166,9 +146,9 @@ export default {
       })
       this.mainData = res.data
       console.log(this.mainData);
-
       this.changeDataStructure()
       this.hrMain(this.hrData)
+      this.$refs.serviceApplicationRef.changeDataStructure(this.mainData)
     },
     changeDataStructure() {
       let that = this
@@ -221,85 +201,6 @@ export default {
         {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
         {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
       ]
-      this.detailInfo = [
-        {
-          title:'基本信息',
-          info: [
-            {label:'申请单号',value:this.mainData.billno},
-            {label:'单据日期',value:this.mainData.billdate},
-            {label:'状态',value:this.$t(this.mainData.status),
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.status)
-                return style
-              }
-            },
-            {label:'企业名称',value:this.mainData.enterprisename},
-            {label:'企业编号',value:this.mainData.agentnum},
-            {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
-            {label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
-            {label:'关联订单',value:this.mainData.sonum},
-            {label:'服务类型',value:this.mainData.servicetype,
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.servicetype)
-                return style
-              }
-            },
-            {label:'现场联系人',value:this.mainData.scenecontact},
-            {label:'身份备注',value:this.mainData.scenecontactrole},
-            {label:'现场联系人电话',value:this.mainData.scenecontactphonenumber},
-            {label:'应用系统',value:this.mainData.class1},
-            {label:'客诉大类',value:this.mainData.class2},
-            {label:'问题描述',value:this.mainData.reason},
-            {label:'服务开始日期',value:this.mainData.begdate ? this.mainData.begdate.slice(0,this.mainData.begdate.indexOf(' ')) : ''},
-            {label:'服务结束日期',value:this.mainData.enddate ? this.mainData.enddate.slice(0,this.mainData.enddate.indexOf(' ')) : ''},
-            {label:'项目名称',value:this.mainData.projectnote ? this.mainData.projectnote : ''},
-            {label:'业务员',value:this.mainData.saler_name ? this.mainData.saler_name : ''},
-            {label:'业务员电话',value:this.mainData.saler_phonenumber ? this.mainData.saler_phonenumber : ''},
-            {label:'异常类型',value:this.mainData.exception_type ? this.mainData.exception_type : ''},
-            {label:'服务等级',value:this.mainData.service_level ? this.mainData.service_level : '',
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.service_level)
-                return style
-              }
-            },
-            {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
-            {label:'历史服务次数',value:this.mainData.historicalservicesqty ? this.mainData.historicalservicesqty : ''},
-            {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
-          ]
-        },
-        {
-          title:'系统信息',
-          info: [
-            {label:'创建时间',value:this.mainData.createdate},
-            {label:'最近编辑时间',value:this.mainData.changedate},
-            {label:'提交时间',value:this.mainData.submitdate},
-            {label:'创建人',value:this.mainData.createby},
-            {label:'最近编辑人',value:this.mainData.changeby},
-            {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}
-          ]
-        }
-      ]
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex,tabIndex) {

+ 248 - 0
src/HDrpManagement/serveBillMag/modules/detailCopy.vue

@@ -0,0 +1,248 @@
+<template>
+  <div>
+    <basicDetails
+        ref="details"
+        :titleText="mainData.billno"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20230206091703"
+        idname="sa_serviceorderid"
+        ownertable="sa_serviceorder"
+        :delApiId="20230206091803"
+        :status="mainData.status"
+        :statusCheck="[{key:'status',value:'已受理'},{key:'status',value:'已中止'}]"
+        :delHide="mainData.status !== '新建' || submitDis"
+        tags=""
+        :tabs="['服务申请']"
+        @hrMain="hrMain"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <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" />
+        <changeBill v-if="mainData.status == '已提交' && tool.checkAuth($route.name,'changeBill')" class="inline-16" @onSuccess="queryMainData" :data="mainData"></changeBill>
+        <customBtn
+          btnName="提交"
+          message="确认提交当前服务申请单吗?"
+          idName="20230206101403"
+          keyName="sa_serviceorderid"
+          :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')"
+        />
+        <customBtn
+          btnName="退回"
+          message="确认退回当前服务申请单吗?"
+          idName="20230206101403"
+          keyName="sa_serviceorderid"
+          :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>-->
+        <serviceApplication
+            :mainData="mainData" ref="serviceApplicationRef"
+            :activeName="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'?'申请信息':'服务商品'">
+        </serviceApplication>
+      </div>
+      <div slot="slot2" >
+        <workBill ref="workBill">
+          <!-- <template v-slot:delProduct="scope">
+            <delete-btn nameId="20230206162003" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderid" @deleteSuccess="$refs.workBill.listData()"></delete-btn>
+          </template> -->
+        </workBill>
+      </div>
+      <div slot="slot1">
+        <workBill ref="workBill" v-if="mainData.servicetype == '售前' || mainData.servicetype == '历史售后'">
+        </workBill>
+        <productTable ref="product" v-else>
+          <addProduct v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" slot="addProduct" :data="mainData" @onSuccess="$refs.product.listData()" />
+          <template v-slot:editProduct="scope">
+            <el-button class="inline-16" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" type="text" size="mini" @click="$refs.product.currentProduct=scope.data">{{$t('编 辑')}}</el-button>
+          </template>
+          <template v-slot:delProduct="scope">
+            <delete-btn nameId="20230206162003" v-if="tool.checkAuth($route.name,'serveProduct') && mainData.status == '新建'" nameKey="sa_serviceorderitemsids" :id="scope.data.sa_serviceorderitemsid" @deleteSuccess="$refs.product.listData()"></delete-btn>
+          </template>
+        </productTable>
+      </div>
+    </basicDetails>
+  </div>
+</template>
+
+<script>
+import detailInfo from '@/components/detailInfo/index'
+import changeBill from '../components/changeBill'
+import Edit from '../components/edit'
+
+import workBill from './workBill/index'
+import productTable from './product/index'
+import addProduct from './product/add'
+import serviceApplication from '../components/serviceApplication'
+export default {
+  name: "detail",
+  data() {
+    return {
+      mainData:{},
+      mainAreaData:{},
+      detailInfo:[],
+      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:{
+    detailInfo,
+    changeBill,
+    Edit,
+    workBill,
+    productTable,
+    addProduct,
+    serviceApplication
+  },
+  methods:{
+    hrMain(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({
+        "id":20230206091603,
+        "content": {
+          "sa_serviceorderid": this.$route.query.id
+        }
+      })
+      this.mainData = res.data
+      console.log(this.mainData);
+      this.changeDataStructure()
+      this.hrMain(this.hrData)
+      this.$refs.serviceApplicationRef.changeDataStructure()
+    },
+    changeDataStructure() {
+      let that = this
+      this.mainAreaData = [
+        {label:'单号',value:this.mainData.billno ? this.mainData.billno : ''},
+        {label:'单据日期',value:this.mainData.billdate ? this.mainData.billdate : ''},
+        {label:'状态',value:this.mainData.status ?this.$t(this.mainData.status)  : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.status)
+            return style
+          }
+        },
+        {label:'企业名称',value:this.mainData.enterprisename ? this.mainData.enterprisename : ''},
+        {label:'企业编码',value:this.mainData.agentnum ? this.mainData.agentnum : ''},
+        {label:'省市县',value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`},
+        {label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
+        {label:'关联订单',value:this.mainData.sonum ? this.mainData.sonum : ''},
+        {label:'服务类型',value:this.mainData.servicetype ? this.mainData.servicetype : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.servicetype)
+            return style
+          }
+        },
+        {label:'现场联系人',value:this.mainData.scenecontact ? this.mainData.scenecontact : ''},
+        {label:'身份备注',value:this.mainData.scenecontactrole ? this.mainData.scenecontactrole : ''},
+        {label:'现场联系电话',value:this.mainData.scenecontactphonenumber ? this.mainData.scenecontactphonenumber : ''},
+        {label:'应用系统',value:this.mainData.class1 ? this.mainData.class1 : ''},
+        {label:'客诉大类',value:this.mainData.class2 ? this.mainData.class2 : ''},
+        {label:'服务开始日期',value:this.mainData.begdate ? this.mainData.begdate.slice(0,this.mainData.begdate.indexOf(' ')) : ''},
+        {label:'服务结束日期',value:this.mainData.enddate ? this.mainData.enddate.slice(0,this.mainData.enddate.indexOf(' ')) : ''},
+        {label:'问题描述',value:this.mainData.reason ? this.mainData.reason : ''},
+        {label:'业务员',value:this.mainData.saler_name ? this.mainData.saler_name : ''},
+        {label:'业务员电话',value:this.mainData.saler_phonenumber ? this.mainData.saler_phonenumber : ''},
+        {label:'项目名称',value:this.mainData.projectnote ? this.mainData.projectnote : ''},
+        {label:'历史服务次数',value:this.mainData.historicalservicesqty ? this.mainData.historicalservicesqty : ''},
+        {label:'工单状态',value:this.mainData.status_workorder ? this.mainData.status_workorder : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.status_workorder)
+            return style
+          }
+        },
+        {label:'工单完成时间',value:this.mainData.finishdate_workorder ? this.mainData.finishdate_workorder : ''},
+        {label:'异常类型',value:this.mainData.exception_type ? this.mainData.exception_type : ''},
+        {label:'服务等级',value:this.mainData.service_level ? this.mainData.service_level : '',
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.service_level)
+            return style
+          }
+        },
+        {label:'评估意见',value:this.mainData.evaluation_comment ? this.mainData.evaluation_comment : ''},
+        {label:'备注',value:this.mainData.remarks ? this.mainData.remarks : ''},
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex,tabIndex) {
+      this.flag = false
+      tabIndex = this.$route.query.tabIndex
+      this.$router.replace({path:'/serveBillDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
+      this.queryMainData(id)
+    },
+    onSuccess(){
+      this.visible = false
+      this.queryMainData(this.$route.query.id)
+      this.$emit('onSuccess')
+    }
+  },
+  mounted () {
+    this.queryMainData(this.$route.query.id)
+  },
+  created() {
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 1
src/HDrpManagement/serveWorkBill/components/edit.vue

@@ -463,7 +463,7 @@ export default {
   mounted() {
     console.log(this.data,'输出data的数据222')
     this.editDis = true
-    if (this.data){
+    if (this.data && this.data.team){
       this.data.team.forEach(item =>{
         if (item.userid == this.userid && item.isleader){
           this.editDis = false

+ 1 - 1
src/HDrpManagement/serveWorkBill/components/teamSelect.vue

@@ -7,7 +7,7 @@
       :visible.sync="dialogFormVisible"
       size="60%"
     >
-      <div slot="title" style="font-size: 15px">{{$t('选择团队人员')}}</div>
+      <div slot="title" style="font-size: 15px">{{$t('添加团队人员')}}</div>
       <div class="drawer__panel">
         <el-input
           style="width: 250px; margin-bottom: 10px"

+ 15 - 87
src/HDrpManagement/serveWorkBill/modules/detail.vue

@@ -128,10 +128,12 @@
 <!--        />-->
       </div>
       <div slot="slot0">
-
+        <serviceApplication  ref="serviceApplicationRef" v-if="mainData" :mainData="mainData"></serviceApplication>
       </div>
       <div slot="slot1">
-        <serviceWorkOrder ref="serviceWorkOrderRef" :data="mainData" :detailInfo="detailInfo" :nodes="nodes"></serviceWorkOrder>
+        <serviceWorkOrder ref="serviceWorkOrderRef" v-if="mainData" :mainData="mainData" :nodes="nodes"
+                          :team_name="team_name" :team_phone_number="team_phone_number"
+        ></serviceWorkOrder>
       </div>
     </basicDetails>
   </div>
@@ -150,6 +152,7 @@ import serviceWorkOrder from '../modules/serviceWorkOrder/index'
 import checkInfo from '../components/checkInfo'
 import transferWorkOrder from '@/components/dialogTemplate/index2'
 import acceptingOrders from '../components/acceptingOrders'
+import serviceApplication from "@/HDrpManagement/serveBillMag/components/serviceApplication";
 import { log } from "@antv/g2plot/lib/utils";
 export default {
   name: "detail",
@@ -167,7 +170,8 @@ export default {
       optionNames:[],
       hrid:JSON.parse(sessionStorage.getItem('active_account')).hrid,
       userid:JSON.parse(sessionStorage.getItem('active_account')).userid,
-      team_userid:''
+      team_userid:'',
+      detailInfo2:[],
     };
   },
   components: {
@@ -182,7 +186,8 @@ export default {
     serviceWorkOrder,
     checkInfo,
     transferWorkOrder,
-    acceptingOrders
+    acceptingOrders,
+    serviceApplication
   },
   methods: {
     async queryMainData(id) {
@@ -190,18 +195,14 @@ export default {
       this.mainData.isleader = false
       if (this.hrid !== 0){
         const res_hrid = await this.$api.requested({
-          classname: 'webmanage.hr.hr',
-          method:"query_hrMain",
+          id:2025062416033402,
           content: {
-            hrid: this.hrid
+            userid: this.userid,
+            sa_workorderid:this.$route.query.id
           },
         })
-        if (res_hrid.data && res_hrid.data.userrole.length > 0){
-          res_hrid.data.userrole.forEach(item => {
-            if (item.rolename == 'SHZG' && item.remarks == '服务主管'){
-              this.mainData.isServerMag = true
-            }
-          })
+        if (res_hrid.data.isworkleader){
+          this.mainData.isServerMag = true
         }
       }
       const res = await this.$api.requested({
@@ -223,9 +224,8 @@ export default {
         }
       })
       this.changeDataStructure();
-
       this.nodes = this.createTreeData(res.data.nodes);
-      this.mainData.actiontype == '工序模板'?this.$refs.serviceWorkOrderRef.activeName = '工序详情' : this.$refs.serviceWorkOrderRef.activeName = '服务商品'
+      this.$refs.serviceWorkOrderRef.changeDataStructure(this.mainData)
     },
     downLoadBill(data) {
       let result = data.attinfos.filter(
@@ -383,78 +383,6 @@ export default {
         },
         { label:'备注',  value: this.mainData.remarks}
       ];
-      this.detailInfo = [
-        {
-          title: "基本信息",
-          info: [
-            { label: "工单号", value: this.mainData.billno },
-            { label: "申请单号", value: this.mainData.servicebillno },
-            {
-              label: "状态",
-              value: this.$t(this.mainData.status),
-              style: function () {
-                let style = that.tool.getStatusColor(that.mainData.status);
-                return style;
-              },
-            },
-            { label:'服务类型',value:this.mainData.servicetype,
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.servicetype)
-                return style
-              }
-            },
-            { label: "工单类型", value: this.mainData.type },
-            { label:'关联订单',value:this.mainData.sonum},
-            { label: "企业名称", value: this.mainData.enterprise },
-            { label: "企业编号", value: this.mainData.agentnum },
-            { label: "项目名称", value: this.mainData.projectname},
-            {
-              label: "省市县",
-              value: `${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`,
-            },
-            { label:'详细地址',value:this.mainData.address ? this.mainData.address : ''},
-            { label: "现场联系人", value: this.mainData.scenecontact },
-            { label:'身份备注',value:this.mainData.scenecontactrole},
-            { label:'现场联系人电话',value:this.mainData.scenecontactphonenumber},
-            { label:'应用系统',value:this.mainData.class1},
-            { label:'客诉大类',value:this.mainData.class2},
-            { label:'问题描述',value:this.mainData.reason},
-            { label:'是否外包工单',value:this.mainData.isout?'是':'否'},
-            { label:'服务负责人',value:this.team_name},
-            { label:'服务负责人电话',value:this.team_phone_number},
-            { label:'异常类型',value:this.exception_type},
-            { label: "业务员", value: this.mainData.saler_name},
-            { label: "业务员电话",value: this.mainData.salerphonenumber},
-            {
-              label: "服务等级",
-              value: this.mainData.service_level,
-              style:function () {
-                let style = that.tool.getStatusColor(that.mainData.service_level)
-                return style
-              }
-            },
-            { label: "确认客诉异常描述是否属实", value: this.mainData.isfact?'是':'否'},
-            { label: "是否为我司出货产品",value: this.mainData.isouritem?'是':'否'},
-            { label: "是否在保质期内", value: this.mainData.inqualityguaranteeperiod?'是':'否'},
-            { label:'备注',  value: this.mainData.remarks},
-          ],
-        },
-        {
-          title:'系统信息',
-          info: [
-            {label:'创建时间',value:this.mainData.createdate},
-            {label:'最近编辑时间',value:this.mainData.changedate},
-            {label:'最近编辑人',value:this.mainData.changeby},
-
-            {label:'接单时间',value:this.mainData.takedate},
-            {label:'开始工单时间',value:this.mainData.startdate},
-            {label:'完成时间',value:this.mainData.finishdate},
-            {label:'中止时间',value:this.mainData.abortdate},
-            {label:'中止原因',value:this.mainData.abortreason},
-
-          ]
-        }
-      ];
     },
     createTreeData(array) {
       var that = this;

+ 1 - 1
src/HDrpManagement/serveWorkBill/modules/items/index.vue

@@ -130,7 +130,7 @@ export default {
     },
   },
   mounted() {
-    this.listData(this.para.content.pageNumber = 1)
+    this.listData(this.param.content.pageNumber = 1)
   },
   created() {
     this.tablecols = this.tool.tabelCol(this.$route.name).serviceProductTable.tablecols

+ 99 - 10
src/HDrpManagement/serveWorkBill/modules/serviceWorkOrder/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-tabs type="border-card" v-model="activeName" v-if="data.actiontype == '工序模板'">
+    <el-tabs type="border-card" v-model="activeName" v-if="mainData.actiontype == '工序模板'">
       <el-tab-pane label="工序详情" name="工序详情">
         <taskDetail :data="nodes">
           <template v-slot:detail="scope">
@@ -15,7 +15,7 @@
         </taskDetail>
       </el-tab-pane>
       <el-tab-pane label="工单物料" name="工单物料">
-        <materials :data="data"></materials>
+        <materials :data="mainData"></materials>
       </el-tab-pane>
       <el-tab-pane label="服务确认单" name="服务确认单">
         <checkBill ref="checkBillRef">
@@ -34,11 +34,11 @@
         <teamList
             v-if="tool.checkAuth($route.name, 'teamList')"
             ref="teamList"
-            :data="data.team"
+            :data="mainData.team"
         >
           <selectTeam ref="team" @teamChange="teamChange" slot="add">
             <el-button
-                v-if="tool.checkAuth($route.name, 'teamHandle') && data.status !== '已完成'"
+                v-if="tool.checkAuth($route.name, 'teamHandle') && mainData.status !== '已完成'"
                 class="button-new-tag"
                 size="small"
                 type="primary"
@@ -54,7 +54,7 @@
     </el-tabs>
     <el-tabs type="border-card" v-model="activeName" v-else>
       <el-tab-pane label="服务商品" name="服务商品">
-        <Items :data="data"></Items>
+        <Items :data="mainData"></Items>
       </el-tab-pane>
       <el-tab-pane label="服务确认单" name="服务确认单">
         <checkBill ref="checkBillRef">
@@ -71,13 +71,12 @@
       </el-tab-pane>
       <el-tab-pane label="服务团队" name="服务团队">
         <teamList
-            v-if="tool.checkAuth($route.name, 'teamList')"
             ref="teamList"
-            :data="data.team"
+            :data="mainData.team"
         >
           <selectTeam ref="team" @teamChange="teamChange" slot="add">
             <el-button
-                v-if="tool.checkAuth($route.name, 'teamHandle') && data.status !== '已完成'"
+                v-if="mainData.isServerMag || mainData.isleader"
                 class="button-new-tag"
                 size="small"
                 type="primary"
@@ -106,16 +105,105 @@ import selectTeam from "../../components/teamSelect";
 import materials from '../Materials/index'
 export default {
   name: "index",
-  props:['data','detailInfo','nodes'],
+  props:['mainData','nodes','team_name','team_phone_number'],
   components:{detailInfo,taskDetail,taskListDetail,taskListEdit,Items,checkBill,teamList,selectTeam,materials},
   data(){
     return {
       activeName:'服务商品',
       active_accoun:JSON.parse(sessionStorage.getItem('active_account')),
-      folderid:JSON.parse(sessionStorage.getItem('folderid'))
+      folderid:JSON.parse(sessionStorage.getItem('folderid')),
+      internalData:{ ...this.mainData },
+      detailInfo:{}
     }
   },
   methods:{
+    changeDataStructure(newData){
+      if (newData){
+        this.internalData = { ...newData }
+      }else {
+        this.internalData = { ...this.mainData }
+      }
+      this.internalData.actiontype == '工序模板'?this.activeName = '工序详情' : this.activeName = '服务商品'
+      let that = this;
+      this.detailInfo = [
+        {
+          title: "基本信息",
+          info: [
+            { label: "工单号", value: this.internalData.billno },
+            { label: "申请单号", value: this.internalData.servicebillno },
+            {
+              label: "状态",
+              value: this.$t(this.internalData.status),
+              style: function () {
+                let style = that.tool.getStatusColor(that.internalData.status);
+                return style;
+              },
+            },
+            { label:'服务类型',value:this.internalData.servicetype,
+              style:function () {
+                let style = that.tool.getStatusColor(that.internalData.servicetype)
+                return style
+              }
+            },
+            { label: "工单类型", value: this.internalData.type },
+            { label:'关联订单',value:this.internalData.sonum},
+            { label: "企业名称", value: this.internalData.enterprise },
+            { label: "企业编号", value: this.internalData.agentnum },
+            { label: "项目名称", value: this.internalData.projectname},
+            {
+              label: "省市县",
+              value: `${this.internalData.province}-${this.internalData.city}-${this.internalData.county}`,
+            },
+            { label:'详细地址',value:this.internalData.address ? this.internalData.address : ''},
+            { label: "现场联系人", value: this.internalData.scenecontact },
+            { label:'身份备注',value:this.internalData.scenecontactrole},
+            { label:'现场联系人电话',value:this.internalData.scenecontactphonenumber},
+            { label:'应用系统',value:this.internalData.class1},
+            { label:'客诉大类',value:this.internalData.class2},
+            { label:'问题描述',value:this.internalData.reason},
+            { label:'是否外包工单',value:this.internalData.isout?'是':'否'},
+            { label:'服务负责人',value:this.team_name},
+            { label:'服务负责人电话',value:this.team_phone_number},
+            { label:'异常类型',value:this.internalData.exception_type},
+            { label: "业务员", value: this.internalData.saler_name},
+            { label: "业务员电话",value: this.internalData.salerphonenumber},
+            {
+              label: "服务等级",
+              value: this.internalData.service_level,
+              style:function () {
+                let style = that.tool.getStatusColor(that.internalData.service_level)
+                return style
+              }
+            },
+            { label: "确认客诉异常描述是否属实", value: this.internalData.isfact?'是':'否'},
+            { label: "是否为我司出货产品",value: this.internalData.isouritem?'是':'否'},
+            { label: "是否在保质期内", value: this.internalData.inqualityguaranteeperiod?'是':'否'},
+            {
+              label: "操作类型",
+              value:
+                  this.internalData.actiontype == "非工序模板"
+                      ? this.$t("通用模板")
+                      : this.internalData.actiontype,
+            },
+            { label:'备注',  value: this.internalData.remarks},
+          ],
+        },
+        {
+          title:'系统信息',
+          info: [
+            {label:'创建时间',value:this.internalData.createdate},
+            {label:'最近编辑时间',value:this.internalData.changedate},
+            {label:'最近编辑人',value:this.internalData.changeby},
+            {label:'接单时间',value:this.internalData.takedate},
+            {label:'开始工单时间',value:this.internalData.startdate},
+            {label:'完成时间',value:this.internalData.finishdate},
+            {label:'中止时间',value:this.internalData.abortdate},
+            {label:'中止原因',value:this.internalData.abortreason},
+
+          ]
+        }
+      ];
+    },
     downLoadBill(data) {
       let result = data.attinfos.filter(
           (item) => item.usetype == "comfirmbill"
@@ -151,6 +239,7 @@ export default {
     },
   },
   mounted() {
+    this.changeDataStructure()
   }
 
 }

+ 1 - 1
src/components/normal-basic-layout/details/modules/tabs/tab.vue

@@ -86,7 +86,7 @@ export default {
       if (res.code == 0){
         this.issalehr = false
       }else {
-        res.data.issalehr && (this.siteid == 'HY' || this.siteid == 'YOSTEST1')  ?  this.issalehr = true : this.issalehr = false
+        res.data && res.data.issalehr && (this.siteid == 'HY' || this.siteid == 'YOSTEST1')  ?  this.issalehr = true : this.issalehr = false
         this.$emit('hrMain',res.data)
       }
     }