| | |
| | | <el-col v-show="baogaoqian"> |
| | | <template> |
| | | <el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px"> |
| | | <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index" :lazy="false"> |
| | | <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index" |
| | | :lazy="false"> |
| | | <el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px" |
| | | style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName"> |
| | | <el-table-column prop="project.proName" label="检测项目" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="proResult" label="检测结果" width="150"> |
| | | <!-- <template slot-scope="scope"> |
| | | <el-input type="textarea" autosize size="mini" v-model="scope.row.proResult" autocomplete="off" |
| | | placeholder="请输入检测结果" @focus="handleFocus(scope.row)" @blur="handleInputConfirm(scope.row)" |
| | | @input="vale($event, scope.row)" :disabled="scope.row.project.proName === 'BMI'" |
| | | ></el-input> --> |
| | | <template slot-scope="{ row, $index }"> |
| | | <el-input type="textarea" autosize size="mini" v-model="row.proResult" :ref="`input-item${index}-row${$index}`" |
| | | @keydown.enter.native="keyInputConfirm($event,index,$index)" @focus="handleFocus(row)" |
| | | <template slot-scope="{ row, $index }"> |
| | | <el-input type="textarea" autosize size="mini" v-model="row.proResult" |
| | | :ref="`input-item${index}-row${$index}`" |
| | | @keydown.enter.native="keyInputConfirm($event, index, $index)" @focus="handleFocus(row)" |
| | | @blur="handleInputConfirm(row)" @input="vale($event, row)" |
| | | :disabled="row.project.proName === 'BMI'" |
| | | ></el-input> |
| | | :disabled="row.project.proName === 'BMI'"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="exceptionDesc" label="异常" width="55px" align="center"> |
| | |
| | | <el-col :span="18" v-show="baogaohou"> |
| | | <template> |
| | | <el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px"> |
| | | <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index" :lazy="false"> |
| | | <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index" |
| | | :lazy="false"> |
| | | <el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px" |
| | | style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName"> |
| | | <el-table-column prop="project.proName" label="检测项目" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="proResult" label="检测结果" width="150"> |
| | | <!-- <template slot-scope="scope"> |
| | | <el-input type="textarea" autosize size="mini" v-model="scope.row.proResult" autocomplete="off" |
| | | placeholder="请输入检测结果" @focus="handleFocus(scope.row)" @blur="handleInputConfirm(scope.row)" |
| | | @input="vale"></el-input> --> |
| | | <template slot-scope="{ row, $index }"> |
| | | <el-input type="textarea" autosize size="mini" v-model="row.proResult" :ref="`input-item${index}-row${$index}`" |
| | | @keydown.enter.native="keyInputConfirm($event,index,$index)" @focus="handleFocus(row)" |
| | | <template slot-scope="{ row, $index }"> |
| | | <el-input type="textarea" autosize size="mini" v-model="row.proResult" |
| | | :ref="`input-item${index}-row${$index}`" |
| | | @keydown.enter.native="keyInputConfirm($event, index, $index)" @focus="handleFocus(row)" |
| | | @blur="handleInputConfirm(row)" @input="vale($event, row)" |
| | | :disabled="row.project.proName === 'BMI'" |
| | | ></el-input> |
| | | :disabled="row.project.proName === 'BMI'"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="规则" width="70"> |
| | |
| | | }, |
| | | |
| | | // 输入确认时更新 BMI |
| | | handleInputConfirm(row) { |
| | | handleInputConfirm(row, params) { |
| | | // 如果有 params 且为空,取消异常状态并清空相关字段 |
| | | if (params && params.length === 0) { |
| | | row.exceptionDesc = false; |
| | | row.proResult = ""; |
| | | row.conclusion = ""; |
| | | row.proAdvice = ""; |
| | | row.rulesList = []; |
| | | return; |
| | | } |
| | | |
| | | // 现有 BMI 计算逻辑 |
| | | if (row.proResult) { |
| | | if (row.project.proName === '身高' || row.project.proName === '体重') { |
| | | const heightRow = this.proParentList.sons.find( |
| | |
| | | bmiRow.proResult = bmi || ''; |
| | | } |
| | | } |
| | | |
| | | this.focusrow = row; |
| | | this.proResult = row; |
| | | const pattern3 = new RegExp("[0-9]+"); |
| | | if (pattern3.test(row.proResult)) { |
| | | let data = { |
| | | proId: this.focusrow.proId, |
| | | cusId: this.tableAll.cusId, |
| | | tjNum: this.tableAll.tjNumber, |
| | | keyNum: this.proResult.proResult, |
| | | }; |
| | | AutoGetRule(data).then((res) => { |
| | | this.focusrow.conclusion = ""; |
| | | if (res.data) { |
| | | this.autorule = res.data; |
| | | this.focusrow.rulesList = res.data; |
| | | if (res.data.length > 0) { |
| | | const conditions = ["正常", "未见异常", "阴性", "未见明显异常"]; |
| | | this.focusrow.exceptionDesc = !conditions.some((condition) => |
| | | this.autorule[0].bz.includes(condition) |
| | | ); |
| | | } else { |
| | | this.focusrow.exceptionDesc = false; |
| | | } |
| | | if (this.autorule.length !== 0 && (this.autorule[0] || this.autorule[0].nr)) { |
| | | this.focusrow.proAdvice = this.autorule[0].nr; |
| | | } |
| | | this.autorule.forEach((item) => { |
| | | this.focusrow.conclusion += this.focusrow.conclusion ? item.bz : item.bz; |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | let data = { |
| | | proId: this.focusrow.proId, |
| | | cusId: this.tableAll.cusId, |
| | | keyWord: this.proResult.proResult, // 修改为 proResult.proResult |
| | | tjNum: this.tableAll.tjNumber, |
| | | keyNum: this.proResult.proResult, |
| | | }; |
| | | AutoGetRule(data).then((res) => { |
| | | this.focusrow.conclusion = ""; |
| | | if (res.data) { |
| | | this.autorule = res.data; |
| | | this.focusrow.rulesList = res.data; |
| | | if (res.data.length > 0) { |
| | | const conditions = ["正常", "未见异常", "阴性", "未见明显异常"]; |
| | | this.focusrow.exceptionDesc = !conditions.some((condition) => |
| | | this.autorule[0].bz.includes(condition) |
| | | ); |
| | | } else { |
| | | this.focusrow.exceptionDesc = false; |
| | | } |
| | | if (this.autorule.length !== 0 && (this.autorule[0] || this.autorule[0].nr)) { |
| | | this.focusrow.proAdvice = this.autorule[0].nr; |
| | | } |
| | | this.autorule.forEach((item) => { |
| | | this.focusrow.conclusion += this.focusrow.conclusion ? item.bz : item.bz; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 将当前行添加到 rows 中 |
| | | this.rows.push(row); |
| | | console.log(this.rows, row); |
| | | |
| | | } |
| | | }, |
| | | |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 以下为其他方法,未做修改,仅保留必要部分,其余省略以保持简洁 |
| | | handleFocus(row) { |
| | | this.autorule = []; |
| | | if (!row.resultType || row.resultType == 2 ) { |
| | | if (!row.resultType || row.resultType == 2) { |
| | | return; |
| | | } else { |
| | | this.curindex = row; |
| | | selectZT({ |
| | | proId: row.proId, |
| | | }).then((res) => { |
| | | if (res.data.length > 0) { |
| | | this.$refs.bbb.title = "选择检测结果"; |
| | | // this.$refs.bbb.proId = row.proId; |
| | | this.$refs.bbb.open = true; |
| | | this.$refs.bbb.getList(this.curindex); |
| | | } else { |
| | | this.$refs.bbb.open = false; |
| | | } |
| | | }); |
| | | |
| | | selectZT({ |
| | | proId: row.proId, |
| | | }).then((res) => { |
| | | if (res.data.length > 0) { |
| | | this.$refs.bbb.title = "选择检测结果"; |
| | | // this.$refs.bbb.proId = row.proId; |
| | | this.$refs.bbb.open = true; |
| | | this.$refs.bbb.getList(this.curindex); |
| | | } else { |
| | | this.$refs.bbb.open = false; |
| | | } |
| | | }); |
| | | |
| | | } |
| | | }, |
| | | |
| | |
| | | this.handleInputConfirm(this.curindex, params); |
| | | }, |
| | | |
| | | handleChanges(param1, param2) { |
| | | handleChanges(param1, param2) { |
| | | this.row.conclusion = param1; |
| | | this.row.rulesList = param2; |
| | | }, |
| | |
| | | }, |
| | | |
| | | changDesc(item) { |
| | | console.log(item); |
| | | |
| | | item.conclusion = item.exceptionDesc ? "异常" : "正常"; |
| | | }, |
| | | |
| | |
| | | |
| | | |
| | | |
| | | keyInputConfirm(event,index, currentRowIndex) { |
| | | keyInputConfirm(event, index, currentRowIndex) { |
| | | // 阻止默认回车行为,比如提交表单 |
| | | event.preventDefault(); |
| | | event.stopPropagation() |
| | | event.stopPropagation() |
| | | const nextRowIndex = currentRowIndex + 1; // 计算下一行索引 |
| | | // 如果下一行存在,则聚焦该行的输入框 |
| | | if (nextRowIndex < this.proParentList.sons.length) { |
| | |
| | | }); |
| | | }, |
| | | |
| | | hb() {}, |
| | | hb() { }, |
| | | |
| | | propoChange() { |
| | | this.cusobj = { sex: this.tableAll.cusSex, isZj: 1 }; |
| | |
| | | }, |
| | | |
| | | determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | this.userList.forEach((item) => { |
| | | if (this.doctorName == item.nickName) this.doctorName = item.userId; |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | this.userList.forEach((item) => { |
| | | if (this.doctorName == item.nickName) this.doctorName = item.userId; |
| | | }); |
| | | this.proParentList.sons.forEach((item) => { |
| | | if (this.rows) { |
| | | this.rows.forEach((item1) => { |
| | | if (item1 === item) item = item1; |
| | | }); |
| | | this.proParentList.sons.forEach((item) => { |
| | | if (this.rows) { |
| | | this.rows.forEach((item1) => { |
| | | if (item1 === item) item = item1; |
| | | }); |
| | | } |
| | | this.tjOrderDetail.push({ |
| | | proAdvice: item.proAdvice, |
| | | proName: item.project.proName, |
| | | proId: item.project.proId, |
| | | orderDetailId: item.orderDetailId, |
| | | flowingWaterId: item.flowingWaterId, |
| | | proResult: item.proResult, |
| | | tjStatus: 1, |
| | | isReturn: item.isReturn === true ? 1 : 0, |
| | | exceptionDesc: item.exceptionDesc === true ? 1 : 0, |
| | | conclusion: item.conclusion, |
| | | rulesList: item.rulesList, |
| | | }); |
| | | }); |
| | | } |
| | | this.tjOrderDetail.push({ |
| | | proAdvice: item.proAdvice, |
| | | proName: item.project.proName, |
| | | proId: item.project.proId, |
| | | orderDetailId: item.orderDetailId, |
| | | flowingWaterId: item.flowingWaterId, |
| | | proResult: item.proResult, |
| | | tjStatus: 1, |
| | | isReturn: item.isReturn === true ? 1 : 0, |
| | | exceptionDesc: item.exceptionDesc === true ? 1 : 0, |
| | | conclusion: item.conclusion, |
| | | rulesList: item.rulesList, |
| | | }); |
| | | }); |
| | | |
| | | let data = [{ |
| | | tjNumber, |
| | | proId: this.proId, |
| | | remark: this.proParentList.remark, |
| | | proName: this.proName, |
| | | summaryList: this.vaids1, |
| | | doctorName: this.doctorName, |
| | | tjOrderDetailList: this.tjOrderDetail, |
| | | }]; |
| | | getaddRemark(data).then((res) => { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | this.drawer = false; |
| | | }); |
| | | this.handleClose(); |
| | | }, |
| | | let data = [{ |
| | | tjNumber, |
| | | proId: this.proId, |
| | | remark: this.proParentList.remark, |
| | | proName: this.proName, |
| | | summaryList: this.vaids1, |
| | | doctorName: this.doctorName, |
| | | tjOrderDetailList: this.tjOrderDetail, |
| | | }]; |
| | | getaddRemark(data).then((res) => { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | this.rows = []; // 提交成功后清空 this.rows |
| | | this.drawer = false; |
| | | }); |
| | | this.handleClose(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |