From a52ac50ffc5f3b369eb689dd734bfb8a4bb988a4 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期四, 15 十月 2026 11:41:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/CNAS/personnel/personnelInfo/components/mandateAdd.vue                 |   17 +
 src/views/CNAS/process/method/methodVerification/index.vue                       |   30 ++-
 src/views/CNAS/process/method/methodVerification/component/wordFormDIa.vue       |  297 +++++++++++++++++++++++++++++++++++++
 src/api/cnas/process/method/methodVerification.js                                |    9 +
 vite.config.js                                                                   |    3 
 src/views/CNAS/process/method/methodVerification/component/viewWorkPermitDia.vue |   86 +++++++---
 6 files changed, 397 insertions(+), 45 deletions(-)

diff --git a/src/api/cnas/process/method/methodVerification.js b/src/api/cnas/process/method/methodVerification.js
index 250aafe..582953e 100644
--- a/src/api/cnas/process/method/methodVerification.js
+++ b/src/api/cnas/process/method/methodVerification.js
@@ -38,6 +38,15 @@
   });
 }
 
+// 鎸夊綋鍓嶆墍閫夋娴嬩汉鍛樺疄鏃惰鍙栦换鑱屾巿鏉冭瘉涔�
+export function getCurrentWorkFiles(query) {
+  return request({
+    url: '/processMethodVerify/getCurrentWorkFiles',
+    method: 'get',
+    params: query,
+  })
+}
+
 // 淇敼鏍囧噯鏂规硶楠岃瘉
 export function updateMethodVerify(data) {
   return request({
diff --git a/src/views/CNAS/personnel/personnelInfo/components/mandateAdd.vue b/src/views/CNAS/personnel/personnelInfo/components/mandateAdd.vue
index 546f809..fa0d0d0 100644
--- a/src/views/CNAS/personnel/personnelInfo/components/mandateAdd.vue
+++ b/src/views/CNAS/personnel/personnelInfo/components/mandateAdd.vue
@@ -17,10 +17,10 @@
           </el-input>
         </el-form-item >
         <el-form-item label="琚换鑱屼汉鍛�" prop="userId">
-          <el-select v-model="form.userId" placeholder="璇烽�夋嫨">
+          <el-select v-model="form.userId" filterable placeholder="璇烽�夋嫨">
             <el-option
-              v-for="(item, index) in userList"
-              :key="index"
+              v-for="item in userList"
+              :key="item.id"
               :label="item.name"
               :value="item.id"
             ></el-option>
@@ -141,9 +141,14 @@
      * @desc 鑾峰彇鐢ㄦ埛淇℃伅
      */
     async getUserList() {
-      selectUserCondition({type: 2}).then((res) => {
-        this.userList = res.data;
-      })
+      try {
+        const res = await selectUserCondition()
+        if (res.code !== 200) throw new Error('浜哄憳鍒楄〃鎺ュ彛杩斿洖澶辫触')
+        this.userList = Array.isArray(res.data) ? res.data : []
+      } catch (error) {
+        this.userList = []
+        this.$message.error('浜哄憳鍒楄〃鍔犺浇澶辫触锛岃绋嶅悗閲嶈瘯')
+      }
     },
     /**
      * @desc 鎻愪氦琛ㄥ崟
diff --git a/src/views/CNAS/process/method/methodVerification/component/viewWorkPermitDia.vue b/src/views/CNAS/process/method/methodVerification/component/viewWorkPermitDia.vue
index 965a0d7..cbe7ee6 100644
--- a/src/views/CNAS/process/method/methodVerification/component/viewWorkPermitDia.vue
+++ b/src/views/CNAS/process/method/methodVerification/component/viewWorkPermitDia.vue
@@ -2,23 +2,25 @@
   <div>
     <el-dialog v-model="filesDialogVisible" title="鏌ョ湅涓婂矖璇�" width="80%" @closed="closeFilesLook">
       <div>
+        <el-alert v-if="!tableLoading && tableData.length === 0" type="info" :closable="false"
+                  title="鎵�閫夋娴嬩汉鍛樻殏鏃犱换鑱屾巿鏉冭褰曪紝璇锋牳瀵硅浠昏亴浜哄憳涓庢娴嬩汉鍛樻槸鍚︿负鍚屼竴浜恒��"/>
         <limsTable
-          ref="yearTable"
-          :column="columnData"
-          :height="'calc(100vh - 400px)'"
-          :highlightCurrentRow="true"
-          :table-data="tableData"
-          :table-loading="tableLoading"
-          style="margin-top: 0.5em;">
+            ref="yearTable"
+            :column="columnData"
+            :height="'calc(100vh - 400px)'"
+            :highlightCurrentRow="true"
+            :table-data="tableData"
+            :table-loading="tableLoading"
+            style="margin-top: 0.5em;">
         </limsTable>
       </div>
     </el-dialog>
     <el-dialog
-      v-model="lookDialogVisible"
-      fullscreen
-      title="鏌ョ湅闄勪欢" top="5vh" width="800px">
+        v-model="lookDialogVisible"
+        fullscreen
+        title="鏌ョ湅闄勪欢" top="5vh" width="800px">
       <filePreview v-if="lookDialogVisible" :currentFile="{}"
-                   :fileUrl="javaApi+'/img/'+currentInfo.fileUrl" style="max-height: 90vh;overflow-y: auto;"/>
+                   :fileUrl="fileUrl(currentInfo)" style="max-height: 90vh;overflow-y: auto;"/>
     </el-dialog>
   </div>
 </template>
@@ -27,11 +29,12 @@
 import file from '@/utils/file';
 import filePreview from '@/components/Preview/filePreview.vue';
 import limsTable from '@/components/Table/lims-table.vue'
+import {getCurrentWorkFiles} from '@/api/cnas/process/method/methodVerification'
 
 export default {
   name: 'viewWorkPermitDia',
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: { filePreview, limsTable },
+  components: {filePreview, limsTable},
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
@@ -74,7 +77,7 @@
       ],
       tableData: [],
       info: {},
-      currentInfo:{},
+      currentInfo: {},
       lookDialogVisible: false,
     };
   },
@@ -83,27 +86,60 @@
   },
   // 鏂规硶闆嗗悎
   methods: {
-    openDia(row) {
-      this.filesDialogVisible = true
-      this.info = row
-      this.tableData = this.info.workFileList
+    fileUrl(row) {
+      const image = /\.(png|jpe?g|gif|bmp|webp)$/i.test(row.fileUrl || '')
+      return this.javaApi + (image ? '/img/' : '/word/') + row.fileUrl
     },
-    closeFilesLook () {
+    // 涓ょ鐢ㄦ硶锛氭暟缁�=妫�娴嬩汉鍛榠d锛堝疄鏃舵煡璇級锛涜瀵硅薄=浼樺厛灞曠ず宸蹭繚瀛樼殑涓婂矖璇侊紝鍏舵鎸夊凡閫夋娴嬩汉鍛樺疄鏃舵煡璇�
+    openDia(payload = {}) {
+      this.filesDialogVisible = true
+      this.tableData = []
+      if (Array.isArray(payload)) {
+        this.loadCurrentFiles(payload)
+        return
+      }
+      this.info = payload || {}
+      if (Array.isArray(payload.workFileList) && payload.workFileList.length) {
+        this.tableData = payload.workFileList
+        return
+      }
+      this.loadCurrentFiles(Array.isArray(payload.confirmUser) ? payload.confirmUser : [])
+    },
+    loadCurrentFiles(userIds) {
+      if (!userIds.length) return
+      this.tableLoading = true
+      getCurrentWorkFiles({userIds: userIds.join(',')}).then(res => {
+        if (res.code === 200) this.tableData = res.data || []
+      }).catch(() => {
+        this.$message.error('涓婂矖璇佽鍙栧け璐ワ紝璇风◢鍚庨噸璇�')
+      }).finally(() => {
+        this.tableLoading = false
+      })
+    },
+    closeFilesLook() {
       this.filesDialogVisible = false
     },
     // 鏌ョ湅鏂囦欢
-    handleLook(row){
+    handleLook(row) {
+      if (!row.fileUrl) {
+        this.$message.warning('璇ヤ汉鍛樺凡鏈変换鑱屾巿鏉冭褰曪紝浣嗗皻鏈笂浼犱笂宀楄瘉涔︽枃浠�')
+        return
+      }
       this.currentInfo = row
       this.lookDialogVisible = true
     },
     // 涓嬭浇
-    upload (row) {
+    upload(row) {
+      if (!row.fileUrl) {
+        this.$message.warning('璇ヤ汉鍛樺凡鏈変换鑱屾巿鏉冭褰曪紝浣嗗皻鏈笂浼犱笂宀楄瘉涔︽枃浠�')
+        return
+      }
       let url = '';
-      if(row.type==1){
-        url = this.javaApi+'/img/'+row.fileUrl
-        file.downloadIamge(url,row.fileName)
-      }else{
-        url = this.javaApi+'/word/'+row.fileUrl
+      if (/\.(png|jpe?g|gif|bmp|webp)$/i.test(row.fileUrl || '')) {
+        url = this.javaApi + '/img/' + row.fileUrl
+        file.downloadIamge(url, row.fileName)
+      } else {
+        url = this.javaApi + '/word/' + row.fileUrl
         const link = document.createElement('a');
         link.href = url;
         link.download = row.fileName;
diff --git a/src/views/CNAS/process/method/methodVerification/component/wordFormDIa.vue b/src/views/CNAS/process/method/methodVerification/component/wordFormDIa.vue
new file mode 100644
index 0000000..7f6c3b2
--- /dev/null
+++ b/src/views/CNAS/process/method/methodVerification/component/wordFormDIa.vue
@@ -0,0 +1,297 @@
+<template>
+  <div>
+    <el-dialog v-model="visible" :title="dialogTitle"
+               width="90%" :close-on-click-modal="false" @close="closeDia">
+      <div class="form-body">
+        <table class="verify-table">
+          <colgroup>
+            <col style="width: 16%"/>
+            <col style="width: 36%"/>
+            <col style="width: 16%"/>
+            <col style="width: 32%"/>
+          </colgroup>
+          <tbody>
+          <tr>
+            <th>鏍囧噯鍚嶇О</th>
+            <td>
+              <el-input v-model="form.standardName"/>
+            </td>
+            <th>鏍囧噯缂栧彿</th>
+            <td>
+              <el-input v-model="form.standardCode"/>
+            </td>
+          </tr>
+          <tr>
+            <th>楠岃瘉椤圭洰</th>
+            <td colspan="3">
+              <el-input v-model="form.verifyItem"/>
+            </td>
+          </tr>
+          </tbody>
+        </table>
+        <table class="verify-table content-table">
+          <colgroup>
+            <col style="width: 16%"/>
+            <col style="width: 36%"/>
+            <col style="width: 36%"/>
+            <col style="width: 12%"/>
+          </colgroup>
+          <thead>
+          <tr>
+            <th>楠岃瘉鍐呭</th>
+            <th>鏂规硶瑕佹眰</th>
+            <th>瀹為獙瀹よ兘鍔�</th>
+            <th>鏄惁婊¤冻</th>
+          </tr>
+          </thead>
+          <tbody>
+          <tr v-for="(item, index) in content.checks" :key="item.key">
+            <th>{{ index < 7 ? `${index + 1}. ${item.label}` : item.label }}</th>
+            <td>
+              <el-input v-model="item.requirement" type="textarea" :rows="3"/>
+            </td>
+            <td>
+              <el-input v-model="item.capability" type="textarea" :rows="3"/>
+              <div v-if="item.key === 'personnel'" class="row-extra">
+                <span>妫�娴嬩汉鍛�</span>
+                <el-select v-model="form.confirmUser" multiple :multiple-limit="5" placeholder="璇烽�夋嫨妫�娴嬩汉鍛�">
+                  <el-option v-for="user in userList" :key="user.id" :label="user.name" :value="user.id"/>
+                </el-select>
+                <el-link v-if="operationType === 'edit'" type="primary" @click="viewWorkPermit">鏌ョ湅涓婂矖璇�</el-link>
+              </div>
+              <div v-if="item.key === 'equipment'" class="row-extra">
+                <el-link type="primary" @click="viewDevice">鏌ョ湅璁惧</el-link>
+                <el-link v-if="operationType === 'edit'" type="primary" @click="viewCalibrationsFileDia">鏌ョ湅鏍″噯璇佷功
+                </el-link>
+              </div>
+            </td>
+            <td class="choice-cell">
+              <el-radio-group v-model="item.satisfied">
+                <el-radio :value="1">鏄�</el-radio>
+                <el-radio :value="0">鍚�</el-radio>
+              </el-radio-group>
+            </td>
+          </tr>
+          <tr>
+            <th>楠岃瘉缁撹</th>
+            <td colspan="3">
+              <el-input v-model="content.conclusion" type="textarea" :rows="4"/>
+            </td>
+          </tr>
+          <tr v-for="decision in decisions" :key="decision.key">
+            <th>{{ decision.label }}</th>
+            <td colspan="3">
+              <div class="decision-row">
+                <el-radio-group v-model="content[decision.key]">
+                  <el-radio value="鍚屾剰浣跨敤">鍚屾剰浣跨敤</el-radio>
+                  <el-radio value="涓嶈兘浣跨敤">涓嶈兘浣跨敤</el-radio>
+                  <el-radio value="闄愬埗浣跨敤">闄愬埗浣跨敤</el-radio>
+                </el-radio-group>
+                <span>{{ decision.personLabel }}</span>
+                <el-input v-model="content[decision.personKey]" class="person-input"/>
+                <span>鏃ユ湡</span>
+                <el-date-picker v-model="content[decision.dateKey]" type="date" value-format="YYYY-MM-DD"
+                                placeholder="閫夋嫨鏃ユ湡"/>
+              </div>
+            </td>
+          </tr>
+          </tbody>
+        </table>
+        <div v-if="operationType === 'edit'" class="attachments">
+          <span>闄勪欢1 鍘熷璁板綍銆侀檮浠�2 楠岃瘉缁撴灉</span>
+          <el-button size="small" @click="viewTestRecord">鏌ョ湅鍙婁笂浼犻檮浠�</el-button>
+        </div>
+      </div>
+      <template #footer>
+        <el-button @click="closeDia">鍙栨秷</el-button>
+        <el-button v-if="operationType !== 'view'" :loading="loading" type="primary" @click="submit">鎻愪氦</el-button>
+      </template>
+    </el-dialog>
+    <ViewDeviceDialog v-if="deviceVisible" ref="device" @closDeviceDia="deviceVisible = false"
+                      @handleDeviceInfo="setDevices"/>
+    <ViewTestRecord v-if="recordVisible" ref="record"/>
+    <ViewWorkPermitDia v-if="permitVisible" ref="permit"/>
+    <CalibrationsFileDia v-if="calibrationVisible" ref="calibration"/>
+  </div>
+</template>
+
+<script>
+import ViewDeviceDialog from './ViewDeviceDialog.vue'
+import ViewTestRecord from './ViewTestRecord.vue'
+import ViewWorkPermitDia from './viewWorkPermitDia.vue'
+import CalibrationsFileDia from './calibrationsFileDia.vue'
+import {addMethodVerify, getMethodVerifyOne, updateMethodVerify} from '@/api/cnas/process/method/methodVerification'
+import {selectUserCondition} from '@/api/cnas/process/method/methodVerification'
+
+const labels = [
+  ['personnel', '浜哄憳鑳藉姏'], ['equipment', '妫�娴嬭澶�'], ['reagents', '璇曞墏瑕佹眰'],
+  ['conditions', '璇曢獙鏉′欢'], ['sample', '鏍峰搧澶勭疆'], ['steps', '璇曢獙姝ラ'],
+  ['processing', '鏁版嵁澶勭悊'], ['qualityControl', '璐ㄩ噺鎺у埗鏂规硶'], ['result', '鏂规硶楠岃瘉缁撴灉']
+]
+const decisions = [
+  {key: 'reviewDecision', label: '璇勫鎰忚', personKey: 'reviewer', personLabel: '璇勫浜哄憳', dateKey: 'reviewDate'},
+  {
+    key: 'approvalDecision',
+    label: '瀹℃壒鎰忚',
+    personKey: 'approver',
+    personLabel: '鎶�鏈礋璐d汉',
+    dateKey: 'approvalDate'
+  }
+]
+
+function emptyContent() {
+  return {
+    checks: labels.map(([key, label]) => ({key, label, requirement: '', capability: '', satisfied: null})),
+    conclusion: '',
+    reviewDecision: '',
+    reviewer: '',
+    reviewDate: '',
+    approvalDecision: '',
+    approver: '',
+    approvalDate: ''
+  }
+}
+
+export default {
+  name: 'MethodVerificationWordForm',
+  components: {ViewDeviceDialog, ViewTestRecord, ViewWorkPermitDia, CalibrationsFileDia},
+  props: {operationType: {type: String, default: 'add'}},
+  computed: {
+    dialogTitle() {
+      if (this.operationType === 'view') return '鏌ョ湅鏂规硶楠岃瘉'
+      return this.operationType === 'edit' ? '缂栬緫鏂规硶楠岃瘉' : '鏂板鏂规硶楠岃瘉'
+    }
+  },
+  data() {
+    return {
+      visible: false, loading: false, decisions,
+      form: {standardName: '', standardCode: '', verifyItem: '', confirmUser: [], machineAttachmentList: []},
+      content: emptyContent(), info: {}, userList: [],
+      deviceVisible: false, recordVisible: false, permitVisible: false, calibrationVisible: false
+    }
+  },
+  methods: {
+    openDia(row = {}) {
+      this.visible = true
+      this.info = row || {}
+      selectUserCondition().then(res => {
+        if (res.code === 200) this.userList = res.data || []
+      })
+      if (this.operationType !== 'add') this.load(row)
+    },
+    load(row) {
+      getMethodVerifyOne({methodVerifyId: row.methodVerifyId}).then(res => {
+        if (res.code !== 200) return
+        this.form = {...res.data, confirmUser: res.data.confirmUser ? res.data.confirmUser.split(',').map(Number) : []}
+        try {
+          const saved = JSON.parse(res.data.verificationContent || '{}')
+          const defaults = emptyContent()
+          this.content = {
+            ...defaults, ...saved, checks: defaults.checks.map(item => ({
+              ...item, ...(saved.checks || []).find(check => check.key === item.key)
+            }))
+          }
+        } catch (_) {
+          this.content = emptyContent()
+          this.$message.error('楠岃瘉鍐呭鏍煎紡閿欒锛岃鑱旂郴绠$悊鍛�')
+        }
+      })
+    },
+    submit() {
+      if (!this.form.standardName?.trim() || !this.form.standardCode?.trim() || !this.form.verifyItem?.trim()) {
+        this.$message.warning('璇峰~鍐欐爣鍑嗗悕绉般�佹爣鍑嗙紪鍙峰拰楠岃瘉椤圭洰')
+        return
+      }
+      this.loading = true
+      const payload = {
+        ...this.form, operationType: 1,
+        confirmUser: (this.form.confirmUser || []).join(','),
+        verificationContent: JSON.stringify(this.content)
+      }
+      const request = this.operationType === 'edit' ? updateMethodVerify : addMethodVerify
+      request(payload).then(res => {
+        if (res.code === 200) {
+          this.$message.success('鎿嶄綔鎴愬姛');
+          this.closeDia()
+        }
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    openChild(flag, refName, data) {
+      this[flag] = true
+      this.$nextTick(() => this.$refs[refName]?.openDia(data))
+    },
+    viewWorkPermit() {
+      if (!this.form.confirmUser?.length) {
+        this.$message.warning('璇峰厛閫夋嫨妫�娴嬩汉鍛�')
+        return
+      }
+      this.openChild('permitVisible', 'permit', this.form.confirmUser)
+    },
+    viewDevice() {
+      this.openChild('deviceVisible', 'device', this.form)
+    },
+    viewCalibrationsFileDia() {
+      this.openChild('calibrationVisible', 'calibration', this.form)
+    },
+    viewTestRecord() {
+      this.openChild('recordVisible', 'record', this.info)
+    },
+    setDevices(list) {
+      this.deviceVisible = false;
+      this.form.machineAttachmentList = list
+    },
+    closeDia() {
+      this.visible = false;
+      this.$emit('closeDia')
+    }
+  }
+}
+</script>
+
+<style scoped>
+.form-body {
+  max-height: 70vh;
+  overflow: auto;
+}
+
+.verify-table {
+  width: 100%;
+  border-collapse: collapse;
+  margin-bottom: 14px;
+  table-layout: fixed;
+}
+
+.verify-table th, .verify-table td {
+  border: 1px solid #c5cbd0;
+  padding: 10px;
+  vertical-align: middle;
+}
+
+.verify-table th {
+  background: #f5f7f8;
+  font-weight: 500;
+  text-align: center;
+}
+
+.choice-cell {
+  text-align: center;
+}
+
+.row-extra, .decision-row, .attachments {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+  flex-wrap: wrap;
+  margin-top: 8px;
+}
+
+.person-input {
+  width: 140px;
+}
+
+.attachments {
+  margin: 16px 0;
+}
+</style>
diff --git a/src/views/CNAS/process/method/methodVerification/index.vue b/src/views/CNAS/process/method/methodVerification/index.vue
index dd77321..c26f254 100644
--- a/src/views/CNAS/process/method/methodVerification/index.vue
+++ b/src/views/CNAS/process/method/methodVerification/index.vue
@@ -3,8 +3,8 @@
     <div style="display: flex;justify-content: space-between">
       <div style="display: flex;">
         <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;">
-          <span style="width: 88px;font-size: 14px;font-weight: 700;color: var(--lims-text-2);">鏍囧噯鏂规硶</span>
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.methodName"
+          <span style="width: 88px;font-size: 14px;font-weight: 700;color: var(--lims-text-2);">鏍囧噯鍚嶇О</span>
+          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.standardName"
                     @keyup.enter="searchList"></el-input>
         </div>
         <div style="line-height: 30px;">
@@ -22,24 +22,26 @@
                  @pagination="pagination">
       </limsTable>
     </div>
-    <formDIa v-if="formDIa" ref="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIa>
+    <component :is="isWordForm ? 'wordFormDIa' : 'formDIa'" v-if="formDIa" ref="formDIa"
+               :operationType="operationType" @closeDia="closeDia" />
   </div>
 </template>
 
 <script>
 import limsTable from '@/components/Table/lims-table.vue'
 import formDIa from './component/formDIa.vue';
+import wordFormDIa from './component/wordFormDIa.vue';
 import { delMethodVerify, exportMethodVerify, pagesMethodVerify } from '@/api/cnas/process/method/methodVerification'
 
 export default {
   name: 'MethodVerification',
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: { limsTable, formDIa },
+  components: { limsTable, formDIa, wordFormDIa },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       searchForm: {
-        methodName: '',
+        standardName: '',
         operationType: 1,
       },
       options: [
@@ -48,18 +50,18 @@
       ],
       tableColumn: [
         {
-          label: '鏍囧噯鏂规硶',
-          prop: 'methodName',
+          label: '鏍囧噯鍚嶇О',
+          prop: 'standardName',
           minWidth: '100'
         },
         {
-          label: '楠岃瘉鍘熷洜',
-          prop: 'verifyReason',
+          label: '鏍囧噯缂栧彿',
+          prop: 'standardCode',
           minWidth: '100'
         },
         {
-          label: '涓昏鎶�鏈彉鍖�',
-          prop: 'technologyChange',
+          label: '楠岃瘉椤圭洰',
+          prop: 'verifyItem',
           minWidth: '100'
         },
         {
@@ -110,6 +112,7 @@
       total: 0,
       formDIa: false,
       operationType: '',
+      isWordForm: true,
     };
   },
   mounted() {
@@ -120,7 +123,7 @@
     // 鏌ヨ鍒楄〃
     searchList() {
       const entity = {
-        methodName: this.searchForm.methodName,
+        standardName: this.searchForm.standardName,
         operationType: this.searchForm.operationType,
       }
       const page = this.page
@@ -158,12 +161,13 @@
     },
     // 閲嶇疆鏌ヨ鏉′欢
     resetSearchForm() {
-      this.searchForm.methodName = '';
+      this.searchForm.standardName = '';
       this.searchList()
     },
     openFormDia(type, row) {
       this.formDIa = true
       this.operationType = type
+      this.isWordForm = type === 'add' || !!row?.standardCode
       this.$nextTick(() => {
         this.$refs.formDIa.openDia(row)
       })
diff --git a/vite.config.js b/vite.config.js
index 7c35347..4f1b5a0 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -7,7 +7,7 @@
   const env = loadEnv(mode, process.cwd())
   const { VITE_APP_ENV } = env
   // 鍚庣鎺ュ彛锛氶粯璁ゆ墦鍐呯綉鍏变韩鏈嶅姟锛屾湰鍦拌捣鍚庣鏃剁敤 VITE_APP_PROXY_TARGET 瑕嗙洊
-  const baseUrl = env.VITE_APP_PROXY_TARGET || 'http://192.168.0.24:9509/lims'
+  const baseUrl = env.VITE_APP_PROXY_TARGET || 'http://127.0.0.1:9509'
   return {
     // 閮ㄧ讲鐢熶骇鐜鍜屽紑鍙戠幆澧冧笅鐨刄RL銆�
     // 榛樿鎯呭喌涓嬶紝vite 浼氬亣璁句綘鐨勫簲鐢ㄦ槸琚儴缃插湪涓�涓煙鍚嶇殑鏍硅矾寰勪笂
@@ -61,6 +61,7 @@
     server: {
       port: 80,
       host: true,
+      allowedHosts: ['.trycloudflare.com'],
       open: true,
       proxy: {
         // https://cn.vitejs.dev/config/#server-proxy

--
Gitblit v1.9.3