From bad2bc143be3f8ddb93a1c9f984127b3ccf43e8f Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期一, 31 三月 2025 17:47:14 +0800
Subject: [PATCH] 11

---
 src/views/hosp/customer/index.vue |  319 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 302 insertions(+), 17 deletions(-)

diff --git a/src/views/hosp/customer/index.vue b/src/views/hosp/customer/index.vue
index f7ae839..672983f 100644
--- a/src/views/hosp/customer/index.vue
+++ b/src/views/hosp/customer/index.vue
@@ -1,5 +1,96 @@
 <template>
   <div class="app-container">
+    <el-dialog
+      :title="title"
+      :visible.sync="open1"
+      width="1000px"
+      append-to-body
+    >
+      <el-form
+        ref="form1"
+        :model="form1"
+        :rules="rules1"
+        label-width="100px"
+        :inline="true"
+      >
+        <el-form-item label="鍗曚綅鍚嶇О" prop="cnName">
+          <el-input v-model="form1.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" />
+        </el-form-item>
+        <el-form-item label="鑱旂郴浜�" prop="contactPerson">
+          <el-input v-model="form1.contactPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" />
+        </el-form-item>
+        <el-form-item label="鑱旂郴鐢佃瘽" prop="contactPhone">
+          <el-input v-model="form1.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
+        </el-form-item>
+        <el-form-item label="绋庡彿" prop="taxNumber">
+          <el-input v-model="form1.taxNumber" placeholder="璇疯緭鍏ョ◣鍙�" />
+        </el-form-item>
+        <el-form-item label="娉曚汉" prop="legalPerson">
+          <el-input v-model="form1.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" />
+        </el-form-item>
+        <el-form-item label="娉ㄥ唽鍦板潃" prop="registerAddress">
+          <el-input
+            v-model="form1.registerAddress"
+            placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�"
+          />
+        </el-form-item>
+        <el-form-item label="閫氳鍦板潃" prop="mailingAddress">
+          <el-input
+            v-model="form1.mailingAddress"
+            placeholder="璇疯緭鍏ラ�氳鍦板潃"
+          />
+        </el-form-item>
+        <el-form-item label="寮�鎴烽摱琛�" prop="bankAccount">
+          <el-input v-model="form1.bankAccount" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" />
+        </el-form-item>
+        <el-form-item label="閾惰璐︽埛" prop="countNum">
+          <el-input v-model="form1.countNum" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" />
+        </el-form-item>
+        <el-form-item label="閭" prop="email">
+          <el-input v-model="form1.email" placeholder="璇疯緭鍏ラ偖绠�" />
+        </el-form-item>
+        <el-form-item label="璐熻矗浜�" prop="principal">
+          <el-input v-model="form1.principal" placeholder="璇疯緭鍏ヨ礋璐d汉" />
+        </el-form-item>
+        <el-form-item label="缃戝潃" prop="url">
+          <el-input v-model="form1.url" placeholder="璇疯緭鍏ョ綉鍧�" />
+        </el-form-item>
+        <el-form-item label="浼犵湡" prop="faxNumber">
+          <el-input v-model="form1.faxNumber" placeholder="璇疯緭鍏ヤ紶鐪�" />
+        </el-form-item>
+        <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName">
+          <el-input v-model="form1.areaName" placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�" />
+        </el-form-item>
+        <el-form-item label="鎺掑簭" prop="orderNum">
+          <el-input v-model="form1.orderNum" placeholder="璇疯緭鍏ユ帓搴�" />
+        </el-form-item>
+        <el-form-item label="鏈夋晥鏃堕棿" prop="validTime">
+          <el-date-picker
+            clearable
+            v-model="form1.validTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="璇烽�夋嫨鏈夋晥鏃堕棿"
+          >
+          </el-date-picker> </el-form-item
+        ><br />
+        <el-form-item label="澶囨敞" prop="remark">
+          <el-input
+            v-model="form1.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-footer2">
+        <el-button type="primary" @click="submitFormS">纭� 瀹�</el-button>
+        <el-button @click="cancel1">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
     <el-form
       :model="queryParams"
       ref="queryForm"
@@ -17,17 +108,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="鎬у埆" prop="cusSex">
-        <el-select v-model="queryParams.cusSex" placeholder="璇烽�夋嫨鎬у埆" clearable style="width:120px">
-          <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"/>
-        </el-select>
-      </el-form-item> -->
-      <!-- <el-form-item label="鍑虹敓鏃ユ湡" prop="cusBrithday">
-        <el-date-picker clearable v-model="queryParams.cusBrithday" type="date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨鍑虹敓鏃ユ湡"></el-date-picker>
-      </el-form-item> -->
-      <!-- <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
-        <el-input v-model="queryParams.cusAddr" placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item> -->
       <el-form-item label="鑱旂郴鐢佃瘽" prop="cusPhone">
         <el-input
           v-model="queryParams.cusPhone"
@@ -175,6 +255,7 @@
           size="mini"
           @click="handleBlacklist"
           :disabled="single"
+          :loading="blackloading"
           v-hasPermi="['hosp:order:export']"
           >鍔犲叆榛戝悕鍗�</el-button
         >
@@ -312,6 +393,28 @@
           />
         </template>
       </el-table-column>
+
+      <el-table-column
+        label="鑱屼笟"
+        align="center"
+        prop="career"
+        width="90px"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        label="宸ラ緞"
+        align="center"
+        prop="gl"
+        width="90px"
+        :show-overflow-tooltip="true"
+      />
+      <el-table-column
+        label="鏂囧寲绋嬪害"
+        align="center"
+        prop="wenHua"
+        width="90px"
+        :show-overflow-tooltip="true"
+      />
 
       <el-table-column
         label="浠嬬粛浜�"
@@ -523,6 +626,27 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鑱屼笟" prop="career">
+          <el-input
+            v-model="form.career"
+            placeholder="璇疯緭鍏ヨ亴涓�"
+            style="width: 200px"
+          />
+        </el-form-item>
+        <el-form-item label="宸ラ緞" prop="gl">
+          <el-input
+            v-model="form.gl"
+            placeholder="璇疯緭鍏ュ伐榫�"
+            style="width: 200px"
+          />
+        </el-form-item>
+        <el-form-item label="鏂囧寲绋嬪害" prop="wenHua">
+          <el-input
+            v-model="form.wenHua"
+            placeholder="璇疯緭鍏ユ枃鍖栫▼搴�"
+            style="width: 200px"
+          />
+        </el-form-item>
 
         <el-form-item label="浠嬬粛浜�" prop="cusIntroduce">
           <el-input
@@ -552,6 +676,27 @@
             style="width: 200px"
           />
         </el-form-item>
+        <el-form-item label="鍗曚綅鍚嶇О" prop="compName">
+              <el-select
+                v-model="form.compName"
+                remote
+                default-first-option
+                allow-create
+                filterable
+                style="width: 200px"
+                placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
+                clearable
+                @change="idFn1"
+              >
+                <el-option
+                  v-for="dict in CompanyList"
+                  :key="dict.cnName"
+                  :label="dict.cnName"
+                  :value="dict.cnName"
+                />
+              </el-select>
+              <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i>
+            </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
@@ -850,7 +995,11 @@
 import "quill/dist/quill.core.css";
 import "quill/dist/quill.snow.css";
 import "quill/dist/quill.bubble.css";
-
+import {
+  getCompany,
+  queryCompany,
+  getconfigKey,
+} from "@/api/team/tuanti";
 import {
   listCustomer,
   getCustomer,
@@ -860,7 +1009,9 @@
   getHistryTjOrderByCusIdCard,
 } from "@/api/hosp/customer";
 import { getPdf, addCustomerBlack } from "@/api/hosp/order";
-
+import {
+  addComp,
+} from "@/api/system/comp";
 export default {
   name: "Customer",
   components: { quillEditor },
@@ -906,6 +1057,9 @@
 
       // 閬僵灞�
       loading: true,
+      blackloading:false,
+      isAdding:false,
+      
       // 閫変腑鏁扮粍
       ids: [],
       // 闈炲崟涓鐢�
@@ -942,11 +1096,28 @@
         cusMarryStatus: null,
         cusIdcard: null,
         cusIntroduce: null,
+        career:null,
+        gl:null,
+        wenHua: null,
         cusNumber: null,
         cusIsvip: null,
       },
+
+      deptList: [],
+      CompanyList: [],
+      open1: false,
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        idType: 1
+      },
+      form1: {
+        company: "",
+        payType: "",
+        name: "",
+        phoe: "",
+        signingPic: "",
+        discount: "",
+      },
       // 琛ㄥ崟鏍¢獙
       rules: {
         cusName: [
@@ -958,9 +1129,9 @@
         cusBrithday: [
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        cusAddr: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
-        ],
+        // cusAddr: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
         cusPhone: [
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
@@ -977,12 +1148,96 @@
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
       },
+      rules1: {
+      cnName: [
+        { required: true,  trigger: 'blur' },
+      ],
+      contactPerson: [
+        { required: true, trigger: 'blur' },
+      ],
+      contactPhone: [
+        { 
+          required: true, 
+          trigger: 'blur' 
+        },
+        { 
+          pattern: /^1[3-9]\d{9}$/, 
+          trigger: 'blur'
+        }
+      ],
+    }
     };
   },
   created() {
+    this.getCompanyList();
     this.getList();
   },
   methods: {
+    // 淇濆瓨閮ㄩ棬
+    /** 鎻愪氦鎸夐挳 */
+    submitFormS() {
+      this.$refs["form1"].validate((valid) => {
+        if (valid) {
+          
+          addComp(this.form1).then((response) => {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.open1 = false;
+            this.getCompanyList();
+          });
+        }
+      });
+    },
+    idFn1(value) {
+      if (value) {
+        // 淇濆瓨淇敼鍓嶇殑 dictCompId
+        const originalCompId = this.form.dictCompId;
+
+        // 鏇存柊鍏徃鍚嶇О
+        this.form.compName = value;
+
+        // 閬嶅巻鍏徃鍒楄〃锛屾牴鎹叕鍙稿悕绉拌缃搴旂殑 drugManufacturerId
+        this.CompanyList.forEach((item) => {
+          if (item.cnName == this.form.compName) {
+            this.form.dictCompId = item.drugManufacturerId;
+          }
+        });
+
+        // 濡傛灉 dictCompId 娌℃湁鍙樺寲锛岄噸缃负绌�
+        if (this.form.dictCompId === originalCompId) {
+          this.form.dictCompId = '';
+        }
+      }
+    },
+    // 鎼滅储
+    getRemoteData(query) {
+      if (query) {
+        let compName = query;
+        queryCompany(compName).then((response) => {
+          this.CompanyList = response.data;
+          this.CompanyList.forEach((item) => {
+            this.objs = item;
+          });
+        });
+      }
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd1() {
+      this.reset1();
+      this.open1 = true;
+      this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢";
+    },
+    // 鑾峰彇鍗曚綅淇℃伅闆嗗悎
+    getCompanyList() {
+      this.loading = true;
+      getconfigKey("team_reservation_default_day").then((res) => {
+        this.queryParams.yxts = res.msg;
+      });
+      getCompany(this.queryParam).then((response) => {
+        this.CompanyList = response.data;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
     /** 鏌ヨ淇℃伅鍒楄〃 */
     getList() {
       this.loading = true;
@@ -1001,11 +1256,29 @@
     // 鍙栨秷鎸夐挳
     cancel() {
       this.open = false;
+      this.open1 = false;
       this.reset();
     },
+    cancel1() {
+
+      this.open1 = false;
+      this.reset1();
+    },
     // 琛ㄥ崟閲嶇疆
+    reset1() {
+      this.form1 = {
+        company: "",
+        payType: "",
+        name: "",
+        phoe: "",
+        signingPic: "",
+        discount: "",
+      }
+    },
     reset() {
+      
       this.form = {
+        dictCompId:  null,
         cusId: null,
         cusName: null,
         cusSex: null,
@@ -1020,6 +1293,9 @@
         cusMarryStatus: null,
         cusIdcard: null,
         cusIntroduce: null,
+        wenHua: null,
+        career:null,
+        gl:null,
         cusNumber: null,
         cusIsvip: null,
         createBy: null,
@@ -1073,11 +1349,13 @@
     },
 
     handleBlacklist() {
+      this.blackloading = true;
       let data = {
         cusId: this.ids[0],
       };
       addCustomerBlack(data).then((res) => {
         this.$modal.msgSuccess("宸插姞鍏ラ粦鍚嶅崟");
+        this.blackloading = false;
         this.getList();
       });
     },
@@ -1156,6 +1434,7 @@
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
       this.$refs["form"].validate((valid) => {
+        this.form.idType = 1
         if (valid) {
           if (this.form.cusId != null) {
             updateCustomer(this.form).then((response) => {
@@ -1215,4 +1494,10 @@
   display: flex;
   justify-content: center;
 }
+.dialog-footer2 {
+  width: 960px;
+  height: 36px;
+  display: flex;
+  justify-content: center;
+}
 </style>

--
Gitblit v1.8.0