qx
qx
2025-05-13 5061c27b5fe99450a192843195b53cc04d95974a
src/components/jianqianwenzhen/index.vue
@@ -1,6 +1,6 @@
<template>
  <div>
    <span class="txt">问诊信息</span>
    <span class="txt"></span>
    <el-form
      ref="form"
      :model="form"
@@ -53,9 +53,27 @@
              </el-select>
            </el-form-item>
            <el-form-item label="工种" prop="gongZhong">
              <el-input v-model="form.gongZhong" placeholder="请输入工种" />
              <el-input
                v-model="form.gongZhong"
                placeholder="请输入工种"
                style="width: 710px"
              />
            </el-form-item>
            <el-form-item label="工龄" prop="gongLing">
            <el-form-item label="单位名称" prop="dwmc">
              <el-input
                v-model="form.dwmc"
                placeholder="请输入单位名称"
                style="width: 710px"
              />
            </el-form-item>
            <el-form-item label="用工单位" prop="ygdw">
              <el-input
                v-model="form.ygdw"
                placeholder="请输入用工单位"
                style="width: 710px"
              />
            </el-form-item>
            <el-form-item label="总工龄" prop="gongLing">
              <!-- <el-input v-model="form.cusName" placeholder="请输入工龄" style="width: 150px" />年 -->
              <el-input-number
                v-model="form.gongLing"
@@ -63,7 +81,25 @@
              ></el-input-number
              >年
            </el-form-item>
            <el-form-item label="接触毒物" prop="contactPoison">
            <el-form-item
              label="接触有害物工龄"
              prop="gongLing"
              label-width="150px"
            >
              <!-- <el-input v-model="form.cusName" placeholder="请输入工龄" style="width: 150px" />年 -->
              <el-input-number
                v-model="form.gongLing"
                label="请输入接触有害物工龄"
              ></el-input-number
              >年
            </el-form-item>
            <el-form-item label="是否复诊" prop="">
              <el-radio-group v-model="radio">
                <el-radio :label="1">是</el-radio>
                <el-radio :label="2">否</el-radio>
              </el-radio-group>
            </el-form-item>
            <!--  <el-form-item label="接触毒物" prop="contactPoison">
              <el-input
                type="textarea"
                rows="4"
@@ -71,17 +107,78 @@
                placeholder="请输入接触毒物"
                style="width: 700px"
              />
            </el-form-item> -->
            <el-form-item label="体检危害因素" prop="tjwhyx">
              <el-select
                filterable
                v-model="form.tjwhyx"
                placeholder="请选择体检危害因素"
                clearable
                style="width: 180px"
              >
                <el-option
                  v-for="dict in dict.type.tj_work_status"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="其他" prop="medicalHistory">
            <el-form-item
              label="接触危害因素"
              prop="tcwhyx"
              style="margin-left: 30px"
            >
              <el-select
                filterable
                v-model="form.tcwhyx"
                placeholder="请选择接触危害因素"
                clearable
                style="width: 180px"
              >
                <el-option
                  v-for="dict in dict.type.tj_work_status"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
            <!-- <el-form-item label="既往病史" prop="medicalHistory">
              <el-input
                type="textarea"
                rows="4"
                v-model="form.medicalHistory"
                placeholder="请输入"
                placeholder="请输入既往病史"
                style="width: 700px"
              />
            </el-form-item> -->
            <el-form-item label="既往病史" prop="medicalHistory">
              <el-select
                v-model="form.medicalHistory"
                multiple
                allow-create
                filterable
                placeholder="请选择或输入既往病史"
                style="width: 700px"
              >
                <el-option
                  v-for="item in rulesList"
                  :key="item.id"
                  :label="item.icdname"
                  :value="item.icdname"
                />
              </el-select>
              <!-- <el-input
                type="textarea"
                rows="4"
                v-model="form.medicalHistory"
                placeholder="请输入既往病史"
                style="width: 700px"
              /> -->
            </el-form-item>
            <el-form-item label="症状" prop="zzsjj">
            <!--  <el-form-item label="症状" prop="zzsjj">
              <el-select
                multiple
                filterable
