From 37c5fa644553d6e24c729b62408e631a8c50e379 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期四, 19 六月 2025 15:19:36 +0800
Subject: [PATCH] tijiao

---
 src/api/account/contract.js         |   38 +++++++
 src/views/system/contract/index.vue |  191 ++++++++++++++++++++++++++++++++++++--
 src/views/hosp/project/index.vue    |   39 +++++--
 3 files changed, 246 insertions(+), 22 deletions(-)

diff --git a/src/api/account/contract.js b/src/api/account/contract.js
new file mode 100644
index 0000000..b3d6c5e
--- /dev/null
+++ b/src/api/account/contract.js
@@ -0,0 +1,38 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鍚堝悓鍒楄〃
+export function getList(query) {
+    return request({
+        url: '/system/htxxb/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 淇敼鍚堝悓
+export function edithtxxb(data) {
+  return request({
+    url: '/system/htxxb',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鏂板鍚堝悓
+export function addhtxxb(data) {
+    return request({
+        url: '/system/htxxb',
+        method: 'post',
+        data: data
+    })
+}
+
+
+// 鍒犻櫎浣撴椤圭洰寤鸿瑙勫垯鏂拌〃
+export function delhtxxb(id) {
+    return request({
+        url: '/system/htxxb/' + id,
+        method: 'delete'
+    })
+}
+
diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue
index 775a846..8a75a61 100644
--- a/src/views/hosp/project/index.vue
+++ b/src/views/hosp/project/index.vue
@@ -469,11 +469,27 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鏍囨湰绫诲瀷" prop="specimenType">
+          <el-select
+            v-model="form.specimenType"
+            placeholder="璇烽�夋嫨鏍囨湰绫诲瀷"
+            style="width: 200px"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="dict in dict.type.yblx"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="妫�鏌ラ儴浣�" prop="checkBw">
           <el-select
             v-model="form.checkBw"
             placeholder="璇烽�夋嫨妫�鏌ラ儴浣�"
-            style="width: 200px"
+            style="width: 260px"
             filterable
             clearable
           >
@@ -489,7 +505,7 @@
           <el-input
             v-model="form.proMetering"
             placeholder="璇疯緭鍏ュ崟浣�"
-            style="width: 260px"
+            style="width: 200px"
           />
         </el-form-item>
         <el-form-item label="鍙傝�冭寖鍥�" prop="proScope">
@@ -503,14 +519,14 @@
           <el-input
             v-model="form.sl"
             placeholder="璇疯緭鍏ユ暟閲�"
-            style="width: 200px"
+            style="width: 260px"
           />
         </el-form-item>
         <el-form-item label="缁勫悎鏍囧織" prop="sfzhfy">
           <el-select
             v-model="form.sfzhfy"
             placeholder="璇烽�夋嫨鏄惁缁勫悎鏍囧織"
-            style="width: 260px"
+            style="width: 200px"
           >
             <el-option
               v-for="dict in dict.type.sys_yes_no"
@@ -547,7 +563,7 @@
           <el-input
             v-model="form.hisXmmc"
             placeholder="his椤圭洰鍚嶇О"
-            style="width: 200px"
+            style="width: 260px"
           ></el-input>
         </el-form-item>
         <el-form-item label="his椤圭洰鍚嶇О" prop="hisXmmc" v-if="key == 'N'">
@@ -561,7 +577,7 @@
           <el-input
             v-model="form.hisXmbm"
             placeholder="璇疯緭鍏is缂栫爜"
-            style="width: 260px"
+            style="width: 200px"
           />
         </el-form-item>
         <el-form-item label="his鍗曚环" prop="hisdj">
@@ -582,14 +598,14 @@
           <el-input
             v-model="form.lisXmmc"
             placeholder="璇疯緭鍏IS椤圭洰"
-            style="width: 200px"
+            style="width: 260px"
           ></el-input>
         </el-form-item>
         <el-form-item label="LIS缂栫爜" prop="lisXmbm">
           <el-input
             v-model="form.lisXmbm"
             placeholder="璇疯緭鍏is缂栫爜"
-            style="width: 260px"
+            style="width: 200px"
           />
         </el-form-item>
         <el-form-item label="澶囨敞" prop="proRemark">
@@ -603,11 +619,11 @@
           <el-input
             v-model="form.xh"
             placeholder="璇疯緭鍏ユ帓搴�"
-            style="width: 200px"
+            style="width: 260px"
           />
         </el-form-item>
         <el-form-item label="鏄惁鍙備笌寮傚父" prop="sfcyyc">
-          <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 260px">
+          <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 200px">
             <el-option v-for="dict in dictTypesy" :key="dict.value" :label="dict.label"
               :value="dict.value"></el-option>
           </el-select>
@@ -962,6 +978,7 @@
     "sys_dict_position",
     "tj_result_type",
     "sys_yes_no",
+    "yblx",
   ],
   components: { Treeselect, IconSelect, Packagese },
   data() {
@@ -1101,7 +1118,7 @@
   watch: {
     deptName(val) {
       this.debounceFilter(val);
-    },
+    },    
     treeId(newVal) {
       console.log(newVal,8989)
       if (newVal && newVal.length > 0) {
diff --git a/src/views/system/contract/index.vue b/src/views/system/contract/index.vue
index a12dde3..d60875e 100644
--- a/src/views/system/contract/index.vue
+++ b/src/views/system/contract/index.vue
@@ -8,7 +8,7 @@
       v-show="showSearch"
       label-width="68px"
     >
-      <el-form-item label="鍗曚綅鍚嶇О" prop="company">
+      <el-form-item label="鍗曚綅鍚嶇О" v-show="showSearch"  prop="company">
         <el-select
           :remote-method="getRemoteData"
           v-model="queryParams.company"
@@ -412,13 +412,132 @@
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
+    <!-- 娣诲姞鍗曚綅瀵硅瘽妗� -->
+    <el-dialog
+      :title="title"
+      :visible.sync="open1"
+      width="1000px"
+      append-to-body
+    >
+      <el-form
+        ref="form"
+        :model="form"
+        :rules="rules"
+        label-width="98px"
+        :inline="true"
+        @submit.native.prevent
+      >
+        <el-form-item label="鍗曚綅鍚嶇О" prop="cnName">
+          <el-input
+            v-model="form.cnName"
+            placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�"
+            style="width: 510px"
+          />
+        </el-form-item>
+        <el-form-item label="缁熶竴淇$敤浠g爜" prop="taxNumber">
+          <el-input
+            v-model="form.taxNumber"
+            placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜"
+            style="width: 510px"
+          />
+        </el-form-item>
+        <el-form-item label="娉曚汉浠h〃" prop="legalPerson">
+          <el-input v-model="form.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" />
+        </el-form-item>
+        <el-form-item label="鑱旂郴浜�" prop="contactPerson">
+          <el-input v-model="form.contactPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" />
+        </el-form-item>
+        <el-form-item label="鑱旂郴鐢佃瘽" prop="contactPhone">
+          <el-input v-model="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
+        </el-form-item>
+        <el-form-item label="浼犵湡" prop="faxNumber">
+          <el-input v-model="form.faxNumber" placeholder="璇疯緭鍏ヤ紶鐪�" />
+        </el-form-item>
+
+        <el-form-item label="娉ㄥ唽鍦板潃" prop="registerAddress">
+          <el-input
+            v-model="form.registerAddress"
+            placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�"
+            style="width: 830px"
+          />
+        </el-form-item>
+        <el-form-item label="閫氳鍦板潃" prop="mailingAddress">
+          <el-input
+            v-model="form.mailingAddress"
+            placeholder="璇疯緭鍏ラ�氳鍦板潃"
+            style="width: 830px"
+          />
+        </el-form-item>
+
+        <br />
+        <el-form-item label="寮�鎴烽摱琛�" prop="bankAccount">
+          <el-input
+            v-model="form.bankAccount"
+            placeholder="璇疯緭鍏ュ紑鎴烽摱琛�"
+            style="width: 510px"
+          />
+        </el-form-item>
+        <el-form-item label="閾惰璐︽埛" prop="countNum">
+          <el-input
+            v-model="form.countNum"
+            placeholder="璇疯緭鍏ラ摱琛岃处鎴�"
+            style="width: 510px"
+          />
+        </el-form-item>
+        <el-form-item label="鑱旂郴閭" prop="email">
+          <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" />
+        </el-form-item>
+        <el-form-item label="璐熻矗浜�" prop="principal">
+          <el-input v-model="form.principal" placeholder="璇疯緭鍏ヨ礋璐d汉" />
+        </el-form-item>
+        <el-form-item label="缃戝潃" prop="url">
+          <el-input v-model="form.url" placeholder="璇疯緭鍏ョ綉鍧�" />
+        </el-form-item>
+
+        <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName">
+          <el-select
+            filterable
+            v-model="form.areaName"
+            placeholder="璇烽�夋嫨琛屾斂鍖哄垝鍚嶇О"
+            clearable
+            style="width: 198px"
+          >
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input
+            v-model="form.remark"
+            type="textarea"
+            placeholder="璇疯緭鍏ュ唴瀹�"
+            :rows="2"
+            label-width="400px"
+            style="width: 830px"
+            resize="none"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm1">纭� 瀹�</el-button>
+
+        <el-button @click="cancel1">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
   
 
   <script>
-//   import { getList, addhtxxb, edithtxxb, delhtxxb } from "@/api/account/contract";
+import { getList, addhtxxb, edithtxxb, delhtxxb } from "@/api/account/contract";
 import {
   getZybCompList,
   queryCompany,
@@ -427,11 +546,9 @@
 } from "@/api/team/tuanti";
 
 import {
-  addDept,
   addComp,
+  updateComp,
   Deptlist,
-  getDwAndDwDept,
-  newExcelImport,
 } from "@/api/system/comp";
 
 export default {
@@ -440,6 +557,16 @@
   dicts: ["sys_type_contract"],
 
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback("");
+      } else if (value != undefined && value != "") {
+        return callback();
+      } else if (!patter.test(value)) {
+        return callback("");
+      }
+    };
     return {
       // 閬僵灞�
 
@@ -480,6 +607,7 @@
       // 鏄惁鏄剧ず寮瑰嚭灞�
 
       open: false,
+      open1: false,
 
       objs: {
         drugManufacturerId: "",
@@ -516,6 +644,14 @@
             trigger: "blur",
           },
         ],
+        cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
+        contactPerson: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        contactPhone: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        
       },
     };
   },
@@ -530,7 +666,7 @@
     getList() {
       this.loading = true;
 
-      /* getList(this.queryParams).then((response) => {
+      getList(this.queryParams).then((response) => {
         for (let i = 0; i < response.rows.length; i++) {
           response.rows[i].newID = i + 1;
         }
@@ -538,7 +674,7 @@
         this.dataList = response.rows;
 
         this.loading = false;
-      }); */
+      });
 
       // 鑾峰彇鍗曚綅淇℃伅闆嗗悎
       getCompany(this.queryParam).then((response) => {
@@ -572,6 +708,7 @@
       }
     },
 
+   
     idFn1(value) {
       if (value) {
         this.form.dictCompId = value;
@@ -587,7 +724,7 @@
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd1() {
       this.reset();
-      this.open = true;
+      this.open1 = true;
       this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢";
     },
 
@@ -597,6 +734,38 @@
       this.open = false;
       this.reset();
       //   this.getList();
+    },
+    cancel1(){
+      this.open1 = false;
+    },
+
+    /** 鎻愪氦鎸夐挳 */
+    submitForm1() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.drugManufacturerId != null) {
+            updateComp(this.form).then((response) => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open1 = false;
+              this.getList();
+            });
+          } else {
+            if (
+              this.form.cnName &&
+              this.form.contactPerson &&
+              this.form.contactPhone
+            ) {
+              addComp(this.form).then((response) => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.open1 = false;
+                this.getList();
+              });
+            } else {
+              this.$modal.msgError("璇峰~鍐欏繀浼犻」");
+            }
+          }
+        }
+      });
     },
 
     // 鎼滅储
@@ -717,7 +886,7 @@
 
       this.open = true;
 
-      this.title = "鍚堝悓淇℃伅璇︽儏";
+      this.title = "娣诲姞鍚堝悓淇℃伅璇︽儏";
     },
 
     /** 淇敼鎸夐挳鎿嶄綔 */
@@ -731,10 +900,10 @@
 
       this.title = "鍚堝悓淇℃伅璇︽儏";
 
-      this.form = {
+      /* this.form = {
         ...row,
         cnName: row.drugManufacturerId, // 纭繚杩欓噷鏄� ID
-      };
+      }; */
     },
 
     handleDelete(row) {

--
Gitblit v1.8.0