qinxianzhangyao
2024-05-28 a5f1b080956017388e5d87e7d9d1cbb5632b6cd2
src/views/system/tijianall/index.vue
@@ -9,67 +9,33 @@
            ref="form"
            :model="form"
            :rules="rules"
            :label-position="labelPosition"
            class="demo-form-inline"
            label-width="78px"
            label-width="106px"
          >
            <el-form-item label="姓名" prop="cusName">
              <el-input
                v-model="form.cusName"
                placeholder="请输入姓名"
                style="width: 160px"
              />
            </el-form-item>
            <el-form-item label="证件类型" prop="idType">
              <el-select
                style="width: 160px"
                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-form-item label="证件号" prop="cusIdcard">
              <el-input
                style="width: 186px"
                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-form-item label="年龄" prop="age">
              <el-input style="width: 55px" v-model="form.age" />
            </el-form-item>
            <el-form-item prop="ageUnit">
              <el-select
                style="width: 60px"
                v-model="form.ageUnit"
                @change="formchang"
              >
                <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
              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
                style="width: 160px"
                v-model="form.cusSex"
                placeholder="请选择性别"
                @change="formchang"
                style="width: 94%"
              >
                <el-option
                  v-for="dict in dict.type.sys_user_sex"
@@ -79,47 +45,50 @@
                ></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-form-item label="联系电话" prop="cusPhone">
              <el-input
                v-model="form.cusPhone"
                placeholder="请输入联系电话"
                style="width: 160px"
              />
            </el-form-item>
            <el-form-item label="民族" prop="cusNational">
              <el-select
                filterable
                v-model="form.cusNational"
                placeholder="请选择民族"
                style="width: 130px"
              >
            <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_national"
                  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-item label="邮箱" prop="cusEmail">
              <el-input
                v-model="form.cusEmail"
                placeholder="请输入邮箱"
                style="width: 200px"
              />
          </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-form-item label="婚姻" prop="cusMarryStatus" >
              <el-select
                style="width: 160px"
                v-model="form.cusMarryStatus"
                placeholder="请选择婚姻状况"
                style="width: 94%"
              >
                <el-option
                  v-for="dict in dict.type.dict_user_marry"
@@ -129,32 +98,147 @@
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="现住址" prop="cusAddr">
              <el-input
                v-model="form.cusAddr"
                placeholder="请输入现居住地址"
                style="width: 440px"
              />
            </el-form-item>
            <!-- <el-form-item label="户口地址" prop="cusAddr">
              <el-input v-model="form.cusAddr" placeholder="请输入户口地址" />
            </el-form-item> -->
            <!-- <el-form-item label="邮政编码" prop="cusPostcode">
              <el-input
                v-model="form.cusPostcode"
                placeholder="请输入邮政编码"
              />
            </el-form-item> -->
            <!-- <el-form-item label="索引卡号" prop="indexCard">
              <el-input v-model="form.indexCard" placeholder="请输入索引卡号" />
            </el-form-item> -->
            <el-form-item label="体检类别" prop="category">
              <el-select
                style="width: 140px"
                v-model="form.category"
                placeholder="请选择体检类别"
            <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-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>
            <el-form-item label="年龄" prop="age">
              <el-input
                v-model="form.age"
                :disabled="isDisabled"
                style="width: 28%"
              />
              <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-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"
@@ -165,29 +249,28 @@
              <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
            </el-form-item>
            <el-form-item label="部门" prop="department">
              <el-input
                v-model="form.department"
                placeholder="请输入部门"
                style="width: 160px"
              />
              <el-input v-model="form.department" placeholder="请输入部门" />
            </el-form-item>
            <el-form-item label="工作单位" prop="company">
              <el-input
                v-model="form.company"
                placeholder="请输入工作单位"
                style="width: 440px"
              />
          </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="career">
            <el-form-item label="预约时间" prop="timeRegion" >
              <el-select
                filterable
                :disabled="isDisabled"
                v-model="form.career"
                placeholder="请输入职业"
                style="width: 140px"
                v-model="form.timeRegion"
                placeholder="请选择预约时间" style="width: 95%;"
              >
                <el-option
                  v-for="dict in dict.type.dict_job"
                  v-for="dict in dict.type.tj_time_region"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
@@ -201,49 +284,11 @@
                value-format="yyyy-MM-dd"
                placeholder="选择日期"
                :picker-options="setDisabled"
                style="width: 160px"
                style="width: 88%"
              >
              </el-date-picker>
            </el-form-item>
            <el-form-item label="时间" prop="timeRegion">
              <el-select
                style="width: 160px"
                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-form-item label="卡号" prop="indexCard">
              <el-input
                v-model="form.indexCard"
                placeholder="请输入卡号"
                style="width: 190px"
              />
            </el-form-item>
            <el-form-item
              label="体检类型"
              prop="tjType"
              style="margin-right: 20px"
            >
              <el-select
                style="width: 145px"
                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-form>
        </div>
      </el-col>
@@ -252,12 +297,13 @@
    <el-dialog
      title="选择套餐"
      :visible.sync="taocan"
      width="42%"
      width="59%"
      height="700px"
    >
      <el-tabs
        type="border-card"
        style="height: 538px; margin: 0 10px; width: 100%"
        @tab-click="handleClick"
      >
        <el-tab-pane label="套餐">
          <el-form
@@ -265,7 +311,7 @@
            ref="queryForm"
            size="small"
            :inline="true"
            v-show="showSearch"
            v-if="showSearch"
            @submit.native.prevent
            label-width="auto"
          >
@@ -347,26 +393,144 @@
        </el-tab-pane>
        <el-tab-pane label="单项">
          <div class="tab8">
            <div class="tab7">
            <!-- <div class="tab7">
              <v-tree-transfer
                :treeData="treedataList"
                :defaultProps="{ children: 'tjProjectList', label: 'proName' }"
                :defaultKeys="defaultKeys"
                @changeKeys="changeCategoryKeys"
                :key="datekey"
              ></v-tree-transfer>
              <!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" :default-checked-keys="treeList"
              ></v-tree-transfer> -->
            <!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" :default-checked-keys="treeList"
                @check-change="handleCurrentChecked">
              </el-tree> -->
            </div>
            <!-- <el-button style="
                        width: 20px;
                        height: 100px;
                        margin-left: 10px;
                        margin-top: 20%;
                        font-size: 10px;
                      " type="primary" size="mini" @click="submit"><i style="font-size: 18px"
                  class="el-icon-d-arrow-right"></i></el-button> -->
            <!-- </div> -->
            <el-row :gutter="20">
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  项目列表
                </div>
                <el-input placeholder="输入关键字进行过滤" v-model="filterText">
                </el-input>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="Treedata"
                    :props="defaultProps"
                    show-checkbox
                    node-key="proId"
                    @check="handleCurrentChecked"
                    :default-checked-keys="checkedkey"
                    :filter-node-method="filterNode"
                    ref="tree"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="6">
                <div
                  style="
                    text-align: center;
                    margin-bottom: 10px;
                    margin-top: 10px;
                  "
                >
                  明细项目列表
                </div>
                <div class="tab3">
                  <el-tree
                    class="filter-tree"
                    v-loading="loading"
                    :data="TreedataList"
                    node-key="proId"
                    :props="defaultProps"
                    :filter-node-method="filterNode"
                    show-checkbox
                    @check-change="handleCurrentChecked1"
                    :default-checked-keys="checkedListkey"
                  >
                  </el-tree>
                </div>
              </el-col>
              <el-col :span="11">
                <div class="grid-content bg-purple">
                  <div
                    style="
                      text-align: center;
                      margin-bottom: 10px;
                      margin-top: 10px;
                    "
                  >
                    已选项目列表
                  </div>
                  <el-table
                    :data="DataList"
                    border
                    style="width: 100%"
                    height="400"
                    :span-method="objectSpanMethod"
                  >
                    <el-table-column prop="propinName" label="检查项目">
                    </el-table-column>
                    <el-table-column
                      prop="proName"
                      label="明细项目"
                      width="260px"
                    >
                    </el-table-column>
                    <el-table-column prop="proPrice" label="原价" width="56px">
                    </el-table-column>
                    <el-table-column
                      label="操作"
                      align="center"
                      fixed="right"
                      class-name="small-padding fixed-width"
                      width="50px"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="mini"
                          type="text"
                          icon="el-icon-delete"
                          @click="handleDelete(scope.row)"
                          title="删除"
                        ></el-button>
                      </template>
                    </el-table-column>
                  </el-table>
                  <el-collapse v-model="activeName" accordion v-if="list1">
                    <div>
                      <el-collapse-item title="请选择项目">
                        <el-table
                          :data="DataList"
                          border
                          style="width: 100%"
                          height="400"
                          :span-method="objectSpanMethod"
                        >
                          <el-table-column
                            prop="proName"
                            label="项目"
                            width="180"
                          >
                          </el-table-column>
                          <el-table-column prop="ordPrice" label="原价">
                          </el-table-column>
                        </el-table>
                      </el-collapse-item>
                    </div>
                  </el-collapse>
                </div>
              </el-col>
            </el-row>
          </div>
        </el-tab-pane>
      </el-tabs>
