From e023474fc9bcc726ed558a0623f1316dddc13152 Mon Sep 17 00:00:00 2001
From: zzw <wander.zheng@qq.com>
Date: 星期五, 01 十二月 2023 15:14:32 +0800
Subject: [PATCH] 编号

---
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue |  249 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 160 insertions(+), 89 deletions(-)

diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
index 1a6c476..7236f5d 100644
--- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -1,30 +1,31 @@
 <template>
-  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
-    <el-form ref="dataForm" style="padding-top: 0" :inline="true" :model="dataForm" label-width="120px" class="warehouseFormAuto">
+  <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker"  @confirm="formSubmit" >
+    <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" label-width="120px" class="warehouseFormAuto">
       <div >
         <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
-          <span>{{dataForm.code}}</span>
+          <span>{{dataForm.configItemWarehouse.code || '缂栧彿鑷姩鐢熸垚'}}</span>
         </el-form-item>
       </div>
       <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
         <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth">
-        <el-form-item class="marginTopAndMarginBottom" label="椤圭洰缂栧彿" style="width: 49%">
-          <el-input v-model="dataForm.itemNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input>
+        <el-form-item  class="marginTopAndMarginBottom" label="椤圭洰缂栧彿" style="width: 49%">
+          <el-input v-model="dataForm.project.code" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input>
         </el-form-item>
-        <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%">
-          <el-input v-model="dataForm.name" placeholder="璇疯緭鍏ョ紪鍙峰悕绉�"></el-input>
+        <el-form-item  class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%">
+          <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
         </el-form-item>
         <el-form-item label="鐢宠浜�" style="width: 49%">
-          <el-input v-model="dataForm.applicant" placeholder="璇疯緭鍏ョ紪鍙峰悕绉�"></el-input>
+          <el-input v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input>
         </el-form-item>
         <el-form-item label="鐢宠鏃ユ湡" style="width: 49%">
-          <el-input v-model="dataForm.date" placeholder="璇疯緭鍏ョ紪鍙峰悕绉�"></el-input>
+          <el-date-picker
+            v-model="dataForm.configItemWarehouse.applyDate"
+            type="date"
+            placeholder="璇烽�夋嫨鐢宠鏃ユ湡">
+          </el-date-picker>
         </el-form-item>
         <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%">
-          <el-radio-group v-model="dataForm.type">
-            <el-radio :label="0">鍙楁帶搴�</el-radio>
-            <el-radio :label="1">浜у搧搴�</el-radio>
-          </el-radio-group>
+          <zt-dict v-model="dataForm.configItemWarehouse.libraryType" :radio="true" dict="library_type"></zt-dict>
         </el-form-item>
         </div>
         <div class="el-flexManageDialog el-border-bottom">
@@ -33,37 +34,44 @@
           </div>
           <div class="el-border-left" style="width: calc(100% - 120px)">
             <div class="table-container">
-            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border :data="dataForm.storageData"
+            <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border :data="dataForm.configItemList"
                       stripe>
-              <el-table-column prop="code" align="center" width="60" label="搴忓彿">
+              <el-table-column prop="no" align="center" width="60" label="搴忓彿">
                 <template slot-scope="scope">
                   <span v-html="indexFormat(scope.$index)"></span>
                 </template>
               </el-table-column>
-              <el-table-column prop="name" min-width="200" label="閰嶇疆椤瑰悕绉�">
+              <el-table-column prop="itemName" min-width="200" label="閰嶇疆椤瑰悕绉�">
                 <template v-slot="{ row }">
-                  <el-input v-model="row.name" placeholder="閰嶇疆椤瑰悕绉�"></el-input>
+                  <el-input v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input>
                 </template>
               </el-table-column>
-              <el-table-column prop="identification" align="center" width="220" label="閰嶇疆椤规爣璇�">
+              <el-table-column prop="itemDentify" align="center" width="220" label="閰嶇疆椤规爣璇�">
                 <template v-slot="{ row }">
