1
lkk
2025-04-03 5da871a9345d1b80767623cdbe74a45e3ff5532b
1
4个文件已修改
542 ■■■■■ 已修改文件
src/components/proposal/index.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/public/index.vue 474 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/checkAll/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/picture/picture/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/proposal/index.vue
@@ -38,6 +38,38 @@
      </el-form>
      <el-table
        v-if="tjproposal == '0'"
        :data="advicerulesList"
        ref="elTable"
        v-loading="loading"
        @selection-change="handleSelectionChange"
        border
        height="500px"
      >
        <el-table-column type="selection" width="40" align="center" />
        <el-table-column label="科室" width="70" align="center" prop="ks" />
        <el-table-column
          label="建议名称"
          width="120"
          align="center"
          prop="jymc"
        />
        <el-table-column label="建议内容" align="left" prop="jynr" />
      </el-table>
      <div class="pag" v-if="tjproposal == '0'">
        <div class="pag1">
          <pagination
            v-show="total > 0"
            :total="total1"
            :page.sync="queryParams.pageNum"
            :limit.sync="queryParams.pageSize"
            @pagination="radiotjproposalChange"
          />
        </div>
      </div>
      <el-table
        v-if="tjproposal == '1'"
        :data="dataList"
        ref="elTable"
        v-loading="loading"
@@ -62,7 +94,7 @@
          prop="createTime"
        /> -->
      </el-table>
      <div class="pag">
      <div class="pag"  v-if="tjproposal == '1'">
        <div class="pag1">
          <pagination
            v-show="total > 0"
@@ -86,6 +118,7 @@
  getKjTjAdviceKjbqBySex,
  getCyTjAdviceKjbqBySex,
} from "@/api/hosp/project";
import { listAdvicerules } from "@/api/hosp/advicerules";
import { getInfo } from "@/api/login";
export default {
  name: "Packagese",
@@ -100,7 +133,9 @@
      // 弹出层标题
      title: "",
      total: 0,
      total1:0,
      dataList: [],
      advicerulesList: [],
      // 遮罩层
      loading: false,
@@ -112,7 +147,11 @@
        page: 1,
        pageSize: 10,
        jynr: "",
        jybt:""
        jybt: "",
      },
      queryParams1: {
        pageNum: 1,
        pageSize: 10,
      },
      list: [],
      fList: {},