@@ -424,7 +588,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">
@@ -432,7 +596,6 @@
                  placeholder="应收金额"
                  :value="TotalPrice1 + '.00'"
                  disabled
                  style="width: 150px"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="优惠折扣" style="margin-right: 20px">
@@ -440,12 +603,11 @@
                <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>
@@ -469,7 +631,7 @@
                >
                <el-button
                  type="primary"
                  @click="inputChange"
                  @click="inputChanges"
                  v-show="lishi"
                  size="mini"
                  :disabled="confirm"
@@ -488,8 +650,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>
@@ -557,7 +719,7 @@
                    </el-table-column>
                    <el-table-column prop="nowPrice" label="实收金额">
                    </el-table-column>
                    <el-table-column prop="isEat" label="空腹">
                    <el-table-column prop="proCheckMethod" label="空腹">
                    </el-table-column>
                  </el-table>
                </el-collapse-item>
@@ -639,39 +801,6 @@
        ></iframe>
      </div>
    </el-dialog>
    <el-drawer
      title="历史体检记录"
      :visible.sync="table"
      direction="rtl"
      size="50%"
    >
      <el-table :data="HistoryList" style="width: 95%; margin-left: 20px">
        <el-table-column
          property="tjNum"
          label="体检号"
          align="center"
          :show-overflow-tooltip="true"
        ></el-table-column>
        <el-table-column
          property="userName"
          label="姓名"
          align="center"
          :show-overflow-tooltip="true"
        ></el-table-column>
        <el-table-column
          property="tjTime"
          label="体检时间"
          align="center"
          :show-overflow-tooltip="true"
        ></el-table-column>
        <el-table-column
          property="tjProName"
          label="体检项目"
          align="center"
          :show-overflow-tooltip="true"
        ></el-table-column>
      </el-table>
    </el-drawer>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisiblese"
@@ -684,6 +813,7 @@
        <el-button type="primary" @click="copes">确 定</el-button>
      </span>
    </el-dialog>
    <historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
  </div>
</template>
  
@@ -697,16 +827,19 @@
  getPackageListName,
  getaddtTransition,
  getTransitionList,
  getGuide,
  getProParentIdDxList,
  getProSonDxList,
  getaddTj,
  getHistryTjOrderByCusIdCard,
  getHistryTjOrderProByCusIdCard,
} from "@/api/system/tijian";
import { MessageBox } from "element-ui";
import VTreeTransfer from "../tijian/TreeTransfer.vue";
import historyTj from "@/components/historyTj/index";
export default {
  components: {
    VTreeTransfer,
    historyTj,
  },
  dicts: [
    "dict_user_national",
@@ -723,6 +856,16 @@
  name: "Tijian",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      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("");
      }
    };
    // const isCnNewID = (rule, value, callback) => {
    //   var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //加权因子
    //   var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2]; //校验码