@@ -97,7 +194,99 @@
                  :value="dict.proName"
                />
              </el-select>
            </el-form-item>
            </el-form-item> -->
            <div style="width: 900px">
              <el-row :gutter="10" class="mb8">
                <el-col :span="1.5">
                  <el-button
                    type="primary"
                    icon="el-icon-plus"
                    size="mini"
                    @click="addmembers()"
                    >添加
                  </el-button>
                </el-col>
                <el-col :span="1.5">
                  <el-button
                    type="danger"
                    icon="el-icon-delete"
                    size="mini"
                    @click="delemembers()"
                    >删除
                  </el-button>
                </el-col>
              </el-row>
              <el-table
                border
                :data="form.tjAskHistorysList"
                ref="tjAskHistorys"
                style="width: 98%"
                @selection-change="handlebingChange"
              >
                <el-table-column type="selection" width="40" align="center" />
                <el-table-column
                  label="序号"
                  width="80"
                  align="center"
                  type="index"
                  :index="indexMethod"
                />
                <el-table-column
                  label="症状名称"
                  prop="diseaseName"
                  align="center"
                >
                  <template slot-scope="scope">
                    <el-select
                      :remote-method="getRemoteData"
                      v-model="scope.row.diseaseName"
                      remote
                      filterable
                      placeholder="请选择症状名称"
                      clearable
                      @change="jibing"
                    >
                      <el-option
                        v-for="dict in zhenghuzangList"
                        :key="dict.id"
                        :label="dict.proName"
                        :value="dict.proName"
                      />
                    </el-select>
                  </template>
                </el-table-column>
                <el-table-column
                  label="症状日期"
                  width="160"
                  prop="diseaseData"
                  align="center"
                >
                  <template slot-scope="scope">
                    <el-date-picker
                      size="mini"
                      v-model="scope.row.diseaseData"
                      align="right"
                      type="date"
                      placeholder="选择日期"
                      :picker-options="pickerOptions"
                      style="width: 130px"
                      value-format="yyyy-MM-dd"
                    >
                    </el-date-picker>
                  </template>
                </el-table-column>
                <el-table-column label="备注" prop="remark" align="center">
                  <template slot-scope="scope">
                    <el-input
                      size="mini"
                      v-model="scope.row.remark"
                      placeholder="请输入备注"
                    />
                  </template>
                </el-table-column>
              </el-table>
            </div>
          </div>
        </el-collapse-item>
        <el-collapse-item title="月经史" name="2" v-show="sex">
@@ -120,7 +309,8 @@
                v-model="form.yjsfyc"
                placeholder="请选择是否异常"
                clearable
                style="width: 150px"
                style="width: 70px"
                @change="onYjsfycChange"
              >
                <el-option
                  v-for="dict in dict.type.sys_yes_no"
@@ -129,6 +319,9 @@
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="月经异常描述" prop="ycms">
              <el-input v-model="form.ycms" style="width: 490px" />
            </el-form-item>
          </div>
        </el-collapse-item>
@@ -177,7 +370,7 @@
              <el-input
                v-model="form.xiyanyear"
                style="width: 70px"
              />年 </el-form-item
              />月 </el-form-item
            ><br />
            <el-form-item label="是否饮酒" prop="yinjiu">
              <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> -->
@@ -200,7 +393,7 @@
              <el-input v-model="form.yinjiupinlv" style="width: 70px" />ml/天
            </el-form-item>
            <el-form-item label="饮酒时间" prop="yinjiuyear">
              <el-input v-model="form.yinjiuyear" style="width: 70px" />年
              <el-input v-model="form.yinjiuyear" style="width: 70px" />月
            </el-form-item>
            <el-form-item label="其他" prop="qita">
              <el-input
@@ -213,7 +406,7 @@
            </el-form-item>
          </div>
        </el-collapse-item>
        <el-collapse-item title="职业病" name="5">
        <el-collapse-item title="职业病" name="5" v-show="zhiyebingshi">
          <div style="width: 900px">
            <el-row :gutter="10" class="mb8">
              <el-col :span="1.5">
