qx
qx
2025-04-17 6d2f5a43b9bf2922c137e18e3fb4ba91fcfce459
src/views/reservation/resercopy/index.vue
@@ -1,77 +1,224 @@
<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>
      <el-form-item label="部门" prop="dwDeptName">
        <el-select v-model="objs.dwDeptName" placeholder="请选择部门" style="width: 200px" clearable @change="idBm">
          <el-option v-for="dict in deptList" :key="dict.id" :label="dict.dwDeptName" :value="dict.id" />
      <!-- <el-form-item label="部门" prop="dwDeptName">
        <el-select
          v-model="objs.dwDeptName"
          placeholder="请选择部门"
          style="width: 200px"
          clearable
          @change="idBm"
        >
          <el-option
            v-for="dict in deptList"
            :key="dict.id"
            :label="dict.dwDeptName"
            :value="dict.id"
          />
        </el-select>
      </el-form-item>
        <i class="el-icon-circle-plus-outline" @click="handleAddbumen"></i>
      </el-form-item> -->
      <!-- <el-form-item label="分组" prop="payType">
        <el-select v-model="objs.payType" placeholder="请选择结算方式" style="width: 200px" clearable>
          <el-option v-for="dict in groupingList" :key="dict.id" :label="dict.groupingName" :value="dict.id" />
        </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: 220px" 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-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8" style="margin: 5px 20px;">
    <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"
          v-hasPermi="['system:user:import']">导入</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" class="btn" icon="el-icon-thumb" :disabled="isdisabled" size="mini" @click="submitForm">
          确认</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-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-column label="工号" align="center" prop="jobNo" width="80" />
    <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-column>
        <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="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="120" />
        <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="address" />
        <el-table-column label="婚姻状况" align="center" prop="marriage" />
        <el-table-column label="民族" align="center" prop="nation" />
        <el-table-column label="联系邮箱" align="center" prop="email" />
        <el-table-column label="体检类别" align="center" prop="tjCategory" />
        <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"
            />
          </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"
            />
          </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="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">
@@ -79,22 +226,37 @@
            <el-checkbox v-model="upload.updateSupport" />
            是否更新已经存在的用户数据
          </div>
          <span>仅允许导入xls、xlsx格式文件。</span>
          <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
            @click="importTemplate">下载模板</el-link>
          <span>仅允许导入xls格式文件。</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">
        <el-button type="primary" @click="submitFileForm">确 定</el-button>
        <el-button type="primary" @click="submitFileForm">保存信息</el-button>
        <el-button @click="upload.open = false">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 添加或修改体检单位信息维护对话框 -->
    <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>
@@ -102,7 +264,10 @@
            <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="请输入税号" />
@@ -111,10 +276,16 @@
            <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="请输入开户银行" />
@@ -135,19 +306,34 @@
            <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: 830px"
              resize="none"
            ></el-input>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer2">
@@ -156,14 +342,77 @@
        </div>
      </el-dialog>
    </div>
    <!-- 添加或修改部门信息维护对话框 -->
    <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-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>
          </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-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer2">
          <el-button type="primary" @click="handleAddDept">确 定</el-button>
          <el-button @click="cancel">取 消</el-button>
        </div>
      </el-dialog>
    </div>
  </div>
