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/reservation/resercopy/index.vue |  397 ++++++++++++++++----------------------------------------
 1 files changed, 116 insertions(+), 281 deletions(-)

diff --git a/src/views/reservation/resercopy/index.vue b/src/views/reservation/resercopy/index.vue
index 205c8b4..f05c814 100644
--- a/src/views/reservation/resercopy/index.vue
+++ b/src/views/reservation/resercopy/index.vue
@@ -1,31 +1,11 @@
 <template>
   <div class="app-container">
-    <el-form
-      :model="objs"
-      :rules="rules"
-      ref="form"
-      size="small"
-      :inline="true"
-      label-width="100px"
-    >
+    <el-form :model="objs" :rules="rules" ref="form" size="small" :inline="true" label-width="100px">
       <el-form-item label="鍗曚綅鍚嶇О" prop="drugManufacturerId">
-        <el-select
-          :remote-method="getRemoteData"
-          v-model="objs.drugManufacturerId"
-          remote
-          filterable
-          style="width: 200px"
-          placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
-          clearable
-          @clear="getCompanyList"
-          @change="idFn"
-        >
-          <el-option
-            v-for="dict in CompanyList"
-            :key="dict.cnName"
-            :label="dict.cnName"
-            :value="dict.drugManufacturerId"
-          />
+        <el-select :remote-method="getRemoteData" v-model="objs.drugManufacturerId" remote filterable
+          style="width: 200px" placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" clearable @clear="getCompanyList" @change="idFn">
+          <el-option v-for="dict in CompanyList" :key="dict.cnName" :label="dict.cnName"
+            :value="dict.drugManufacturerId" />
         </el-select>
         <i class="el-icon-circle-plus-outline" @click="handleAdd"></i>
       </el-form-item>
@@ -52,187 +32,91 @@
         </el-select>
       </el-form-item> -->
       <el-form-item label="棰勭害鏃堕棿" prop="reservationTime">
-        <el-date-picker
-          clearable
-          v-model="objs.reservationTime"
-          type="date"
-          format="yyyy-MM-dd"
-          value-format="yyyy-MM-dd"
-          style="width: 130px"
-          placeholder="璇烽�夋嫨棰勭害鏃ユ湡"
-          @change="selectTime"
-          :picker-options="setDisabled"
-        >
+        <el-date-picker clearable v-model="objs.reservationTime" type="date" format="yyyy-MM-dd"
+          value-format="yyyy-MM-dd" style="width: 130px" placeholder="璇烽�夋嫨棰勭害鏃ユ湡" @change="selectTime"
+          :picker-options="setDisabled">
         </el-date-picker>
       </el-form-item>
       <el-form-item label="鏈夋晥澶╂暟" prop="yxts">
-        <el-input
-          style="width: 100px"
-          v-model="objs.yxts"
-          placeholder="鏈夋晥澶╂暟"
-        />澶�(鍙嚜瀹氫箟)
+        <el-input style="width: 100px" v-model="objs.yxts" placeholder="鏈夋晥澶╂暟" />澶�(鍙嚜瀹氫箟)
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8" style="margin: 5px 20px">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-refresh"
-          size="mini"
-          @click="resetQuery"
-          >閲嶇疆</el-button
-        >
+        <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-upload2"
-          size="mini"
-          @click="handleImport"
-          >瀵煎叆</el-button
-        >
+        <el-button type="primary" icon="el-icon-upload2" size="mini" @click="handleImport">瀵煎叆</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          icon="el-icon-upload2"
-          size="mini"
-          @click="importTemplate"
-          >涓嬭浇妯℃澘</el-button
-        >
+        <el-button type="primary" icon="el-icon-upload2" size="mini" @click="importTemplate">涓嬭浇妯℃澘</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          class="btn"
-          icon="el-icon-thumb"
-          :disabled="isdisabled"
-          size="mini"
-          @click="submitForm"
-        >
-          纭</el-button
-        >
+        <el-button type="primary" class="btn" icon="el-icon-thumb" :disabled="isdisabled" size="mini"
+          @click="submitForm">
+          纭</el-button>
       </el-col>
     </el-row>
     <div style="margin: 5px 20px; width: 94%">
