su
su1124
2024-06-21 4e89136677c9fd3dabeffadbfd20fccd6ec42cef
src/views/system/tijianall/index.vue
@@ -9,356 +9,286 @@
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            class="demo-form-inline"
            label-width="84px"
            label-width="106px"
          >
            <el-row>
              <el-col :span="5">
                <el-form-item
                  style="display: flex"
                  label="姓名"
                  prop="cusName"
                  :rules="[
                    {
                      required: true,
                      validator: (rule, value, callback) => {
                        if (!form.cusName) {
                          callback('');
                        } else if (form.cusName) {
                          callback();
                        }
                      },
                      trigger: 'blur',
                    },
                  ]"
                >
                  <el-input v-model="form.cusName" placeholder="请输入姓名" />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="证件类型"
                  prop="idType"
                  style="display: flex"
                >
                  <el-select v-model="form.idType" placeholder="请选择证件类型">
                    <el-option
                      v-for="dict in dict.type.dict_user_cardtype"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="7">
                <el-form-item
                  style="display: flex"
                  label="证件号"
                  prop="cusIdcard"
                  :rules="[
                    {
                      required: true,
                      validator: (rule, value, callback) => {
                        if (!form.cusIdcard) {
                          callback('');
                        } else if (form.cusIdcard) {
                          callback();
                        }
                      },
                      trigger: 'blur',
                    },
                  ]"
                >
                  <span
                    slot="label"
                    style="display: inline-block; border-bottom: 2px solid blue"
                    @click="handleQuery"
                  >
                    证件号
                  </span>
                  <el-input
                    v-model="form.cusIdcard"
                    placeholder="请输入身份证号"
                    @input="inputChange"
                  />
                  <!-- <i
            <el-form-item
              label="姓名"
              prop="cusName"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusName) {
                      callback('');
                    } else if (form.cusName) {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <el-input v-model="form.cusName" placeholder="请输入姓名" style="width: 99%;"/>
            </el-form-item>
            <el-form-item label="性别" prop="cusSex">
              <el-select
                v-model="form.cusSex"
                placeholder="请选择性别"
                @change="formchang"
                style="width: 94%"
              >
                <el-option
                  v-for="dict in dict.type.sys_user_sex"
                  :key="dict.value"
                  :label="dict.label"
                  :value="parseInt(dict.value)"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="证件类型" prop="idType">
              <el-select v-model="form.idType" placeholder="请选择证件类型" style="width: 93%;">
                <el-option
                  v-for="dict in dict.type.dict_user_cardtype"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-form>
          <el-form
            style="margin: 4px 8px"
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            label-width="106px"
          >
          <el-form-item
              label="电话"
              prop="cusPhone"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusPhone) {
                      callback('');
                    } else if (form.cusPhone) {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <el-input v-model="form.cusPhone" placeholder="请输入电话" />
            </el-form-item>
            <el-form-item label="婚姻" prop="cusMarryStatus" >
              <el-select
                v-model="form.cusMarryStatus"
                placeholder="请选择婚姻状况"
                style="width: 94%"
              >
                <el-option
                  v-for="dict in dict.type.dict_user_marry"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item
              label="证件号码"
              prop="cusIdcard"
              :rules="[
                {
                  required: true,
                  validator: (rule, value, callback) => {
                    if (!form.cusIdcard) {
                      callback('');
                    } else if (form.cusIdcard) {
                      callback();
                    }
                  },
                  trigger: 'blur',
                },
              ]"
            >
              <span
                slot="label"
                style="display: inline-block; border-bottom: 2px solid blue"
                @click="handleQuery"
              >
                证件号码
              </span>
              <el-input
                v-model="form.cusIdcard"
                placeholder="请输入身份证号"
                @input="inputChange"
              />
              <!-- <i
                style="font-size: 17px; margin-left: 3px"
                class="el-icon-search"
                @click="handleQuery"
              ></i> -->
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="5">
                <el-form-item
                  label="民族"
                  prop="cusNational"
                  style="display: flex"
                >
                  <el-select
                    filterable
                    v-model="form.cusNational"
                    placeholder="请选择民族"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_user_national"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="性别" prop="cusSex" style="display: flex">
                  <el-select
                    v-model="form.cusSex"
                    placeholder="请选择性别"
                    @change="formchang"
                  >
                    <el-option
                      v-for="dict in dict.type.sys_user_sex"
                      :key="dict.value"
                      :label="dict.label"
                      :value="parseInt(dict.value)"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="5">
                <el-form-item label="年龄" prop="age" style="display: flex">
                  <el-input v-model="form.age" />
                </el-form-item>
              </el-col>
              <el-col :span="2">
                <el-form-item prop="ageUnit">
                  <el-select
                    v-model="form.ageUnit"
                    @change="formchang"
                    style="width: 80%"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_ageunit"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            </el-form-item>
          </el-form>
          <el-form
            style="margin: 4px 8px"
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            label-width="106px"
          >
          <el-form-item label="邮箱" prop="cusEmail">
              <el-input v-model="form.cusEmail" placeholder="请输入邮箱" />
            </el-form-item>
          <el-form-item label="民族" prop="cusNational">
              <el-select
                filterable
                v-model="form.cusNational"
                placeholder="请选择民族"
                style="width: 93%;"
              >
                <el-option
                  v-for="dict in dict.type.dict_user_national"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <!-- <input name="ReadBlockBtn" type="button" size="5px"  @click="readblock" value="读卡" /> -->
            <!-- <el-form-item label="出生日期" prop="cusBrithday">
              <el-date-picker style="width: 200px" clearable v-model="form.cusBrithday" type="date"
                value-format="yyyy-MM-dd" placeholder="请选择出生日期">
              </el-date-picker>
            </el-form-item> -->
            <el-row>
              <el-col :span="5">
                <el-form-item
                  label="婚姻"
                  prop="cusMarryStatus"
                  style="display: flex"
                >
                  <el-select
                    v-model="form.cusMarryStatus"
                    placeholder="请选择婚姻状况"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_user_marry"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="体检类别"
                  prop="category"
                  style="display: flex"
                >
                  <el-select
                    v-model="form.category"
                    placeholder="请选择体检类别"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_tjtype"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                  <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
                </el-form-item>
              </el-col>
              <el-col :span="7">
                <el-form-item
                  style="display: flex"
                  label="联系电话"
                  prop="cusPhone"
                  :rules="[
                    {
                      required: true,
                      validator: (rule, value, callback) => {
                        if (!form.cusPhone) {
                          callback('');
                        } else if (form.cusPhone) {
                          callback();
                        }
                      },
                      trigger: 'blur',
                    },
                  ]"
                >
                  <el-input
                    v-model="form.cusPhone"
                    placeholder="请输入联系电话"
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="5">
                <el-form-item
                  label="体检类型"
                  prop="tjType"
                  style="display: flex"
                >
                  <el-select v-model="form.tjType" placeholder="请选择体检类型">
                    <el-option
                      v-for="dict in dict.type.dict_team"
                      :key="dict.value"
                      :label="dict.label"
                      :value="parseInt(dict.value)"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="职业" prop="career" style="display: flex">
                  <el-select
                    filterable
                    :disabled="isDisabled"
                    v-model="form.career"
                    placeholder="请输入职业"
                  >
                    <el-option
                      v-for="dict in dict.type.dict_job"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="7">
                <el-form-item
                  label="邮箱"
                  prop="cusEmail"
                  style="display: flex"
                >
                  <el-input v-model="form.cusEmail" placeholder="请输入邮箱" />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="5">
                <el-form-item
                  label="现住址"
                  prop="cusAddr"
                  style="display: flex"
                >
                  <el-input
                    v-model="form.cusAddr"
                    placeholder="请输入现居住地址"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="工作单位"
                  prop="company"
                  style="display: flex"
                >
                  <el-input
                    v-model="form.company"
                    placeholder="请输入工作单位"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="7">
                <el-form-item label="卡号" prop="indexCard">
                  <el-input v-model="form.indexCard" placeholder="请输入卡号" />
                </el-form-item>
              </el-col>
            </el-row>
            <!-- <el-form-item label="户口地址" prop="cusAddr">
              <el-input v-model="form.cusAddr" placeholder="请输入户口地址" />
            </el-form-item> -->
            <!-- <el-form-item label="邮政编码" prop="cusPostcode">
            <el-form-item label="年龄" prop="age">
              <el-input
                v-model="form.cusPostcode"
                placeholder="请输入邮政编码"
                v-model="form.age"
                :disabled="isDisabled"
                style="width: 28%"
              />
            </el-form-item> -->
            <!-- <el-form-item label="索引卡号" prop="indexCard">
              <el-input v-model="form.indexCard" placeholder="请输入索引卡号" />
            </el-form-item> -->
              <el-select
                :disabled="isDisabled"
                v-model="form.ageUnit"
                style="width: 20%"
              >
                <el-option
                  v-for="dict in dict.type.dict_ageunit"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-form>
          <el-form
            style="margin: 4px 8px"
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            label-width="106px"
          >
            <el-form-item label="卡号" prop="indexCard">
              <el-input v-model="form.indexCard" placeholder="请输入卡号" />
            </el-form-item>
            <el-form-item label="职业" prop="career">
              <el-select
                filterable
                :disabled="isDisabled"
                v-model="form.career"
                placeholder="请输入职业"
                style="width: 94%"
              >
                <el-option
                  v-for="dict in dict.type.dict_job"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-row>
              <el-col :span="5">
                <el-form-item
                  label="部门"
                  prop="department"
                  style="display: flex"
                >
                  <el-input
                    v-model="form.department"
                    placeholder="请输入部门"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item
                  label="时间"
                  prop="timeRegion"
                  style="display: flex"
                >
                  <el-select
                    v-model="form.timeRegion"
                    placeholder="请选择预约时间"
                  >
                    <el-option
                      v-for="dict in dict.type.tj_time_region"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="7">
                <el-form-item label="预约日期" prop="reservationTime">
                  <el-date-picker
                    v-model="form.reservationTime"
                    type="date"
                    value-format="yyyy-MM-dd"
                    placeholder="选择日期"
                    :picker-options="setDisabled"
                  >
                  </el-date-picker>
                </el-form-item>
              </el-col>
            </el-row>
            <el-form-item label="体检类型" prop="tjType">
              <el-select
                v-model="form.tjType"
                placeholder="请选择体检类型" style="width: 94%;"
              >
                <el-option
                  v-for="dict in dict.type.dict_team"
                  :key="dict.value"
                  :label="dict.label"
                  :value="parseInt(dict.value)"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-form>
          <el-form
            style="margin: 4px 8px"
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            label-width="106px"
          >
            <el-form-item label="单位" prop="company">
              <el-input v-model="form.company" placeholder="请输入工作单位" />
            </el-form-item>
            <el-form-item label="体检类别" prop="category">
              <el-select v-model="form.category" placeholder="请选择体检类别" style="width: 95%;">
                <el-option
                  v-for="dict in dict.type.dict_tjtype"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
              <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
            </el-form-item>
            <el-form-item label="部门" prop="department">
              <el-input v-model="form.department" placeholder="请输入部门" />
            </el-form-item>
          </el-form>
          <el-form
            style="margin: 4px 8px"
            :inline="true"
            ref="form"
            :model="form"
            :rules="rules"
            label-width="106px"
          >
            <el-form-item label="现住地址" prop="cusAddr">
              <el-input v-model="form.cusAddr" placeholder="请输入现居住地址" />
            </el-form-item>
            <el-form-item label="预约时间" prop="timeRegion" >
              <el-select
                v-model="form.timeRegion"
                placeholder="请选择预约时间" style="width: 95%;"
              >
                <el-option
                  v-for="dict in dict.type.tj_time_region"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="预约日期" prop="reservationTime">
              <el-date-picker
                v-model="form.reservationTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="选择日期"
                :picker-options="setDisabled"
                style="width: 88%"
              >
              </el-date-picker>
            </el-form-item>
          </el-form>
        </div>
      </el-col>
