qinxianzhangyao
2024-02-26 e08d725d241c7eca309cb50339ceaf1845471a31
src/views/hosp/project/index.vue
@@ -12,19 +12,21 @@
            style="margin-bottom: 15px"
          />
        </div>
        <div class="head-container">
          <el-tree
            :data="deptOptions"
            :props="defaultProps"
            :expand-on-click-node="false"
            :filter-node-method="filterNode"
            ref="tree"
            node-key="id"
            :default-expanded-keys="treeId"
            highlight-current
            @node-click="handleNodeClick"
          />
        </div>
        <el-scrollbar style="height: 629px; width: 100%">
          <div class="head-container">
            <el-tree
              :data="deptOptions"
              :props="defaultProps"
              :expand-on-click-node="false"
              :filter-node-method="filterNode"
              ref="tree"
              node-key="id"
              :default-expanded-keys="treeId"
              highlight-current
              @node-click="handleNodeClick"
            />
          </div>
        </el-scrollbar>
      </el-col>
      <el-col :span="20" :xs="24">
        <el-form
@@ -76,6 +78,17 @@
              >新增</el-button
            >
          </el-col>
          <el-col :span="1.5">
            <el-button
              :disabled="xiugais"
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleUpdate1"
              v-hasPermi="['hosp:project:add']"
              >修改</el-button
            >
          </el-col>
          <!-- <el-col :span="1.5">
        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['hosp:project:edit']">修改</el-button>
      </el-col> -->
@@ -113,13 +126,6 @@
          :data="projectList"
          ref="tableRef"
          border
          row-key="proId"
          :expand-row-keys="ListId"
          :row-class-name="selectSingleRow"
          :tree-props="{
            children: 'tjProjectList',
            hasChildren: 'tjProjectList.length>0',
          }"
        >
          <!-- :show-overflow-tooltip="true"  -->
          <el-table-column
@@ -159,6 +165,20 @@
          />
          <!-- <el-table-column label="检查方式" align="center" prop="proCheckMethod" :show-overflow-tooltip="true"
            width="110px" /> -->
          <el-table-column
            label="参与小结"
            align="center"
            prop="needReport"
            :show-overflow-tooltip="true"
            width="110px"
          >
            <template slot-scope="scope">
              <dict-tag
                :options="dict.type.sys_yes_no"
                :value="scope.row.needReport"
              />
            </template>
          </el-table-column>
          <el-table-column
            label="是否空腹"
            align="center"
@@ -314,11 +334,25 @@
        <el-form-item label="临床意义" prop="proMeaning">
          <el-input v-model="form.proMeaning" placeholder="请输入临床意义" />
        </el-form-item>
        <el-form-item label="参与小结" prop="needReport">
          <el-select
            v-model="form.needReport"
            placeholder="请选择是否参与小结"
            style="width: 200px"
          >
            <el-option
              v-for="dict in dict.type.sys_yes_no"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否空腹" prop="proCheckMethod">
          <el-select
            v-model="form.proCheckMethod"
            placeholder="请选择是否空腹"
            style="width: 200px"
            style="width: 260px"
          >
            <el-option
              v-for="dict in dict.type.sys_yes_no"
@@ -338,7 +372,8 @@
          <el-select
            v-model="form.proSex"
            placeholder="请选择体检人性别"
            style="width: 260px"
            style="width: 200px"
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_user_sex"
@@ -356,15 +391,15 @@
          <el-select
            v-model="form.deptId"
            placeholder="请选择科室名称"
            @change="changeValue"
            @change="$forceUpdate()"
            filterable
            style="width: 205px"
            style="width: 260px"
          >
            <el-option
              v-for="dict in parentNameList"
              :key="dict.deptId"
              :label="dict.deptName"
              :value="dict.deptId"
              v-for="item in parentNameList"
              :key="item.deptId"
              :label="item.deptName"
              :value="item.deptId"
            />
          </el-select>
        </el-form-item>
@@ -372,7 +407,7 @@
          <el-select
            v-model="form.proStatus"
            placeholder="请选择状态"
            style="width: 260px"
            style="width: 200px"
            filterable
            clearable
          >