-      <el-table
-        v-loading="loading"
-        :data="userList"
-        :summary-method="getSummaries"
-        show-summary
-        border
-      >
-        <el-table-column
-          label="鍗曚綅鍚嶇О"
-          align="center"
-          prop="company"
-          width="200"
-        >
+      <el-table v-loading="loading" :data="userList" :summary-method="getSummaries" show-summary border>
+        <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="company" width="200">
         </el-table-column>
-        <el-table-column
-          label="鍗曚綅閮ㄩ棬"
-          align="center"
-          prop="department"
-          width="200"
-        >
+        <el-table-column label="鍗曚綅閮ㄩ棬" align="center" prop="department" width="200">
         </el-table-column>
         <!-- <el-table-column label="宸ュ彿" align="center" prop="jobNo" width="80" /> -->
         <el-table-column label="濮撳悕" align="center" prop="name" width="75" />
         <el-table-column label="鎬у埆" align="center" prop="sex" width="75">
           <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.sys_user_sex"
-              :value="scope.row.sex"
-            />
+            <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
           </template>
         </el-table-column>
-        <el-table-column
-          label="韬唤璇佸彿"
-          align="center"
-          prop="idCard"
-          width="200"
-        />
+        <el-table-column label="韬唤璇佸彿" align="center" prop="idCard" width="200" />
         <el-table-column label="骞撮緞" align="center" prop="age" width="75" />
-        <el-table-column
-          label="鍑虹敓鏃ユ湡"
-          align="center"
-          prop="birthday"
-          width="100"
-        />
+        <el-table-column label="鍑虹敓鏃ユ湡" align="center" prop="birthday" width="100" />
         <!-- <el-table-column label="鑱屼綅" align="center" prop="position" /> -->
         <!-- <el-table-column label="閮ㄩ棬" align="center" prop="department" /> -->
         <!-- <el-table-column label="閮ㄩ棬缂栧彿" align="center" prop="departmentId" /> -->
-        <el-table-column
-          label="鑱旂郴鐢佃瘽"
-          align="center"
-          prop="phoe"
-          width="140"
-        />
+        <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="phoe" width="140" />
         <el-table-column label="鍦板潃" align="center" prop="address" />
-        <el-table-column
-          label="濠氬Щ鐘跺喌"
-          align="center"
-          prop="marriage"
-          key="marriage"
-        >
+        <el-table-column label="濠氬Щ鐘跺喌" align="center" prop="marriage" key="marriage">
           <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.dict_user_marry"
-              :value="scope.row.marriage"
-            />
+            <dict-tag :options="dict.type.dict_user_marry" :value="scope.row.marriage" />
           </template>
         </el-table-column>
         <el-table-column label="姘戞棌" align="center" prop="nation" key="nation">
           <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.dict_user_national"
-              :value="scope.row.nation"
-            />
+            <dict-tag :options="dict.type.dict_user_national" :value="scope.row.nation" />
           </template>
         </el-table-column>
         <!-- <el-table-column label="鑱旂郴閭" align="center" prop="email" /> -->
         <!-- <el-table-column label="浣撴绫诲埆" align="center" prop="tjCategory" /> -->
         <el-table-column label="鍒嗙粍" align="center" prop="groupingName" />
+        <el-table-column label="鎵�鍦ㄥ湴" align="center" prop="szd" />
         <el-table-column label="椤圭洰鏀惰垂" align="center" prop="ysPrice" />
       </el-table>
     </div>
 
     <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
-    <el-dialog
-      :title="upload.title"
-      :visible.sync="upload.open"
-      width="400px"
-      append-to-body
-    >
-      <el-upload
-        ref="upload"
-        :limit="1"
-        accept=".xlsx, .xls"
-        :headers="upload.headers"
-        :data="data"
-        :action="upload.url"
-        :disabled="upload.isUploading"
-        :on-progress="handleFileUploadProgress"
-        :on-success="handleFileSuccess"
-        :auto-upload="false"
-        drag
-      >
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload ref="upload" :limit="1" :key="uploadKey" accept=".xls" :headers="upload.headers" :data="data"
+        :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess" :auto-upload="false" drag>
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
         <div class="el-upload__tip text-center" slot="tip">