@@ -748,6 +891,7 @@
    //   }
    // };
    return {
      filterText: "",
      proIdList: [],
      tableDatas: [],
      dialogVisiblese: false,
@@ -838,9 +982,13 @@
      // 显示搜索条件
      showSearch: true,
      // 树状形状
      Treedata: [],
      TreedataList: [],
      treedataList: [],
      checkedkey: [],
      checkedListkey: [],
      defaultProps: {
        children: "tjProjectList",
        children: [],
        label: "proName",
      },
      formPacId: "",
@@ -893,24 +1041,29 @@
      },
      // 表单校验
      rules: {
        cusName: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
        cusName: [
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        cusSex: [
          { required: true, message: "性别不能为空", trigger: "change" },
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        category: [
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        cusBrithday: [
          { required: true, message: "出生日期不能为空", trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        // cusAddr: [
        //   { required: true, message: "现居住地址不能为空", trigger: "blur" },
        // ],
        cusPhone: [
          { required: true, message: "联系电话不能为空", trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        reservationTime: [
          { required: true, message: "预约日期不能为空", trigger: "change" },
          { required: true, validator: checkPhoneNum, trigger: "change" },
        ],
        timeRegion: [
          { required: true, message: "时间不能为空", trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
        ],
        // cusIdcard: [
        //   { required: true, message: "请输入身份证号", trigger: "blur" },
@@ -921,10 +1074,10 @@
        //   },
        // ],
        cusIdcard: [
          { required: true, message: "身份证号不能为空", trigger: "blur" },
          { required: true, validator: checkPhoneNum, trigger: "blur" },
          {
            pattern: /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/,
            message: "请输入正确的身份证号",
            validator: checkPhoneNum,
            trigger: "blur",
            validator: this.validSjh,
          },
@@ -932,9 +1085,13 @@
      },
    };
  },
  watch: {
    filterText(val) {
      this.$refs.tree.filter(val);
    },
  },
  created() {
    this.getList1();
    this.getData();
  },
  methods: {
    inputChange() {
@@ -971,23 +1128,32 @@
          this.form.cusBrithday = birthday;
          this.form.age = age;
        }
        let cusIdCard = this.form.cusIdcard;
        getHistryTjOrderByCusIdCard(cusIdCard).then((res) => {
          if (res.code == 200) {
            this.table = true;
            this.lishi = true;
            this.HistoryList = res.data;
          }
        });
        // let cusIdCard = this.form.cusIdcard;
        // getHistryTjOrderByCusIdCard(cusIdCard).then((res) => {
        //   if (res.code == 200) {
        this.table = true;
        this.lishi = true;
        //     this.HistoryList = res.data;
        //   }
        // });
      } else {
        // return this.$message.error("请输入正确的身份证号!");;
      }
    },
    inputChanges() {
      this.$refs.historyTj.getlist();
    },
    filterNode(value, data) {
      if (!value) return true;
      return data.proName.indexOf(value) !== -1;
    },
    cope() {
      let cusIdCard = this.form.cusIdcard;
      getHistryTjOrderProByCusIdCard(cusIdCard).then((res) => {
        this.copeList = res.data;
        if (res.data.length != 0) {
        if (res.msg != "暂无历史记录") {
          this.dialogVisiblese = true;
        } else {
          this.$message.warning("暂无历史体检记录!");
@@ -1012,7 +1178,6 @@
            } else {
              item.list.forEach((items) => {
                _this.proIdList.push(items.proId);
                console.log(_this.pacId, 888);
              });
            }
          });
@@ -1085,7 +1250,7 @@
          this.loading = false;
        });
      }
      this.getData();
      // this.getData();
    },
    getData() {
      /** 查询部门下拉树结构 */
@@ -1269,10 +1434,10 @@
    Package() {
      this.taocan = true;
      // this.getData();
      let cusSex = this.form.cusSex;
      this.datekey = Date.now();
      //全部套餐
      this.loading = true;
      deptTreeSelect(cusSex).then((response) => {
        this.newpacName = response.rows;
        try {
@@ -1291,6 +1456,7 @@
        } catch (error) {}
        this.loading = false;
      });
      // this.getDataList();
    },
    // 折扣
@@ -1349,29 +1515,34 @@
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
      if (selection[0]) {
        this.DataList = [];
        // this.DataList = [];
        // this.data = JSON.parse(JSON.stringify(this.dXData));
        selection[0].tjProjectList.forEach((selectionitem) => {
          this.treedataList.forEach((item) => {
          this.Treedata.forEach((item) => {
            if (selectionitem.proName == item.proName) {
              item.disabled = true;
              item.tjProjectList = [];
            }
            if (item.tjProjectList) {
              item.tjProjectList.forEach((item1) => {
                if (selectionitem.proName == item1.proName) {
                  item1.disabled = true;
                  item1.tjProjectList = [];
                }
                if (item1.tjProjectList) {
                  item1.tjProjectList.forEach((item2) => {
                    if (selectionitem.proName == item2.proName) {
                      item2.disabled = true;
                      item2.tjProjectList = [];
                    }
                  });
                }
              });
            // if (item.tjProjectList) {
            //   item.tjProjectList.forEach((item1) => {
            //     if (selectionitem.proName == item1.proName) {
            //       item1.disabled = true;
            //       item1.tjProjectList = [];
            //     }
            //     if (item1.tjProjectList) {
            //       item1.tjProjectList.forEach((item2) => {
            //         if (selectionitem.proName == item2.proName) {
            //           item2.disabled = true;
            //           item2.tjProjectList = [];
            //         }
            //       });
            //     }
            //   });
            // }
          });
          this.TreedataList.forEach((item3) => {
            if (item3.proParentId == selectionitem.proId) {
              item.disabled = true;
            }
          });
        });
@@ -1380,27 +1551,178 @@
        return;
      }
    },
    handleClick(tab, event) {
      if (tab.label == "单项") {
        this.DataList = [];
        this.getDataList();
      }
    },
    getDataList() {
      this.loading = true;
      getProParentIdDxList().then((response) => {
        this.Treedata = response.data.list;
        if (this.tableData[0]) {
          this.tableData[0].tjProjectList.forEach((selectionitem) => {
            this.Treedata.forEach((item) => {
              if (selectionitem.proId == item.proId) {
                item.disabled = true;
              }
            });
          });
        }
        this.checkedkey.push(this.Treedata[0].proId);
        let proId = this.Treedata[0].proId;
        getProSonDxList(proId).then((res) => {
          this.TreedataList = res.data.list;
          this.TreedataList.forEach((item) => {
            this.checkedListkey.push(item.proId);
            this.DataList.push(item);
            this.DataList.forEach((item) => {
              item.propinName = this.Treedata[0].proName;
            });
          });
          this.TotalPrice1 = 0;
          if (this.DataList.length != 0) {
            this.list1 = false;
            this.DataList.forEach((item) => {
              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
            });
          }
        });
        this.loading = false;
      });
    },
    // 点击获取每个树节点
    handleCurrentChecked(data, checked, checkedNodes) {
      if (checked === true) {
        this.DataList.push(data);
      } else {
        this.DataList.pop(data);
      }
      this.proIds = [];
      if (this.DataList.length != 0) {
        this.DataList.forEach((item) => {
          this.proIds.push(item.proId);
      this.dataObj = data;
      if (checked.checkedNodes.length != 0) {
        this.$refs.tree.setCheckedKeys([data.proId]);
        let proId = data.proId;
        getProSonDxList(proId).then((res) => {
          this.TreedataList = res.data.list;
          this.TreedataList.forEach((item) => {
            this.checkedListkey.push(item.proId);
            this.DataList.push(item);
            this.spliceData();
            this.DataList.forEach((item1) => {
              if (item1.proParentId == data.proId) {
                item1.propinName = data.proName;
              }
            });
          });
          this.TotalPrice1 = 0;
          if (this.DataList.length != 0) {
            this.list1 = false;
            this.DataList.forEach((item) => {
              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
            });
          }
        });
      } else {
        this.proIds = [];
      } else if (checked.checkedNodes.length == 0) {
        let proId = data.proId;
        getProSonDxList(proId).then((res) => {
          this.TreedataList = res.data.list;
          this.checkedListkey = [];
        });
      }
    },
    changeCategoryKeys(val) {
      this.proIds = [];
      this.proIds = val;
    spliceData() {
      for (var i = 0; i < this.DataList.length; i++) {
        for (var j = i + 1; j < this.DataList.length; j++) {
          if (this.DataList[i].proId == this.DataList[j].proId) {
            //如果第一个等于第二个,splice方法删除第二个
            this.DataList.splice(j, 1);
            j--;
          }
        }
      }
      return this.DataList;
    },
    // 点击获取每个树节点
    handleCurrentChecked1(data, checked, checkedNodes) {
      if (checked == false) {
        this.DataList.forEach((item, index) => {
          if (item.proId == data.proId) {
            this.DataList.splice(index, 1);
            this.TotalPrice1 = 0;
            this.DataList.forEach((item1) => {
              this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
            });
          }
        });
      } else if (checked == true) {
        this.DataList.push(data);
        this.DataList.forEach((item1) => {
          if (item1.proParentId == this.dataObj.proId) {
            item1.propinName = this.dataObj.proName;
          }
        });
        this.spliceData();
        this.TotalPrice1 = 0;
        this.DataList.forEach((item1) => {
          this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
        });
      }
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      this.DataList.forEach((item, index) => {
        if (item.proId == row.proId) {
          this.DataList.splice(index, 1);
          this.TotalPrice1 = 0;
          this.DataList.forEach((item1) => {
            this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
          });
        }
      });
    },
    //  // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
    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 };
          }
        }
      }
    },
    // 点击获取每个树节点
    // handleCurrentChecked(data, checked, checkedNodes) {
    //   if (checked === true) {
    //     this.DataList.push(data);
    //   } else {
    //     this.DataList.pop(data);
    //   }
    //   this.proIds = [];
    //   if (this.DataList.length != 0) {
    //     this.DataList.forEach((item) => {
    //       this.proIds.push(item.proId);
    //     });
    //   } else {
    //     this.proIds = [];
    //   }
    // },
    // changeCategoryKeys(val) {
    //   this.proIds = [];
    //   this.proIds = val;
    // },
    // 项目提交
    submit() {
@@ -1417,6 +1739,12 @@
        });
      } else {
        _this.pacId = "";
      }
      this.proIds = [];
      if (this.DataList.length != 0) {
        this.DataList.forEach((item) => {
          this.proIds.push(item.proId);
        });
      }
      let data = {
        cusId,
@@ -1581,6 +1909,12 @@
  display: block;
}
.tab3 {
  max-height: 400px;
  overflow-y: auto;
  border: 1px solid #d9d9d9;
}
.el-col-8 {
  width: 330px;
}