qinxianzhangyao
2023-12-06 d9d66b61d2b4b7205a327d3e0c297ab38b579854
src/views/hosp/history/index.vue
@@ -4,119 +4,78 @@
      <div class="hist2">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
          <el-form-item label="姓名" prop="name">
            <el-input v-model="queryParams.name" placeholder="请输入客户名" clearable @keyup.enter.native="handleQuery" style="width:130px"/>
            <el-input v-model="queryParams.name" placeholder="请输入客户名" clearable @keyup.enter.native="handleQuery"
              style="width:130px" />
          </el-form-item>
          <el-form-item label="体检号" prop="tjNum">
            <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="请输入体检号" style="width: 170px" clearable @keyup.enter.native="handleQuery"/>
            <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="请输入体检号" style="width: 170px" clearable
              @keyup.enter.native="handleQuery" />
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
          </el-form-item>
        </el-form>
        <el-table :row-class-name="tableRowClassName" height="650px" v-loading="loading" :data="orderList" ref="multipleTable" @selection-change="handleSelectionChange" border style="width: 95%">
        <el-table :row-class-name="tableRowClassName" height="650px" v-loading="loading" :data="orderList"
          ref="multipleTable" @selection-change="handleSelectionChange" border style="width: 95%">
          <el-table-column type="selection" width="40px" align="center" />
          <el-table-column label="序号" align="center" prop="newID" width="50px" :show-overflow-tooltip="true" fixed="left"/>
          <el-table-column label="姓名" align="center" prop="tjCustomerName" width="110px" :show-overflow-tooltip="true"/>
          <el-table-column label="序号" align="center" prop="newID" width="50px" :show-overflow-tooltip="true"
            fixed="left" />
          <el-table-column label="姓名" align="center" prop="tjCustomerName" width="110px" :show-overflow-tooltip="true" />
          <el-table-column label="性别" align="center" prop="tjCustomerSex" width="55px" :show-overflow-tooltip="true">
            <template slot-scope="scope">
              <span v-if="scope.row.tjCustomerSex == '0'">男</span>
              <span v-if="scope.row.tjCustomerSex == '1'">女</span>
            </template>
          </el-table-column>
          <el-table-column label="电话" align="center" prop="tjCustomerPhone" width="120px" :show-overflow-tooltip="true"/>
          <el-table-column label="年龄" align="center" prop="tjCustomerAge" width="70" :show-overflow-tooltip="true"
          />
          <el-table-column label="电话" align="center" prop="tjCustomerPhone" width="120px" :show-overflow-tooltip="true" />
          <el-table-column label="年龄" align="center" prop="tjCustomerAge" width="70" :show-overflow-tooltip="true" />
          <el-table-column label="年龄单位" align="center" prop="ageUnit" width="80" :show-overflow-tooltip="true">
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.dict_ageunit"
                :value="scope.row.ageUnit"
              />
              <dict-tag :options="dict.type.dict_ageunit" :value="scope.row.ageUnit" />
            </template>
          </el-table-column>
          <el-table-column label="职业" align="center" prop="career" width="120" :show-overflow-tooltip="true">
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.dict_job"
                :value="scope.row.career"
              />
              <dict-tag :options="dict.type.dict_job" :value="scope.row.career" />
            </template>
          </el-table-column>
        </el-table>
        <div class="pagi">
          <div class="pagi1">
            <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="queryParams.pageNum"
              :limit.sync="queryParams.pageSize"
              @pagination="getList"
            />
            <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
              :limit.sync="queryParams.pageSize" @pagination="getList" />
          </div>
        </div>
      </div>
      <div class="hist3">
        <span class="txt">问诊信息</span>
        <el-form
          ref="form"
          :model="form"
          :rules="rules"
          label-width="100px"
          :inline="true"
          size="mini"
        >
        <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true" size="mini">
          <el-collapse class="coll" v-model="activeName" accordion>
            <el-collapse-item
              class="coll"
              title="基本信息"
              name="1"
              style="width: 900px; font-weight: 600"
            >
            <el-collapse-item class="coll" title="基本信息" name="1" style="width: 900px; font-weight: 600">
              <div style="width: 900px">
                <el-form-item label="姓名" prop="cusName">
                  <el-input v-model="form.cusName" placeholder="请输入姓名" />
                </el-form-item>
                <el-form-item label="职业" prop="work">
                  <el-select
                  filterable
                    v-model="form.work"
                    placeholder="请选择职业"
                    clearable
                    style="width: 150px"
                  >
                    <el-option
                      v-for="dict in dict.type.tj_work"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    />
                  <el-select filterable v-model="form.work" placeholder="请选择职业" clearable style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_work" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="工作状态" prop="workStatus">
                  <el-select
                  filterable
                    v-model="form.workStatus"
                    placeholder="请选择工作状态"
                    clearable
                    style="width: 150px"
                  >
                    <el-option
                      v-for="dict in dict.type.tj_work_status"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    />
                  <el-select filterable v-model="form.workStatus" placeholder="请选择工作状态" clearable style="width: 150px">
                    <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="contactPoison">
                  <el-input type="textarea" rows="4" v-model="form.contactPoison" placeholder="请输入接触毒物"
                    style="width: 700px" />
                </el-form-item>
                <el-form-item label="既往病史" prop="medicalHistory">
                  <el-input
                    type="textarea"
                    rows="4"
                    v-model="form.medicalHistory"
                    placeholder="请输入既往病史"
                    style="width: 700px"
                  />
                  <el-input type="textarea" rows="4" v-model="form.medicalHistory" placeholder="请输入既往病史"
                    style="width: 700px" />
                </el-form-item>
              </div>
            </el-collapse-item>
