From 0d11525aa58ec5e35ea22ff4b0d6d5863d73649b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 04 三月 2025 16:43:52 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-before-ruoyi

---
 src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue |  324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 324 insertions(+), 0 deletions(-)

diff --git a/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
new file mode 100644
index 0000000..d3911c7
--- /dev/null
+++ b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
@@ -0,0 +1,324 @@
+<template>
+  <div>
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="formDia" title="瀹炴柦"
+      width="60%" @close="closeCarryOutDia">
+      <el-steps :active="currentStep" align-center finish-status="success">
+        <el-step title="瀹炴柦"></el-step>
+        <el-step title="鎵瑰噯"></el-step>
+      </el-steps>
+      <div style="height: 620px;overflow-y: auto">
+        <table border="1" cellspacing="10" class="tables">
+          <tr>
+            <td class="td-title">
+              <p>鐩戞帶椤圭洰锛�</p>
+            </td>
+            <td colspan="3">
+              <el-input v-if="currentStep == 0" v-model="form.monitorProject" placeholder="璇疯緭鍏ュ唴瀹�" size="small">
+              </el-input>
+              <span v-else class="td-info"> {{ form.monitorProject }}</span>
+            </td>
+            <td class="td-title">
+              <p>鐩戞帶鏃堕棿锛�</p>
+            </td>
+            <td colspan="3">
+              <el-input v-if="currentStep == 0" v-model="form.monitorData" placeholder="璇疯緭鍏ュ唴瀹�" size="small">
+              </el-input>
+              <span v-else class="td-info"> {{ form.monitorData }}</span>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>鐩戞帶鐩殑锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.monitorPurpose" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�"
+                  size="small" type="textarea">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.monitorPurpose }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>鐩戞帶鏂规硶锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.monitorMethod" :rows="4" placeholder="璇疯緭鍏ュ唴瀹�"
+                  size="small" type="textarea">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.monitorMethod }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>鍙傚姞浜哄憳锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.participant" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" size="small"
+                  type="textarea">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.participant }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>杩囩▼鎺у埗锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.processControl" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�"
+                  size="small" type="textarea">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.processControl }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>缁撴灉璇勪环鏍囧噯锛堝浣曡瘎浠凤級锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.howEvaluate" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�" size="small"
+                  type="textarea">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.howEvaluate }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="8">
+              <div>
+                <p>缁忚垂棰勭畻锛�</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.budget" placeholder="璇疯緭鍏ュ唴瀹�" size="small">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.budget }}</span>
+              </div>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="4">
+              <div>
+                <p>妫�娴嬮儴闂細</p>
+              </div>
+              <div>
+                <el-input v-if="currentStep == 0" v-model="form.inspectionDepartment" placeholder="璇疯緭鍏ュ唴瀹�" size="small">
+                </el-input>
+                <span v-else class="td-info2"> {{ form.inspectionDepartment }}</span>
+              </div>
+            </td>
+            <td colspan="4">
+              <div v-if="currentStep == 0">
+                <div>閫夋嫨鎵瑰噯浜猴細</div>
+                <div>
+                  <el-select v-if="currentStep == 0" v-model="form.ratifyUserId" clearable filterable placeholder="璇烽�夋嫨"
+                    size="small">
+                    <el-option v-for="(item, i) in personList" :key="i" :label="item.label" :value="item.value">
+                    </el-option>
+                  </el-select>
+                  <span v-else class="td-info2"> {{ form.ratifyName }}</span>
+                </div>
+              </div>
+              <div v-else>
+                <div>
+                  <p>鎵瑰噯鎰忚锛�</p>
+                </div>
+                <div>
+                  <el-input v-if="currentStep == 1" v-model="form.ratifyOpinion" :rows="3" placeholder="璇疯緭鍏ュ唴瀹�"
+                    size="small" type="textarea">
+                  </el-input>
+                  <span v-if="currentStep == 2" class="td-info2"> {{ form.ratifyOpinion }}</span>
+                  <span v-if="currentStep == 2" class="td-info3"> {{ '鎵瑰噯浜猴細' + form.ratifyName }}</span>
+                </div>
+              </div>
+            </td>
+          </tr>
+        </table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closeCarryOutDia">鍙� 娑�</el-button>
+        <el-button v-if="currentStep != 2" :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  getQualityMonitorRatify,
+  addQualityMonitorRatify,
+  addQualityMonitorRatifyOpinion,
+} from '@/api/cnas/process/ensureResults/ensureResultsValidity.js'
+import { selectUserCondition } from "@/api/system/user";
+export default {
+  name: 'carryOutDialog',
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {},
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      formDia: false,
+      currentStep: 0,
+      form: {
+        monitorProject: '',
+        monitorData: '',
+        monitorPurpose: '',
+        monitorMethod: '',
+        participant: '',
+        processControl: '',
+        howEvaluate: '',
+        budget: '',
+        inspectionDepartment: '',
+        ratifyUserId: '',
+        ratifyOpinion: '',
+        qualityMonitorDetailsId: '',
+        ratifyName: '',
+      },
+      personList: [],
+      editLoad: false,
+      isCarryOut: false, // 鏄惁涓哄疄鏂�
+    };
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    openDia(row) {
+      this.formDia = true
+      this.searchInfo(row)
+      this.getAuthorizedPerson()
+    },
+    // 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+    searchInfo(row) {
+      getQualityMonitorRatify({ qualityMonitorDetailsId: row.qualityMonitorDetailsId }).then(res => {
+        if (res.code === 201) return
+        // 鏈塪etailsRatifyId鍒欒鏄庢彁浜よ繃瀹炴柦淇℃伅
+        if (res.data.detailsRatifyId) {
+          // 鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�
+          if (res.data.isFinish == 0) {
+            this.currentStep = 1
+          } else if (res.data.isFinish == 1) {
+            this.currentStep = 2
+          }
+        } else {
+          this.currentStep = 0
+        }
+        this.form = res.data
+      }).catch(err => {
+        console.log('err---', err);
+      })
+    },
+    // 鎻愪氦
+    handleEdit() {
+      this.editLoad = true
+      if (this.currentStep == 0) {
+        this.addInfo()
+      } else {
+        this.editInfo()
+      }
+    },
+    // 鎻愪氦瀹炴柦
+    addInfo() {
+      addQualityMonitorRatify(this.form).then(res => {
+        this.editLoad = false
+        if (res.code === 201) return
+        this.$message.success('鎿嶄綔鎴愬姛')
+        this.closeCarryOutDia()
+      }).catch(err => {
+        console.log('err---', err);
+        this.editLoad = false
+      })
+    },
+    // 鎻愪氦鎵瑰噯
+    editInfo() {
+      addQualityMonitorRatifyOpinion(this.form).then(res => {
+        this.editLoad = false
+        if (res.code === 201) return
+        this.$message.success('鎿嶄綔鎴愬姛')
+        this.closeCarryOutDia()
+      }).catch(err => {
+        console.log('err---', err);
+        this.editLoad = false
+      })
+    },
+    // 鍏抽棴寮规
+    closeCarryOutDia() {
+      this.formDia = false
+      this.$emit('closeCarryOutDia')
+    },
+    getAuthorizedPerson() {
+      selectUserCondition().then(res => {
+        let data = []
+        res.data.forEach(a => {
+          data.push({
+            label: a.name,
+            value: a.id
+          })
+        })
+        this.personList = data
+      })
+    },
+  }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+  margin: 20px auto 50px !important;
+}
+
+.tables {
+  table-layout: fixed;
+  width: 100%;
+  margin-top: 10px;
+}
+
+.td-title {
+  height: 40px;
+  width: 100px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+  padding: 6px;
+}
+
+.td-info {
+  display: inline-block;
+  width: 100%;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+}
+
+.td-info2 {
+  display: inline-block;
+  width: 90%;
+  text-align: left;
+  font-size: 16px;
+  word-wrap: break-word;
+  white-space: normal;
+  margin-left: 20px;
+}
+
+.tables td {
+  height: 40px;
+  width: 100px;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+  padding: 6px;
+}
+
+.td-info3 {
+  width: 90%;
+  display: inline-block;
+  text-align: right;
+}
+</style>

--
Gitblit v1.9.3