@@ -374,8 +304,9 @@
        type="border-card"
        style="height: 538px; margin: 0 10px; width: 100%"
        @tab-click="handleClick"
        v-model="activeNames"
      >
        <el-tab-pane label="套餐">
        <el-tab-pane label="套餐" name="first">
          <el-form
            :model="queryParam"
            ref="queryForm"
@@ -461,7 +392,7 @@
                  class="el-icon-d-arrow-right"></i></el-button> -->
          </div>
        </el-tab-pane>
        <el-tab-pane label="单项">
        <el-tab-pane label="单项" name="second">
          <div class="tab8">
            <!-- <div class="tab7">
              <v-tree-transfer
@@ -475,7 +406,7 @@
                @check-change="handleCurrentChecked">
              </el-tree> -->
            <!-- </div> -->
            <el-row  :gutter="20">
            <el-row :gutter="20">
              <el-col :span="6">
                <div
                  style="
@@ -531,14 +462,21 @@
              </el-col>
              <el-col :span="11">
                <div class="grid-content bg-purple">
                  <div style="text-align: center; margin-bottom: 10px">
                  <div
                    style="
                      text-align: center;
                      margin-bottom: 10px;
                      margin-top: 10px;
                    "
                  >
                    已选项目列表
                  </div>
                  <el-table
                    :data="DataList"
                    border
                    style="width: 100%"
                    height="250"
                    height="400"
                    :span-method="objectSpanMethod"
                  >
                    <el-table-column prop="propinName" label="检查项目">
                    </el-table-column>