@@ -159,67 +118,31 @@
              <div style="width: 900px">
                <el-form-item label="是否吸烟" prop="xiyan">
                  <!-- <el-input v-model="form.xiyanpinlv" placeholder="请输入吸烟频率" /> -->
                  <el-select
                  filterable
                    v-model="form.xiyan"
                    placeholder="请选择是否吸烟"
                    clearable
                    style="width: 150px"
                  >
                    <el-option
                      v-for="dict in dict.type.tj_smoking_pinlv"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    />
                  <el-select filterable v-model="form.xiyan" placeholder="请选择是否吸烟" clearable style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="吸烟频率" prop="xiyanpinlv">
                  <el-input
                    v-model="form.xiyanpinlv"
                    style="width: 70px"
                  />支/天
                  <el-input v-model="form.xiyanpinlv" style="width: 70px" />支/天
                </el-form-item>
                <el-form-item label="吸烟时间" prop="xiyanyear">
                  <el-input
                    v-model="form.xiyanyear"
                    style="width: 70px"
                  />年 </el-form-item
                ><br />
                  <el-input v-model="form.xiyanyear" style="width: 70px" />年 </el-form-item><br />
                <el-form-item label="是否饮酒" prop="yinjiu">
                  <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> -->
                  <el-select
                  filterable
                    v-model="form.yinjiu"
                    placeholder="请选择是否饮酒"
                    clearable
                    style="width: 150px"
                  >
                    <el-option
                      v-for="dict in dict.type.tj_smoking_pinlv"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                    />
                  <el-select filterable v-model="form.yinjiu" placeholder="请选择是否饮酒" clearable style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="饮酒频率" prop="yinjiupinlv">
                  <el-input
                    v-model="form.yinjiupinlv"
                    style="width: 70px"
                  />ml/天
                  <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-form-item>
                <el-form-item label="其他" prop="qita">
                  <el-input
                    v-model="form.qita"
                    placeholder="请输入其他"
                    type="textarea"
                    style="width: 600px"
                    rows="2"
                  />
                  <el-input v-model="form.qita" placeholder="请输入其他" type="textarea" style="width: 600px" rows="2" />
                </el-form-item>
              </div>
            </el-collapse-item>
@@ -227,26 +150,16 @@
              <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 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"
                      >删除
                    <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%"
                >
                <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="序号"
