wx
qx
2025-04-15 7a2d49aeff16e1122ed33ebb858f093a379fb960
src/views/hosp/advicerules/index.vue
@@ -1,149 +1,66 @@
<template>
  <div class="app-container">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="科室" prop="ks">
        <el-input
          v-model="queryParams.ks"
          placeholder="请输入科室"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-input v-model="queryParams.ks" placeholder="请输入科室" clearable @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="检查项目" prop="jcxm">
        <el-input
          v-model="queryParams.jcxm"
          placeholder="请输入检查项目"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-input v-model="queryParams.jcxm" placeholder="请输入检查项目" clearable @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="主要诊断" prop="zyzd">
        <el-input
          v-model="queryParams.zyzd"
          placeholder="请输入主要诊断"
          clearable
          @keyup.enter.native="handleQuery"
        />
        <el-input v-model="queryParams.zyzd" placeholder="请输入主要诊断" 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-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-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['hosp:advicerules:add']"
          >新增
        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
          v-hasPermi="['hosp:advicerules: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:advicerules:edit']"
          >修改
        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
          v-hasPermi="['hosp:advicerules:edit']">修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['hosp:advicerules:remove']"
          >删除
        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
          v-hasPermi="['hosp:advicerules:remove']">删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-upload2"
          size="mini"
          @click="handleImport"
          >导入
        <el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleImport">导入
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['hosp:advicerules:export']"
          >导出
        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
          v-hasPermi="['hosp:advicerules:export']">导出
        </el-button>
      </el-col>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-row :gutter="20" style="display: flex">
      <el-col :span="4" :xs="24">
      <el-col :span="5" :xs="24">
        <div class="head-container">
          <el-input
            v-model="xmmc"
            placeholder="请输入项目名"
            clearable
            size="small"
            prefix-icon="el-icon-search"
            style="margin-bottom: 20px"
          />
          <el-input v-model="xmmc" placeholder="请输入项目名" clearable size="small" prefix-icon="el-icon-search"
            style="margin-bottom: 20px" />
        </div>
        <div class="scrollable-container">
          <div class="content">
            <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"
            />
            <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>
        </div>
      </el-col>
      <div style="width: 100%">
        <el-table
          v-loading="loading"
          :data="advicerulesList"
          @selection-change="handleSelectionChange"
          height="520"
        >
      <el-col :span="19" :xs="24">
        <el-table v-loading="loading" :data="advicerulesList" @selection-change="handleSelectionChange" height="520">
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="序号" width="50" align="center">
            <template slot-scope="scope">
@@ -154,33 +71,10 @@
          <el-table-column label="编码" align="center" prop="bm" />
          <el-table-column label="科室" align="center" prop="ks" />
          <el-table-column label="检查项目" align="center" prop="jcxm" />
          <el-table-column
            label="主要诊断"
            align="center"
            :show-overflow-tooltip="true"
            width="120"
            prop="zyzd"
          />
          <el-table-column
            label="建议名称"
            align="center"
            :show-overflow-tooltip="true"
            width="150"
            prop="jymc"
          />
          <el-table-column
            label="建议内容"
            align="center"
            :show-overflow-tooltip="true"
            width="200"
            prop="jynr"
          />
          <el-table-column
            label="性别"
            align="center"
            prop="xb"
            :formatter="formatSex"
          />
          <el-table-column label="主要诊断" align="center" :show-overflow-tooltip="true" width="120" prop="zyzd" />
          <el-table-column label="建议名称" align="center" :show-overflow-tooltip="true" width="150" prop="jymc" />
          <el-table-column label="建议内容" align="center" :show-overflow-tooltip="true" width="200" prop="jynr" />
          <el-table-column label="性别" align="center" prop="xb" :formatter="formatSex" />
          <el-table-column label="范围" align="center" prop="fwz" />
          <el-table-column label="范围最小值" align="center" prop="fwzxz" />
          <el-table-column label="范围最大值" align="center" prop="fwzdz" />