@@ -572,7 +510,13 @@
                  <el-collapse v-model="activeName" accordion v-if="list1">
                    <div>
                      <el-collapse-item title="请选择项目">
                        <el-table :data="DataList" border style="width: 100%">
                        <el-table
                          :data="DataList"
                          border
                          style="width: 100%"
                          height="400"
                          :span-method="objectSpanMethod"
                        >
                          <el-table-column
                            prop="proName"
                            label="项目"
@@ -645,7 +589,7 @@
            <el-form
              :model="form"
              :inline="true"
              label-width="75px"
              label-width="100px"
              style="margin-left: 10px"
            >
              <el-form-item label="应收金额" style="margin-right: 20px">
@@ -653,7 +597,6 @@
                  placeholder="应收金额"
                  :value="TotalPrice1 + '.00'"
                  disabled
                  style="width: 150px"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="优惠折扣" style="margin-right: 20px">
@@ -661,19 +604,23 @@
                <el-input-number style="width: 140px" v-model="discount" :precision="2" :step="0.1" :max="10" :min="1"
                  @change="numberChange" :disabled="isfalse"></el-input-number>
              </el-form-item> -->
              <el-form-item label="实收金额" style="margin-right: 20px">
              <el-form-item label="实收金额" >
                <el-input
                  placeholder="实收金额"
                  v-model="TotalPrice"
                  disabled
                  style="width: 190px"
                ></el-input>
              </el-form-item>
              <el-form-item>
                <el-button type="primary" @click="Package" size="mini"
                  >选择套餐</el-button
                >
                <el-button
                  type="primary"
                  @click="resetpackage"
                  size="mini"
                  >重置套餐</el-button
                >
                <el-button
                  type="primary"
                  @click="submitPrice"