@@ -256,11 +169,7 @@
          /> -->
                  <el-table-column label="疾病名称" prop="diseaseName">
                    <template slot-scope="scope">
                      <el-input
                        size="mini"
                        v-model="scope.row.diseaseName"
                        placeholder="请输入疾病名称"
                      />
                      <el-input size="mini" v-model="scope.row.diseaseName" placeholder="请输入疾病名称" />
                    </template>
                  </el-table-column>
                  <el-table-column label="诊断日期" prop="diseaseData">
@@ -269,54 +178,95 @@
                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 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="请输入诊断单位"
                      />
                      <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 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="请输入备注"
                      />
                      <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="7">
              <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="addmemberss()">添加
                    </el-button>
                  </el-col>
                  <el-col :span="1.5">
                    <el-button type="danger" icon="el-icon-delete" size="mini" @click="delememberss()">删除
                    </el-button>
                  </el-col>
                </el-row>
                <el-table border :data="form.workLogs" style="width: 98%" @selection-change="handlezhiyeChange">
                  <el-table-column type="selection" width="40" align="center" />
                  <!-- <el-table-column
            label="序号"
            align="center"
            prop="index"
            width="50"
          /> -->
                  <el-table-column label="开始时间" prop="beginTime">
                    <template slot-scope="scope">
                      <el-date-picker size="mini" v-model="scope.row.beginTime" 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="endTime">
                    <template slot-scope="scope">
                      <el-date-picker size="mini" v-model="scope.row.endTime" 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="workCompany">
                    <template slot-scope="scope">
                      <el-input size="mini" v-model="scope.row.workCompany" placeholder="请输入工作单位" />
                    </template>
                  </el-table-column>
                  <el-table-column label="部门" prop="workDept">
                    <template slot-scope="scope">
                      <el-input size="mini" v-model="scope.row.workDept" placeholder="请输入部门" />
                    </template>
                  </el-table-column>
                  <el-table-column label="工种" prop="workType">
                    <template slot-scope="scope">
                      <el-input size="mini" v-model="scope.row.workType" placeholder="请输入工种" />
                    </template>
                  </el-table-column>
                  <el-table-column label="有害因素" prop="workLogs">
                    <template slot-scope="scope">
                      <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                      <el-select filterable size="mini" v-model="scope.row.workLogs" 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="fangHu">
                    <template slot-scope="scope">
                      <el-input size="mini" v-model="scope.row.fangHu" placeholder="请输入防护措施" />
                    </template>
                  </el-table-column>
                </el-table>
@@ -325,20 +275,13 @@
          </el-collapse>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="submitForm" style="margin-top: 10px" :disabled="isdisabled"
            >提交</el-button
          >
          <el-button type="primary" @click="submitForm" style="margin-top: 10px" :disabled="isdisabled">提交</el-button>
        </div>
      </div>
    </div>
    <!-- 添加或修改问诊对话框 -->
    <el-dialog
      :title="title"
      :visible.sync="open"
      width="1000px"
      append-to-body
    >
    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
    </el-dialog>
  </div>