@@ -191,119 +85,54 @@
          </el-table-column>
          <el-table-column label="是否慢性病" align="center" prop="sfmxb">
          </el-table-column>
          <el-table-column
            label="是否重大疾病"
            align="center"
            width="120"
            prop="sfzdjb"
          ></el-table-column>
          <el-table-column
            label="操作"
            align="center"
            class-name="small-padding fixed-width"
          >
          <el-table-column label="是否重大疾病" align="center" width="120" prop="sfzdjb"></el-table-column>
          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:advicerules:edit']"
              >
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:advicerules:edit']">
              </el-button>
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:advicerules:remove']"
              >
              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:advicerules:remove']">
              </el-button>
            </template>
          </el-table-column>
        </el-table>
        <div class="pag">
      <div class="pag1">
        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize" @pagination="getListByXmId" />
      </div>
    </div>
      </el-col>
    </el-row>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getListByXmId"
    />
    <!-- 添加或修改体检项目建议规则新表对话框 -->
    <el-dialog
      :title="title"
      :visible.sync="open"
      width="1000px"
      append-to-body
      :close-on-click-modal="false"
    >
      <el-form
        ref="form"
        :model="form"
        :rules="rules"
        label-width="80px"
        :inline="true"
      >
    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body :close-on-click-modal="false">
      <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
        <el-form-item label="科室" prop="ks">
          <el-select
            v-model="form.ks"
            placeholder="请选择科室"
            style="width: 200px"
            @change="idFn"
          >
            <el-option
              v-for="item in departmentOptions"
              :key="item.id"
              :label="item.label"
              :value="item.label"
            />
          <el-select v-model="form.ks" placeholder="请选择科室" style="width: 200px" @change="idFn">
            <el-option v-for="item in departmentOptions" :key="item.id" :label="item.label" :value="item.label" />
          </el-select>
        </el-form-item>
        <el-form-item label="检查项目" prop="jcxm">
          <el-input
            v-model="form.jcxm"
            placeholder="请输入检查项目"
            style="width: 200px"
          />
          <el-input v-model="form.jcxm" placeholder="请输入检查项目" style="width: 200px" />
        </el-form-item>
        <el-form-item label="主要诊断" prop="zyzd">
          <el-input
            v-model="form.zyzd"
            placeholder="请输入主要诊断"
            style="width: 200px"
          />
          <el-input v-model="form.zyzd" placeholder="请输入主要诊断" style="width: 200px" />
        </el-form-item>
        <el-form-item label="范围" prop="fwz">
          <el-input
            v-model="form.fwz"
            placeholder="请输入范围"
            style="width: 200px"
          />
          <el-input v-model="form.fwz" placeholder="请输入范围" style="width: 200px" />
        </el-form-item>
        <el-form-item label="最小值" prop="fwzxz">
          <el-input
            v-model="form.fwzxz"
            style="width: 200px"
            placeholder="请输入范围最小值"
          />
          <el-input v-model="form.fwzxz" style="width: 200px" placeholder="请输入范围最小值" />
        </el-form-item>
        <el-form-item label="最大值" prop="fwzdz">
          <el-input
            v-model="form.fwzdz"
            style="width: 200px"
            placeholder="请输入范围最大值"
          />
          <el-input v-model="form.fwzdz" style="width: 200px" placeholder="请输入范围最大值" />
        </el-form-item>
        <el-form-item label="异常标志" prop="ycbz">
          <el-input
            v-model="form.ycbz"
            style="width: 200px"
            placeholder="请输入异常标志"
          />
          <el-input v-model="form.ycbz" style="width: 200px" placeholder="请输入异常标志" />
        </el-form-item>
        <el-form-item label="疾病" prop="sfjb">
@@ -311,66 +140,31 @@
          </el-checkbox>
        </el-form-item>
        <el-form-item label="常见病" prop="sfcjb">
          <el-checkbox
            v-model="form.sfcjb"
            true-label="是"
            false-label=""
          ></el-checkbox>
          <el-checkbox v-model="form.sfcjb" true-label="是" false-label=""></el-checkbox>
        </el-form-item>
        <el-form-item label="慢性病" prop="sfmxb">
          <el-checkbox
            v-model="form.sfmxb"
            true-label="是"
            false-label=""
          ></el-checkbox>
          <el-checkbox v-model="form.sfmxb" true-label="是" false-label=""></el-checkbox>
        </el-form-item>
        <el-form-item label="重大疾病" prop="sfzdjb">
          <el-checkbox
            v-model="form.sfzdjb"
            true-label="是"
            false-label=""
          ></el-checkbox>
          <el-checkbox v-model="form.sfzdjb" true-label="是" false-label=""></el-checkbox>
        </el-form-item>
        <el-form-item label="性别" prop="xb">
          <el-select
            v-model="form.xb"
            placeholder="请选择体检人性别"
            style="width: 200px"
            clearable
          >
            <el-option
              v-for="dict in dict.type.sys_user_sex"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          <el-select v-model="form.xb" placeholder="请选择体检人性别" style="width: 200px" clearable>
            <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
              :value="dict.value"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="建议名称" prop="jymc" style="display: block">
          <el-input
            v-model="form.jymc"
            placeholder="请输入建议名称"
            style="width: 200px"
          />
          <el-input v-model="form.jymc" placeholder="请输入建议名称" style="width: 200px" />
        </el-form-item>
        <el-form-item label="建议内容" prop="jynr">
          <span
            slot="label"
            style="display: inline-block; border-bottom: 2px solid blue"
            @click="getDetailed"
          >
          <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="getDetailed">
            建议内容
          </span>
          <el-input
            v-if="key !== 'N'"
            style="width: 782px"
            type="textarea"
            :rows="3"
            v-model="form.jynr"
            placeholder="请输入建议内容"
          >
          <el-input v-if="key !== 'N'" style="width: 782px" type="textarea" :rows="3" v-model="form.jynr"
            placeholder="请输入建议内容">
          </el-input>
        </el-form-item>
      </el-form>
