su
su1124
2023-12-29 d10c7c728234b5a9098b7bd5bb7a914a14e33c20
src/views/system/tijianall/index.vue
@@ -11,74 +11,145 @@
            :rules="rules"
            :label-position="labelPosition"
            class="demo-form-inline"
            label-width="78px"
            label-width="84px"
          >
            <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
            <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
                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>
            <el-form-item label="性别" prop="cusSex">
              <el-select
                style="width: 160px"
                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>
              ></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>
            <!-- <input name="ReadBlockBtn" type="button" size="5px"  @click="readblock" value="读卡" /> -->
            <!-- <el-form-item label="出生日期" prop="cusBrithday">
@@ -86,56 +157,149 @@
                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-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="cusEmail">
              <el-input
                v-model="form.cusEmail"
                placeholder="请输入邮箱"
                style="width: 200px"
              />
            </el-form-item>
            <el-form-item label="婚姻" prop="cusMarryStatus">
              <el-select
                style="width: 160px"
                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-form-item label="现住址" prop="cusAddr">
              <el-input
                v-model="form.cusAddr"
                placeholder="请输入现居住地址"
                style="width: 440px"
              />
            </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> -->
@@ -149,101 +313,52 @@
            <!-- <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-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="请输入部门"
                style="width: 160px"
              />
            </el-form-item>
            <el-form-item label="工作单位" prop="company">
              <el-input
                v-model="form.company"
                placeholder="请输入工作单位"
                style="width: 440px"
              />
            </el-form-item>
            <el-form-item label="职业" prop="career">
              <el-select
                filterable
                :disabled="isDisabled"
                v-model="form.career"
                placeholder="请输入职业"
                style="width: 140px"
              >
                <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="reservationTime">
              <el-date-picker
                v-model="form.reservationTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="选择日期"
                :picker-options="setDisabled"
                style="width: 160px"
              >
              </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-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>
        </div>
      </el-col>
@@ -469,7 +584,7 @@
                >
                <el-button
                  type="primary"
                  @click="inputChange"
                  @click="inputChanges"
                  v-show="lishi"
                  size="mini"
                  :disabled="confirm"
@@ -557,7 +672,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 +754,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 +766,7 @@
        <el-button type="primary" @click="copes">确 定</el-button>
      </span>
    </el-dialog>
    <historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
  </div>
</template>
  
@@ -704,9 +787,11 @@
} 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 +808,17 @@
  name: "Tijian",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      console.log(value);
      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 +844,7 @@
    //   }
    // };
    return {
      proIdList: [],
      tableDatas: [],
      dialogVisiblese: false,
      lishi: false,
@@ -892,24 +989,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" },
@@ -920,10 +1022,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,
          },
@@ -970,24 +1072,27 @@
          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();
    },
    cope() {
      let cusIdCard = this.form.cusIdcard;
      getHistryTjOrderProByCusIdCard(cusIdCard).then((res) => {
        console.log(res);
        this.copeList = res.data;
        if (res.data.length != 0) {
        if (res.msg != "暂无历史记录") {
          this.dialogVisiblese = true;
        } else {
          this.$message.warning("暂无历史体检记录!");
@@ -1005,21 +1110,24 @@
        }
        let _this = this;
        console.log(this.tableDatas.length);
        if (this.tableDatas.length != 0) {
           this.tableDatas.forEach((item) => {
          _this.pacId = this.tableDatas.pacId;
          _this.proId = this.tableDatas.proId;
          console.log(_this.pacId, 888);
        });
          this.tableDatas.forEach((item) => {
            if (item.pacId != null) {
              _this.pacId = item.pacId;
            } else {
              item.list.forEach((items) => {
                _this.proIdList.push(items.proId);
                console.log(_this.pacId, 888);
              });
            }
          });
        } else {
          _this.pacId = "";
        }
        let data = {
          cusId,
          pacId: _this.pacId,
          proIds:  _this.proId,
          proIds: _this.proIdList,
        };
        getaddtTransition(data).then((response) => {
          if (response.msg === "操作成功") {
@@ -1339,7 +1447,6 @@
    // 点击多选框获取选中数据
    handleSelectionChange(selection, row) {
      this.tableData = selection;
      console.log(this.tableData);
      if (selection.length > 1) {
        let del_row = selection.shift();
        this.$refs.tb.toggleRowSelection(del_row, false); //设置这一行取消选中
@@ -1452,15 +1559,11 @@
    // 最后提交按钮
    submitPrice() {
      let _this = this;
      console.log(_this.tableData1.length, 111);
      if (_this.tableData1.length > 0) {
        let userId = this.form.cusIdcard;
        console.log(userId, 222);
        let tjType = this.form.tjType == 2 ? "个人" : "团队";
        console.log(this.tableData[0], 444);
        if (this.tableData[0]) {
          var pacId = this.tableData[0].pacId;
          console.log(pacId, 333);
        }
        // let copeWith = this.TotalPrice1;
        // let paidIn = this.TotalPrice;
@@ -1474,7 +1577,6 @@
        // }
        let data;
        if (pacId) {
          console.log(pacId);
          data = {
            pacId,
            department: this.form.department,