@@ -271,6 +464,187 @@
                    />
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column label="疾病id" prop="icdId" v-if="false">
                <!-- <template slot-scope="scope"> -->
                <el-select
                  :remote-method="getRemoteData"
                  v-model="icdId"
                  remote
                  filterable
                  placeholder="请选择病种名"
                  clearable
                >
                  <el-option
                    v-for="dict in rulesList"
                    :key="dict.id"
                    :label="dict.icdname"
                    :value="dict.id"
                  />
                </el-select>
                <!-- </template> -->
              </el-table-column>
              <el-table-column label="疾病名称" prop="diseaseName">
                <template slot-scope="scope">
                  <!-- <el-input
                    size="mini"
                    v-model="scope.row.diseaseName"
                    placeholder="请输入疾病名称"
                  /> -->
                  <el-select
                    :remote-method="getRemoteData"
                    v-model="scope.row.diseaseName"
                    remote
                    filterable
                    placeholder="请选择病种名"
                    clearable
                    @change="jibing"
                  >
                    <el-option
                      v-for="dict in rulesList"
                      :key="dict.id"
                      :label="dict.icdname"
                      :value="dict.icdname"
                    />
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column label="诊断日期" prop="diseaseData">
                <template slot-scope="scope">
                  <!-- <el-input
                v-model="scope.row.diseaseData"
                placeholder="请输入诊断日期"
              /> -->
                  <el-date-picker
                    size="mini"
                    v-model="scope.row.diseaseData"
                    align="right"
                    type="date"
                    placeholder="选择日期"
                    :picker-options="pickerOptions"
                    style="width: 130px"
                    value-format="yyyy-MM-dd"
                  >
                  </el-date-picker>
                </template>
              </el-table-column>
              <el-table-column label="诊断单位" prop="diseaseCompany">
                <template slot-scope="scope">
                  <el-input
                    size="mini"
                    v-model="scope.row.diseaseCompany"
                    placeholder="请输入诊断单位"
                  />
                </template>
              </el-table-column>
              <el-table-column label="是否痊愈" prop="isOk">
                <template slot-scope="scope">
                  <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                  <el-select
                    filterable
                    size="mini"
                    v-model="scope.row.isOk"
                    placeholder="请选择是否痊愈"
                    clearable
                  >
                    <el-option
                      v-for="dict in dict.type.sys_yes_no"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    />
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column label="备注" prop="remark">
                <template slot-scope="scope">
                  <el-input
                    size="mini"
                    v-model="scope.row.remark"
                    placeholder="请输入备注"
                  />
                </template>
              </el-table-column>
            </el-table>
          </div>
        </el-collapse-item>
        <el-collapse-item title="既往病史" name="5" v-show="jiwangbingshi">
          <div style="width: 900px">
            <el-row :gutter="10" class="mb8">
              <el-col :span="1.5">
                <el-button
                  type="primary"
                  icon="el-icon-plus"
                  size="mini"
                  @click="addmembers()"
                  >添加
                </el-button>
              </el-col>
              <el-col :span="1.5">
                <el-button
                  type="danger"
                  icon="el-icon-delete"
                  size="mini"
                  @click="delemembers()"
                  >删除
                </el-button>
              </el-col>
            </el-row>
            <el-table
              border
              :data="form.tjAskHistorysList"
              ref="tjAskHistorys"
              style="width: 98%"
              @selection-change="handlebingChange"
            >
              <el-table-column type="selection" width="40" align="center" />
              <!-- <el-table-column
            label="序号"
            align="center"
            prop="index"
            width="50"
          /> -->
              <el-table-column label="疾病类型" prop="type">
                <template slot-scope="scope">
                  <!-- <el-input
                    size="mini"
                    v-model="scope.row.diseaseName"
                    placeholder="请输入疾病名称"
                  /> -->
                  <el-select
                    v-model="scope.row.type"
                    remote
                    filterable
                    placeholder="请选择疾病类型"
                    clearable
                  >
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    />
                  </el-select>
                </template>
              </el-table-column>
              <el-table-column label="疾病id" prop="icdId" v-if="false">
                <!-- <template slot-scope="scope"> -->
                <el-select
                  :remote-method="getRemoteData"
                  v-model="icdId"
                  remote
                  filterable
                  placeholder="请选择病种名"
                  clearable
                >
                  <el-option
                    v-for="dict in rulesList"
                    :key="dict.id"
                    :label="dict.icdname"
                    :value="dict.id"
                  />
                </el-select>
                <!-- </template> -->
              </el-table-column>
              <el-table-column label="疾病名称" prop="diseaseName">
                <template slot-scope="scope">