@@ -380,25 +174,10 @@
      </div>
    </el-dialog>
    <el-dialog
      :title="upload.title"
      :visible.sync="upload.open"
      width="400px"
      append-to-body
    >
      <el-upload
        ref="upload"
        :limit="1"
        accept=".xlsx, .xls"
        :headers="upload.headers"
        :data="data"
        :action="upload.url"
        :disabled="upload.isUploading"
        :on-progress="handleFileUploadProgress"
        :on-success="handleFileSuccess"
        :auto-upload="false"
        drag
      >
    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
      <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :data="data"
        :action="upload.url" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress"
        :on-success="handleFileSuccess" :auto-upload="false" drag>
        <i class="el-icon-upload"></i>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <div class="el-upload__tip text-center" slot="tip">
@@ -423,87 +202,32 @@
    </el-dialog>
    <!-- 建议内容及建议名称弹框 -->
    <el-dialog
      title="建议内容"
      :visible.sync="dialogTableVisible"
      width="80%"
      :close-on-click-modal="false"
      @close="clearForm"
    >
    <el-dialog title="建议内容" :visible.sync="dialogTableVisible" width="80%" :close-on-click-modal="false"
      @close="clearForm">
      <div class="app-container">
        <el-form
          :model="form"
          ref="queryForm"
          size="small"
          :inline="true"
          v-show="showSearch"
          label-width="68px"
        >
        <el-form :model="form" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
          <el-form-item label="标题" prop="title">
            <el-input
              v-model="queryParam1.bt"
              placeholder="请输入标题"
              clearable
              @keyup.enter.native="handlecharge"
            />
            <el-input v-model="queryParam1.bt" placeholder="请输入标题" clearable @keyup.enter.native="handlecharge" />
          </el-form-item>
          <el-form-item label="建议内容" prop="jynr">
            <el-input
              v-model="queryParam1.nr"
              placeholder="请输入建议"
              clearable
              @keyup.enter.native="handlecharge"
            />
            <el-input v-model="queryParam1.nr" placeholder="请输入建议" clearable @keyup.enter.native="handlecharge" />
          </el-form-item>
          <el-form-item>
            <el-button
              type="primary"
              icon="el-icon-search"
              size="mini"
              @click="handlecharge"
              >搜索</el-button
            >
            <el-button type="primary" icon="el-icon-search" size="mini" @click="handlecharge">搜索</el-button>
          </el-form-item>
        </el-form>
        <el-table
          v-loading="loading"
          :data="adviceList"
          ref="tb"
          @selection-change="handleSelectionChange1"
          border
        >
        <el-table v-loading="loading" :data="adviceList" ref="tb" @selection-change="handleSelectionChange1" border>
          <el-table-column type="selection" align="center" fixed />
          <el-table-column
            label="序号"
            align="center"
            width="60"
            prop="newID"
          />
          <el-table-column
            label="标题"
            align="center"
            prop="title"
            width="120"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="建议"
            align="center"
            prop="advice"
            :show-overflow-tooltip="true"
          />
          <el-table-column label="序号" align="center" width="60" prop="newID" />
          <el-table-column label="标题" align="center" prop="title" width="120" :show-overflow-tooltip="true" />
          <el-table-column label="建议" align="center" prop="advice" :show-overflow-tooltip="true" />
        </el-table>
        <div class="pag">
          <div class="pag1">
            <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="queryParam1.page"
              :limit.sync="queryParam1.pageSize"
              @pagination="getlistJynr"
            />
            <pagination v-show="total > 0" :total="total" :page.sync="queryParam1.page"
              :limit.sync="queryParam1.pageSize" @pagination="getlistJynr" />
          </div>
        </div>
      </div>
@@ -926,7 +650,7 @@
.scrollable-container {
  width: 260px;
  /* 设置容器的宽度 */
  height: 629px;
  height: 520px;
  /* 设置容器的高度 */
  overflow: auto;
  /* 允许内容溢出时显示滚动条 */
@@ -939,7 +663,16 @@
.content {
  width: 1000px;
  /* 设置内容的宽度,以触发水平滚动条 */
  height: 1000px;
  height: 420px;
  /* 设置内容的高度,以触发垂直滚动条 */
}
.pag {
  width: 100%;
  display: flex;
  justify-content: center;
}
.pag1 {
  width: 65%;
}
</style>