1
wwl
2025-04-03 599dc1a68be60373048aff95bd53ef8fdd138b4e
src/views/doctor/checkAll/index.vue
@@ -720,8 +720,7 @@
        <el-button @click="jianqians = false">取 消</el-button>
      </span>
    </el-dialog>
    <el-dialog title="新增异常结果" :visible.sync="addNewDialogVisible" width="900px" :before-close="handleAddNewClose"
      class="custom-dialog">
    <el-dialog title="新增异常结果" :visible.sync="addNewDialogVisible" width="900px" class="custom-dialog">
      <el-form :model="newItem" ref="newItemForm" label-width="100px" class="custom-form">
        <el-form-item label="项目分类" prop="parentName">
          <el-select v-model="newItem.parentName" placeholder="请选择项目分类" clearable filterable
@@ -766,14 +765,12 @@
      </span>
    </el-dialog>
    <el-dialog title="快捷建议选择" :visible.sync="showjianyi" width="1000px" class="custom-dialog">
      <!-- 添加筛选下拉框 -->
      <!-- 替换为输入框 -->
      <div style="margin-bottom: 15px;">
        <el-form :inline="true">
          <el-form-item label="科室">
            <el-select v-model="queryParams1.ks" placeholder="请选择或输入科室" clearable filterable allow-create
              style="width: 200px" @change="filterAdvices(true)">
              <el-option v-for="dept in deptList" :key="dept" :label="dept" :value="dept" />
            </el-select>
          <el-form-item label="建议名称">
            <el-input v-model="queryParams1.zyzd" placeholder="请输入建议名称进行筛选" clearable style="width: 200px"
              @input="filterAdvices(true)" onkeydown="if(event.keyCode === 32 || event.keyCode === 13) return false;" />
          </el-form-item>
        </el-form>
      </div>
@@ -784,8 +781,6 @@
        <el-table-column label="建议名称" prop="jymc" align="center" />
        <el-table-column label="建议内容" prop="jynr" align="center" />
      </el-table>
      <!-- 分页组件 -->
      <div class="pag">
@@ -812,6 +807,7 @@
<script>
import _ from 'lodash';
import jianqianwenzhen from "@/components/jianqianwenzhen";
import Packages from "@/components/Packages";
import Prescription from "@/components/Prescription";
@@ -873,7 +869,6 @@
  name: "checkAll",
  data() {
    return {
      deptList: [], // 去重后的科室列表
      selectedAdvice: null,
      activeAdviceIndex: 0,
      advicerulesList: [],
@@ -1026,7 +1021,7 @@
      queryParams1: {
        pageNum: 1,
        pageSize: 10,
        ks: ''
        zyzd: ''
      },
      status1: 0, // 0展示异常1展示项目情况
      viewportHeight: 0,
@@ -1048,6 +1043,7 @@
    });
  },
  methods: {
    handleAdviceBlur(row, index) {
      // 构造 advices 数据
      let advicesToSubmit = [];
@@ -1122,47 +1118,28 @@
    },
    tan(event) {
      // 获取当前建议组的索引
      this.activeAdviceIndex = event.target.closest('.advice-group')
        ? Array.from(event.target.closest('.el-form').querySelectorAll('.advice-group'))
          .indexOf(event.target.closest('.advice-group'))
        : 0; // 获取当前建议组的索引
        : 0;
      // 确保 projectCategories 已加载
      if (!this.projectCategories || this.projectCategories.length === 0) {
        cSWebGetPro(this.tjNumber).then((res) => {
          if (res.data && Array.isArray(res.data)) {
            this.projectCategories = res.data;
            // 提取去重后的科室列表
            this.deptList = [...new Set(this.projectCategories.map(item => item.deptName))].filter(Boolean);
          } else {
            this.$message.warning('未获取到项目分类数据');
            this.projectCategories = [];
            this.deptList = [];
          }
        }).catch((error) => {
          console.error('获取项目分类失败:', error);
          this.$message.error('获取项目分类失败');
          this.projectCategories = [];
          this.deptList = [];
        });
      } else {
        // 如果 projectCategories 已加载,直接更新 deptList
        this.deptList = [...new Set(this.projectCategories.map(item => item.deptName))].filter(Boolean);
      }
      // 重置分页参数
      // 重置分页参数和筛选条件
      this.queryParams1.pageNum = 1;
      this.queryParams1.pageSize = 10;
      this.queryParams1.zyzd = ''; // 清空建议名称输入框
      // 移除科室筛选条件
      delete this.queryParams1.ks; // 确保不携带 ks 参数
      // 加载快捷建议列表
      // 加载所有快捷建议列表
      this.filterAdvices();
      this.showjianyi = true;
    },
    // 下拉框筛选快捷建议(包含分页逻辑)
    filterAdvices(resetPage = false) {
    filterAdvices: _.debounce(function (resetPage = false) {
      if (resetPage) {
        this.queryParams1.pageNum = 1; // 切换科室时重置页码为 1
        this.queryParams1.pageNum = 1;
      }
      listAdvicerules(this.queryParams1).then((response) => {
        this.advicerulesList = response.rows;
@@ -1171,7 +1148,7 @@
        console.error('筛选快捷建议失败:', error);
        this.$message.error('筛选快捷建议失败');
      });
    },
    }, 300),
    submitNewItem() {
      const data = {
        tjh: this.tableAll.tjNumber, // 体检号,从 tableAll 中获取
@@ -1225,19 +1202,9 @@
    },
    handleCategoryChange(value) {
      const selectedCategory = this.projectCategories.find(item => item.proName === value);
      console.log(this.projectCategories, selectedCategory);
      this.queryParams1.ks = selectedCategory.deptName || '';
      if (value) {
        this.newItem.jcxm = value; // 将选择的项目分类赋值给检测项目
      }
    },
    handleAddNewClose(done) {
      // this.$confirm('确定关闭新增窗口吗?未保存的数据将丢失。')
      //   .then(() => done())
      //   .catch(() => { });
    },
    // 添加新的建议组
@@ -1482,7 +1449,7 @@
                loading.close();
              }, 3000);
              this.$message({
                message: "报告正在生成,请两分钟后预览!",
                message: "请撤回重新生成报告",
                type: "error"
              });
            } else {
@@ -1645,8 +1612,14 @@
      if (this.textarea1 == null) {
        this.textarea1 = "";
      }
      console.log(data)
      data.forEach((item) => {
        this.textarea1 += item.advice;
        if(item.advice){
          this.textarea1 += item.advice;
        }else{
          this.textarea1 += item.jynr;
        }
      });
    },
    proposalChange() {