@@ -395,7 +430,7 @@
          <el-select
            v-model="form.isSampling"
            placeholder="请选择采样标记"
            style="width: 210px"
            style="width: 260px"
            filterable
            clearable
          >
@@ -411,7 +446,7 @@
          <el-select
            v-model="form.specimenType"
            placeholder="请选择标本类型"
            style="width: 260px"
            style="width: 200px"
            filterable
            clearable
          >
@@ -443,7 +478,7 @@
          <el-select
            v-model="form.resultType"
            placeholder="请选择结果类型"
            style="width: 210px"
            style="width: 260px"
            filterable
            clearable
          >
@@ -455,11 +490,26 @@
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="LIS项目" prop="lisXmmc">
          <span
            slot="label"
            style="display: inline-block; border-bottom: 2px solid blue"
            @click="handleQuerys"
          >
            LIS项目
            <!-- <el-tooltip effect="dark" content="明细项目" placement="bottom">
              <i class='el-icon-question' @click="getDetailed" />
            </el-tooltip> -->
          </span>
          <el-input v-model="form.lisXmmc" placeholder="请输入LIS项目">
          </el-input>
        </el-form-item>
        <el-form-item label="备注" prop="proRemark">
          <el-input
            v-model="form.proRemark"
            placeholder="请输入备注"
            style="width: 510px"
            style="width: 200px"
          />
        </el-form-item>
      </el-form>
@@ -740,8 +790,8 @@
                <pagination
                  v-show="total > 0"
                  :total="total"
                  :page.sync="querycharge.page"
                  :limit.sync="querycharge.pageSize"
                  :page.sync="queryParam.page"
                  :limit.sync="queryParam.pageSize"
                  @pagination="getListByXmId"
                />
              </div>
@@ -755,17 +805,23 @@
        <el-button type="primary" @click="submit">确 定</el-button>
      </div>
    </el-dialog>
    <Packagese ref="aaa" @add="handleChanges" />
  </div>
</template>
<script>
import Packagese from "@/components/Packagese";
import {
  getProject,
  delProject,
  addProject,
  updateProject,
  ProjectTree,
  getlist,
  deptTree,
  deptTree111,
  getAllChildListById,
  getInfoByProId,
} from "@/api/hosp/project";
import { listDept } from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
@@ -796,7 +852,7 @@
    "tj_result_type",
    "sys_yes_no",
  ],
  components: { Treeselect, IconSelect },
  components: { Treeselect, IconSelect, Packagese },
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
@@ -809,6 +865,8 @@
      }
    };
    return {
      xiugais: true,
      xiugaiList: [],
      // 部门树选项
      deptOptions: undefined,
      dialogTableVisible: false,
@@ -874,10 +932,11 @@
        proEngName: null,
        checkType: null,
        deptId: undefined,
        proId: undefined,
      },
      querycharge: {
        pageNum: 1,
        pageSize: 50,
        pageSize: 10,
        xmmc: null,
        pym: null,
      },
