qx
qx
2025-04-15 d65aa7fee641733e13fcbcd6c326d6bd27a45d96
src/views/hosp/ruleAdvice/index.vue
@@ -4,43 +4,100 @@
      <!--部门数据-->
      <el-col :span="4" :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="head-tree">
          <el-tree ref="tree" node-key="id" highlight-current :default-expanded-keys="treeId" :data="deptOptions"
            :props="defaultProps" :expand-on-click-node="false" :auto-expand-parent="false"
            :filter-node-method="filterNode" @node-click="handleNodeClick" />
        <div class="head-tree" style="height: 486px; overflow-y: scroll;">
          <el-tree
            ref="tree"
            node-key="id"
            highlight-current
            :default-expanded-keys="treeId"
            :data="deptOptions"
            :props="defaultProps"
            :expand-on-click-node="false"
            :auto-expand-parent="false"
            :filter-node-method="filterNode"
            @node-click="handleNodeClick"
          />
        </div>
      </el-col>
      <el-col :span="19" :xs="24">
        <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="bzmc">
            <el-input v-model="queryParams.bzmc" placeholder="请输入病种名" clearable @keyup.enter.native="handleQuery" />
            <el-input
              v-model="queryParams.bzmc"
              placeholder="请输入病种名"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="简写" prop="zjf">
            <el-input v-model="queryParams.zjf" placeholder="请输入简写" clearable @keyup.enter.native="handleQuery" />
            <el-input
              v-model="queryParams.zjf"
              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" icon="el-icon-plus" size="mini" @click="handleAdd"
              v-hasPermi="['hosp:ruleAdvice:add']">新增
            <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
              v-hasPermi="['hosp:ruleAdvice:add']"
              >新增
            </el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
              v-hasPermi="['hosp:ruleAdvice:edit']">修改
            <el-button
              type="primary"
              icon="el-icon-edit"
              size="mini"
              :disabled="single"
              @click="handleUpdate"
              v-hasPermi="['hosp:ruleAdvice:edit']"
              >修改
            </el-button>
          </el-col>
          <el-col :span="1.5">
            <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
              v-hasPermi="['hosp:ruleAdvice:remove']">删除
            <el-button
              type="primary"
              icon="el-icon-delete"
              size="mini"
              :disabled="multiple"
              @click="handleDelete"
              v-hasPermi="['hosp:ruleAdvice:remove']"
              >删除
            </el-button>
          </el-col>
          <!-- <el-col :span="1.5">
@@ -54,23 +111,70 @@
          >导出
        </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-table border v-loading="loading" :data="ruleAdviceList" @selection-change="handleSelectionChange">
        <el-table
          border
          v-loading="loading"
          :data="ruleAdviceList"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="序号" align="center" prop="newID" width="55" />
          <el-table-column
            label="序号"
            align="center"
            prop="newID"
            width="55"
          />
          <!-- <el-table-column label="病种id" align="center" prop="bz" :show-overflow-tooltip="true"/> -->
          <el-table-column label="病种名" align="center" prop="bzmc" :show-overflow-tooltip="true" width="170" />
          <el-table-column label="简写" align="center" prop="zjf" :show-overflow-tooltip="true" width="170" />
          <el-table-column label="建议" align="center" prop="jy" :show-overflow-tooltip="true" />
          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="70">
          <el-table-column
            label="病种名"
            align="center"
            prop="bzmc"
            :show-overflow-tooltip="true"
            width="170"
          />
          <el-table-column
            label="简写"
            align="center"
            prop="zjf"
            :show-overflow-tooltip="true"
            width="170"
          />
          <el-table-column
            label="建议"
            align="center"
            prop="jy"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="操作"
            align="center"
            class-name="small-padding fixed-width"
            width="70"
          >
            <template slot-scope="scope">
              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:ruleAdvice:edit']" title="修改">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row)"
                v-hasPermi="['hosp:ruleAdvice:edit']"
                title="修改"
              >
              </el-button>
              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:ruleAdvice:remove']" title="删除">
              <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                @click="handleDelete(scope.row)"
                v-hasPermi="['hosp:ruleAdvice:remove']"
                title="删除"
              >
              </el-button>
            </template>
          </el-table-column>
@@ -78,8 +182,13 @@
        <div class="pag">
          <div class="pag1">
            <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>
      </el-col>