@@ -518,6 +892,8 @@
      }
    };
    return {
      zhiyebingshi: true,
      jiwangbingshi: true,
      diseaseNames: "",
      zhenghuzangList: [],
      options: [
@@ -531,6 +907,7 @@
        },
      ],
      icdId: "",
      radio: "1",
      zhiye: true,
      queryParams: {
        pageNum: 1,
@@ -578,7 +955,10 @@
      title: "",
      harmTypeList: [],
      // 表单参数
      form: {},
      form: {
        yjsfyc: "", // 是否异常
        ycms: "", // 异常描述
      },
      chageall: [],
      bingshiall: [],
      // 疾病字典表格数据
@@ -593,9 +973,22 @@
            trigger: "blur",
          },
        ],
        ycms: [
          {
            validator: (rule, value, callback) => {
              if (this.form.yjsfyc === "Y" && !value) {
                callback(new Error("月经异常描述不能为空"));
              } else {
                callback();
              }
            },
            trigger: "blur",
          },
        ], // 初始不设置为必填
      },
    };
  },
  watch: {
    jianqianwenzhendata(val, newVla) {
      if (val) {
@@ -610,8 +1003,12 @@
            }
            if (this.form.tjLx === "02") {
              this.zhiye = true;
              this.zhiyebingshi = true;
              this.jiwangbingshi = false;
            } else {
              this.zhiye = false;
              this.zhiyebingshi = false;
              this.jiwangbingshi = true;
            }
            if (this.form.xiyan == null) {
              this.form.xiyan = "1";
@@ -634,6 +1031,10 @@
            if (this.form.yinjiuyear == null) {
              this.form.yinjiuyear = "0";
            }
            // 设置默认值
            if (this.form.gongLing == null) {
              this.form.gongLing = 1; // 工龄默认值
            }
            this.form.tjAskHistorysList = response.data.tjAskHistorysList;
            // this.isdisabled= true
          });
@@ -646,6 +1047,8 @@
    this.getList();
    this.getzhenzhuangList();
    console.log("接收", this.jianqianwenzhendata);
    // console.log(this.dict.type.sys_yes_no,666666);
    if (this.jianqianwenzhendata.length == 1) {
      this.jianqianwenzhendata.forEach((item) => {
        let tjNumber = item;
@@ -658,8 +1061,12 @@
          }
          if (this.form.tjLx === "02") {
            this.zhiye = true;
            this.zhiyebingshi = true;
            this.jiwangbingshi = false;
          } else {
            this.zhiye = false;
            this.zhiyebingshi = false;
            this.jiwangbingshi = true;
          }
          if (this.form.xiyan == null) {
            this.form.xiyan = "1";
@@ -694,7 +1101,6 @@
    getList() {
      list(this.queryParams).then((response) => {
        this.rulesList = response.rows;
        console.log(this.rulesList);
      });
    },
@@ -771,13 +1177,29 @@
      this.$forceUpdate();
    },
    indexMethod(index) {
      return (
        (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1
      );
    },
    onYjsfycChange() {
      // 手动触发“月经异常描述”的校验
      this.$nextTick(() => {
        this.$refs.form.validateField('ycms');
      });
    },
    jibing(sel) {
      console.log(sel);
      this.diseaseNames = sel;
      this.rulesList.forEach((item) => {
        if (sel == item.icdname) {
          this.icdId = item.id;
          console.log(this.icdId);
        }
      });
      this.form.tjAskHistorysList.forEach((item) => {
        if (item.diseaseName == sel) {
          item.icdId = this.icdId;
        }
      });
    },
@@ -786,8 +1208,8 @@
      if (query) {
        let data = {
          icdname: query,
           pageNum: 1,
        pageSize: 200,
          pageNum: 1,
          pageSize: 200,
        };
        list(data).then((response) => {
          this.rulesList = response.rows;
@@ -832,19 +1254,33 @@
      this.chageall = selection;
    },
    /** 提交按钮 */
    submitForm() {
      this.form.tjAskHistorysList.forEach(element=>{
        // console.log(element,111);
        this.rulesList.forEach((item) => {
          // console.log(item,222);
        if(element.diseaseName == item.icdname){
          element.icdId = item.id;
        }
      });
      })
    /* submitForm() {
      // this.form.tjAskHistorysList.forEach(element=>{
      //   element.icdId = this.icdId;
      // })
      updateHistory(this.form).then((response) => {
        this.$modal.msgSuccess("修改成功");
        this.form = response.data;
      });
    }, */
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          this.$emit("submitLoading", true);
          updateHistory(this.form)
            .then((response) => {
              this.$message.success("修改成功");
              this.form = response.data; // 更新表单数据
            })
            .catch((error) => {
              this.$message.error("修改失败");
            })
            .finally(() => {
              this.$emit("submitLoading", false);
            });
        } else {
          this.$message.error("请检查表单内容");
        }
      });
    },
  },