Explorar o código

bug修复版本更新

qymljy hai 2 meses
pai
achega
c9f8684a1a

+ 1 - 1
src/HDrpManagement/serveBill/modules/detail.vue

@@ -24,7 +24,7 @@
       <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 != '已中止'"
+            v-if="tool.checkAuth($route.name,'update') && ((mainData.status == '新建' && isworker == 0) || isworker == 1 || (mainData.status == '新建' && (usertype == 21 || usertype == 22))) && mainData.status != '已受理' && mainData.status != '已中止'"
             class="inline-16"
           :data="mainData"
           @onSuccess="queryMainData"

+ 2 - 1
src/HDrpManagement/serveBillMag/modules/product/index.vue

@@ -136,9 +136,10 @@ export default {
   },
   mounted() {
     this.listData()
+    this.tablecols = this.tool.tabelCol(this.$route.name).productTable.tablecols
   },
   created() {
-    this.tablecols = this.tool.tabelCol(this.$route.name).productTable.tablecols
+
   }
 }
 

+ 2 - 1
src/HDrpManagement/serveWorkBill/components/generalTemplate.vue

@@ -96,7 +96,7 @@
     <div style="height: 10px;background: #f5f5f5"></div>
     <div style="margin: 10px;font-weight: bold;font-size: 16px">{{$t(`客户签字`)}}</div>
     <div class="drawer__panel" style="margin-bottom: 0 !important;">
-      <signature></signature>
+      <signature :sa_workorder_confirmationid="sa_workorder_confirmationid" :sa_workorderid="sa_workorderid"></signature>
     </div>
     <div class="fixed__btn__panel">
       <el-button