@@ -709,8 +656,8 @@
              border: 1px solid #e6ebf5;
              max-height: 420px;
              overflow: auto;
              width: 1020px;
              margin-left: 20px;
              width: 950px;
              margin-left: 25px;
            "
          >
            <el-collapse v-model="index" accordion>
@@ -982,6 +929,7 @@
      /** 照相机弹窗模块-start */
      videoWidth: 200,
      videoHeight: 200,
      activeNames: 'first',
      // canvasWidth:300,
      // canvasHeight:300,
      imgSrc: "",
@@ -1490,10 +1438,44 @@
    //     return true;
    //   }
    // },
    resetpackage(){
      if (this.form.cusIdcard) {
        var cusId = this.form.cusIdcard;
      } else {
        this.$message.warning("请先填写信息,再选体检内容");
      }
      let _this = this;
        _this.pacId = "";
      this.proIds = [];
      let data = {
        cusId,
        pacId: _this.pacId,
        proIds: this.proIds,
      };
      getaddtTransition(data).then((response) => {
        if (response.code === 200) {
          let cusId = this.form.cusIdcard;
          this.proIds = [];
          getTransitionList(cusId).then((response) => {
            this.tableData1 = response.data;
            this.TotalPrice1 = 0;
            if (this.tableData1.length>=1) {
              this.list1 = false;
              this.list3 = true;
            } else {
              this.list1 = true;
              this.TotalPrice = "0.00";
            }
          });
        }
      });
    },
    Package() {
      this.taocan = true;
      let cusSex = this.form.cusSex;
       this.activeNames="first"
      this.datekey = Date.now();
      //全部套餐
      this.loading = true;
@@ -1612,12 +1594,12 @@
    },
    handleClick(tab, event) {
      if (tab.label == "单项") {
        this.DataList =[]
        this.DataList = [];
        this.getDataList();
      }
    },
    getDataList() {
      this.loading = true
      this.loading = true;
      getProParentIdDxList().then((response) => {
        this.Treedata = response.data.list;
        if (this.tableData[0]) {
@@ -1739,6 +1721,27 @@
          });
        }
      });
    },
    //  // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      console.log(row, column, rowIndex, columnIndex);
      let fields = ["propinName"];
      let cellValue = row[column.property];
      if (cellValue && fields.includes(column.property)) {
        let prevRow = this.DataList[rowIndex - 1];
        let nextRow = this.DataList[rowIndex + 1];
        if (prevRow && prevRow[column.property] === cellValue) {
          return { rowspan: 0, colspan: 0 };
        } else {
          let countRowspan = 1;
          while (nextRow && nextRow[column.property] === cellValue) {
            nextRow = this.DataList[++countRowspan + rowIndex];
          }
          if (countRowspan > 1) {
            return { rowspan: countRowspan, colspan: 1 };
          }
        }
      }
    },
    // 点击获取每个树节点
@@ -1947,14 +1950,11 @@
  display: block;
}
.tab3 {
.tab3 {
  max-height: 400px;
  overflow-y: auto;
  border: 1px solid #d9d9d9;
}
.el-col-8 {
  width: 330px;