1
lkk
2025-04-03 5da871a9345d1b80767623cdbe74a45e3ff5532b
src/components/public/index.vue
@@ -2,32 +2,84 @@
    <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">
      <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-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-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-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
        :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-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
        :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-input
            type="textarea"
            v-model="form.desc"
            style="width: 560px"
          ></el-input>
                </el-form-item>
            </el-form>
            <span slot="footer" class="dialog-footer">
@@ -35,80 +87,107 @@
                <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: {
  /*  props: {
        row: {
            type: Object,
        }
    },
  }, */
  props: {
    lastDesc: {
      type: String,
      default: "",
    },
    },
    data() {
        return {
            open: false,
            // 弹出层标题
            title: "",
      yxbx:"",
      //   lastDesc: "",
      total: 0,
            dataList: [],
            // 遮罩层
            loading: false,
            form: {
                desc: ""
        // desc: "",
        desc: this.lastDesc,
            },
            queryParams: {
                bingzhong: "",
                bzPinyin: "",
        pageNum: 1,
        pageSize: 10,
            },
            list: [],
            fList: {}
      fList: {},
      selectedItems: [],
        };
    },
    watch: {
        'row'(val, newVla) {
    row(val, newVla) {
            // console.log(val,newVla)
            this.fList = val
      //   this.fList = val;
            // if (this.fList) {
            //     this.getList()
            // }
        }
    },
    mounted() {
    lastDesc(newVal) {
      this.form.desc = newVal; // 更新 form.desc
      console.log(newVal, 666);
    },
    created() {
    },
  mounted() {},
  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);
              }
            });
          }); */
        });
      });
    },
    /* getList(row, date) {
            if (row.proId) {
                let fList = row
        let fList = row;
                // if (this.fList.proResult == "") {
                let data = {
                    proId: fList.proId,
        //   proId: fList.proId,
                    // ruleStr: fList.proResult,
                }
                getlist(data).then(res => {
                    this.dataList = res.rows
        };
        getlist(data).then((res) => {
          this.dataList = res.rows;
                    this.$nextTick(() => {
                        this.dataList.forEach(item => {
                            this.fList.rulesList.forEach(item1 => {
            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,
@@ -131,10 +210,12 @@
                // }
            }else{
                let data = {
                    proId: row,
                }
                getlist(data).then(res => {
                    this.dataList = res.rows
        //   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 => {
@@ -144,54 +225,85 @@
                    //         })
                    //     })
                    // })
                })
        });
            }
        },
    }, */
        handleQuery() {
            let data = {
                proId: this.fList.proId,
                bingzhong: this.queryParams.bingzhong,
                bzPinyin: this.queryParams.bzPinyin,
            }
            getlist(data).then(res => {
                this.dataList = res.rows
      };
      getlist(data).then((res) => {
        this.dataList = res.rows;
                this.$nextTick(() => {
                    this.dataList.forEach(item => {
                        this.fList.rulesList.forEach(item1 => {
          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 + ","
                }
            });
          });
        });
            });
        },
    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
      this.open = false;
            if (this.form.desc) {
                this.$emit('add', this.form.desc, this.list);
        // this.$emit("add", this.form.desc, this.list);
        this.$emit("add", this.form.desc,this.yxbx);
        // this.lastDesc = this.form.desc;
            }
            this.form.desc = ""
        }
    }
}
      //   this.form.desc = "";
    },
  },
};
</script>
  
<style scoped></style>