-          <div class="el-upload__tip" slot="tip">
+          <!-- <div class="el-upload__tip" slot="tip">
             <el-checkbox v-model="upload.updateSupport" />
             鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
-          </div>
-          <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
-          <el-link
+          </div> -->
+          <span>浠呭厑璁稿鍏ls鏍煎紡鏂囦欢銆�</span>
+          <!-- <el-link
             type="primary"
             :underline="false"
             style="font-size: 12px; vertical-align: baseline"
             @click="importTemplate"
             >涓嬭浇妯℃澘</el-link
-          >
+          > -->
         </div>
       </el-upload>
       <div slot="footer" class="dialog-footer">
@@ -243,19 +127,8 @@
 
     <!-- 娣诲姞鎴栦慨鏀逛綋妫�鍗曚綅淇℃伅缁存姢瀵硅瘽妗� -->
     <div class="dia">
-      <el-dialog
-        :title="title"
-        :visible.sync="open"
-        width="1000px"
-        append-to-body
-      >
-        <el-form
-          ref="form"
-          :model="form"
-          :rules="rules"
-          label-width="100px"
-          :inline="true"
-        >
+      <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
           <el-form-item label="鍗曚綅鍚嶇О" prop="cnName">
             <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" />
           </el-form-item>
@@ -263,10 +136,7 @@
             <el-input v-model="form.contactPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" />
           </el-form-item>
           <el-form-item label="鑱旂郴鐢佃瘽" prop="contactPhone">
-            <el-input
-              v-model="form.contactPhone"
-              placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
-            />
+            <el-input v-model="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
           </el-form-item>
           <el-form-item label="绋庡彿" prop="taxNumber">
             <el-input v-model="form.taxNumber" placeholder="璇疯緭鍏ョ◣鍙�" />
@@ -275,16 +145,10 @@
             <el-input v-model="form.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" />
           </el-form-item>
           <el-form-item label="娉ㄥ唽鍦板潃" prop="registerAddress">
-            <el-input
-              v-model="form.registerAddress"
-              placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�"
-            />
+            <el-input v-model="form.registerAddress" placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�" />
           </el-form-item>
           <el-form-item label="閫氳鍦板潃" prop="mailingAddress">
-            <el-input
-              v-model="form.mailingAddress"
-              placeholder="璇疯緭鍏ラ�氳鍦板潃"
-            />
+            <el-input v-model="form.mailingAddress" placeholder="璇疯緭鍏ラ�氳鍦板潃" />
           </el-form-item>
           <el-form-item label="寮�鎴烽摱琛�" prop="bankAccount">
             <el-input v-model="form.bankAccount" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" />
@@ -305,34 +169,18 @@
             <el-input v-model="form.faxNumber" placeholder="璇疯緭鍏ヤ紶鐪�" />
           </el-form-item>
           <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName">
-            <el-input
-              v-model="form.areaName"
-              placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�"
-            />
+            <el-input v-model="form.areaName" placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�" />
           </el-form-item>
           <el-form-item label="鎺掑簭" prop="orderNum">
             <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ帓搴�" />
           </el-form-item>
           <el-form-item label="鏈夋晥鏃堕棿" prop="validTime">
-            <el-date-picker
-              clearable
-              v-model="form.validTime"
-              type="date"
-              value-format="yyyy-MM-dd"
-              placeholder="璇烽�夋嫨鏈夋晥鏃堕棿"
-            >
-            </el-date-picker> </el-form-item
-          ><br />
+            <el-date-picker clearable v-model="form.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="form.remark"
-              type="textarea"
-              placeholder="璇疯緭鍏ュ唴瀹�"
-              :rows="2"
-              label-width="400px"
-              style="width: 830px"
-              resize="none"
-            ></el-input>
+            <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" :rows="2" label-width="400px"
+              style="width: 770px" resize="none"></el-input>
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer2">
@@ -344,47 +192,20 @@
 
     <!-- 娣诲姞鎴栦慨鏀归儴闂ㄤ俊鎭淮鎶ゅ璇濇 -->
     <div class="dia">
