From cee2eca9c3e40b48c40a8fe80f938a777f03d463 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期二, 10 六月 2025 17:57:11 +0800
Subject: [PATCH] 1

---
 src/views/hosp/customer/index.vue |  878 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 835 insertions(+), 43 deletions(-)

diff --git a/src/views/hosp/customer/index.vue b/src/views/hosp/customer/index.vue
index 2f7156b..7021dbb 100644
--- a/src/views/hosp/customer/index.vue
+++ b/src/views/hosp/customer/index.vue
@@ -1,22 +1,121 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <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"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="濮撳悕" prop="cusName">
-        <el-input v-model="queryParams.cusName" placeholder="璇疯緭鍏ュ鍚�" clearable style="width:120px" @keyup.enter.native="handleQuery"/>
+        <el-input
+          v-model="queryParams.cusName"
+          placeholder="璇疯緭鍏ュ鍚�"
+          clearable
+          style="width: 120px"
+          @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" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" style="width:140px"  clearable @keyup.enter.native="handleQuery"/>
+        <el-input
+          v-model="queryParams.cusPhone"
+          placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+          style="width: 140px"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
       </el-form-item>
       <!-- <el-form-item label="閭斂缂栫爜" prop="cusPostcode">
         <el-input v-model="queryParams.cusPostcode" placeholder="璇疯緭鍏ラ偖鏀跨紪鐮�" clearable @keyup.enter.native="handleQuery"/>
@@ -66,7 +165,7 @@
           v-model="queryParams.cusIntroduce"
           placeholder="璇疯緭鍏ヤ粙缁嶄汉"
           clearable
-          style="width:140px"
+          style="width: 140px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -83,7 +182,7 @@
           v-model="queryParams.cusNumber"
           placeholder="杈撳叆鏁存暟"
           clearable
-          style="width:100px"
+          style="width: 100px"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -92,7 +191,7 @@
           v-model="queryParams.cusIsvip"
           placeholder="閫夋嫨VIP"
           clearable
-          style="width:100px"
+          style="width: 100px"
         >
           <el-option
             v-for="dict in dict.type.sys_yes_no"
@@ -108,6 +207,7 @@
           icon="el-icon-search"
           size="mini"
           @click="handleQuery"
+          style="margin: 0 15px"
           >鎼滅储</el-button
         >
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
@@ -119,7 +219,7 @@
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
-        type="primary"
+          type="primary"
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
@@ -129,7 +229,7 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
-        type="primary"
+          type="primary"
           icon="el-icon-edit"
           size="mini"
           :disabled="single"
@@ -140,7 +240,7 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
-        type="primary"
+          type="primary"
           icon="el-icon-delete"
           size="mini"
           :disabled="multiple"
@@ -151,12 +251,33 @@
       </el-col>
       <el-col :span="1.5">
         <el-button
-        type="primary"
+          type="primary"
+          size="mini"
+          @click="handleBlacklist"
+          :disabled="single"
+          :loading="blackloading"
+          v-hasPermi="['hosp:order:export']"
+          >鍔犲叆榛戝悕鍗�</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
           v-hasPermi="['hosp:customer:export']"
           >瀵煎嚭</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          size="mini"
+          @click="handleReInfor"
+          :disabled="single"
+          :loading="blackloading"
+          >娉ㄥ唽his淇℃伅</el-button
         >
       </el-col>
       <right-toolbar
@@ -170,9 +291,13 @@
       v-loading="loading"
       :data="customerList"
       @selection-change="handleSelectionChange"
-      
     >
-      <el-table-column type="selection" width="40px" align="center" fixed="left" />
+      <el-table-column
+        type="selection"
+        width="40px"
+        align="center"
+        fixed="left"
+      />
       <el-table-column
         label="搴忓彿"
         align="center"
@@ -183,7 +308,7 @@
       />
       <el-table-column
         label="濮撳悕"
-        align="center"  
+        align="center"
         prop="cusName"
         width="90px"
         fixed="left"