@@ -128,6 +128,7 @@ import signature from '@/HDrpManagement/serveWorkBill/modules/signature/index'
 export default {
   name: "generalTemplate",//通用模板
   components:{signature},
+  props:['sa_workorderid'],
   data(){
     return {
       dataInfo:{},

+ 2 - 1
src/HDrpManagement/serveWorkBill/components/installationCommissioning.vue

@@ -121,7 +121,7 @@
       <div style="height: 10px;background: #f5f5f5"></div>
       <div style="margin: 10px;font-weight: bold;font-size: 16px">{{$t(`客户签字`)}}</div>
       <div class="drawer__panel" style="margin-bottom: -50px">
-        <signature :sa_workorder_confirmationid="sa_workorder_confirmationid"></signature>
+        <signature :sa_workorder_confirmationid="sa_workorder_confirmationid" :sa_workorderid="sa_workorderid"></signature>
       </div>
       <div class="fixed__btn__panel">
         <el-button
@@ -154,6 +154,7 @@ import signature from "@/HDrpManagement/serveWorkBill/modules/signature";
 export default {
   name: "installationCommissioning", //安装调试
   components:{signature},
+  props:['sa_workorderid'],
   data(){
     return {
       dataInfo:{},

+ 2 - 1
src/HDrpManagement/serveWorkBill/components/installationTraining.vue

@@ -68,7 +68,7 @@
       <div style="height: 10px;background: #f5f5f5"></div>
       <div style="margin: 10px;font-weight: bold;font-size: 16px">{{$t(`客户签字`)}}</div>
       <div class="drawer__panel" style="margin-bottom: -50px">
-        <signature :sa_workorder_confirmationid="sa_workorder_confirmationid"></signature>
+        <signature :sa_workorder_confirmationid="sa_workorder_confirmationid" :sa_workorderid="sa_workorderid"></signature>
       </div>
       <div class="fixed__btn__panel">
         <el-button
@@ -101,6 +101,7 @@ import signature from '@/HDrpManagement/serveWorkBill/modules/signature/index'
 export default {
   name: "installationTraining",//安装培训
   components:{signature},
+  props:['sa_workorderid'],
   data(){
     return {
       dataInfo:{},

+ 2 - 1
src/HDrpManagement/serveWorkBill/components/nonProcessTemplate.vue

@@ -70,7 +70,7 @@
       <div style="height: 10px;background: #f5f5f5"></div>
       <div style="margin: 10px;font-weight: bold;font-size: 16px">{{$t(`客户签字`)}}</div>
       <div class="drawer__panel" style="margin-bottom: 20px !important;">
-        <signature ref="signatureRef" :sa_workorder_confirmationid="sa_workorder_confirmationid"></signature>
+        <signature ref="signatureRef" :sa_workorder_confirmationid="sa_workorder_confirmationid" :sa_workorderid="sa_workorderid"></signature>
       </div>
       <div style="height: 25px;background: #f5f5f5"></div>
       <div class="fixed__btn__panel">
@@ -104,6 +104,7 @@ import signature from '@/HDrpManagement/serveWorkBill/modules/signature/index'
 export default {
   name: "nonProcessTemplate",//非工序模板,
   components:{signature},
+  props:['sa_workorderid'],
   data(){
     return {
       dataInfo:{},

+ 5 - 5
src/HDrpManagement/serveWorkBill/modules/checkBill/add.vue

@@ -7,13 +7,13 @@
     >{{ $t(btnTitle) }}</el-button
     >
     <!-- 非工序模板   -->
-    <nonProcessTemplate ref="nonProcessRef" @onClose="onClose"></nonProcessTemplate>
+    <nonProcessTemplate ref="nonProcessRef" @onClose="onClose" :sa_workorderid="sa_workorderid"></nonProcessTemplate>
     <!-- 安装调试   -->
-    <installationCommissioning ref="commissioningRef" @onClose="onClose"></installationCommissioning>
+    <installationCommissioning ref="commissioningRef" @onClose="onClose" :sa_workorderid="sa_workorderid"></installationCommissioning>
     <!-- 安装培训   -->
-    <installationTraining ref="trainingRef" @onClose="onClose"></installationTraining>
+    <installationTraining ref="trainingRef" @onClose="onClose" :sa_workorderid="sa_workorderid"></installationTraining>
     <!-- 通用模板   -->
-    <generalTemplate ref="generalRef" @onClose="onClose"></generalTemplate>
+    <generalTemplate ref="generalRef" @onClose="onClose" :sa_workorderid="sa_workorderid"></generalTemplate>
   </div>
 </template>
 
@@ -25,7 +25,7 @@ import installationCommissioning from "@/HDrpManagement/serveWorkBill/components
 import installationTraining from "@/HDrpManagement/serveWorkBill/components/installationTraining";
 export default {
   name: "add",
-  props:["mainData",'id','list','btnTitle','btnType'],
+  props:["mainData",'id','list','btnTitle','btnType','sa_workorderid'],
   components:{signature,nonProcessTemplate,generalTemplate,installationCommissioning,installationTraining},
   data(){
     return {

+ 2 - 2
src/HDrpManagement/serveWorkBill/modules/checkBill/index.vue

@@ -14,7 +14,7 @@
         clearable
       >
       </el-input>
-      <add v-if="mainData.status == '进行中'" :mainData="mainData" @onSuccess="listData" :list="list" btnTitle="新 建" btnType="primary"></add>
+      <add v-if="mainData.status == '进行中'" :mainData="mainData" @onSuccess="listData" :list="list" btnTitle="新 建" btnType="primary" :sa_workorderid="sa_workorderid"></add>
     </div>
     <div style="margin-top: 15px">
       <tableLayout
@@ -46,7 +46,7 @@
         </template>
         <template v-slot:opreation="scope">
           <slot name="download" :data="scope.data"></slot>
-          <edit class="inline-16" btnTitle="编辑" btnType="text" v-if="mainData.status == '进行中' && scope.data.status == '新建'" :mainData="mainData" @onSuccess="listData" :list="list"></edit>
+          <edit class="inline-16" btnTitle="编辑" btnType="text" v-if="mainData.status == '进行中' && scope.data.status == '新建'" :mainData="mainData" @onSuccess="listData" :list="list" :sa_workorderid="sa_workorderid"></edit>
           <el-button type="text" size="mini" style="color: #67C23A" v-if="mainData.status == '进行中' &&  scope.data.status == '新建'" @click="submitClick(scope.data)">提交</el-button>
           <!-- <printTable :data="scope.data">
 

+ 0 - 1
src/HDrpManagement/serveWorkBill/modules/detail.vue

@@ -146,7 +146,6 @@
         </div>
         <div v-else>
           <serviceWorkOrder ref="serviceWorkOrderRef" v-if="mainData" :mainData="mainData" :nodes="nodes"
-                            :team_name="team_name" :team_phone_number="team_phone_number"
           ></serviceWorkOrder>
         </div>
       </div>

+ 14 - 3
src/HDrpManagement/serveWorkBill/modules/serviceWorkOrder/index.vue

@@ -106,7 +106,7 @@ import selectTeam from "../../components/teamSelect";
 import materials from '../Materials/index'
 export default {
   name: "index",
-  props:['mainData','nodes','team_name','team_phone_number','newQuery'],
+  props:['mainData','nodes','newQuery'],
   components:{detailInfo,taskDetail,taskListDetail,taskListEdit,Items,checkBill,teamList,selectTeam,materials},
   data(){
     return {
@@ -115,7 +115,9 @@ export default {
       folderid:JSON.parse(sessionStorage.getItem('folderid')),
       internalData:{ isServerMag:false,isleader:false },
       detailInfo:{},
-      nodesNow:[]
+      nodesNow:[],
+      team_name:'',
+      team_phone_number:''
     }
   },
   methods:{
@@ -161,6 +163,7 @@ export default {
       this.changeDataStructure(this.internalData)
     },
     changeDataStructure(newData){
+      console.log(this.team_name,this.team_phone_number)
       if (newData){
         this.internalData = { ...newData }
       }else {
@@ -170,6 +173,14 @@ export default {
       }
       this.internalData.actiontype == '工序模板'?this.activeName = '工序详情' : this.activeName = '服务商品'
       let that = this;
+      if (this.internalData.team.length > 0){
+        this.internalData.team.forEach(item => {
+          if (item.isleader){
+            this.team_name = item.name
+            this.team_phone_number = item.phonenumber
+          }
+        })
+      }
       this.detailInfo = [
         {
           title: "基本信息",
@@ -192,7 +203,7 @@ export default {
             },
             { label: "工单类型", value: this.internalData.type },
             { label:'关联订单',value:this.internalData.sonum},
-            { label: "企业名称", value: this.internalData.enterprise },
+            { label: "企业名称", value: this.internalData.enterprisename },
             { label: "企业编号", value: this.internalData.agentnum },
             { label: "项目名称", value: this.internalData.projectname},
             {

+ 17 - 54
src/HDrpManagement/serveWorkBill/modules/signature/index.vue

@@ -15,53 +15,6 @@
       <div class="canvas-header">
         <span class="prompt-text">请在下方区域签名</span>
         <div class="toolbar">
-          <el-button-group>
-            <el-button
-                size="small"
-                :type="penColor === 'black' ? 'primary' : ''"
-                @click="setPenColor('black')"
-            >
-              黑色
-            </el-button>
-            <el-button
-                size="small"
-                :type="penColor === 'blue' ? 'primary' : ''"
-                @click="setPenColor('blue')"
-            >
-              蓝色
-            </el-button>
-            <el-button
-                size="small"
-                :type="penColor === 'red' ? 'primary' : ''"
-                @click="setPenColor('red')"
-            >
-              红色
-            </el-button>
-          </el-button-group>
-
-          <el-button-group style="margin-left: 10px;">
-            <el-button
-                size="small"
-                :type="penSize === 2 ? 'primary' : ''"
-                @click="setPenSize(2)"
-            >
-              细
-            </el-button>
-            <el-button
-                size="small"
-                :type="penSize === 4 ? 'primary' : ''"
-                @click="setPenSize(4)"
-            >
-              中
-            </el-button>
-            <el-button
-                size="small"
-                :type="penSize === 6 ? 'primary' : ''"
-                @click="setPenSize(6)"
-            >
-              粗
-            </el-button>
-          </el-button-group>
           <el-button
               @click="clearCanvas"
               :disabled="!hasSignature"
@@ -197,7 +150,7 @@
 <script>
 export default {
   name: "index",
-  props:['sa_workorder_confirmationid'],
+  props:['sa_workorder_confirmationid','sa_workorderid'],
   data() {
     return {
       // 签名状态
@@ -349,7 +302,7 @@ export default {
       this.ctx.lineJoin = 'round'
 
       // 添加网格背景
-      this.drawGridBackground()
+      // this.drawGridBackground()
     },
 
     // 绘制网格背景
@@ -463,7 +416,7 @@ export default {
     },
 
     // 保存签名
-    saveSignature() {
+    async saveSignature() {
       if (!this.hasSignature) {
         this.$message.warning('请先完成签名')
         return
@@ -540,7 +493,17 @@ export default {
           thumbnail: thumbnail,
           timestamp: new Date().getTime()
         })
-        this.$message.success('签名保存成功!')
+        const res1 = await this.$api.requested({
+          id:2025032710574302,
+          content: {
+            sa_workorderid:this.sa_workorderid
+          }
+        })
+        if (res1.code == 0){
+          this.tool.showMessage(res1,()=>{})
+        }else {
+          this.$message.success('签名保存成功!')
+        }
         this.signatureStarted = false
 
       } catch (error) {
@@ -629,9 +592,9 @@ export default {
       }
       const res = await this.$api.requested(param)
       console.log(res.data,'上传成功')
-      // if (res.code ===  1) {
-      //   this.$emit('onSuccess',res)
-      // }
+      if (res.code ===  1) {
+
+      }
     },
     // 上传至华为云
     async uploadToHuaweiCloud() {

+ 146 - 0
src/HDrpManagement/serviceImprovement/components/affectedProductScope/add.vue

@@ -0,0 +1,146 @@
+<template>
+  <div>
+    <el-button size="small" type="primary" @click="addBtn(drawerFormVisible = true)">{{$t('添加')}}</el-button>
+    <el-drawer
+        :title="$t(`添加产品`)"
+        :visible.sync="drawerVisible"
+        size="75%"
+        direction="rtl"
+        :show-close="false"
+        append-to-body
+        @close="onClose">
+      <div class="drawer__panel" style="margin-bottom: 0 !important;">
+        <el-input
+            style="width: 250px; margin-bottom: 10px"
+            size="small"
+            :placeholder="$t('请输入搜索内容')"
+            clearable
+            @clear="listData((params.content.pageNumber = 1))"
+            v-model="params.content.where.condition"
+            @keyup.enter.native="listData((params.content.pageNumber = 1))"
+        ></el-input>
+        <table-detail :layout="tablecols" :data="list" :custom="true" :width="true" :checkbox="true" :height="tableHieght" minHeight="200px"
+                      fixedName="operation" @selectionChange="selectionChange">
+          <template v-slot:customcol="scope">
+            <div v-if="scope.column.columnname === 'nominalpressure'">
+              {{tool.nominalPressureSet(scope.column.data.nominalpressure)}}
+            </div>
+            <div v-else>
+              {{ scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation' ? scope.column.data[[scope.column.columnname]] : '--' }}
+            </div>
+          </template>
+          <template v-slot:opreation="scope">
+          </template>
+        </table-detail>
+        <div  class="container normal-panel" style="text-align:right;padding-bottom: 0!important;">
+          <el-pagination
+              background
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[50, 100, 150, 200]"
+              :page-size="100"
+              layout="total,sizes, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button
+            size="small"
+            @click="drawerVisible = false"
+            class="normal-btn-width"
+        >{{ $t("取 消") }}</el-button
+        >
+        <el-button
+            size="small"
+            type="primary"
+            @click="onSubmit"
+            :disabled="selectData.length == 0"
+            class="normal-btn-width"
+        >{{ $t("确 定") }}</el-button
+        >
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  data(){
+    return {
+      drawerVisible:false,
+      params:{
+        "id": 2026020214323802,
+        "content": {
+          "sa_service_improvementid": 0,
+          "pageNumber": 1,
+          "pageSize": 100,
+          "where": {
+            "condition": ""
+          }
+        },
+      },
+      tableHieght:'calc(100vh - 245px)',
+      tablecols:[],
+      list:[],
+      currentPage:0,
+      total:0,
+      selectData:[]
+    }
+  },
+  methods:{
+    addBtn(){
+      this.drawerVisible = true
+      this.listData(this.params.content.pageNumber = 1)
+    },
+    async listData(){
+      this.params.content.sa_service_improvementid = this.$route.query.id
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+    selectionChange(row){
+      this.selectData = row
+    },
+    async onSubmit(){
+      let ids = this.selectData.map(item => item.itemid)
+      const res = await this.$api.requested({
+        "id": 2026020214301002,
+        "content": {
+          "sa_service_improvementid":this.$route.query.id,
+          "itemids":ids
+        },
+      })
+      if (res.code == 0){
+        this.tool.showMessage(res,()=>{})
+      }else {
+        this.drawerVisible = false
+        this.$emit('addSuccess')
+      }
+    },
+    onClose(){
+      this.$emit('addSuccess')
+    }
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).affProScopeAddTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 103 - 0
src/HDrpManagement/serviceImprovement/components/affectedProductScope/index.vue

@@ -0,0 +1,103 @@
+<template>
+  <div>
+    <el-input style="width:200px;" :placeholder="$t('输入搜索内容')" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="mt-10 input-with-select inline-16 layout_search__panel" clearable>
+    </el-input>
+    <add class="inline-16" @addSuccess="listData(param.content.pageNumber = 1)" v-if="(data.status != '已完成' && data.status != '已中止') && tool.checkAuth($route.name,'impactedProducts') && someUserid"></add>
+    <table-detail :layout="tablecols" :data="list" :custom="true" :width="true" :height="tableHieght" minHeight="200px" fixedName="operation">
+      <template v-slot:customcol="scope">
+        <div v-if="scope.column.columnname === 'nominalpressure'">
+          {{tool.nominalPressureSet(scope.column.data.nominalpressure)}}
+        </div>
+        <div v-else>
+          {{ scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation' ? scope.column.data[[scope.column.columnname]] : '--' }}
+        </div>
+      </template>
+      <template v-slot:opreation="scope">
+        <el-button type="text" @click="delClick(scope.data)" size="mini" :disabled="data.status == '已完成' || data.status == '已中止' || !tool.checkAuth($route.name,'impactedProducts') || !someUserid">{{$t(`删除`)}}</el-button>
+      </template>
+    </table-detail>
+    <div  class="container normal-panel" style="text-align:right;padding-bottom: 0!important;">
+      <el-pagination
+          background
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[50, 100, 150, 200]"
+          :page-size="50"
+          layout="total,sizes, prev, pager, next, jumper"
+          :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+import add from './add'
+export default {
+  name: "index",
+  components: {add},
+  props:['data','someUserid'],
+  data(){
+    return {
+      tableHieght:'calc(100vh - 380px)',
+      tablecols:[],
+      list:[],
+      currentPage:0,
+      total:0,
+      param:{
+        "id": 2026020214313702,
+        "content": {
+          "sa_service_improvementid":'',
+          "pageNumber": 1,
+          "pageSize": 50,
+          "where": {
+            "condition": ""
+          }
+        },
+      }
+    }
+  },
+  methods:{
+    async listData(){
+      this.param.content.sa_service_improvementid = this.$route.query.id
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+    async delClick(data){
+      const res = await this.$api.requested({
+        "id": 2026020214312002,
+        "content": {
+          "sa_service_improvement_itemsid":data.sa_service_improvement_itemsid
+        },
+      })
+      if (res.code == 0){
+        this.tool.showMessage(res,()=>{})
+      }else {
+        this.listData(this.param.content.pageNumber = 1)
+      }
+    }
+  },
+  mounted() {
+    this.listData(this.param.content.pageNumber = 1)
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).affProScopeTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 39 - 0
src/HDrpManagement/serviceImprovement/components/associatedImprovementOrder/drawerDetail.vue

@@ -0,0 +1,39 @@
+<template>
+  <div>
+    <el-button size="small" type="text" @click="onShow" >{{$t(btn_title)}}</el-button>
+    <el-drawer
+        :visible.sync="drawer"
+        size="85%"
+        style="padding-top: 0px !important;"
+        append-to-body
+    >
+      <serviceImprovementDetail ref="detailRef"></serviceImprovementDetail>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import serviceImprovementDetail from '@/HDrpManagement/serviceImprovement/modules/detail2'
+export default {
+  name: "drawerDetail",
+  props:['btn_title','listqueryid','data'],
+  components:{serviceImprovementDetail},
+  data(){
+    return {
+      drawer:false
+    }
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      // let  query = {id:this.data.sa_service_improvementid,rowindex:this.data.rowindex,listqueryid:this.listqueryid}
+      // this.$router.push({path:'/serviceImprovementDetail2',query:query})
+      this.$refs.detailRef.queryMainData(this.data.sa_service_improvementid)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 6 - 1
src/HDrpManagement/serviceImprovement/components/associatedImprovementOrder/index.vue

@@ -8,7 +8,8 @@
           {{Math.round((scope.column.data[[scope.column.columnname]] * 100) * 100)/100 + '%'}}
         </div>
         <div v-else-if="scope.column.columnname === 'billno'">
-          <el-button type="text" @click="goDetail(scope.column.data)">{{scope.column.data[[scope.column.columnname]]}}</el-button>
+<!--          <drawerDetail :btn_title="scope.column.data[[scope.column.columnname]]" :data="scope.column.data"></drawerDetail>-->
+          {{scope.column.data[[scope.column.columnname]]}}
         </div>
         <div v-else>
           {{ scope.column.data[[scope.column.columnname]] || scope.column.columnname === 'operation' ? scope.column.data[[scope.column.columnname]] : '--' }}
@@ -31,14 +32,17 @@
 </template>
 
 <script>
+import drawerDetail from './drawerDetail'
 export default {
   name: "index",
+  components:{drawerDetail},
   data(){
     return {
       tableHieght:'calc(100vh - 380px)',
       tablecols:[],
       list:[],
       currentPage:0,
+      listqueryid:'',
       total:0,
       param:{
         "id": 2026020215314702,
@@ -59,6 +63,7 @@ export default {
       this.list = res.data
       this.total = res.total
       this.currentPage = res.pageNumber
+      this.listqueryid = res.listqueryid
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 6 - 3
src/HDrpManagement/serviceImprovement/components/serviceImprovement/index.vue

@@ -4,7 +4,9 @@
       <el-tab-pane label="真因分析" name="真因分析">{{$t(`真因分析`)}}</el-tab-pane>
       <el-tab-pane label="改善方案" name="改善方案">{{$t(`改善方案`)}}</el-tab-pane>
       <el-tab-pane label="方案执行" name="方案执行">{{$t(`方案执行`)}}</el-tab-pane>
-      <el-tab-pane label="影响产品范围" name="影响产品范围">{{$t(`影响产品范围`)}}</el-tab-pane>
+      <el-tab-pane label="影响产品范围" name="影响产品范围">
+        <affectedProductScope :data="mainData" :someUserid="someUserid"></affectedProductScope>
+      </el-tab-pane>
       <el-tab-pane label="改善单信息" name="改善单信息">
         <detailInfo :more="true"  :data="detailInfo"></detailInfo>
       </el-tab-pane>
@@ -18,10 +20,11 @@
 <script>
 import detailInfo from '@/components/detailInfo/index'
 import associatedImprovementOrder from '../associatedImprovementOrder/index'
+import affectedProductScope from '../affectedProductScope/index'
 export default {
   name: "index",
-  props:['mainData'],
-  components:{detailInfo,associatedImprovementOrder},
+  props:['mainData','someUserid'],
+  components:{detailInfo,associatedImprovementOrder,affectedProductScope},
   data(){
     return {
       activeName:'真因分析',

+ 3 - 3
src/HDrpManagement/serviceImprovement/modules/detail.vue

@@ -78,7 +78,7 @@
       </div>
       <div slot="slot0" >
         <div v-if="!tool.checkAuth($route.name,'linkedApplication') && !tool.checkAuth($route.name,'linkedTicket')">
-          <serviceImprovement :mainData="mainData"></serviceImprovement>
+          <serviceImprovement :mainData="mainData" :someUserid="someUserid"></serviceImprovement>
         </div>
         <div v-if="tool.checkAuth($route.name,'linkedApplication')">
           <serviceApplication  ref="serviceApplicationRef" v-if="mainData" :mainData="mainData" :new-query="true"></serviceApplication>
@@ -94,11 +94,11 @@
                             :team_name="team_name" :team_phone_number="team_phone_number" :new-query="true"></serviceWorkOrder>
         </div>
         <div v-else>
-          <serviceImprovement :mainData="mainData"></serviceImprovement>
+          <serviceImprovement :mainData="mainData" :someUserid="someUserid"></serviceImprovement>
         </div>
       </div>
       <div slot="slot2" >
-        <serviceImprovement :mainData="mainData"></serviceImprovement>
+        <serviceImprovement :mainData="mainData" :someUserid="someUserid"></serviceImprovement>
       </div>
     </basicDetails>
   </div>

+ 192 - 0
src/HDrpManagement/serviceImprovement/modules/detail2.vue

@@ -0,0 +1,192 @@
+<template>
+  <div>
+    <basicDetails
+        ref="details"
+        :titleText="mainData.billno"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="2026013111220102"
+        idname="sa_service_improvementid"
+        ownertable="sa_service_improvement"
+        :tabName="tool.checkAuth($route.name,'linkedApplication') && tool.checkAuth($route.name,'linkedTicket')?'tab2':!tool.checkAuth($route.name,'linkedApplication') && !tool.checkAuth($route.name,'linkedTicket')?'tab0':'tab1'"
+        SalesmanQ="不执行"
+        tags=""
+        :tabs="tool.checkAuth($route.name,'linkedApplication') && !tool.checkAuth($route.name,'linkedTicket')?['服务申请','服务改善']:
+        !tool.checkAuth($route.name,'linkedApplication') && tool.checkAuth($route.name,'linkedTicket')?['服务工单','服务改善']:
+        tool.checkAuth($route.name,'linkedApplication') && tool.checkAuth($route.name,'linkedTicket')?['服务申请','服务工单','服务改善']:
+        ['服务改善']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <div slot="customOperation">
+        <edit class="inline-16" v-if="(mainData.status != '已完成' && mainData.status != '已中止') && someUserid" @editSuccess="queryMainData($route.query.id)" :data="mainData"></edit>
+        <customBtn
+            btnName="提交分析"
+            message="是否确定提交真因分析?"
+            idName="2026013111240602"
+            keyName="sa_service_improvementid"
+            :id="$route.query.id"
+            v-if="mainData.status == '新建' && (userid == mainData.userid_analysis)"
+            @onSuccess="queryMainData"
+            class="inline-16"
+        />
+        <customBtn
+            btnName="撤回分析"
+            message="是否确定撤回真因分析?"
+            confirmButtonText="确定撤回"
+            idName="2026013111242402"
+            keyName="sa_service_improvementid"
+            :id="$route.query.id"
+            @onSuccess="queryMainData"
+            v-if="mainData.status == '分析已提交' && (userid == mainData.userid_analysis)"
+            class="inline-16"
+        />
+        <customBtn
+            btnName="发布方案"
+            message="是否确定发布改善方案?"
+            idName="2026013111251602"
+            keyName="sa_service_improvementid"
+            :id="$route.query.id"
+            @onSuccess="queryMainData"
+            v-if="mainData.status == '分析已提交' && (userid == mainData.userid_charge)"
+            class="inline-16"
+        />
+        <customBtn
+            btnName="撤回方案"
+            message="是否确定撤回改善方案?"
+            confirmButtonText="确定撤回"
+            idName="2026013111253202"
+            keyName="sa_service_improvementid"
+            v-if="mainData.status == '方案已发布' && (userid == mainData.userid_charge)"
+            :id="$route.query.id"
+            @onSuccess="queryMainData"
+            class="inline-16"
+        />
+        <customBtn
+            btnName="中止"
+            idName="2026013111262102"
+            keyName="sa_service_improvementid"
+            :id="$route.query.id"
+            :dialog="true"
+            :checkString="true"
+            dialogTitle="请输入中止原因"
+            dialogKey="abortreason"
+            @onSuccess="queryMainData"
+            errorMessage="中止原因不可为空"
+            v-if="(mainData.status != '已完成' && mainData.status != '已中止') && someUserid"
+            class="inline-16"
+        />
+      </div>
+      <div slot="slot0" >
+        <div v-if="!tool.checkAuth($route.name,'linkedApplication') && !tool.checkAuth($route.name,'linkedTicket')">
+          <serviceImprovement :mainData="mainData"></serviceImprovement>
+        </div>
+        <div v-if="tool.checkAuth($route.name,'linkedApplication')">
+          <serviceApplication  ref="serviceApplicationRef" v-if="mainData" :mainData="mainData" :new-query="true"></serviceApplication>
+        </div>
+        <div v-if="tool.checkAuth($route.name,'linkedTicket') && !tool.checkAuth($route.name,'linkedApplication')">
+          <serviceWorkOrder ref="serviceWorkOrderRef" v-if="mainData" :mainData="mainData" :nodes="nodes"
+                            :team_name="team_name" :team_phone_number="team_phone_number" :new-query="true"></serviceWorkOrder>
+        </div>
+      </div>
+      <div slot="slot1">
+        <div v-if="tool.checkAuth($route.name,'linkedTicket')">
+          <serviceWorkOrder ref="serviceWorkOrderRef" v-if="mainData" :mainData="mainData" :nodes="nodes"
+                            :team_name="team_name" :team_phone_number="team_phone_number" :new-query="true"></serviceWorkOrder>
+        </div>
+        <div v-else>
+          <serviceImprovement :mainData="mainData"></serviceImprovement>
+        </div>
+      </div>
+      <div slot="slot2" >
+        <serviceImprovement :mainData="mainData"></serviceImprovement>
+      </div>
+    </basicDetails>
+  </div>
+</template>
+
+<script>
+import serviceApplication from "@/HDrpManagement/serveBillMag/components/serviceApplication";
+import serviceWorkOrder from '@/HDrpManagement/serveWorkBill/modules/serviceWorkOrder/index';
+import serviceImprovement from '@/HDrpManagement/serviceImprovement/components/serviceImprovement/index'
+import edit from './edit'
+export default {
+  name: "detail",
+  components:{
+    serviceApplication,
+    serviceWorkOrder,
+    edit,
+    serviceImprovement
+  },
+  data(){
+    return {
+      mainData:{},
+      mainAreaData:{},
+      nodes: [],
+      team_name:'',
+      team_phone_number:'',
+      userid:JSON.parse(sessionStorage.getItem('active_account')).userid,
+      someUserid:false
+    }
+  },
+  methods:{
+    async queryMainData(id){
+      const res = await this.$api.requested({
+        "id": 2026013111234002,
+        "content": {
+          "sa_service_improvementid": id
+        },
+      })
+      this.mainData = res.data
+      this.mainData.abort_userids.forEach(item => {
+        if (item == this.userid){
+          this.someUserid = true
+        }
+      })
+      this.changeDataStructure()
+    },
+    changeDataStructure(){
+      let that = this
+      this.mainAreaData = [
+        {label:'改善单号',value:this.mainData.billno},
+        {label:'改善类别',value:this.mainData.type},
+        {label:'状态',value:this.mainData.status,
+          style:function () {
+            let style = that.tool.getStatusColor(that.mainData.status)
+            return style
+          }
+        },
+        {label:'工单号',value:this.mainData.billno_workorder},
+        {label:'申请单号',value:this.mainData.billno_serviceorder},
+        {label:'客诉大类',value:this.mainData.class2},
+        {label:'分析负责人',value:this.mainData.name_analysis},
+        {label:'真因分析时间',value:this.mainData.submitdate},
+        {label:'方案编辑人',value:this.mainData.name_charge},
+        {label:'责任部门',value:this.mainData.depname_charge},
+        {label:'方案发布人',value:this.mainData.sendby},
+        {label:'方案发布时间',value:this.mainData.senddate},
+        {label:'改善计划周期',value:this.mainData.planned_cycle},
+        {label:'改善实际周期',value:this.mainData.actual_cycle},
+        {label:'改善方案进度',value:Math.round((this.mainData.progress * 100) * 100)/100 + '%'},
+        {label:'改善结果',value:this.mainData.result},
+        {label:'创建时间',value:this.mainData.createdate},
+        {label:'完成时间',value:this.mainData.finishdate},
+        {label:'备注',value: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)
+    },
+  },
+  mounted() {
+    this.queryMainData()
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 10 - 0
src/router/HDrpManagement.js

@@ -936,6 +936,16 @@ const HDrpManagement = [
         },
         component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/serviceImprovement/modules/detail')
       },
+      {
+        path: '/serviceImprovementDetail2',
+        name:'serviceImprovement',
+        meta: {
+          title: '服务改善详情',
+          ast_nav: true,
+          keeproute: true,
+        },
+        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/serviceImprovement/modules/detail2')
+      },
     ]
   },
   {