-      <el-dialog
-        :title="title"
-        :visible.sync="open1"
-        width="1000px"
-        append-to-body
-      >
-        <el-form
-          ref="form"
-          :model="form"
-          :rules="rules"
-          label-width="100px"
-          :inline="true"
-        >
+      <el-dialog :title="title" :visible.sync="open1" width="1000px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
           <el-form-item label="鍗曚綅鍚嶇О" prop="drugManufacturerId">
-            <el-select
-              :remote-method="getRemoteData"
-              v-model="objs.drugManufacturerId"
-              remote
-              filterable
-              style="width: 200px"
-              placeholder="璇烽�夋嫨鍗曚綅鍚嶇О"
-              clearable
-              @clear="getCompanyList"
-              @change="idFn1"
-            >
-              <el-option
-                v-for="dict in CompanyList"
-                :key="dict.cnName"
-                :label="dict.cnName"
-                :value="dict.drugManufacturerId"
-              />
+            <el-select :remote-method="getRemoteData" v-model="objs.drugManufacturerId" remote filterable
+              style="width: 200px" placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" clearable @clear="getCompanyList" @change="idFn1">
+              <el-option v-for="dict in CompanyList" :key="dict.cnName" :label="dict.cnName"
+                :value="dict.drugManufacturerId" />
             </el-select>
           </el-form-item>
           <el-form-item label="閮ㄩ棬鍚嶇О" prop="dwDeptName">
             <el-input v-model="form.dwDeptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" />
           </el-form-item>
           <el-form-item label="绛剧害閲戦" prop="signingPrice">
-            <el-input
-              v-model="form.signingPrice"
-              placeholder="璇疯緭鍏ョ绾﹂噾棰�"
-            />
+            <el-input v-model="form.signingPrice" placeholder="璇疯緭鍏ョ绾﹂噾棰�" />
           </el-form-item>
         </el-form>
         <div slot="footer" class="dialog-footer2">
@@ -437,7 +258,7 @@
       }
     };
     return {
-     
+
       leftList: "",
       isdisabled: true,
       setDisabled: {
@@ -456,14 +277,6 @@
       fileList: [], //涓婁紶鏂囦欢鍒楄〃
       tableHead: [], //琛ㄥご
       tableData: [], // 琛ㄦ暟鎹�
-      form: {
-        company: "",
-        payType: "",
-        name: "",
-        phoe: "",
-        signingPic: "",
-        discount: "",
-      },
       formLabelWidth: "120px",
       imageUrl: "",
       size: "",
@@ -482,7 +295,6 @@
         dwDeptId: "",
         dwName: "",
       },
-
       objs: {
         drugManufacturerId: "",
         reservationTime: "",
@@ -513,7 +325,7 @@
         // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
         updateSupport: 0,
         // 璁剧疆涓婁紶鐨勮姹傚ご閮�
-        headers: { Authorization: "Bearer " + getToken(),hospId: Cookies.get("hospId") },
+        headers: { Authorization: "Bearer " + getToken(), hospId: Cookies.get("hospId") },
         // 涓婁紶鐨勫湴鍧�
         url:
           process.env.VUE_APP_BASE_API +
@@ -544,7 +356,9 @@
         payType: undefined,
       },
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        dwlx: 0
+      },
       // 琛ㄥ崟鏍¢獙
 
       rules: {
@@ -635,6 +449,7 @@
         ],
       },
       ListObj: {},
+      uploadKey: 0,
       // 閬僵灞�
       loading: true,
       pacStatus: "鍚敤",
