qx
qx
2025-04-17 6d2f5a43b9bf2922c137e18e3fb4ba91fcfce459
src/views/reservation/resercopy/index.vue
@@ -29,7 +29,7 @@
        </el-select>
        <i class="el-icon-circle-plus-outline" @click="handleAdd"></i>
      </el-form-item>
      <el-form-item label="部门" prop="dwDeptName">
      <!-- <el-form-item label="部门" prop="dwDeptName">
        <el-select
          v-model="objs.dwDeptName"
          placeholder="请选择部门"
@@ -45,7 +45,7 @@
          />
        </el-select>
        <i class="el-icon-circle-plus-outline" @click="handleAddbumen"></i>
      </el-form-item>
      </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" />
@@ -58,12 +58,19 @@
          type="date"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
          style="width: 220px"
          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>
@@ -83,7 +90,6 @@
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
          v-hasPermi="['system:user:import']"
          >导入</el-button
        >
      </el-col>
@@ -92,8 +98,7 @@
          type="primary"
          icon="el-icon-upload2"
          size="mini"
         @click="importTemplate"
          v-hasPermi="['system:user:import']"
          @click="importTemplate"
          >下载模板</el-button
        >
      </el-col>
@@ -123,8 +128,16 @@
          align="center"
          prop="company"
          width="200"
        />
        <el-table-column label="工号" align="center" prop="jobNo" width="80" />
        >
        </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">
@@ -147,14 +160,14 @@
          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="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"
          width="140"
        />
        <el-table-column label="地址" align="center" prop="address" />
        <el-table-column
@@ -178,7 +191,7 @@
            />
          </template>
        </el-table-column>
        <el-table-column label="联系邮箱" align="center" prop="email" />
        <!-- <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" />
@@ -195,7 +208,8 @@
      <el-upload
        ref="upload"
        :limit="1"
        accept=".xlsx, .xls"
        :key="uploadKey"
        accept=".xls"
        :headers="upload.headers"
        :data="data"
        :action="upload.url"
@@ -212,7 +226,7 @@
            <el-checkbox v-model="upload.updateSupport" />
            是否更新已经存在的用户数据
          </div>
          <span>仅允许导入xls、xlsx格式文件。</span>
          <span>仅允许导入xls格式文件。</span>
          <el-link
            type="primary"
            :underline="false"
@@ -223,7 +237,7 @@
        </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>
@@ -344,26 +358,26 @@
          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="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>
@@ -384,6 +398,7 @@
</template>
<script>
import Cookies from "js-cookie"
import {
  addDept,
  addComp,
@@ -391,9 +406,13 @@
  getDwAndDwDept,
  newExcelImport,
} from "@/api/system/comp";
import { newConfirm, getCompany, queryCompany } from "@/api/team/tuanti";
import {
  newConfirm,
  getCompany,
  queryCompany,
  getconfigKey,
} from "@/api/team/tuanti";
import { getToken } from "@/utils/auth";
import { read, utils } from "xlsx";
export default {
  dicts: [
@@ -419,6 +438,7 @@
      }
    };
    return {
      uploadKey: 0,
      leftList: "",
      isdisabled: true,
      setDisabled: {
@@ -461,13 +481,13 @@
      data: {
        dwId: "",
        dwDeptId: "",
        dwName:"",
        dwName: "",
      },
      objs: {
        drugManufacturerId: "",
        dwDeptName: "",
        reservationTime: "",
        yxts: "",
      },
      DataList: [],
      tjOrderList: [], //单个项目集合
@@ -494,11 +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",
          "/reservation/reservation/newExcelImportNotDwDeptId",
      },
      // 查询参数
      queryParam: {
@@ -535,9 +555,9 @@
        reservationTime: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        dwDeptName: [
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        // dwDeptName: [
        //   { required: true, validator: checkPhoneNum, trigger: "change" },
        // ],
        signingPic: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
@@ -662,7 +682,7 @@
  methods: {
    // 保存部门
    handleAddDept() {
        let data = {
      let data = {
        dwName: this.data.dwName,
        dwId: this.data.dwId,
        dwDeptName: this.form.dwDeptName,
@@ -688,12 +708,12 @@
      console.log(value);
      if (value) {
        this.data.dwId = value;
        this.CompanyList.forEach(item=>{
        this.CompanyList.forEach((item) => {
          console.log(item);
          if(item.drugManufacturerId == this.data.dwId){
            this.data.dwName = item.cnName
          if (item.drugManufacturerId == this.data.dwId) {
            this.data.dwName = item.cnName;
          }
        })
        });
      }
    },
    idBm(value) {
@@ -704,55 +724,55 @@
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        // if (index === 0) {
        //   sums[index] = "合计";
        //   return;
        // }
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        if (index === 1) {
          sums[index] = "总计人数";
          return;
        }
        if (index === 2) {
        if (index === 1) {
          sums[index] = this.ListObj.count;
          return;
        }
        if (index === 7) {
        if (index === 2) {
          sums[index] = "男组人数";
          return;
        }
        if (index === 8) {
        if (index === 3) {
          sums[index] = this.ListObj.manCount;
          return;
        }
        if (index === 9) {
        if (index === 4) {
          sums[index] = "男组金额";
          return;
        }
        if (index === 10) {
        if (index === 5) {
          sums[index] = this.ListObj.manMoney;
          return;
        }
        if (index === 12) {
        if (index === 6) {
          sums[index] = "女组人数";
          return;
        }
        if (index === 13) {
        if (index === 7) {
          sums[index] = this.ListObj.woManCount;
          return;
        }
        if (index === 14) {
        if (index === 8) {
          sums[index] = "女组金额";
          return;
        }
        if (index === 15) {
        if (index === 9) {
          sums[index] = this.ListObj.woManMoney;
          return;
        }
        if (index === 16) {
        if (index === 10) {
          sums[index] = "合计金额";
          return;
        }
        if (index === 17) {
        if (index === 11) {
          sums[index] = this.ListObj.hjMoney;
          return;
        }
@@ -761,6 +781,7 @@
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
        let compName = query;
        queryCompany(compName).then((response) => {
@@ -775,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;
@@ -835,6 +860,7 @@
      this.TotalPrice = "";
      this.tableData[0] = [];
      this.TotalPrice1 = "";
      this.userList = []
      // this.resetForm("form");
      this.form = {};
    },
@@ -843,14 +869,17 @@
    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("请选择单位或预约时间");
      }
    },
    /** 下载模板操作 */
@@ -866,13 +895,43 @@
      this.upload.isUploading = true;
    },
    // 文件上传成功处理
    // 文件上传成功处理
    handleFileSuccess(response, file, fileList) {
      this.ListObj = response.data;
      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(
@@ -885,15 +944,17 @@
          "导入结果",
          { 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({
@@ -916,6 +977,7 @@
    },
    // 提交上传文件
    submitFileForm() {
      console.log(9999)
      this.$refs.upload.submit();
      this.isShow = false;
    },
@@ -954,16 +1016,20 @@
    /** 确认按钮 */
    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("请填写带星号内容");