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 |  341 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 234 insertions(+), 107 deletions(-)

diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
index 94dea83..7236f5d 100644
--- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -1,146 +1,189 @@
 <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="ManageFormAuto">
-      <div class="DManageForm">
-        <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: 0">
-          <span>{{dataForm.code}}</span>
+  <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.configItemWarehouse.code || '缂栧彿鑷姩鐢熸垚'}}</span>
         </el-form-item>
       </div>
-      <div class="confirmDAuto DManageForm">
-        <el-form-item label="椤圭洰缂栧彿" style="width: 49%">
-          <el-input v-model="dataForm.itemNumber" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input>
+      <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.project.code" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input>
         </el-form-item>
-        <el-form-item 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 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>
+        <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%">
+          <zt-dict v-model="dataForm.configItemWarehouse.libraryType" :radio="true" dict="library_type"></zt-dict>
         </el-form-item>
-        <div class="el-flexManageDialog el-form-border">
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
           <div class="DFormWidth DAlign DHold">
             鍏ュ簱閰嶇疆椤�
           </div>
-          <div class="el-wt-border-left" style="padding-left:5px;width: calc(100% - 130px)">
-            <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.storageData"
+          <div class="el-border-left" style="width: calc(100% - 120px)">
+            <div class="table-container">
+            <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>
-              <el-table-column prop="name" min-width="200" label="閰嶇疆椤瑰悕绉�"></el-table-column>
-              <el-table-column prop="identification" align="center" width="220" label="閰嶇疆椤规爣璇�"></el-table-column>
-              <el-table-column prop="versions" align="center" width="120" label="鐗堟湰"></el-table-column>
-              <el-table-column prop="rollBackVersions" label="涓婃函鐗�" width="120"  align="center"></el-table-column>
-              <el-table-column prop="secretClass" label="瀵嗙骇" width="80"  align="center"></el-table-column>
+              <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="itemName" min-width="200" label="閰嶇疆椤瑰悕绉�">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="itemDentify" align="center" width="220" label="閰嶇疆椤规爣璇�">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.itemIdentify" placeholder="閰嶇疆椤规爣璇�"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="version" align="center" width="120" label="鐗堟湰">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.version" placeholder="鐗堟湰"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120"  align="center">
+                <template v-slot="{ row }">
+                  <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>
+              <div class="icon-container" @click="addConfigItemWarehouseRow()">
+                <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� -->
+                <i class="el-icon-plus"></i>
+              </div>
+            </div>
           </div>
         </div>
-        <div class="el-flexManageDialog el-B-border">
+        <div class="el-flexManageDialog el-border-bottom">
           <div class="DFormWidth DAlign DHold">
             椤圭洰QA瀹℃牳
           </div>
-          <div class="el-wt-border-left" style="padding-left:5px;width: calc(100% - 130px)">
-            <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.examineData"
+          <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.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="100" 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>
         </div>
-        <div class="el-flexManageDialog el-B-border">
+        <div class="el-flexManageDialog el-border-bottom">
           <div class="DFormWidth DAlign DHold">
             CM瀹℃牳
           </div>
-          <div class="el-wt-border-left" style="padding-left:5px;width: calc(100% - 130px)">
-            <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.CMData"
+          <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.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="100" 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>
-            <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>
-            </el-form-item>
-            <el-form-item label="瀹℃牳浜�" style="width: 48%">
-              <span>{{dataForm.CMAuditor}}</span>
-            </el-form-item>
-            <el-form-item label="瀹℃牳鏃ユ湡" style="width: 48%">
-              <span>{{dataForm.CMAuditDate}}</span>
-            </el-form-item>
+            <div class="el-border-top">
+              <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
+                <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.configItemWarehouse.cmAuditor}}</span>
+              </el-form-item>
+              <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+                <span>{{dataForm.configItemWarehouse.cmAuditDate}}</span>
+              </el-form-item>
+            </div>
           </div>
         </div>
-        <div class="el-flexManageDialog el-B-border">
+        <div class="el-flexManageDialog el-border-bottom">
           <div class="DFormWidth DAlign DHold">
             鎵瑰噯鎰忚
           </div>
-          <div style="width: calc(100% - 120px)" class="el-wt-border-left">
-            <el-form-item class="el-wt-form-item-margin" label-width="120px" style="width: 99%">
-              <el-radio-group v-model="dataForm.opinion">
-                <el-radio :label="0">鍚屾剰</el-radio>
-                <el-radio :label="1">涓嶅悓鎰�</el-radio>
-              </el-radio-group>
+          <div style="width: calc(100% - 120px)" class="el-border-left">
+            <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>
-        <div class="el-flexManageDialog el-B-border">
+        <div class="el-flexManageDialog el-border-bottom">
           <div class="DFormWidth DAlign DHold">
             椤圭洰CM鎿嶄綔
           </div>
-          <div style="width: calc(100% - 120px)" class="el-wt-border-left">
-            <el-form-item class="el-CMTextarea" style="width: 100%">
-              <el-input  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.CMTextarea"></el-input>
+          <div style="width: calc(100% - 120px)" class="el-border-left">
+            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
+              <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>
@@ -148,9 +191,9 @@
           <div class="DFormWidth DAlign DHold">
             澶囨敞
           </div>
-          <div style="width: calc(100% - 120px)" class="el-wt-border-left">
-            <el-form-item class="el-CMTextarea" style="width: 100%">
-              <el-input  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.textarea"></el-input>
+          <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.configItemWarehouse.remark"></el-input>
             </el-form-item>
           </div>
         </div>
@@ -163,37 +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.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()
@@ -244,15 +363,9 @@
   border-top: 1px solid;
   border-bottom: 1px solid;
 }
-.el-B-border{
-  border-bottom: 1px solid;
-}
 .el-margin-top-bot{
   margin-top:5px;
   margin-bottom:5px;
-}
-.el-wt-border-left{
-  border-left:1px solid;
 }
 .zt .el-table.el-software th {
   background: transparent;
@@ -267,4 +380,18 @@
 .zt .el-table.el-software{
   font-size: 14px;
 }
+.warehouseContentWidth > .el-form-item > .el-form-item__content {
+  width: calc(100% - 120px);
+}
+.warehouseContentWidth > .el-form-item.lastChild > .el-form-item__content {
+  width: calc(100% - 142px);
+}
+.warehouseFormAuto .marginTopAndMarginBottom {
+  margin-top: 10px !important;
+  margin-bottom: 0 !important;
+}
+.warehouseFormAuto .marginTopAndMarginBottom2 {
+  margin-top: -10px !important;
+  margin-bottom: 0 !important;
+}
 </style>

--
Gitblit v1.9.1