@@ -887,7 +946,14 @@
        id: null,
      },
      // 表单参数
      form: {},
      form: {
        needReport: "Y",
        proName: "",
        proPrice: "",
        sfxmId: "",
        lisXmbm: "",
        lisXmmc: "",
      },
      // 表单校验
      rules: {
        createTime: [
@@ -950,6 +1016,21 @@
    this.getDeptTree();
  },
  methods: {
    handleQuerys() {
      this.$refs.aaa.open = true;
      this.$refs.aaa.getAllList();
      this.$refs.aaa.title = "数据字典";
    },
    handleChanges(param1) {
      // if(this.form.pacCode == "不详"){
      //   this.form.cusIdcard = param1[0].xh;
      // }else{
      //   this.form.cusIdcard = param1[0].pacCode;
      // }
      this.form.lisXmbm = param1[0].pacCode;
      this.form.lisXmmc = param1[0].pacName;
    },
    //是否显示选中的值
    display(value) {},
    /** 查询体检项目列表 */
@@ -967,9 +1048,11 @@
        proName: this.queryParams.proName,
        checkType: this.queryParams.checkType,
        deptId: this.queryParams.deptId,
        proId: this.queryParams.proId,
      };
      ProjectTree(data).then((response) => {
        this.projectList = this.handleTree(response.data.list, "proId");
      getAllChildListById(data).then((response) => {
        // this.projectList = this.handleTree(response.data.list, "proId");
        this.projectList = response.data.list;
        this.loading = false;
      });
    },
@@ -984,10 +1067,15 @@
    /** 新增按钮操作 */
    handleAdd(row) {
      this.reset();
      // this.reset();
      this.loading = true;
      ProjectTree().then((response) => {
      this.form.proPrice = 0.0;
      this.form.proName = "";
      this.form.proId = null;
      //  ProjectTree
      getlist().then((response) => {
        if (response.code == 200) {
          this.loading = false;
          this.projectOptions = [];
          const project = { proId: 0, proName: "主类目", children: [] };
          project.children = this.handleTree(response.data.list, "proId");
@@ -999,17 +1087,23 @@
          } else {
            this.open = true;
          }
          this.loading = false;
        }
      });
      this.title = "体检项目信息维护";
      this.form.deptId = this.queryParams.deptId;
      if(this.queryParams.deptId){
        this.form.deptId = this.queryParams.deptId;
      }else{
        this.form.deptId = null
      }
      console.log(this.form.deptId)
      // this.form.proId = this.queryParams.proId;
      this.form.proCheckMethod = "N";
      if ((this.key = "Y")) {
        gettreeList().then((response) => {
          this.deptOptionstree = response.data;
          this.chargeId.push(this.deptOptionstree[0].id);
        });
      }
    },
@@ -1021,11 +1115,17 @@
          this.dialogTableVisible = false;
        } else {
          this.dialogTableVisible = true;
          this.$nextTick(() => {
            this.chargeId.push(this.deptOptionstree[0].id);
          });
          this.getlistSfxm();
        }
      } else if (this.form.proParentId) {
        if (this.form.proParentId != 0) {
          this.dialogTableVisible = true;
          this.$nextTick(() => {
            this.chargeId.push(this.deptOptionstree[0].id);
          });
          this.getlistSfxm();
        } else if (this.form.proParentId == 0) {
          this.dialogTableVisible = false;
@@ -1038,7 +1138,6 @@
    obtain(vals) {
      if (this.projectOptions) {
        this.selectList = vals;
        console.log(this.selectList);
      }
      if (this.selectList.proName === "主类目") {
        this.showPrise = true;
@@ -1103,7 +1202,7 @@
    // // 查询体检项目列表(树形结构)
    getData() {
      /** 查询部门下拉树结构 */
      ProjectTree().then((response) => {
      getAllChildListById().then((response) => {
        this.projectOptions = [];
        const project = { proId: 0, proName: "主类目", children: [] };
        project.children = this.handleTree(response.data.list, "proId");
@@ -1120,12 +1219,13 @@
    getDeptList() {
      listDept(this.queryParams).then((response) => {
        this.parentNameList = response.data;
        console.log(this.parentNameList)
        this.deptList = this.handleTree(response.data, "proId");
      });
    },
    /** 查询部门下拉树结构 */
    getDeptTree() {
      deptTree().then((response) => {
      deptTree111().then((response) => {
        this.deptOptions = response.data;
        this.treeId.push(this.deptOptions[0].id);
      });
@@ -1143,13 +1243,23 @@
    },
    // 节点单击事件
    handleNodeClick(date) {
      if (date.children) {
        this.xiugais = true;
      } else {
        this.xiugais = false;
      }
      let proId = date.id;
      getInfoByProId(proId).then((response) => {
        this.xiugaiList = response.data;
      });
      this.id = date.id;
      this.queryParams.deptId = date.id;
      this.queryParams.proId = date.id;
      let data = {
        deptId: this.queryParams.deptId,
        proId: this.queryParams.proId,
        proName: this.queryParams.proNamez,
      };
      this.loading = true;
      ProjectTree(data).then((response) => {
      getAllChildListById(data).then((response) => {
        if (response.code == 200) {
          if (response.data.list.length >= 1) {
            this.projectList = this.handleTree(response.data.list, "proId");
@@ -1189,12 +1299,12 @@
      this.open = false;
      this.queryParam.id = this.id;
      let data = {
        deptId: this.queryParams.deptId,
        proId: this.queryParams.proId,
      };
      ProjectTree(data).then((response) => {
        this.projectList = this.handleTree(response.data.list, "proId");
        this.ListId.push(this.projectList[0].proId);
        this.key = response.data.key;
      getAllChildListById(data).then((response) => {
        // this.projectList = this.handleTree(response.data.list, "proId");
        // this.ListId.push(this.projectList[0].proId);
        // this.key = response.data.key;
        this.loading = false;
      });
    },
@@ -1225,7 +1335,7 @@
        deptName: null,
        consumablesList: [],
        tjStandardList: [],
        proStatus: "启用",
        proStatus: "0",
      };
      this.resetForm("form");
    },
@@ -1237,7 +1347,7 @@
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.queryParams.deptId = undefined;
      this.queryParams.proId = undefined;
      this.$refs.tree.setCurrentKey(null);
      this.handleQuery();
    },
@@ -1356,6 +1466,10 @@
        this.form.tjStandardList.splice(index, 1);
      }
    },
    handleUpdate1() {
      this.open = true;
      this.form = this.xiugaiList;
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.reset();
@@ -1372,11 +1486,6 @@
          this.showRentPrise = true;
        }
        this.form.deptId = Number(this.form.deptId);
        if (this.form.proStatus === 0) {
          this.form.proStatus = "启用";
        } else {
          this.form.proStatus = "停用";
        }
        if (this.form.proStandard === 0) {
          this.showPrise = true;
          this.showRentPrise = false;
@@ -1384,6 +1493,7 @@
          this.showPrise = false;
          this.showRentPrise = true;
        }
        this.form.proStatus = this.form.proStatus.toString();
        this.form.consumablesList = response.data.consumablesList;
        this.form.tjStandardList = response.data.tjStandardList;
        if (this.form.tjStandardList != null) {
@@ -1424,6 +1534,7 @@
      });
    },
    changeValue(value) {
      console.log(value)
      // this.form.deptName = value;
      this.form.deptId = value;
    },
@@ -1491,14 +1602,11 @@
                  }
                });
              }
              if (this.form.proStatus === "启用") {
                this.form.proStatus = 0;
              } else {
                this.form.proStatus = 1;
              }
              this.form.lisXmbm = this.form.lisXmbm;
              updateProject(this.form).then((response) => {
                this.$modal.msgSuccess("修改成功");
                this.cancel();
                this.getList();
              });
            } else {
              if (this.form.proParentId === 0) {
@@ -1511,14 +1619,11 @@
                this.$message.error("请填写父项名称或科室名称");
                this.open = true;
              } else {
                if (this.form.proStatus === "启用") {
                  this.form.proStatus = 0;
                } else {
                  this.form.proStatus = 1;
                }
                this.form.lisXmbm = this.form.lisXmbm;
                addProject(this.form).then((response) => {
                  this.$modal.msgSuccess("新增成功");
                  this.cancel();
                  this.getList();
                });
              }
            }
@@ -1561,14 +1666,11 @@
                  }
                });
              }
              if (this.form.proStatus === "启用") {
                this.form.proStatus = 0;
              } else {
                this.form.proStatus = 1;
              }
              this.form.lisXmbm = this.form.lisXmbm;
              updateProject(this.form).then((response) => {
                this.$modal.msgSuccess("修改成功");
                this.cancel();
                this.getList();
              });
            } else {
              if (this.form.proParentId === 0) {
@@ -1581,14 +1683,11 @@
                this.$message.error("请填写父项名称或科室名称");
                this.open = true;
              } else {
                if (this.form.proStatus === "启用") {
                  this.form.proStatus = 0;
                } else {
                  this.form.proStatus = 1;
                }
                this.form.lisXmbm = this.form.lisXmbm;
                addProject(this.form).then((response) => {
                  this.$modal.msgSuccess("新增成功");
                  this.cancel();
                  this.getList();
                });
              }
            }
@@ -1667,4 +1766,12 @@
  background-color: #e5f3ff !important;
  color: #333 !important;
}
.el-scrollbar__bar.is-vertical {
  opacity: 1;
  padding-right: 5px;
  width: 7px;
}
.el-scrollbar__wrap {
  overflow-x: hidden;
}
</style>