@@ -695,7 +510,7 @@
       });
     },
     idFn(value) {
-      console.log(value);
+      this.userList = []
       if (value) {
         this.data.dwId = value;
         Deptlist(value).then((response) => {
@@ -780,7 +595,7 @@
     },
     // 鎼滅储
     getRemoteData(query) {
-      
+
       if (query) {
         let compName = query;
         queryCompany(compName).then((response) => {
@@ -829,6 +644,7 @@
     submitFormS() {
       this.$refs["form"].validate((valid) => {
         if (valid) {
+           this.form.dwlx= 0
           addComp(this.form).then((response) => {
             this.$modal.msgSuccess("鏂板鎴愬姛");
             this.open = false;
@@ -871,6 +687,8 @@
     /** 瀵煎叆鎸夐挳鎿嶄綔 */
     handleImport() {
       if (this.objs.drugManufacturerId && this.objs.reservationTime) {
+        this.$refs.upload?.clearFiles();
+        this.uploadKey = Date.now(); // 鏀瑰彉 key 寮哄埗閲嶆柊娓叉煋缁勪欢
         this.upload.title = "鐢ㄦ埛瀵煎叆";
         this.upload.open = true;
       } else {
@@ -891,58 +709,77 @@
     },
     // 鏂囦欢涓婁紶鎴愬姛澶勭悊
     handleFileSuccess(response, file, fileList) {
-      console.log(response, 666666);
       if (response.code == 500) {
-        console.log(22222222222);
+        this.isdisabled = true;
         // Message.warning(response.msg);
         // this.$modal.msgError(response.msg);
         // this.$modal.msgError("浜哄憳"+ response.data.list + "淇℃伅閿欒");
-        const errorList = response.data.list.join(", ");
-        this.$confirm(`${errorList}`, "浠ヤ笅浜哄憳淇℃伅鏈夎锛岃鏍稿鍚庡鍏ワ細", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "error",
-          center: true,
-          dangerouslyUseHTMLString: true,
+        if (response.data) {
+          if (response.data.list) {
+            const errorList = `
+  <div style="max-height: 300px; overflow-y: auto;">
+    ${response.data.list.join(", ")}
+  </div>`
+
+            this.$confirm(errorList, `${response.msg}`, {
+              confirmButtonText: "纭畾",
+              cancelButtonText: "鍙栨秷",
+              type: "error",
+              center: true,
+              dangerouslyUseHTMLString: true,
+            });
+          }
+        } else {
+          this.$confirm(`${response.msg}`, {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "error",
+            center: true,
+            dangerouslyUseHTMLString: true,
+          });
+        }
+      } else {
+        this.isdisabled = false;
+        this.ListObj = response.data;
+        this.userList = response.data.list;
+
+        this.userList.forEach((item) => {
+          this.CompanyList.forEach((item1) => {
+            if (item1.drugManufacturerId == this.objs.drugManufacturerId) {
+              item.company = item1.cnName;
+            }
+          });
         });
       }
-      this.ListObj = response.data;
-      this.userList = response.data.list;
 
-      this.userList.forEach((item) => {
-        this.CompanyList.forEach((item1) => {
-          if (item1.drugManufacturerId == this.objs.drugManufacturerId) {
-            item.company = item1.cnName;
-          }
-        });
-      });
       this.upload.open = false;
       this.upload.isUploading = false;
       this.$refs.upload.clearFiles();
       this.leftList = response.msg;
-      console.log(response.code);
 
       if (this.leftList == "鎿嶄綔澶辫触") {
         this.isdisabled = true;
         this.$alert(
           "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-            response.msg +
-            "<div style='br;margin:10px'>" +
-            response.data[0] +
-            "韬唤璇佹垨鎵嬫満鍙风爜鏈夎" +
-            "</div>",
+          response.msg +
+          "<div style='br;margin:10px'>" +
+          response.data[0] +
+          "韬唤璇佹垨鎵嬫満鍙风爜鏈夎" +
+          "</div>",
           "瀵煎叆缁撴灉",
           { dangerouslyUseHTMLString: true }
         );
-      } else {
-        this.isdisabled = false;
-        this.$alert(
-          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-            response.msg,
-          { dangerouslyUseHTMLString: true }
-        );
-        this.rightList = response;
       }
+      // else {
+      //   console.log(11111)
+      //   this.isdisabled = false;
+      //   this.$alert(
+      //     "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+      //       response.msg,
+      //     { dangerouslyUseHTMLString: true }
+      //   );
+      //   this.rightList = response;
+      // }
       for (let i = 0; i < fileList.length; i++) {
         if (file.name != fileList[i].name) {
           this.fileList.push({
@@ -1067,6 +904,4 @@
   display: flex;
   justify-content: center;
 }
-</style>
-
-  
\ No newline at end of file
+</style>
\ No newline at end of file

--
Gitblit v1.8.0