From dd5c0e7704a9ed729492b328e42d22014067b0b4 Mon Sep 17 00:00:00 2001
From: wente <329538422@qq.com>
Date: 星期二, 19 十二月 2023 14:29:12 +0800
Subject: [PATCH] 基线表

---
 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue |  354 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 288 insertions(+), 66 deletions(-)

diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
index 2bd1f40..497e643 100644
--- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -1,88 +1,310 @@
 <template>
-  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
-    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
-      <zt-form-item label="缂栧彿" prop="code" rules="required">
-        <el-input v-model="dataForm.code"></el-input>
-      </zt-form-item>
-      <zt-form-item label="椤圭洰鏍囪瘑" prop="softwareidentity" rules="required">
-        <el-input v-model="dataForm.softwareidentity"></el-input>
-      </zt-form-item>
-      <zt-form-item label="椤圭洰鍚嶇О" prop="softwarename" rules="required">
-        <el-input v-model="dataForm.softwarename"></el-input>
-      </zt-form-item>
-      <zt-form-item label="妫�鏌ヤ汉" prop="examiner" rules="required">
-        <el-input v-model="dataForm.examiner"></el-input>
-      </zt-form-item>
-      <zt-form-item label="妫�鏌ユ椂闂�" prop="examDate" rules="required">
-        <el-input v-model="dataForm.examDate"></el-input>
-      </zt-form-item>
-      <zt-form-item label="闂鎻忚堪" prop="problemDescription" rules="required">
-        <el-input v-model="dataForm.problemDescription"></el-input>
-      </zt-form-item>
-      <zt-form-item label="闂澶勭悊" prop="problemProcess" rules="required">
-        <el-input v-model="dataForm.problemProcess"></el-input>
-      </zt-form-item>
-      <zt-form-item label="澶勭悊浜�" prop="processor" rules="required">
-        <el-input v-model="dataForm.processor"></el-input>
-      </zt-form-item>
-      <zt-form-item label="澶勭悊鏃ユ湡" prop="processDate" rules="required">
-        <el-input v-model="dataForm.processDate"></el-input>
-      </zt-form-item>
-      <zt-form-item label="楠岃瘉浜�" prop="verifier" rules="required">
-        <el-input v-model="dataForm.verifier"></el-input>
-      </zt-form-item>
-      <zt-form-item label="楠岃瘉鏃ユ湡" prop="verifyDate" rules="required">
-        <el-input v-model="dataForm.verifyDate"></el-input>
-      </zt-form-item>
-      <zt-form-item label="骞翠唤" prop="year" rules="required">
-        <el-input v-model="dataForm.year"></el-input>
-      </zt-form-item>
+  <zt-dialog ref="dialog" column="2" @confirm="formSubmit" :stepMarker="stepMarker" :append-to-body="true">
+    <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled"
+             label-width="120px" class="testCheckFormAuto">
+      <div>
+        <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
+          <span>{{ dataForm.checkOrder.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="testCheckContentWidth">
+          <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鏍囪瘑" style="width: 49%">
+            <el-input v-model="dataForm.project.softwareIdentity" placeholder="椤圭洰鏍囪瘑"></el-input>
+          </el-form-item>
+          <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 class="marginTopAndMarginBottom3" label="妫�鏌ヤ汉" style="width: 49%">
+            <el-input v-if="stepMarker=='csjcd_first'" v-model="dataForm.checkOrder.examiner"
+                      placeholder="妫�鏌ヤ汉"></el-input>
+            <span v-else>{{ dataForm.checkOrder.examiner }}</span>
+          </el-form-item>
+          <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ユ椂闂�" style="width: 49%">
+            <el-date-picker
+              v-if="stepMarker=='csjcd_first'"
+              v-model="dataForm.checkOrder.examDate"
+              type="date"
+              placeholder="璇烽�夋嫨妫�鏌ユ椂闂�">
+            </el-date-picker>
+            <span v-else>{{ dataForm.checkOrder.examDate }}</span>
+          </el-form-item>
+        </div>
+        <div style="border-bottom: 1px solid rgba(0,0,0,.2);">
+          <div style="padding-left:5px;padding-right:5px;">
+            <div style="padding: 5px">妫�鏌ラ」鐩�:{{ subtitle }}</div>
+            <div class="table-container">
+              <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border
+                        :data="dataForm.checkOrderList"
+                        stripe>
+                <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="checkContent" min-width="180" label="涓昏妫�鏌ュ唴瀹�">
+                  <!--                  <template v-slot="{ row }">-->
+                  <!--                    <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>-->
+                  <!--                  </template>-->
+                </el-table-column>
+                <el-table-column prop="checkResult" align="center" width="200" label="妫�鏌ョ粨鏋�">
+                  <template v-slot="{ row }">
+                    <zt-dict :disabled="stepMarker!=='csjcd_first'" v-model="row.checkResult" :dict="getDict"
+                             :radio="true"></zt-dict>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="remark" label="澶囨敞" width="100" align="center">
+                  <template v-slot="{ row }">
+                    <el-input v-if="stepMarker=='csjcd_first'" v-model="row.remark" placeholder="澶囨敞"></el-input>
+                    <span v-else>{{ row.remark }}</span>
+                  </template>
+                </el-table-column>
+                <!--                <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="300" align="center">
+                                  <template v-slot="{ row }">
+                                    &lt;!&ndash;                    <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>&ndash;&gt;
+                                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
+                                                    v-model="row.files"/>
+                                  </template>
+                                </el-table-column>-->
+              </el-table>
+              <!--              <div class="icon-container" @click="addCirculatRow()">-->
+              <!--                &lt;!&ndash; 鏀剧疆鍥哄畾鐨勫浘鏍� &ndash;&gt;-->
+              <!--                <i class="el-icon-plus"></i>-->
+              <!--              </div>-->
+            </div>
+          </div>
+        </div>
+        <div class="el-flexCirculationDialog el-border-bottom">
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            闂鎻忚堪
+          </div>
+          <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
+            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
+              <el-input v-if="stepMarker=='csjcd_first'" type="textarea"
+                        :rows="3" v-model="dataForm.checkOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input>
+              <span v-else>{{ dataForm.checkOrder.problemDescription }}</span>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="el-flexCirculationDialog el-border-bottom">
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            闂澶勭悊
+          </div>
+          <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
+            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
+              <el-input v-if="stepMarker=='csjcd_wtcl'" type="textarea"
+                        :rows="3" v-model="dataForm.checkOrder.problemProcess" placeholder="闂澶勭悊..."></el-input>
+              <span v-else>{{ dataForm.checkOrder.problemProcess }}</span>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="el-flexCirculationDialog">
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            澶勭悊浜�
+          </div>
+          <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;">
+            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
+              <span>{{ dataForm.checkOrder.processor }}</span>
+            </el-form-item>
+          </div>
+          <div style="width: 84px;text-align: center;font-weight: 600">
+            楠岃瘉浜�
+          </div>
+          <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;">
+            <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0">
+              <span>{{ dataForm.checkOrder.verifier }}</span>
+            </el-form-item>
+          </div>
+        </div>
+      </div>
     </el-form>
+    <template v-slot:footer>
+      <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
+    </template>
   </zt-dialog>
 </template>
 
 <script>
-  export default {
-    data() {
-      return {
-        dataForm: {
-          id: '',
-          projectId: '',
+import qs from "qs";
+import Cookies from "js-cookie";
+
+export default {
+  data() {
+    return {
+      pageCode: '',
+      stepMarker: '',
+      configDetailRow: null,
+      subtitle: '',
+      pageName: {
+        plan: '杞欢娴嬭瘯璁″垝', explain: '杞欢娴嬭瘯璇存槑', record: '杞欢娴嬭瘯璁板綍', report: '杞欢娴嬭瘯鎶ュ憡',
+        contract: '鍚堝悓璇勫闃舵', require: '娴嬭瘯闇�姹傚垎鏋愪笌绛栧垝闃舵',execute:'娴嬭瘯璁捐涓庡疄鐜般�佹墽琛岄樁娈�',summary:'娴嬭瘯鎬荤粨闃舵'
+      },
+      dataForm: {
+        id: '',
+        projectId: '',
+        project: {
+          softwareIdentity: '',
+          softwareName: '',
+        },
+        checkOrder: {
           code: '',
-          softwareidentity: '',
-          softwarename: '',
           examiner: '',
           examDate: '',
           problemDescription: '',
           problemProcess: '',
           processor: '',
-          processorId: '',
-          processDate: '',
           verifier: '',
-          verifierId: '',
-          verifyDate: '',
-          year: ''
+        },
+        checkOrderList: []
+      }
+    }
+  },
+  computed: {
+    getDict() {
+      if (this.pageCode && (this.pageCode === 'plan' || this.pageCode === 'explain' || this.pageCode === 'record' || this.pageCode === 'report')) {
+          return 'tristate1'
+        } else {
+          return 'tristate2'
         }
       }
+  },
+  methods: {
+    init(id, row) {
+      this.configDetailRow = row
+      if (row.checkId) {
+        console.log('閰嶇疆椤瑰叆搴撳鏍歌繘鏉ョ殑 TestCheckOrder-AddOrUpdate.vue init row.checkId')
+        if (row.checkId != -1) {
+          this.dataForm.id = row.checkId
+        }
+      } else if (id) {
+        this.dataForm.id = id
+      } else {
+        this.dataForm.id = row.id
+      }
+      this.pageCode = row.pageCode
+      this.subtitle = this.pageName[this.pageCode]
+
+      if (row.projectId) {
+        this.dataForm.projectId = row.projectId
+      }
+      if (this.configDetailRow) {
+        if (!row.stepMarker) {
+          this.stepMarker = 'csjcd_first'
+          this.title = '鍙戣捣娴嬭瘯妫�鏌ュ崟'
+        } else {
+          this.title = row.stepName
+          this.stepMarker = row.stepMarker
+        }
+      }
+      //this.dataForm.disabled
+      this.getInfo()
+
+      //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
     },
-    methods: {
-      // 鑾峰彇淇℃伅
-      async getInfo() {
-        let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`)
-        this.dataForm = {
-          ...this.dataForm,
-          ...res.data
+    indexFormat(index) {
+      return index += 1
+    },
+    // 鑾峰彇淇℃伅
+    async getInfo() {
+      let params = {
+        checkId: this.dataForm.id,
+        projectId: this.dataForm.projectId,
+        pageCode: this.pageCode
+      }
+      console.log(this.pageCode, "getInfo pageCode")
+      let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/getDto`, {params: params})
+      this.dataForm = {
+        ...this.dataForm,
+        ...res.data
+      }
+      console.log(this.dataForm, 'this.dataForm this.dataForm')
+    },
+    async print() {
+      var params = qs.stringify({
+        token: Cookies.get('token'),
+        id: this.dataForm.id,
+        pageCode: this.pageCode
+      })
+      let apiURL = `/testCheckOrder/TestCheckOrder/exportCheckOrder`
+      window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
+    },
+    // 琛ㄥ崟鎻愪氦
+    async formSubmit(submitType) {
+      let isFlow = false
+      if (submitType == 'tj') {
+        for (let item of this.dataForm.checkOrderList) {
+          if (!item.checkResult) {
+            this.$alert("鏈夋湭濉啓鐨勬暟鎹�")
+            return
+          } else if (item.checkResult == "2") {
+            isFlow = true
+          }
         }
-      },
-      // 琛ㄥ崟鎻愪氦
-      async formSubmit() {
-        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm)
-        if (res.success) {
-          await this.$tip.success()
-          this.$refs.dialog.close()
-          this.$emit('refreshDataList')
+        if (submitType == 'tj' && !isFlow) {
+          submitType == ''
         }
+      }
+      if (submitType == 'bl') {
+        isFlow = true
+      }
+      if (submitType == 'tj' && isFlow || submitType == 'bl' && isFlow) {
+        let flowInfo = {
+          flowCode: 'csjcd',
+          stepIdMark: this.stepMarker,
+          submitType: submitType
+        }
+        this.dataForm.flowInfoDto = flowInfo;
+      }
+      console.log(this.dataForm, "this.dataForm formSubmit(submitType)")
+      let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm)
+      if (res.success) {
+        await this.$tip.success()
+        this.$refs.dialog.close()
+        this.$emit('recall', res.data, this.configDetailRow)
+        this.$emit('refreshDataList')
       }
     }
   }
+}
 </script>
+<style>
+.el-flexCirculationDialog {
+  display: flex;
+  align-items: center
+}
+
+.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
+  width: 100%;
+}
+
+.testCheckFormAuto .acceptDate1 > .el-form-item > .el-form-item__content {
+  width: 100%;
+}
+
+.testCheckFormAuto .marginTopAndMarginBottom {
+  margin-top: 10px !important;
+  margin-bottom: 0 !important;
+}
+
+.testCheckFormAuto .marginTopAndMarginBottom2 {
+  margin-top: -10px !important;
+  margin-bottom: 10px !important;
+}
+
+.testCheckFormAuto .marginTopAndMarginBottom3 {
+  margin-top: 0 !important;
+  margin-bottom: 10px !important;
+}
+
+.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
+  line-height: 78px;
+}
+
+.testCheckContentWidth > .el-form-item > .el-form-item__content {
+  width: calc(100% - 120px);
+}
+
+.testCheckFormAuto .el-radio {
+  margin-right: 10px;
+}
+</style>

--
Gitblit v1.9.1