-                  <el-input v-model="row.identification" placeholder="閰嶇疆椤规爣璇�"></el-input>
+                  <el-input v-model="row.itemIdentify" placeholder="閰嶇疆椤规爣璇�"></el-input>
                 </template>
               </el-table-column>
-              <el-table-column prop="versions" align="center" width="120" label="鐗堟湰">
+              <el-table-column prop="version" align="center" width="120" label="鐗堟湰">
                 <template v-slot="{ row }">
-                  <el-input v-model="row.versions" placeholder="鐗堟湰"></el-input>
+                  <el-input v-model="row.version" placeholder="鐗堟湰"></el-input>
                 </template>
               </el-table-column>
-              <el-table-column prop="rollBackVersions" label="涓婃函鐗�" width="120"  align="center">
+              <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120"  align="center">
                 <template v-slot="{ row }">
-                  <el-input v-model="row.rollBackVersions" placeholder="涓婃函鐗�"></el-input>
+                  <el-input v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input>
                 </template>
               </el-table-column>
               <el-table-column prop="secretClass" label="瀵嗙骇" width="80"  align="center">
                 <template v-slot="{ row }">
                   <zt-dict v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class"
                            clearable></zt-dict>
+                </template>
+              </el-table-column>
+              <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="300" align="center">
+                <template v-slot="{ row }">
+                  <!--                    <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>-->
+                  <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row"
+                                  v-model="row.files"/>
                 </template>
               </el-table-column>
             </el-table>
@@ -79,33 +87,33 @@
             椤圭洰QA瀹℃牳
           </div>
           <div class="el-border-left" style="width: calc(100% - 120px)">
-            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px"  border :data="dataForm.examineData"
+            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px"  border :data="dataForm.qaAuditList"
                       stripe>
-              <el-table-column prop="code" align="center" width="80" label="搴忓彿"></el-table-column>
-              <el-table-column prop="checkItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
+              <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column>
+              <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
               <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
                 <template slot-scope="scope">
-                  <el-radio-group v-model="scope.row.result">
-                    <el-radio :label="0">鏄�</el-radio>
-                    <el-radio :label="1">鍚�</el-radio>
-                    <el-radio :label="2">涓嶉�傜敤</el-radio>
-                  </el-radio-group>
+                  <zt-dict :disabled="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
+                           clearable></zt-dict>
                 </template>
               </el-table-column>
-              <el-table-column prop="remark" align="center" width="120" label="涓嶉�傜敤璇存槑"></el-table-column>
+              <el-table-column align="center" width="120" label="涓嶉�傜敤璇存槑">
+                <template v-slot="{ row }">
+                  <el-input v-if="getRoleName.indexOf('QA瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <span v-else>{{row.notApplyExplan}}</span>
+                </template>
+              </el-table-column>
             </el-table>
             <div class="el-border-top">
             <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
-              <el-radio-group v-model="dataForm.result">
-                <el-radio :label="0">閫氳繃</el-radio>
-                <el-radio :label="1">涓嶉�氳繃</el-radio>
-              </el-radio-group>
+              <zt-dict :disabled="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true"
+                       clearable></zt-dict>
             </el-form-item>
             <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
-              <span>{{dataForm.auditor}}</span>
+              <span>{{dataForm.configItemWarehouse.qaAuditor}}</span>
             </el-form-item>
             <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
-              <span>{{dataForm.auditDate}}</span>
+              <span>{{dataForm.configItemWarehouse.qaAuditDate}}</span>
             </el-form-item>
             </div>
           </div>
@@ -115,36 +123,35 @@
             CM瀹℃牳
           </div>
           <div class="el-border-left" style="width: calc(100% - 120px)">
-            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px"  border :data="dataForm.CMData"
+            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px"  border :data="dataForm.cmAuditList"
                       stripe>
-              <el-table-column prop="code" align="center" width="80" label="搴忓彿"></el-table-column>
-              <el-table-column prop="checkItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
+              <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column>
+              <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
               <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
                 <template slot-scope="scope">
