qx
qx
2025-04-18 7b41c32c0107960760594ce7db9a130d93c9ad92
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,143 +32,61 @@
        </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" /> -->
@@ -199,41 +97,20 @@
    </div>
    <!-- 用户导入对话框 -->
    <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
      >
    <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>
          </div> -->
          <span>仅允许导入xls格式文件。</span>
          <el-link
            type="primary"
            :underline="false"
            style="font-size: 12px; vertical-align: baseline"
            @click="importTemplate"
            >下载模板</el-link
          >
          <!-- <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">
@@ -244,19 +121,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>
@@ -264,10 +130,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="请输入税号" />
@@ -276,16 +139,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="请输入开户银行" />
@@ -306,34 +163,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: 830px" resize="none"></el-input>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer2">
@@ -345,47 +186,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">
@@ -514,7 +328,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 +
@@ -781,7 +595,7 @@
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
        let compName = query;
        queryCompany(compName).then((response) => {
@@ -872,10 +686,10 @@
    /** 导入按钮操作 */
    handleImport() {
      if (this.objs.drugManufacturerId && this.objs.reservationTime) {
          // 清空组件内部状态(含已上传文件)
      this.$refs.upload?.clearFiles();
      this.uploadKey = Date.now(); // 改变 key 强制重新渲染组件
      // 同步数据源(Vue2 需用 $set 确保响应式)
        // 清空组件内部状态(含已上传文件)
        this.$refs.upload?.clearFiles();
        this.uploadKey = Date.now(); // 改变 key 强制重新渲染组件
        // 同步数据源(Vue2 需用 $set 确保响应式)
        this.upload.title = "用户导入";
        this.upload.open = true;
      } else {
@@ -903,30 +717,48 @@
        // 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{
        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.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();
@@ -936,15 +768,15 @@
        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 {
      //   console.log(11111)
      //   this.isdisabled = false;
@@ -1080,6 +912,4 @@
  display: flex;
  justify-content: center;
}
</style>
</style>