@@ -96,9 +205,22 @@
          />
        </el-form-item> -->
        <el-form-item label="病种名" prop="bzmc">
          <el-select :remote-method="getRemoteData" v-model="form.bzmc" remote filterable style="width: 200px"
            placeholder="请选择病种名" clearable @change="idFn">
            <el-option v-for="dict in rulesList" :key="dict.aid" :label="dict.bingzhong" :value="dict.bingzhong" />
          <el-select
            :remote-method="getRemoteData"
            v-model="form.bzmc"
            remote
            filterable
            style="width: 200px"
            placeholder="请选择病种名"
            clearable
            @change="idFn"
          >
            <el-option
              v-for="dict in rulesList"
              :key="dict.aid"
              :label="dict.bingzhong"
              :value="dict.bingzhong"
            />
          </el-select>
          <!-- <el-input v-model="form.bzmc" placeholder="请输入病种名" /> -->
        </el-form-item>
@@ -106,7 +228,12 @@
          <el-input v-model="form.zjf" placeholder="请输入简写" disabled />
        </el-form-item>
        <el-form-item label="建议" prop="jy">
          <el-input :rows="7" v-model="form.jy" type="textarea" placeholder="请输入内容" />
          <el-input
            :rows="7"
            v-model="form.jy"
            type="textarea"
            placeholder="请输入内容"
          />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
@@ -124,15 +251,25 @@
  delRuleAdvice,
  addRuleAdvice,
  updateRuleAdvice,
  projectTree, getByProId
  projectTree,
  getByProId,
} from "@/api/hosp/ruleAdvice";
import {
  listRules,
} from "@/api/hosp/rules";
import { listRules } from "@/api/hosp/rules";
export default {
  name: "RuleAdvice",
  data() {
    let checkPhoneNum = (rule, value, callback) => {
      console.log(value);
      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
      if (value == "" && value == undefined && !value) {
        return callback("");
      } else if (value != undefined && value != "") {
        return callback();
      } else if (!patter.test(value)) {
        return callback("");
      }
    };
    return {
      deptOptions: [],
      defaultProps: {
@@ -172,10 +309,24 @@
      form: {},
      // 表单校验
      rules: {
        deleted: [
        bzmc: [
          {
            required: true,
            message: "$comment不能为空",
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        zjf: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
        jy: [
          {
            required: true,
            validator: checkPhoneNum,
            trigger: "blur",
          },
        ],
@@ -191,12 +342,11 @@
      if (newVal) {
        this.$nextTick(() => {
          document
            .querySelector('.el-tree-node__children .el-tree-node__content')
            .querySelector(".el-tree-node__children .el-tree-node__content")
            .click();
        });
      }
    },
  },
  created() {
    this.getList();
@@ -206,8 +356,8 @@
    getList() {
      this.loading = true;
      projectTree().then((response) => {
        this.deptOptions = response.data
        this.treeId.push(this.deptOptions[0].id)
        this.deptOptions = response.data;
        this.treeId.push(this.deptOptions[0].id);
        this.loading = false;
      });
    },
@@ -215,11 +365,14 @@
    handleNodeClick(data) {
      this.loading = true;
      let date = {
        proId: data.id
      }
        proId: data.id,
      };
      getByProId(date).then((response) => {
        response.rows.forEach((item, index) => {
          item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1;
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.ruleAdviceList = response.rows;
        this.total = response.total;
@@ -260,7 +413,10 @@
      this.loading = true;
      listRuleAdvice(this.queryParams).then((response) => {
        response.rows.forEach((item, index) => {
          item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1;
          item.newID =
            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
            index +
            1;
        });
        this.ruleAdviceList = response.rows;
        this.total = response.total;
@@ -284,7 +440,7 @@
      this.open = true;
      this.title = "添加病种+意见";
      listRules(this.queryParams).then((response) => {
        this.rulesList = response.rows;
        this.rulesList = response.data.rows;
      });
    },
    /** 修改按钮操作 */
@@ -301,10 +457,10 @@
    getRemoteData(query) {
      if (query) {
        let data = {
          bingzhong: query
        }
          bingzhong: query,
        };
        listRules(data).then((response) => {
          this.rulesList = response.rows;
          this.rulesList = response.data.rows;
        });
      }
    },
@@ -314,7 +470,6 @@
          this.form.bz = item.aid;
          this.form.zjf = item.bzPinyin;
        }
      });
    },
    /** 提交按钮 */
@@ -340,12 +495,16 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.gid || this.ids;
      this.$modal.confirm('是否确认删除病种意见信息编号为"' + ids + '"的数据项?').then(function () {
        return delRuleAdvice(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => { });
      this.$modal
        .confirm('是否确认删除病种意见信息编号为"' + ids + '"的数据项?')
        .then(function () {
          return delRuleAdvice(ids);
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        })
        .catch(() => {});
    },
  },
};