qx
qx
2025-05-23 31cb4bc988bdbb3a171d0cc704ff09eeeeccb524
qx
4个文件已修改
223 ■■■■■ 已修改文件
src/api/team/tuanti.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reservation/career/index.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/comp/index.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/manual/index.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/team/tuanti.js
@@ -82,4 +82,20 @@
  })
}
// 获取职业单位信息集合
export function getZybCompList() {
  return request({
    url: '/system/comp/getZybCompList',
    method: 'get',
  })
}
//职业团体预约确认接口 (新版本)
export function newReservationConfirmxbb(data) {
  return request({
    url: '/zhiye/order/newReservationConfirmxbb' ,
    method: 'post',
    data:data
  })
}
src/views/reservation/career/index.vue
@@ -99,8 +99,8 @@
    <!-- 用户导入对话框 -->
    <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"
      <el-upload ref="upload" :limit="1" :key="uploadKey" accept=".xls" :headers="upload.headers"
        :action="upload.url" :data="data" :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>
@@ -227,8 +227,8 @@
  newExcelImport,
} from "@/api/system/comp";
import {
  newConfirm,
  getCompany,
  newReservationConfirmxbb,
  getZybCompList,
  queryCompany,
  getconfigKey,
} from "@/api/team/tuanti";
@@ -339,7 +339,7 @@
        // 上传的地址
        url:
          process.env.VUE_APP_BASE_API +
          "/reservation/reservation/newExcelImportNotDwDeptId",
          "/zhiye/order/newExcelImportNotDwDeptId",
      },
      // 查询参数
      queryParam: {
@@ -622,7 +622,7 @@
        console.log(res, 1111);
        this.objs.yxts = res.msg;
      });
      getCompany(this.queryParam).then((response) => {
      getZybCompList(this.queryParam).then((response) => {
        this.CompanyList = response.data;
        this.total = response.total;
        this.loading = false;
@@ -705,7 +705,7 @@
    /** 下载模板操作 */
    importTemplate() {
      this.download(
        "/reservation/reservation/importTemplate",
        "/zhiye/order/importTemplate",
        {},
        `职业团体预约Excel模版.xls`
      );
@@ -857,7 +857,7 @@
          yxts: this.objs.yxts,
          dwId: this.data.dwId,
        };
        newConfirm(data).then((res) => {
        newReservationConfirmxbb(data).then((res) => {
          this.$modal.msgSuccess("提交成功");
          this.confirm = true;
          this.userList = [];
src/views/system/comp/index.vue
@@ -548,8 +548,8 @@
          :inline="true"
          @submit.native.prevent
        >
          <el-form-item label="单位类型" prop="isZybUnit">
            <el-radio-group v-model="form.isZybUnit">
          <el-form-item label="单位类型" prop="dwlx">
            <el-radio-group v-model="form.dwlx">
              <el-radio :label="0">普通单位</el-radio>
              <el-radio :label="1">职业病单位</el-radio>
            </el-radio-group>
@@ -607,13 +607,13 @@
              style="width: 1058px"
            />
          </el-form-item>
          <el-form-item label="所属地区" prop="zybCode" v-if="form.isZybUnit">
            <el-input v-model="form.zybCode" placeholder="请输入所属地区" />
          <el-form-item label="所属地区" prop="ssdq" v-if="form.dwlx == 1">
            <el-input v-model="form.ssdq" placeholder="请输入所属地区" />
          </el-form-item>
          <el-form-item
            label="隶属关系"
            prop="industryType"
            v-if="form.isZybUnit"
            prop="lsgx"
            v-if="form.dwlx == 1"
          >
            <!-- <el-input
              v-model="form.industryType"
@@ -621,7 +621,7 @@
            /> -->
            <el-select
              filterable
              v-model="form.industryType"
              v-model="form.lsgx"
              placeholder="请选择隶属关系"
              clearable
              style="width: 186px"
@@ -634,10 +634,10 @@
              />
            </el-select>
          </el-form-item>
          <el-form-item label="经济类型" prop="jjType" v-if="form.isZybUnit">
          <el-form-item label="经济类型" prop="jjlx" v-if="form.dwlx == 1">
             <el-select
              filterable
              v-model="form.jjType"
              v-model="form.jjlx"
              placeholder="请选择经济类型"
              clearable
              style="width: 186px"
@@ -650,10 +650,10 @@
              />
            </el-select>
          </el-form-item>
          <el-form-item label="企业规模" prop="qygm" v-if="form.isZybUnit">
          <el-form-item label="企业规模" prop="qygm" v-if="form.dwlx == 1">
            <el-input v-model="form.qygm" placeholder="请输入企业规模" />
          </el-form-item>
          <el-form-item label="行业分类" prop="hyfl" v-if="form.isZybUnit">
          <el-form-item label="行业分类" prop="hyfl" v-if="form.dwlx == 1">
            <el-select
              filterable
              v-model="form.hyfl"
@@ -669,7 +669,7 @@
              />
            </el-select>
          </el-form-item>
          <el-form-item label="风险评估" prop="fxpg" v-if="form.isZybUnit">
          <el-form-item label="风险评估" prop="fxpg" v-if="form.dwlx == 1">
             <el-select
              filterable
              v-model="form.fxpg"
src/views/system/manual/index.vue
@@ -27,7 +27,12 @@
        <el-row :gutter="20">
          <el-col :span="11" :xs="24">
            <el-table border v-loading="loading" :data="groupingList" height="350" @selection-change="handleChange">
            <el-table :data="groupingList" border height="484" v-loading="loading" @row-click="handleChange">
              <el-table-column :prop="item" :label="item" v-for="(item, index) in table" :key="index"
                :width="columnWidth(item)" align="center">
              </el-table-column>
            </el-table>
            <!-- <el-table border v-loading="loading" :data="groupingList" height="350" @selection-change="handleChange">
              <el-table-column type="selection" width="40px" align="center" />
              <el-table-column label="序号" align="center" prop="newID" width="50px" />
              <el-table-column label="分组名称" align="center" prop="groupingName" />
@@ -35,37 +40,23 @@
                <template slot-scope="scope">
                  <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
                </template>
              </el-table-column>
              <el-table-column label="套餐名称" align="center" prop="pacName" />
              <el-table-column label="结算方式" align="center" prop="payType">
                <template slot-scope="scope">
</el-table-column>
<el-table-column label="套餐名称" align="center" prop="pacName" />
<el-table-column label="结算方式" align="center" prop="payType">
  <template slot-scope="scope">
                  <dict-tag :options="dict.type.reservation_pay_type" :value="scope.row.payType" />
                </template>
              </el-table-column>
              <el-table-column label="折扣" align="center" prop="limits" />
              <el-table-column label="原价" align="center" prop="price" />
              <el-table-column label="应收" align="center" prop="ysPrice" />
            </el-table>
</el-table-column>
<el-table-column label="折扣" align="center" prop="limits" />
<el-table-column label="原价" align="center" prop="price" />
<el-table-column label="应收" align="center" prop="ysPrice" />
</el-table> -->
          </el-col>
          <el-col :span="11" :xs="24">
            <el-table border v-loading="loading" :data="groupingList" height="350">
              <el-table-column type="selection" width="40px" align="center" />
              <el-table-column label="序号" align="center" prop="newID" width="50px" />
              <el-table-column label="分组名称" align="center" prop="groupingName" />
              <el-table-column label="性别" align="center" prop="sex">
                <template slot-scope="scope">
                  <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
                </template>
            <el-table :data="xxList" border height="484" v-loading="loading" @row-click="handleChange">
              <el-table-column :prop="item" :label="item" v-for="(item, index) in xxtable" :key="index"
                :width="columnWidths(item)" align="center">
              </el-table-column>
              <el-table-column label="套餐名称" align="center" prop="pacName" />
              <el-table-column label="结算方式" align="center" prop="payType">
                <template slot-scope="scope">
                  <dict-tag :options="dict.type.reservation_pay_type" :value="scope.row.payType" />
                </template>
              </el-table-column>
              <el-table-column label="折扣" align="center" prop="limits" />
              <el-table-column label="原价" align="center" prop="price" />
              <el-table-column label="应收" align="center" prop="ysPrice" />
            </el-table>
          </el-col>
        </el-row>
@@ -89,24 +80,10 @@
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
          </el-form-item>
        </el-form>
        <el-table border v-loading="loading" :data="groupingList" height="350">
          <el-table-column type="selection" width="40px" align="center" />
          <el-table-column label="序号" align="center" prop="newID" width="50px" />
          <el-table-column label="分组名称" align="center" prop="groupingName" />
          <el-table-column label="性别" align="center" prop="sex">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
            </template>
        <el-table :data="groupingList" border height="484" v-loading="loading">
          <el-table-column :prop="item" :label="item" v-for="(item, index) in table" :key="index"
            :width="columnWidth(item)" align="center">
          </el-table-column>
          <el-table-column label="套餐名称" align="center" prop="pacName" />
          <el-table-column label="结算方式" align="center" prop="payType">
            <template slot-scope="scope">
              <dict-tag :options="dict.type.reservation_pay_type" :value="scope.row.payType" />
            </template>
          </el-table-column>
          <el-table-column label="折扣" align="center" prop="limits" />
          <el-table-column label="原价" align="center" prop="price" />
          <el-table-column label="应收" align="center" prop="ysPrice" />
        </el-table>
      </div>
@@ -155,14 +132,13 @@
    return {
      loading: false,
      tjStatus: 0,
      groupingList: [
        {
          price: 10
        }
      ],
      groupingList: [],
      xxList: [],
      table: [],
      xxtable: [],
      queryParams: {
        tjh: null,
        tblx: "jy",
        tblx: "",
      },
      forms: {
        tjNum: null,
@@ -186,6 +162,9 @@
  },
  created() {
    //   this.handleManual();
    if(this.tjStatus == 0){
 this.queryParams.tblx = "jy"
    }
  },
  methods: {
    radioChange(value) {
@@ -194,7 +173,7 @@
      } else if (value == 1) {
        this.queryParams.tblx = "jc"
      }
      this.resetQuery()
    },
    handleManual() {
      shoudongtbjyjcwsxmjg(this.queryParams).then(res => {
@@ -207,7 +186,11 @@
      })
    },
    resetQuery() {
      this.resetForm("queryForm");
      this.queryParams.tjh = null
      this.groupingList = [];
      this.table = [];
      this.xxList = [];
      this.xxtable = [];
    },
    idFn1(value) {
@@ -215,14 +198,92 @@
        console.log(value)
      }
    },
    handleQuery() {
      this.loading = true
      chaxunjyjcwsxmjg(this.queryParams).then(res => {
        this.groupingList = res.data
        this.loading = false
        var array = []
        for (var i = 0; i < this.groupingList.length; i++) {
          array = Object.keys(this.groupingList[i]);
          let reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/
          array.forEach((element, index) => {
            if (reg.test(element)) {
              this.table.push(element)
            }
          });
          this.table.sort(function (a, b) {
            const numA = parseInt(a.match(/\d+/)[0], 10);
            const numB = parseInt(b.match(/\d+/)[0], 10);
            return numA - numB;
          });
          return i + 1;
        }
      })
    },
    handleChange(selection) {
    columnWidth(item) {
      const arr = this.groupingList.map((x) => x[item]);
      if (arr.length > 0) {
        arr.push(item);
        return this.getMaxLength(arr) + 20 + "px";
      }
      return 20 + "px";
    },
    columnWidths(item) {
      const arr = this.groupingList.map((x) => x[item]);
      if (arr.length > 0) {
        arr.push(item);
        return this.getMaxLength(arr) + 100 + "px";
      }
      return 100 + "px";
    },
    getMaxLength(arr) {
      return arr.reduce((acc, item) => {
        if (item) {
          const calcLen = this.getTextWidth(item);
          if (acc < calcLen) {
            acc = calcLen;
          }
        }
        return acc;
      }, 0);
    },
    getTextWidth(str) {
      let width = 0;
      const html = document.createElement("span");
      html.innerText = str;
      html.className = "getTextWidth";
      document.querySelector("body").appendChild(html);
      width = document.querySelector(".getTextWidth").offsetWidth;
      document.querySelector(".getTextWidth").remove();
      return width;
    },
    handleChange(rowData, columnName) {
      this.xxList = rowData.jybgd
      var array = []
      for (var i = 0; i < this.xxList.length; i++) {
        array = Object.keys(this.xxList[i]);
        let reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/
        array.forEach((element, index) => {
          if (reg.test(element)) {
            this.xxtable.push(element)
          }
        });
        this.xxtable.sort(function (a, b) {
          const numA = parseInt(a.match(/\d+/)[0], 10);
          const numB = parseInt(b.match(/\d+/)[0], 10);
          return numA - numB;
        });
        return i + 1;
      }
    }
  }
};
</script>