</template>
<script>
import { addComp, Deptlist, getDwAndDwDept, newExcelImport } from "@/api/system/comp";
import { newConfirm, getCompany, queryCompany } from "@/api/team/tuanti";
import Cookies from "js-cookie"
import {
  addDept,
  addComp,
  Deptlist,
  getDwAndDwDept,
  newExcelImport,
} from "@/api/system/comp";
import {
  newConfirm,
  getCompany,
  queryCompany,
  getconfigKey,
} from "@/api/team/tuanti";
import { getToken } from "@/utils/auth";
import { read, utils } from "xlsx";
export default {
  dicts: [
@@ -172,12 +421,24 @@
    "sys_yes_no",
    "sys_user_sex",
    "reservation_pay_type",
    "sys_normal_disable"
    "sys_normal_disable",
  ],
  name: "Tijian",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      console.log(value);
      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 {
      uploadKey: 0,
      leftList: "",
      isdisabled: true,
      setDisabled: {
@@ -220,12 +481,13 @@
      data: {
        dwId: "",
        dwDeptId: "",
        dwName: "",
      },
      objs: {
        drugManufacturerId: "",
        dwDeptName: "",
        reservationTime: "",
        yxts: "",
      },
      DataList: [],
      tjOrderList: [], //单个项目集合
@@ -252,10 +514,11 @@
        // 是否更新已经存在的用户数据
        updateSupport: 0,
        // 设置上传的请求头部
        headers: { Authorization: "Bearer " + getToken() },
        headers: { Authorization: "Bearer " + getToken(),hospId: Cookies.get("hospId") },
        // 上传的地址
        url:
          process.env.VUE_APP_BASE_API + "/reservation/reservation/newExcelImport",
          process.env.VUE_APP_BASE_API +
          "/reservation/reservation/newExcelImportNotDwDeptId",
      },
      // 查询参数
      queryParam: {
@@ -284,15 +547,92 @@
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        drugManufacturerId: [
          { required: true, message: "单位名称不能为空", trigger: "change" },
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        reservationTime: [
          { required: true, message: "预约时间不能为空", trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        dwDeptName: [
          { required: true, message: "部门不能为空", trigger: "change" },
        // dwDeptName: [
        //   { required: true, validator: checkPhoneNum, trigger: "change" },
        // ],
        signingPic: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        contactPerson: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        contactPhone: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        taxNumber: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        legalPerson: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        registerAddress: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        bankAccount: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        countNum: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        principal: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        faxNumber: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        mailingAddress: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        email: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
        pacName: [
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        payType: [
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        phoe: [
          {
            required: true,
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        proPrice: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        createTime: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
        businessLicenseNumber: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        createTime: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        updateTime: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        effective: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "change",
          },
        ],
        name: [{ required: true, validator: checkPhoneNum, trigger: "change" }],
        contactPhone: [
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
      },
      ListObj: {},
@@ -315,6 +655,7 @@
      title: "",
      // 是否显示弹出层
      open: false,
      open1: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
@@ -339,82 +680,108 @@
    },
  },
  methods: {
    // 保存部门
    handleAddDept() {
      let data = {
        dwName: this.data.dwName,
        dwId: this.data.dwId,
        dwDeptName: this.form.dwDeptName,
        signingPrice: this.form.signingPrice,
      };
      addDept(data).then((response) => {
        if (response.code == 200) {
          this.$modal.msgSuccess("新增成功");
          this.open1 = false;
        }
      });
    },
    idFn(value) {
      console.log(value);
      if (value) {
        this.data.dwId = value
        this.data.dwId = value;
        Deptlist(value).then((response) => {
          this.deptList = response.data;
        });
      }
    },
    idFn1(value) {
      console.log(value);
      if (value) {
        this.data.dwId = value;
        this.CompanyList.forEach((item) => {
          console.log(item);
          if (item.drugManufacturerId == this.data.dwId) {
            this.data.dwName = item.cnName;
          }
        });
      }
    },
    idBm(value) {
      this.data.dwDeptId = value
      this.data.dwDeptId = value;
    },
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        // if (index === 0) {
        //   sums[index] = "合计";
        //   return;
        // }
        if (index === 0) {
          sums[index] = '合计';
          sums[index] = "总计人数";
          return;
        }
        if (index === 1) {
          sums[index] = '总计人数';
          return;
        }
        if (index === 2) {
          sums[index] = this.ListObj.count;
          return;
        }
        if (index === 7) {
          sums[index] = '男组人数';
        if (index === 2) {
          sums[index] = "男组人数";
          return;
        }
        if (index === 8) {
        if (index === 3) {
          sums[index] = this.ListObj.manCount;
          return;
        }
        if (index === 9) {
          sums[index] = '男组金额';
        if (index === 4) {
          sums[index] = "男组金额";
          return;
        }
        if (index === 10) {
        if (index === 5) {
          sums[index] = this.ListObj.manMoney;
          return;
        }
        if (index === 12) {
          sums[index] = '女组人数';
        if (index === 6) {
          sums[index] = "女组人数";
          return;
        }
        if (index === 13) {
        if (index === 7) {
          sums[index] = this.ListObj.woManCount;
          return;
        }
        if (index === 14) {
          sums[index] = '女组金额';
        if (index === 8) {
          sums[index] = "女组金额";
          return;
        }
        if (index === 15) {
        if (index === 9) {
          sums[index] = this.ListObj.woManMoney;
          return;
        }
        if (index === 16) {
          sums[index] = '合计金额';
        if (index === 10) {
          sums[index] = "合计金额";
          return;
        }
        if (index === 17) {
        if (index === 11) {
          sums[index] = this.ListObj.hjMoney;
          return;
        }
      });
      return sums
      return sums;
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
        let compName = query;
        queryCompany(compName).then((response) => {
@@ -429,6 +796,10 @@
    // 获取单位信息集合
    getCompanyList() {
      this.loading = true;
      getconfigKey('team_reservation_default_day').then((res) => {
        console.log(res, 1111);
        this.objs.yxts = res.msg;
      });
      getCompany(this.queryParam).then((response) => {
        this.CompanyList = response.data;
        this.total = response.total;
@@ -438,6 +809,7 @@
    // 取消按钮
    cancel() {
      this.open = false;
      this.open1 = false;
      this.creaseopen = false;
      this.reset();
    },
@@ -447,7 +819,12 @@
      this.open = true;
      this.title = "添加体检单位信息维护";
    },
    /** 部门新增按钮操作 */
    handleAddbumen() {
      this.reset();
      this.open1 = true;
      this.title = "添加部门信息维护";
    },
    /** 提交按钮 */
    submitFormS() {
@@ -470,7 +847,7 @@
        name: null,
        phoe: null,
        signingPic: null,
        pacStatus: "启用"
        pacStatus: "启用",
      };
      this.resetForm("form");
    },
@@ -478,9 +855,12 @@
    resetQuery() {
      this.date = [];
      this.objs.drugManufacturerId = "";
      this.objs.dwDeptName = "";
      this.objs.reservationTime = "";
      this.TotalPrice = "";
      this.tableData[0] = [];
      this.TotalPrice1 = "";
      this.userList = []
      // this.resetForm("form");
      this.form = {};
    },
@@ -489,23 +869,25 @@
    selectTime(val) {
      this.objs.reservationTime = val;
    },
    /** 导入按钮操作 */
    handleImport() {
      if (this.data.dwId || this.data.dwDeptId) {
      if (this.objs.drugManufacturerId && this.objs.reservationTime) {
          // 清空组件内部状态(含已上传文件)
      this.$refs.upload?.clearFiles();
      this.uploadKey = Date.now(); // 改变 key 强制重新渲染组件
      // 同步数据源(Vue2 需用 $set 确保响应式)
        this.upload.title = "用户导入";
        this.upload.open = true;
      } else {
        this.$modal.msgError("请选择单位或部门")
        this.$modal.msgError("请选择单位或预约时间");
      }
    },
    /** 下载模板操作 */
    importTemplate() {
      this.download(
        "/reservation/reservation/importTemplate",
        {},
        `user_template_${new Date().getTime()}.xlsx`
        `团体预约Excel模版.xls`
      );
    },
    // 文件上传中处理
@@ -513,34 +895,66 @@
      this.upload.isUploading = true;
    },
    // 文件上传成功处理
    // 文件上传成功处理
    handleFileSuccess(response, file, fileList) {
      this.ListObj = response.data
      this.userList = response.data.list
      console.log(response, file, fileList)
      if (response.code == 500) {
        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( `${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.upload.open = false;
      this.upload.isUploading = false;
      this.$refs.upload.clearFiles();
      this.leftList = response.msg;
      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({
@@ -563,6 +977,7 @@
    },
    // 提交上传文件
    submitFileForm() {
      console.log(9999)
      this.$refs.upload.submit();
      this.isShow = false;
    },
@@ -601,21 +1016,24 @@
    /** 确认按钮 */
    submitForm() {
      if (this.objs.reservationTime && this.data.dwDeptId) {
      // if (this.objs.reservationTime && this.data.dwDeptId) {
      if (this.objs.reservationTime) {
        let data = {
          copeWith: this.ListObj.hjMoney,
          reservations: this.userList,
          reservationTime: this.objs.reservationTime,
          dwDeptId: this.data.dwDeptId,
          yxts: this.objs.yxts,
          dwId: this.data.dwId,
        };
        newConfirm(data).then((res) => {
          this.$modal.msgSuccess("提交成功");
          this.confirm = true;
          this.userList = [];
        });
      } else {
        this.$modal.msgError("请填写带星号内容");
      }
    },
  },
};