</template>
@@ -353,10 +296,10 @@
export default {
  name: "History",
  dicts: ["tj_smoking_pinlv", "sys_yes_no", "tj_work_status", "tj_work","dict_ageunit","dict_job"],
  dicts: ["tj_smoking_pinlv", "sys_yes_no", "tj_work_status", "tj_work", "dict_ageunit", "dict_job"],
  data() {
    return {
      selectList:[],
      selectList: [],
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
@@ -421,6 +364,8 @@
      },
      // 表单参数
      form: {},
      chageall: [],
      bingshiall: [],
      rew: [],
      // 表单校验
      rules: {
@@ -549,33 +494,33 @@
        let del_row = selection.shift();
        this.$refs.multipleTable.toggleRowSelection(del_row, false);
      }
      selection.forEach(item1=>{
      selection.forEach(item1 => {
        if (item1.tjCustomerSex === 1) {
        this.sex = true;
      } else {
        this.sex = false;
      }
          this.sex = true;
        } else {
          this.sex = false;
        }
      })
      let userId = selection.map((item) => item.userId);
      getInfoById(userId).then((response) => {
        this.form = response.data;
        if(this.form.xiyan == null){
          this.form.xiyan ="1"
        if (this.form.xiyan == null) {
          this.form.xiyan = "1"
        }
        if(this.form.xiyanpinlv == null){
          this.form.xiyanpinlv ="0"
        if (this.form.xiyanpinlv == null) {
          this.form.xiyanpinlv = "0"
        }
        if(this.form.xiyanyear == null){
          this.form.xiyanyear ="0"
        if (this.form.xiyanyear == null) {
          this.form.xiyanyear = "0"
        }
        if(this.form.yinjiu == null){
          this.form.yinjiu ="1"
        if (this.form.yinjiu == null) {
          this.form.yinjiu = "1"
        }
        if(this.form.yinjiupinlv == null){
          this.form.yinjiupinlv ="0"
        if (this.form.yinjiupinlv == null) {
          this.form.yinjiupinlv = "0"
        }
        if(this.form.yinjiuyear == null){
          this.form.yinjiuyear ="0"
        if (this.form.yinjiuyear == null) {
          this.form.yinjiuyear = "0"
        }
        this.form.tjAskHistorysList = response.data.tjAskHistorysList;
        // this.isdisabled= true
@@ -618,6 +563,87 @@
      }
      this.$forceUpdate();
    },
    handlebingChange(selection) {
      this.bingshiall = []
      this.bingshiall = selection
    },
    delemembers() {
      this.form.tjAskHistorysList.forEach((item, index) => {
        this.bingshiall.forEach((item1, index1) => {
          if (item.id == item1.id) {
            if (this.bingshiall.length == 1) {
              this.form.tjAskHistorysList.splice(index, 1)
            } else {
              this.form.tjAskHistorysList.splice(index, index1)
            }
          }
        })
      })
    },
    addmemberss() {
      if (this.form.cusName) {
        if (!this.form.workLogs) {
          this.form.workLogs = [];
          this.form.workLogs.push({
            id: parseInt(this.form.workLogs.length + 1),
            beginTime: "",
            endTime: "",
            workCompany: "",
            workDept: "",
            workType: "",
            workLogs: "",
            fangHu: "",
            Selection,
          });
        } else {
          this.form.workLogs.push({
            id: parseInt(this.form.workLogs.length + 1),
            beginTime: "",
            endTime: "",
            workCompany: "",
            workDept: "",
            workType: "",
            workLogs: "",
            fangHu: "",
            Selection,
          });
        }
        console.log(that.form.workLogs)
      } else {
        Message.warning("请先填写客户名");
      }
      this.$forceUpdate();
    },
    handlezhiyeChange(selection) {
      this.chageall = []
      this.chageall = selection
    },
    delememberss() {
      let that = this
      console.log(that.chageall)
      if (that.form.workLogs.length == that.chageall.length) {
        that.form.workLogs = []
      } else {
        that.chageall.forEach((item1, index1) => {
          that.form.workLogs.forEach((item, index) => {
            if (item.id == item1.id) {
              console.log(111111)
              that.form.workLogs.splice(index, 1)
            }
          })
        })
      }
    },
    /** 提交按钮 */
    submitForm() {
      updateHistory(this.form).then((response) => {
@@ -640,19 +666,24 @@
  display: flex;
  justify-content: space-evenly;
}
.hist2 {
  width: 708px;
}
.hist3 {
  margin-top: 60px;
}
.coll {
  width: 100%;
}
::v-deep .el-collapse-item__header {
  font-weight: 800;
  font-size: 16px;
}
.txt {
  font-size: 16px;
  font-weight: 800;
@@ -661,6 +692,7 @@
  justify-content: center;
  margin-bottom: 20px;
}
.el-table .warning-row {
  background: #e5f3ff !important;
}