-                  <el-radio-group v-model="scope.row.result">
-                    <el-radio :label="0">鏄�</el-radio>
-                    <el-radio :label="1">鍚�</el-radio>
-                    <el-radio :label="2">涓嶉�傜敤</el-radio>
-                  </el-radio-group>
+                  <zt-dict :disabled="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
+                           clearable></zt-dict>
                 </template>
               </el-table-column>
-              <el-table-column prop="remark" align="center" width="120" label="涓嶉�傜敤璇存槑"></el-table-column>
+              <el-table-column prop="notApplyExplan" align="center" width="120" label="涓嶉�傜敤璇存槑">
+                <template v-slot="{ row }">
+                  <el-input v-if="getRoleName.indexOf('CM瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <span v-else>{{row.notApplyExplan}}</span>
+                </template>
+              </el-table-column>
             </el-table>
             <div class="el-border-top">
               <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
-                <el-radio-group v-model="dataForm.CMResult">
-                  <el-radio :label="0">閫氳繃</el-radio>
-                  <el-radio :label="1">涓嶉�氳繃</el-radio>
-                </el-radio-group>
+                <zt-dict :disabled="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true"
+                         clearable></zt-dict>
               </el-form-item>
-              <el-form-item label="瀹℃牳浜�" style="width: 48%">
-                <span>{{dataForm.CMAuditor}}</span>
+              <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
+                <span>{{dataForm.configItemWarehouse.cmAuditor}}</span>
               </el-form-item>
-              <el-form-item label="瀹℃牳鏃ユ湡" style="width: 48%">
-                <span>{{dataForm.CMAuditDate}}</span>
+              <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+                <span>{{dataForm.configItemWarehouse.cmAuditDate}}</span>
               </el-form-item>
             </div>
-
           </div>
         </div>
         <div class="el-flexManageDialog el-border-bottom">
@@ -152,17 +159,15 @@
             鎵瑰噯鎰忚
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
-            <el-form-item class="el-wt-form-item-margin" label-width="120px" style="width: 85%">
-              <el-radio-group v-model="dataForm.opinion">
-                <el-radio :label="0">鍚屾剰</el-radio>
-                <el-radio :label="1">涓嶅悓鎰�</el-radio>
-              </el-radio-group>
+            <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%">
+              <zt-dict :disabled="getRoleName.indexOf('閮ㄩ棬SCCB瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true"
+                       clearable></zt-dict>
             </el-form-item>
             <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%">
-              <span>{{dataForm.signature}}</span>
+              <span>{{dataForm.configItemWarehouse.approvalSign}}</span>
             </el-form-item>
             <el-form-item label="鏃ユ湡锛�" style="width: 20%">
-              <span>{{dataForm.approvalOpinionDate}}</span>
+              <span>{{dataForm.configItemWarehouse.approvalDate}}</span>
             </el-form-item>
           </div>
         </div>
@@ -172,13 +177,13 @@
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
             <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
-              <el-input  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.CMTextarea"></el-input>
+              <el-input v-if="getRoleName.indexOf('CM瑙掕壊')>=0" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
             </el-form-item>
             <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%">
-              <span>{{dataForm.CMSignature}}</span>
+              <span>{{dataForm.configItemWarehouse.operator}}</span>
             </el-form-item>
             <el-form-item label="鏃ユ湡锛�" style="width: 20%">
-              <span>{{dataForm.CMDate}}</span>
+              <span>{{dataForm.configItemWarehouse.operateDate}}</span>
             </el-form-item>
           </div>
         </div>
@@ -188,7 +193,7 @@
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
             <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
-              <el-input  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.textarea"></el-input>
+              <el-input  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.remark"></el-input>
             </el-form-item>
           </div>
         </div>