@@ -221,7 +346,7 @@
         width="170px"
         :show-overflow-tooltip="true"
       />
-       <el-table-column
+      <el-table-column
         label="鑱旂郴鐢佃瘽"
         align="center"
         prop="cusPhone"
@@ -235,7 +360,7 @@
         width="180px"
         :show-overflow-tooltip="true"
       />
-     
+
       <el-table-column
         label="閭斂缂栫爜"
         align="center"
@@ -278,7 +403,29 @@
           />
         </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="浠嬬粛浜�"
         align="center"
@@ -308,6 +455,19 @@
         </template>
       </el-table-column>
       <el-table-column
+        label="榛戝悕鍗�"
+        align="center"
+        prop="isBlack"
+        width="76px"
+      >
+        <template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.sys_yes_no"
+            :value="scope.row.isBlack"
+          />
+        </template>
+      </el-table-column>
+      <el-table-column
         label="绱㈠紩鍗″彿"
         align="center"
         prop="indexCard"
@@ -317,7 +477,7 @@
         fixed="right"
         label="鎿嶄綔"
         align="center"
-        width="70px"
+        width="90px"
         class-name="small-padding fixed-width"
       >
         <template slot-scope="scope">
@@ -328,6 +488,14 @@
             @click="handleUpdate(scope.row)"
             v-hasPermi="['hosp:customer:edit']"
             title="淇敼"
+          ></el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-share"
+            @click="handleDetails(scope.row)"
+            v-hasPermi="['hosp:customer:edit']"
+            title="璇︽儏"
           ></el-button>
           <el-button
             size="mini"
@@ -391,12 +559,14 @@
         <el-form-item label="韬唤璇佸彿" prop="cusIdcard">
           <el-input
             v-model="form.cusIdcard"
+            @input="inputChange"
             placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�"
             style="width: 200px"
           />
         </el-form-item>
         <el-form-item label="鍑虹敓鏃ユ湡" prop="cusBrithday">
           <el-date-picker
+            disabled
             clearable
             v-model="form.cusBrithday"
             type="date"
@@ -406,10 +576,11 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
+        <el-form-item label="骞撮緞" prop="age">
           <el-input
-            v-model="form.cusAddr"
-            placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃"
+            disabled
+            v-model="form.age"
+            placeholder="璇疯緭鍏ュ勾榫�"
             style="width: 200px"
           />
         </el-form-item>
@@ -465,6 +636,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
@@ -487,26 +679,352 @@
             ></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鐜颁綇鍧�" prop="cusAddr">
+          <el-input
+            v-model="form.cusAddr"
+            placeholder="璇疯緭鍏ョ幇灞呬綇鍦板潃"
+            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>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
+    <!-- 鐐瑰嚮鍙宠竟寮瑰嚭灞� -->
+    <el-drawer
+      :visible.sync="drawer"
+      :with-header="false"
+      size="70%"
+      :before-close="handleClose"
+    >
+      <div style="text-align: center; margin: 10px 0">
+        <span>鍋ュ悍璁板綍</span>
+      </div>
+      <template>
+        <el-tabs
+          v-model="activeName"
+          type="border-card"
+          @tab-click="handleTabClick"
+          style="margin-left: 10px"
+        >
+          <el-tab-pane label="浣撴璁板綍" name="first">
+            <el-row>
+              <el-col :span="14">
+                <el-table
+                  ref="selectChargeRuleRef"
+                  v-loading="loading"
+                  :data="detailsList"
+                  border
+                  height="680px"
+                  style="width: 96%; margin: 10px 10px"
+                  @selection-change="selectChargeRule"
+                >
+                  <el-table-column
+                    type="selection"
+                    width="40px"
+                    align="center"
+                    fixed="left"
+                  />
+                  <!-- <el-table-column prop="tjNum" label="浣撴鍙�" width="155" align="center"></el-table-column> -->
+                  <el-table-column
+                    prop="tjTime"
+                    label="浣撴鏃堕棿"
+                    width="155"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="tjProName"
+                    label="浣撴椤圭洰"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="userName"
+                    label="鎬绘鍖诲笀"
+                    width="75"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="paidIn"
+                    label="浣撴璐圭敤"
+                    width="75"
+                    align="center"
+                  ></el-table-column>
+                </el-table>
+              </el-col>
+              <el-col :span="10">
+                <div>
+                  <iframe
+                    id="printIframe"
+                    :src="url"
+                    frameborder="0"
+                    style="width: 100%; height: 680px"
+                  ></iframe>
+                </div>
+              </el-col>
+            </el-row>
+          </el-tab-pane>
+          <el-tab-pane label="闂ㄨ瘖璁板綍" name="second">
+            <el-row>
+              <el-col :span="14">
+                <el-table
+                  ref="selectChargeRuleRef"
+                  v-loading="loading"
+                  :data="detailsList"
+                  border
+                  height="680px"
+                  style="width: 96%; margin: 10px 10px"
+                  @selection-change="selectChargeRule"
+                >
+                  <el-table-column
+                    type="selection"
+                    width="40px"
+                    align="center"
+                  />
+                  <el-table-column
+                    prop="project.proScope"
+                    label="搴忓彿"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="灏辫瘖鏃堕棿"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="灏辫瘖绉戝"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="鎺ヨ瘖鍖诲笀"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="灏辫瘖鎬昏垂鐢�"
+                    align="center"
+                  ></el-table-column>
+                </el-table>
+              </el-col>
+              <el-col :span="10">
+                <quill-editor
+                  v-model="form.content"
+                  :options="editorOption"
+                  style="height: 680px; width: 96%"
+                >
+                </quill-editor>
+              </el-col>
+            </el-row>
+          </el-tab-pane>
+          <el-tab-pane label="浣忛櫌璁板綍" name="third">
+            <el-row>
+              <el-col :span="14">
+                <el-table
+                  ref="selectChargeRuleRef"
+                  v-loading="loading"
+                  :data="detailsList"
+                  border
+                  height="680px"
+                  style="width: 96%; margin: 10px 10px"
+                  @selection-change="selectChargeRule"
+                >
+                  <el-table-column
+                    type="selection"
+                    width="40px"
+                    align="center"
+                  />
+                  <el-table-column
+                    prop="project.proScope"
+                    label="搴忓彿"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="鍏ラ櫌鏃堕棿"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="鍑洪櫌鏃堕棿"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="浣忛櫌澶╂暟"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="浣忛櫌绉戝"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="涓绘不鍖诲笀"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="涓昏璇婃柇"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="鏄惁鎵嬫湳"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="绂婚櫌鏂瑰紡"
+                    align="center"
+                  ></el-table-column>
+                  <el-table-column
+                    prop="project.proScope"
+                    label="浣忛櫌鎬昏垂鐢�"
+                    align="center"
+                  ></el-table-column>
+                </el-table>
+              </el-col>
+              <el-col :span="10">
+                <quill-editor
+                  v-model="form.content"
+                  :options="editorOption"
+                  style="height: 680px; width: 96%"
+                >
+                </quill-editor>
+              </el-col>
+            </el-row>
+          </el-tab-pane>
+          <el-tab-pane label="鎵嬫湳璁板綍" name="fourth">
+            <el-table
+              v-loading="loading"
+              :data="detailsList"
+              border
+              height="460px"
+              style="width: 96%; margin: 10px 10px"
+            >
+              <el-table-column
+                prop="project.proScope"
+                label="搴忓彿"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="寮�濮嬫椂闂�"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="缁撴潫鏃堕棿"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="鎵嬫湳鍚嶇О"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="鎵嬫湳缂栫爜"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="鎵嬫湳绾у埆"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="鏈��"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="涓�鍔�"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="浜屽姪"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="楹婚唹鏂瑰紡"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="楹婚唹寮�濮嬫椂闂�"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="楹婚唹缁撴潫鏃堕棿"
+                align="center"
+              ></el-table-column>
+              <el-table-column
+                prop="project.proScope"
+                label="楹婚唹鍖诲笀"
+                align="center"
+              ></el-table-column>
+            </el-table>
+          </el-tab-pane>
+        </el-tabs>
+      </template>
+    </el-drawer>
   </div>
 </template>
 
 <script>
+import { quillEditor } from "vue-quill-editor";
+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,
   delCustomer,
   addCustomer,
   updateCustomer,
+  getHistryTjOrderByCusIdCard,getUserinfo
 } from "@/api/hosp/customer";
-
+import { getPdf, addCustomerBlack } from "@/api/hosp/order";
+import {
+  addComp,
+} from "@/api/system/comp";
 export default {
   name: "Customer",
+  components: { quillEditor },
   dicts: [
     "dict_user_national",
     "dict_user_marry",
@@ -514,15 +1032,54 @@
     "sys_user_sex",
   ],
   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 {
+      editorOption: {
+        placeholder: "璇峰湪杩欓噷杈撳叆",
+        modules: {
+          toolbar: [
+            ["bold", "italic", "underline", "strike"], //鍔犵矖锛屾枩浣擄紝涓嬪垝绾匡紝鍒犻櫎绾�
+            ["blockquote", "code-block"], //寮曠敤锛屼唬鐮佸潡
+            [{ header: 1 }, { header: 2 }], // 鏍囬锛岄敭鍊煎鐨勫舰寮忥紱1銆�2琛ㄧず瀛椾綋澶у皬
+            [{ list: "ordered" }, { list: "bullet" }], //鍒楄〃
+            [{ script: "sub" }, { script: "super" }], // 涓婁笅鏍�
+            [{ indent: "-1" }, { indent: "+1" }], // 缂╄繘
+            [{ direction: "rtl" }], // 鏂囨湰鏂瑰悜
+            [{ size: ["small", false, "large", "huge"] }], // 瀛椾綋澶у皬
+            [{ header: [1, 2, 3, 4, 5, 6, false] }], //鍑犵骇鏍囬
+            [{ color: [] }, { background: [] }], // 瀛椾綋棰滆壊锛屽瓧浣撹儗鏅鑹�
+            [{ font: [] }], //瀛椾綋
+            [{ align: [] }], //瀵归綈鏂瑰紡
+            ["clean"], //娓呴櫎瀛椾綋鏍峰紡
+            ["image", "video"], //涓婁紶鍥剧墖銆佷笂浼犺棰�
+          ],
+        },
+      },
+
       // 閬僵灞�
       loading: true,
+      blackloading:false,
+      isAdding:false,
+      
       // 閫変腑鏁扮粍
       ids: [],
       // 闈炲崟涓鐢�
       single: true,
+      drawer: false,
+      detailsList: [],
+      activeName: "first",
       // 闈炲涓鐢�
       multiple: true,
+      url: "",
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
       // 鎬绘潯鏁�
@@ -549,45 +1106,148 @@
         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: [{ required: true, message: "", trigger: "blur" }],
+        cusName: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
         cusSex: [
-          { required: true, message: "", trigger: "change" },
+          { required: true, validator: checkPhoneNum, trigger: "change" },
         ],
         cusBrithday: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        cusAddr: [
-          { required: true, message: "", trigger: "blur" },
-        ],
+        // cusAddr: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
         cusPhone: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         cusPassword: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         // cusNational: [
         //   { required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "change" }
         // ],
         cusIdcard: [
-          { required: true, message: "", trigger: "blur" },
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         deleted: [
-          { required: true, message: "", trigger: "blur" },
+          { 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;
@@ -606,11 +1266,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,
@@ -625,6 +1303,9 @@
         cusMarryStatus: null,
         cusIdcard: null,
         cusIntroduce: null,
+        wenHua: null,
+        career:null,
+        gl:null,
         cusNumber: null,
         cusIsvip: null,
         createBy: null,
@@ -667,9 +1348,113 @@
         this.title = "瀹㈡埛淇℃伅缁存姢";
       });
     },
+
+    // 璇︽儏
+    handleDetails(row) {
+      this.drawer = true;
+      let cusId = row.cusId;
+      getHistryTjOrderByCusIdCard(cusId).then((res) => {
+        this.detailsList = res.data;
+      });
+    },
+
+    handleBlacklist() {
+      this.blackloading = true;
+      let data = {
+        cusId: this.ids[0],
+      };
+      addCustomerBlack(data).then((res) => {
+        this.$modal.msgSuccess("宸插姞鍏ラ粦鍚嶅崟");
+        this.blackloading = false;
+        this.getList();
+      });
+    },
+
+    handleReInfor() {
+      let data = {
+        cusId: this.ids[0],
+      };
+      getUserinfo(data).then((res) => {
+        this.$modal.msgSuccess("娉ㄥ唽鎴愬姛");
+        this.getList();
+      });
+    },
+
+    inputChange() {
+      const reg =
+        /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+      if (reg.test(this.form.cusIdcard)) {
+        var org_birthday = this.form.cusIdcard.substring(6, 14);
+        var org_gender = this.form.cusIdcard.substring(16, 17);
+        var sex = org_gender % 2 == 1 ? 0 : 1;
+        var birthday =
+          org_birthday.substring(0, 4) +
+          "-" +
+          org_birthday.substring(4, 6) +
+          "-" +
+          org_birthday.substring(6, 8);
+        var birthdays = new Date(birthday.replace(/-/g, "-"));
+        let d = new Date();
+        let age =
+          d.getFullYear() -
+          birthdays.getFullYear() -
+          (d.getMonth() < birthdays.getMonth() ||
+          (d.getMonth() == birthdays.getMonth() &&
+            d.getDate() < birthdays.getDate())
+            ? 1
+            : 0);
+        this.form.cusSex = sex;
+        this.form.cusBrithday = birthday;
+        this.form.age = age;
+      }
+    },
+
+    selectChargeRule(val) {
+      if (val.length > 1) {
+        this.$refs.selectChargeRuleRef.clearSelection();
+        this.$refs.selectChargeRuleRef.toggleRowSelection(val[val.length - 1]);
+      }
+      let selectedRule = val[val.length - 1];
+      if (this.activeName == "first") {
+        const flag = true;
+        let tjNumber = selectedRule.tjNum;
+        // let tjNumber = "10001240305100029"
+        getPdf(tjNumber, flag).then((response) => {
+          if (response.size === 0) {
+            const loading = this.$loading({
+              lock: true,
+              text: "Loading",
+              spinner: "el-icon-loading",
+              background: "rgba(0, 0, 0, 0.7)",
+            });
+            setTimeout(() => {
+              loading.close();
+            }, 3000);
+            // this.$message.msgSuccess("鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�");
+            this.$message({
+              message: "鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�",
+              type: "warning",
+            });
+          } else {
+            this.dialogVisible = true;
+            this.url = window.webkitURL.createObjectURL(response); //灏嗗悗绔繑鍥炵殑blob鏂囦欢璇诲彇鍑簎rl
+          }
+        });
+      } else if (this.activeName == "second") {
+      } else if (this.activeName == "third") {
+      }
+    },
+
+    handleClose() {
+      this.$tab.refreshPage();
+    },
+    handleTabClick() {
+      console.log(this.activeName);
+    },
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
       this.$refs["form"].validate((valid) => {
+        this.form.idType = 1
         if (valid) {
           if (this.form.cusId != null) {
             updateCustomer(this.form).then((response) => {
@@ -720,6 +1505,7 @@
   display: flex;
   justify-content: center;
 }
+
 .pag1 {
   width: 30%;
 }
@@ -728,4 +1514,10 @@
   display: flex;
   justify-content: center;
 }
+.dialog-footer2 {
+  width: 960px;
+  height: 36px;
+  display: flex;
+  justify-content: center;
+}
 </style>

--
Gitblit v1.8.0