1
lkk
2025-04-27 1bff9afb2dfda9824c3956c4a491a1b2261ad306
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,15 +53,44 @@
              </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="gongZhong" >
              <el-input
                v-model="form.gongZhong"
                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"
                label="请输入工龄"
              ></el-input-number
              >年
            </el-form-item>
            <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
@@ -72,12 +101,12 @@
                style="width: 700px"
              />
            </el-form-item>
            <el-form-item label="其他" prop="medicalHistory">
            <el-form-item label="既往病史" prop="medicalHistory">
              <el-input
                type="textarea"
                rows="4"
                v-model="form.medicalHistory"
                placeholder="请输入"
                placeholder="请输入既往病史"
                style="width: 700px"
              />
            </el-form-item>
@@ -213,7 +242,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">
@@ -262,7 +291,6 @@
                    filterable
                    placeholder="请选择疾病类型"
                    clearable
                    @change="jibing"
                  >
                    <el-option
                      v-for="item in options"
@@ -272,6 +300,25 @@
                    />
                  </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">
@@ -291,9 +338,171 @@
                  >
                    <el-option
                      v-for="dict in rulesList"
                      :key="dict.aid"
                      :label="dict.bingzhong"
                      :value="dict.bingzhong"
                      :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">
                  <!-- <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>
@@ -496,7 +705,7 @@
<script>
import { updateHistory, getInfoById, getZhengZhuang } from "@/api/hosp/history";
import { listRules } from "@/api/hosp/rules";
import { list } from "@/api/hosp/rules";
import { listIcd } from "@/api/system/icd";
export default {
  dicts: ["tj_smoking_pinlv", "sys_yes_no", "tj_work_status", "tj_work"],
@@ -504,10 +713,6 @@
  props: {
    jianqianwenzhendata: {
      type: Array, //数组类型
      default: null,
    },
     jianqianwenzhendatas: {
      type: Array, //字符串类型
      default: null,
    },
  },
@@ -523,6 +728,9 @@
      }
    };
    return {
      zhiyebingshi: true,
      jiwangbingshi: true,
      diseaseNames: "",
      zhenghuzangList: [],
      options: [
        {
@@ -534,11 +742,12 @@
          label: "职业病",
        },
      ],
      icd: "",
      icdId: "",
      radio: '1',
      zhiye: true,
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        pageSize: 100,
      },
      dataList: [],
      pickerOptions: {
@@ -614,8 +823,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";
@@ -637,6 +850,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
@@ -644,69 +861,63 @@
        });
        this.loading = false;
      }
      // if (this.fList) {
      //     this.getList()
      // }
    },
    jianqianwenzhendatas(valse, newVla) {
      console.log(valse);
      if (valse) {
        console.log(valse);
          let tjNumber = valse.tjNum;
          console.log(tjNumber,111);
          getInfoById(tjNumber).then((response) => {
            this.form = response.data;
            if (this.form.cusSex === "1") {
              this.sex = true;
            } else {
              this.sex = false;
            }
            if (this.form.tjLx === "02") {
              this.zhiye = true;
            } else {
              this.zhiye = false;
            }
            if (this.form.xiyan == null) {
              this.form.xiyan = "1";
            }
            if (this.form.yjsfyc == null) {
              this.form.yjsfyc = "N";
            }
            if (this.form.xiyanpinlv == null) {
              this.form.xiyanpinlv = "0";
            }
            if (this.form.xiyanyear == null) {
              this.form.xiyanyear = "0";
            }
            if (this.form.yinjiu == null) {
              this.form.yinjiu = "1";
            }
            if (this.form.yinjiupinlv == null) {
              this.form.yinjiupinlv = "0";
            }
            if (this.form.yinjiuyear == null) {
              this.form.yinjiuyear = "0";
            }
            this.form.tjAskHistorysList = response.data.tjAskHistorysList;
            // this.isdisabled= true
          });
        this.loading = false;
      }
      // if (this.fList) {
      //     this.getList()
      // }
    },
  },
  created() {
    this.getList();
    this.getzhenzhuangList();
    console.log("接收", this.jianqianwenzhendata);
    if (this.jianqianwenzhendata.length == 1) {
      this.jianqianwenzhendata.forEach((item) => {
        let tjNumber = item;
        getInfoById(tjNumber).then((response) => {
          this.form = response.data;
          if (this.form.cusSex === "1") {
            this.sex = true;
          } else {
            this.sex = false;
          }
          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";
          }
          if (this.form.yjsfyc == null) {
            this.form.yjsfyc = "N";
          }
          if (this.form.xiyanpinlv == null) {
            this.form.xiyanpinlv = "0";
          }
          if (this.form.xiyanyear == null) {
            this.form.xiyanyear = "0";
          }
          if (this.form.yinjiu == null) {
            this.form.yinjiu = "1";
          }
          if (this.form.yinjiupinlv == null) {
            this.form.yinjiupinlv = "0";
          }
          if (this.form.yinjiuyear == null) {
            this.form.yinjiuyear = "0";
          }
          this.form.tjAskHistorysList = response.data.tjAskHistorysList;
          // this.isdisabled= true
        });
      });
      this.loading = false;
    }
  },
  methods: {
    /** 查询疾病字典列表 */
    getList() {
      listRules(this.queryParams).then((response) => {
      list(this.queryParams).then((response) => {
        this.rulesList = response.rows;
      });
    },
@@ -716,28 +927,6 @@
        this.zhenghuzangList = response.data;
      });
    },
    jibing(sel) {
      console.log(sel);
      this.rulesList.forEach((item) => {
        console.log(item);
        if (sel == item.bingzhong) {
          this.icd = item.aid;
        }
      });
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
        let data = {
          bingzhong: query,
        };
        listRules(data).then((response) => {
          this.rulesList = response.rows;
        });
      }
    },
    // 新增行
    addmembers() {
      if (this.form.cusName) {
@@ -805,6 +994,34 @@
      }
      this.$forceUpdate();
    },
    jibing(sel) {
      this.diseaseNames = sel;
      this.rulesList.forEach((item) => {
        if (sel == item.icdname) {
          this.icdId = item.id;
        }
      });
      this.form.tjAskHistorysList.forEach((item) => {
        if (item.diseaseName == sel) {
          item.icdId = this.icdId;
        }
      });
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
        let data = {
          icdname: query,
          pageNum: 1,
          pageSize: 200,
        };
        list(data).then((response) => {
          this.rulesList = response.rows;
        });
      }
    },
    delememberss() {
      let that = this;
      if (that.form.workLogs.length == that.chageall.length) {
@@ -842,11 +1059,33 @@
      this.chageall = selection;
    },
    /** 提交按钮 */
    submitForm() {
      // this.form.tjNum = this.jianqianwenzhendata.tjNum;
      // this.form.tjAskHistorysList.icdId = this.icd;
    /* 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("请检查表单内容");
        }
      });
    },
  },