@@ -201,47 +206,113 @@
   export default {
     data() {
       return {
+        disabled:true,
+        stepMarker: '',
+        title: '鏌ョ湅',
         dataForm: {
           id: '',
-          projectId: '',
-          code: '',
-          projectCode: '',
-          projectName: '',
-          applicant: '',
-          applyDate: '',
-          libraryType: '',
-          approvalOpinions: '',
-          approvalSign: '',
-          approvalDate: '',
-          projectCmOperations: '',
-          operator: '',
-          operateDate: '',
-          remark: '',
-          year: ''
+          configItemWarehouse:{
+            id:"",
+            code: "",
+            applicant: "",
+            applyDate: "",
+            libraryType: "",
+            qaAuditResults:"",
+            qaAuditor:"",
+            qaAuditDate:"",
+            cmAuditResults:"",
+            cmAuditor:"",
+            cmAuditDate:"",
+            approvalOpinions: "",
+            approvalSign: "",
+            approvalDate: "",
+            projectCmOperations: "",
+            operator: "",
+            operateDate: "",
+            remark: "",
+          },
+          project: {
+            code: '',
+            softwareName: '',
+          },
+          cmAuditList:[],
+          configItemList:[],
+          qaAuditList:[],
+          flowInfoDto: {}
         }
       }
+    },
+    computed:{
+      getRoleName(){
+        console.log(this.$store.state.user.roleName,'this.$store.state.user.roleName')
+        return this.$store.state.user.roleName || ''
+      },
     },
     methods: {
       indexFormat(index){
         return index += 1
       },
+      init(id,row){
+        console.log(id,row,'鍏ュ簱鍗曠殑')
+        if (id) {
+          this.dataForm.id = id
+        } else {
+          this.dataForm.id = row.id
+        }
+        if(row.projectId){
+          this.dataForm.projectId =row.projectId
+        }
+        this.getInfo()
+        if (!this.dataForm.disabled) {
+          if (!row.stepMarker) {
+            this.stepMarker = 'pzxrk_first'
+            this.title = '鍏ュ簱鐢宠'
+          } else {
+            this.title = row.stepName
+            this.stepMarker = row.stepMarker
+          }
+        }
+        console.log(this.dataForm.id,this.dataForm.projectId,'params params')
+      },
       addConfigItemWarehouseRow(){
-        // this.dataForm.technicalList.push({})
-        // this.$nextTick(()=>{
-        //   const tableBody=this.$refs.tableCirculatOrderList.$el.querySelector('.el-table__body-wrapper')
-        //   tableBody.scrollTop = tableBody.scrollHeight;
-        // })
+        this.dataForm.configItemList.push({})
+        this.$nextTick(()=>{
+          const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper')
+          tableBody.scrollTop = tableBody.scrollHeight;
+        })
       },
       // 鑾峰彇淇℃伅
       async getInfo() {
-        let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/${this.dataForm.id}`)
+        let params = {
+          warehouseId: this.dataForm.id,
+          projectId: this.dataForm.projectId
+        }
+        let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`,{params: params})
         this.dataForm = {
           ...this.dataForm,
           ...res.data
         }
+        if(this.dataForm.project === null){
+          this.dataForm.project={}
+        }
+        if(this.dataForm.configItemWarehouse === null){
+          this.dataForm.circulatOrder={}
+        }
+        if(this.dataForm.flowInfoDto === null){
+          this.dataForm.flowInfoDto={}
+        }
+        console.log(this.dataForm,"getInfo this.dataForm")
       },
       // 琛ㄥ崟鎻愪氦
-      async formSubmit() {
+      async formSubmit(submitType) {
+        if (submitType == 'tj' || submitType == 'bl') {
+          let flowInfo = {
+            flowCode: 'pzxrk',
+            stepIdMark: this.stepMarker,
+            submitType: submitType
+          }
+          this.dataForm.flowInfoDto = flowInfo;
+        }
         let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemWarehouse/ConfigItemWarehouse/', this.dataForm)
         if (res.success) {
           await this.$tip.success()

--
Gitblit v1.9.1