@@ -148,11 +187,21 @@
    },
    getList() {
      this.loading = true;
      getKjTjAdviceKjbqBySex(this.queryParams).then((res) => {
      /* getKjTjAdviceKjbqBySex(this.queryParams).then((res) => {
        this.dataList = res.data.records;
        this.total = res.data.total;
        this.loading = false;
      });
      }); */
      listAdvicerules(this.queryParams1)
        .then((response) => {
          this.advicerulesList = response.rows;
          this.total1 = response.total;
          this.loading = false;
        })
        .catch((error) => {
          console.error("筛选快捷建议失败:", error);
          this.$message.error("筛选快捷建议失败");
        });
    },
    handleQuery() {
      this.getAllList();
@@ -220,7 +269,7 @@
.pag1 {
  width: 30%;
}
::v-deep .el-dialog__body{
::v-deep .el-dialog__body {
  padding: 7px 20px;
}
</style>
src/components/public/index.vue
@@ -1,197 +1,309 @@
<template>
    <div>
        <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
            <h3 v-if="fList.proResult ">检测项目 :{{ fList.project.proName }}</h3>
            <h3 v-if="fList.proResult ">检测结果 :{{ fList.proResult }}{{fList.project.proMetering}}</h3>
            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
                <el-form-item label="病种名称" prop="bingzhong">
                    <el-input v-model="queryParams.bingzhong" placeholder="请输入简称" clearable
                        @keyup.enter.native="handleQuery" style="width: 120px;" />
                </el-form-item>
                <el-form-item label="拼音码" prop="bzPinyin">
                    <el-input v-model="queryParams.bzPinyin" placeholder="请输入拼音码" clearable
                        @keyup.enter.native="handleQuery" style="width: 130px;" />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
                </el-form-item>
            </el-form>
            <el-table :data="dataList" ref="multipleTable" v-loading="loading" @selection-change="handleSelectionChange"
                border height="320px
        ">
                <el-table-column type="selection" width="40" align="center" />
                <el-table-column label="序号" type="index" width="80px" />
                <el-table-column label="规则" align="center" prop="ruleStr" />
                <el-table-column label="病种名称" align="center" prop="bingzhong" />
            </el-table>
            <h3>已选项目</h3>
            <el-form :model="form" ref="queryForm" size="small" :inline="true" label-width="68px">
                <el-form-item>
                    <el-input type="textarea" v-model="form.desc" style="width: 560px"></el-input>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
                <el-button @click="open = false">取 消</el-button>
                <el-button type="primary" @click="handleOk">确 定</el-button>
            </span>
        </el-dialog>
    </div>
  <div>
    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
      <h3 v-if="fList.proResult">检测项目 :{{ fList.project.proName }}</h3>
      <h3 v-if="fList.proResult">
        检测结果 :{{ fList.proResult }}{{ fList.project.proMetering }}
      </h3>
      <el-form
        :model="queryParams"
        ref="queryForm"
        size="small"
        :inline="true"
        label-width="68px"
      >
        <el-form-item label="病种名称" prop="bingzhong">
          <el-input
            v-model="queryParams.bingzhong"
            placeholder="请输入简称"
            clearable
            @keyup.enter.native="handleQuery"
            style="width: 120px"
          />
        </el-form-item>
        <el-form-item label="拼音码" prop="bzPinyin">
          <el-input
            v-model="queryParams.bzPinyin"
            placeholder="请输入拼音码"
            clearable
            @keyup.enter.native="handleQuery"
            style="width: 130px"
          />
        </el-form-item>
        <el-form-item>
          <el-button
            type="primary"
            icon="el-icon-search"
            size="mini"
            @click="handleQuery"
            >搜索</el-button
          >
        </el-form-item>
      </el-form>
      <el-table
        :data="dataList"
        ref="multipleTable"
        v-loading="loading"
        @selection-change="handleSelectionChange"
        border
        height="320px
        "
      >
        <el-table-column type="selection" width="40" align="center" />
        <el-table-column label="序号" type="index" width="80px" />
        <!-- <el-table-column label="规则" align="center" prop="ruleStr" /> -->
        <el-table-column label="检查结论" align="center" prop="ruleStr" />
        <el-table-column label="检查所见" align="center" prop="yxbx" />
      </el-table>
      <div class="pag">
        <div class="pag1">
          <pagination
            v-show="total > 0"
            :total="total"
            :page.sync="queryParams.pageNum"
            :limit.sync="queryParams.pageSize"
            @pagination="getList"
          />
        </div>
      </div>
      <h3>已选项目</h3>
      <el-form
        :model="form"
        ref="queryForm"
        size="small"
        :inline="true"
        label-width="68px"
      >
        <el-form-item>
          <el-input
            type="textarea"
            v-model="form.desc"
            style="width: 560px"
          ></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="open = false">取 消</el-button>
        <el-button type="primary" @click="handleOk">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
  
<script>
import {
    getlist, getlistByRuleStr
} from "@/api/doctor/check";
import { getlist, getlistByRuleStr } from "@/api/doctor/check";
export default {
    name: 'Public',
  name: "Public",
    props: {
        row: {
            type: Object,
        }
  /*  props: {
    row: {
      type: Object,
    },
    data() {
        return {
            open: false,
            // 弹出层标题
            title: "",
            dataList: [],
            // 遮罩层
            loading: false,
            form: {
                desc: ""
            },
            queryParams: {
                bingzhong: "",
                bzPinyin: "",
            },
            list: [],
            fList: {}
        };
  }, */
  props: {
    lastDesc: {
      type: String,
      default: "",
    },
    watch: {
        'row'(val, newVla) {
            // console.log(val,newVla)
            this.fList = val
            // if (this.fList) {
            //     this.getList()
            // }
        }
  },
  data() {
    return {
      open: false,
      // 弹出层标题
      title: "",
      yxbx:"",
      //   lastDesc: "",
      total: 0,
      dataList: [],
      // 遮罩层
      loading: false,
      form: {
        // desc: "",
        desc: this.lastDesc,
      },
      queryParams: {
        bingzhong: "",
        bzPinyin: "",
        pageNum: 1,
        pageSize: 10,
      },
      list: [],
      fList: {},
      selectedItems: [],
    };
  },
  watch: {
    row(val, newVla) {
      // console.log(val,newVla)
      //   this.fList = val;
      // if (this.fList) {
      //     this.getList()
      // }
    },
    mounted() {
    lastDesc(newVal) {
      this.form.desc = newVal; // 更新 form.desc
      console.log(newVal, 666);
    },
  },
  mounted() {},
    created() {
    },
    methods: {
        getList(row,date) {
            if (row.proId) {
                let fList = row
                // if (this.fList.proResult == "") {
                let data = {
                    proId: fList.proId,
                    // ruleStr: fList.proResult,
                }
                getlist(data).then(res => {
                    this.dataList = res.rows
                    this.$nextTick(() => {
                        this.dataList.forEach(item => {
                            this.fList.rulesList.forEach(item1 => {
                                if (item.aid == item1.aid) {
                                    this.$refs.multipleTable.toggleRowSelection(item, true);
                                }
                            })
                        })
                    })
                })
                // }else{
                //     let data = {
                //         proId: this.fList.proId,
                //         bingzhong: this.queryParams.bingzhong,
                //         ruleStr: this.fList.proResult,
                //     }
                //     getlistByRuleStr(data).then(res => {
                //         this.dataList = res.rows
                //         this.$nextTick(() => {
                //             this.dataList.forEach(item => {
                //                 this.fList.rulesList.forEach(item1 => {
                //                     if (item.aid == item1.aid) {
                //                         this.$refs.multipleTable.toggleRowSelection(item, true);
                //                     }
                //                 })
                //             })
                //         })
                //     })
                // }
            }else{
                let data = {
                    proId: row,
                }
                getlist(data).then(res => {
                    this.dataList = res.rows
                    // this.$nextTick(() => {
                    //     this.dataList.forEach(item => {
                    //         this.fList.rulesList.forEach(item1 => {
                    //             if (item.aid == item1.aid) {
                    //                 this.$refs.multipleTable.toggleRowSelection(item, true);
                    //             }
                    //         })
                    //     })
                    // })
                })
            }
        },
        handleQuery() {
            let data = {
                proId: this.fList.proId,
                bingzhong: this.queryParams.bingzhong,
                bzPinyin: this.queryParams.bzPinyin,
            }
            getlist(data).then(res => {
                this.dataList = res.rows
                this.$nextTick(() => {
                    this.dataList.forEach(item => {
                        this.fList.rulesList.forEach(item1 => {
                            if (item.aid == item1.aid) {
                                this.$refs.multipleTable.toggleRowSelection(item, true);
                            }
                        })
                    })
                })
            })
        },
        handleSelectionChange(selection) {
            this.list = []
            this.list = selection
            this.form.desc = ""
            this.list.forEach(element => {
                if( element.bingzhong){
this.form.desc += element.bingzhong + ","
                }else{
                    this.form.desc += element.ruleStr + ","
                }
  created() {},
  methods: {
    getList(row, date) {
      let data = {
        //   proId: fList.proId,
        // ruleStr: fList.proResult,
      };
      getlist(data).then((res) => {
        this.dataList = res.rows;
        this.$nextTick(() => {
          /* this.dataList.forEach((item) => {
            this.fList.rulesList.forEach((item1) => {
              if (item.aid === item1.aid) {
                this.$refs.multipleTable.toggleRowSelection(item, true);
              }
            });
        },
        handleOk() {
            this.open = false
            if (this.form.desc) {
                this.$emit('add', this.form.desc, this.list);
            }
            this.form.desc = ""
          }); */
        });
      });
    },
    /* getList(row, date) {
      if (row.proId) {
        let fList = row;
        // if (this.fList.proResult == "") {
        let data = {
        //   proId: fList.proId,
          // ruleStr: fList.proResult,
        };
        getlist(data).then((res) => {
          this.dataList = res.rows;
          this.$nextTick(() => {
            this.dataList.forEach((item) => {
              this.fList.rulesList.forEach((item1) => {
                if (item.aid == item1.aid) {
                  this.$refs.multipleTable.toggleRowSelection(item, true);
                }
              });
            });
          });
        });
        // }else{
        //     let data = {
        //         proId: this.fList.proId,
        //         bingzhong: this.queryParams.bingzhong,
        //         ruleStr: this.fList.proResult,
        //     }
        //     getlistByRuleStr(data).then(res => {
        //         this.dataList = res.rows
        //         this.$nextTick(() => {
        //             this.dataList.forEach(item => {
        //                 this.fList.rulesList.forEach(item1 => {
        //                     if (item.aid == item1.aid) {
        //                         this.$refs.multipleTable.toggleRowSelection(item, true);
        //                     }
        //                 })
        //             })
        //         })
        //     })
        // }
      } else {
        let data = {
        //   proId: row,
        };
        getlist(data).then((res) => {
          this.dataList = res.rows;
          console.log(res,888);
          // this.$nextTick(() => {
          //     this.dataList.forEach(item => {
          //         this.fList.rulesList.forEach(item1 => {
          //             if (item.aid == item1.aid) {
          //                 this.$refs.multipleTable.toggleRowSelection(item, true);
          //             }
          //         })
          //     })
          // })
        });
      }
    }, */
    handleQuery() {
      let data = {
        proId: this.fList.proId,
        bingzhong: this.queryParams.bingzhong,
        bzPinyin: this.queryParams.bzPinyin,
      };
      getlist(data).then((res) => {
        this.dataList = res.rows;
        this.$nextTick(() => {
          this.dataList.forEach((item) => {
            this.fList.rulesList.forEach((item1) => {
              if (item.aid == item1.aid) {
                this.$refs.multipleTable.toggleRowSelection(item, true);
              }
            });
          });
        });
      });
    },
    handleSelectionChange(selection) {
        console.log(selection[0].yxbx,123);
      this.list = [];
      this.list = selection;
      this.yxbx = selection[0].yxbx
      //   this.form.desc = "";
      this.list.forEach((element) => {
        if (element.bingzhong) {
          this.form.desc += element.bingzhong + ",";
        } else {
          this.form.desc += element.ruleStr + ",";
        }
    }
}
      });
    },
    /* handleSelectionChange(selection) {
      // 当前选中的项
        const newSelection = selection;
      // 1. 处理取消选中的项
      const removedItems = this.selectedItems.filter(
        (item) => !newSelection.includes(item)
      );
      // 从 form.desc 中移除取消选中的数据
      removedItems.forEach((item) => {
        const itemToRemove = item.bingzhong || item.ruleStr;
        this.form.desc = this.form.desc.replace(
          new RegExp(itemToRemove + ",?", "g"), // 使用正则确保移除所有重复项
          ""
        );
      });
      // 2. 更新已选中的数据列表
      this.selectedItems = newSelection;
      // 3. 添加新选中的项到 form.desc
      newSelection.forEach((element) => {
        const itemToAdd = element.bingzhong || element.ruleStr;
        if (!this.form.desc.includes(itemToAdd)) {
          this.form.desc += itemToAdd + ",";
        }
      });
    }, */
    handleOk() {
      this.open = false;
      if (this.form.desc) {
        // this.$emit("add", this.form.desc, this.list);
        this.$emit("add", this.form.desc,this.yxbx);
        // this.lastDesc = this.form.desc;
      }
      //   this.form.desc = "";
    },
  },
};
</script>
  
<style scoped></style>
src/views/doctor/checkAll/index.vue
@@ -1385,7 +1385,7 @@
    </el-dialog>
    <Packages ref="bbb" :baogao="baogao" />
    <Prescription ref="Pre" :preObj="preObj" />
    <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" />
    <proposal ref="proposal" :cusobj="cusobj" :tjNumber="tjNumber" @event1="eventchange($event)" />
    <createproposal ref="createproposal" :creatobj="creatobj" />
    <el-dialog
src/views/picture/picture/index.vue
@@ -335,7 +335,7 @@
      />
    </div>
    <Public ref="aaa" @add="handleChanges" />
    <Public ref="aaa" :last-desc="form.conclusion" @add="handleChanges" />
  </div>
</template>
@@ -850,14 +850,17 @@
      }
    },
    handleChanges(value) {
    handleChanges(value,yxbx) {
      this.form.conclusion = value;
      this.form.proResult = yxbx;
    },
    submiepilog() {
      this.$refs.aaa.open = true;
      let proId = "1633660948860522585";
      // let proId = null
      this.$refs.aaa.getList(proId);
    },
    tupian() {
      this.dialogVisible = true;