| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="120px" fixed="right"> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="120px" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | fixed="right" |
| | |
| | | <el-button type="primary" @click="proposalChange" |
| | | >生成建议</el-button |
| | | > |
| | | |
| | | </div> |
| | | |
| | | |
| | | <el-form |
| | | ref="numberValidateForm" |
| | | label-width="80px" |
| | |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div> |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div>标题:{{ jianyi.bt || "" }}</div> |
| | | <div>内容:{{ jianyi.nr || "" }}</div> |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | > |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="jianyi.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="jianyi.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 如果 advices 为空时,渲染空的输入框 --> |
| | | <div v-else> |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="emptyAdvice.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="emptyAdvice.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-else style="padding: 0 10px">暂无内容</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | :show-overflow-tooltip="true" |
| | | width="353" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | width="78" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="操作" |
| | | width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="handleClick(scope.row)" type="danger" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | <template v-if="item.jyjc == '1'"> |
| | |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div> |
| | | <!-- 如果 advices 非空,渲染其内容 --> |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div>标题:{{ jianyi.bt || "" }}</div> |
| | | <div>内容:{{ jianyi.nr || "" }}</div> |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | > |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="jianyi.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="jianyi.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 如果 advices 为空时,渲染空的输入框 --> |
| | | <div v-else> |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="emptyAdvice.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="emptyAdvice.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-else style="padding: 0 10px">暂无内容</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | |
| | | align="center" |
| | | label="检测项目" |
| | | width="232" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | |
| | | :data="statusList" |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#e6a23c' }" |
| | | |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | |
| | | gettoPdf, |
| | | getModified, |
| | | isPdfOrJimu, |
| | | addOrder, |
| | | } from "@/api/doctor/checkAll"; |
| | | import { getInfoById } from "@/api/hosp/history"; |
| | | import { getInfo } from "@/api/login"; |
| | |
| | | import { getNewDateList } from "@/api/hosp/order"; |
| | | import { getconfigKey } from "@/api/login"; |
| | | import moment from "moment"; |
| | | import { get } from "sortablejs"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | data() { |
| | | return { |
| | | // 更新总检建议 |
| | | |
| | | emptyAdvice: { |
| | | bt: "", |
| | | nr: "", |
| | | }, |
| | | initialTotalCheckAdvice: "", |
| | | initialState: "", |
| | | preObj: {}, |
| | |
| | | tjNum: this.tjNumber, |
| | | }).then((res) => { |
| | | this.yichangList = res.data; |
| | | |
| | | console.log(this.yichangList, 3232); |
| | | this.getExpends(); |
| | | |
| | | this.yichangList.forEach((item) => { |
| | | item.sone.forEach((soneItem) => { |
| | | if ( |
| | | !Array.isArray(soneItem.advices) || |
| | | soneItem.advices.length === 0 |
| | | ) { |
| | | // 如果 advices 是空,设置默认值 |
| | | soneItem.advices = [ |
| | | { |
| | | bt: "", |
| | | nr: "", |
| | | }, |
| | | ]; |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | if (!this.yichangList) { |
| | | _this.$message({ |
| | | type: "warning ", |
| | |
| | | if (this.tjproject == "0") { |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.changedate = response.data; |
| | | |
| | | |
| | | this.changedate.forEach((item) => { |
| | | this.textarea1 = item.checkAdvice; |
| | | }); |
| | |
| | | if (row.type != 1) { |
| | | // 变颜色的条件 |
| | | return { |
| | | backgroundColor: '#AAD8DF !important', // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | backgroundColor: "#AAD8DF !important", // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | // color: "#AAD8DF ", |
| | | }; |
| | | } |
| | |
| | | // } |
| | | // }, |
| | | change(vale) {}, |
| | | /* determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | let advice = this.textarea1; |
| | | let data = { |
| | | tjNumber, |
| | | advice, |
| | | checkStatus: 1, |
| | | }; |
| | | this.loading = true; |
| | | getTjdetailList(data).then((response) => { |
| | | if (response.code === 200) { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | let tjNumber = this.tjNumber; |
| | | let data = { |
| | | userId: this.userId, |
| | | tjNumber: tjNumber, |
| | | state: 1, |
| | | id: this.MsgId, |
| | | }; |
| | | gettoPdf(tjNumber) |
| | | .then((res) => { |
| | | this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!"); |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }) |
| | | getfiedState(data).then((res) => { |
| | | this.drawer = false; |
| | | }); |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }); |
| | | |
| | | for (let i = 0; i < this.changedate.length; i++) { |
| | | this.proIds = this.changedate[i].parentId; |
| | | let remarks = this.changedate[i].remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | getModified(updateOrderRemarkVos).then((response) => {}); |
| | | } |
| | | // determine() { |
| | | // let tjNumber = this.tableAll.tjNumber; |
| | | // let tjh = this.tableAll.tjNumber; |
| | | // // let jyjc = this.yichangList.map(item => item.jyjc || null); |
| | | // let advice = this.textarea1; |
| | | // let data = { |
| | | // tjNumber, |
| | | // advice, |
| | | // checkStatus: 1, |
| | | // }; |
| | | |
| | | // this.changedate.forEach((item) => { |
| | | // this.proIds = item.parentId; |
| | | // // this.remark = item.remark; |
| | | // }); |
| | | }, */ |
| | | // console.log(this.yichangList, 66); |
| | | |
| | | // let dataList = this.yichangList |
| | | // .map((item) => { |
| | | // return item.sone.map((soneItem) => ({ |
| | | // tjh, |
| | | // parentName: item.proName, |
| | | // jcxm: soneItem.proName, |
| | | // map: soneItem.advices, |
| | | // jyjc: item.jyjc, // assuming jyjc belongs to the outer item, not soneItem |
| | | // jcjg: soneItem.proResult, |
| | | // ckfw: soneItem.stanId, |
| | | // dw: soneItem.proAdvice, |
| | | // })); |
| | | // }) |
| | | // .flat(); // 使用 flat() 方法将嵌套数组展平 |
| | | // console.log(dataList, 777); |
| | | |
| | | // /* addOrder(dataList).then((res) => { |
| | | // console.log(res, 999); |
| | | // }); */ |
| | | // getTjdetailList(data) |
| | | // .then((response) => { |
| | | // if (response.code === 200) { |
| | | // this.$modal.msgSuccess("提交成功"); |
| | | |
| | | // // 准备生成报告的请求数据 |
| | | // let reportData = { |
| | | // userId: this.userId, |
| | | // tjNumber: tjNumber, |
| | | // state: 1, |
| | | // id: this.MsgId, |
| | | // }; |
| | | |
| | | // // 生成报告并保持 loading 打开 |
| | | // const reportPromise = gettoPdf(tjNumber) |
| | | // .then((res) => { |
| | | // this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!"); |
| | | // }) |
| | | // .catch((error) => { |
| | | // this.$modal.msgError( |
| | | // "打印报告失败,请前往报告打印页面补打报告!" |
| | | // ); |
| | | // }); |
| | | |
| | | // // 更新状态并提交修改请求 |
| | | // const statePromise = getfiedState(reportData).then((res) => { |
| | | // this.drawer = false; |
| | | // }); |
| | | |
| | | // // const addOrderPromise = addOrder(dataList).then((res) => { |
| | | // // console.log(res, 999); |
| | | // // }); |
| | | |
| | | // // 处理其他修改操作 |
| | | // const updatePromises = this.changedate.map((item) => { |
| | | // this.proIds = item.parentId; |
| | | // let remarks = item.remark; |
| | | // let updateOrderRemarkVos = [ |
| | | // { |
| | | // tjNumber, |
| | | // proId: this.proIds.toString(), |
| | | // remarks, |
| | | // }, |
| | | // ]; |
| | | // return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | // }); |
| | | |
| | | // // 等待所有请求完成 |
| | | // Promise.all([ |
| | | // reportPromise, |
| | | // statePromise, |
| | | // // addOrderPromise, |
| | | // ...updatePromises, |
| | | // ]) |
| | | // .then(() => { |
| | | // // 所有请求完成,关闭 loading |
| | | // this.loading = false; |
| | | // // 更新分页信息 |
| | | // this.queryParams.page = 1; |
| | | // this.queryParams.pageSize = 10; |
| | | // this.submitForm(); |
| | | // this.$forceUpdate(); |
| | | // }) |
| | | // .catch((error) => { |
| | | // // 处理错误情况 |
| | | // this.loading = false; |
| | | // console.error("发生错误:", error); |
| | | // }); |
| | | // } else { |
| | | // // 提交失败,关闭 loading |
| | | // this.loading = false; |
| | | // } |
| | | // }) |
| | | // .catch((error) => { |
| | | // // 提交请求失败,关闭 loading |
| | | // this.loading = false; |
| | | // console.error("提交请求失败:", error); |
| | | // }); |
| | | // }, |
| | | determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | let tjh = this.tableAll.tjNumber; |
| | | let advice = this.textarea1; |
| | | let data = { |
| | | tjNumber, |
| | |
| | | checkStatus: 1, |
| | | }; |
| | | |
| | | // 开始加载 |
| | | this.loading = true; |
| | | console.log(this.yichangList, 6644); |
| | | |
| | | // 提交数据 |
| | | let dataList = this.yichangList |
| | | .map((item) => { |
| | | return item.sone.map((soneItem) => ({ |
| | | tjh, |
| | | parentName: item.proName, |
| | | jcxm: soneItem.proName, |
| | | map: soneItem.advices, |
| | | jyjc: item.jyjc, |
| | | jcjg: soneItem.proResult, |
| | | ckfw: soneItem.stanId, |
| | | dw: soneItem.proAdvice, |
| | | })); |
| | | }) |
| | | .flat(); // 使用 flat() 方法将嵌套数组展平 |
| | | |
| | | getTjdetailList(data) |
| | | .then((response) => { |
| | | if (response.code === 200) { |
| | |
| | | id: this.MsgId, |
| | | }; |
| | | |
| | | // 生成报告并保持 loading 打开 |
| | | const reportPromise = gettoPdf(tjNumber) |
| | | // 调用 addOrderPromise |
| | | console.log(dataList, 5555); |
| | | |
| | | addOrder(dataList) |
| | | .then((res) => { |
| | | this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!"); |
| | | console.log(res, 999); |
| | | if (res.code == 200) { |
| | | gettoPdf(tjNumber) |
| | | .then((res) => { |
| | | this.$modal.msgSuccess( |
| | | "已生成报告!请前往报告核收页面确认!" |
| | | ); |
| | | }) |
| | | .catch(() => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }); |
| | | const statePromise = getfiedState(reportData).then(() => { |
| | | this.drawer = false; |
| | | }); |
| | | const updatePromises = this.changedate.map((item) => { |
| | | this.proIds = item.parentId; |
| | | let remarks = item.remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | }); |
| | | |
| | | // 等待所有请求完成 |
| | | Promise.all([statePromise, ...updatePromises]) |
| | | .then(() => { |
| | | // 所有请求完成,关闭 loading |
| | | this.loading = false; |
| | | // 更新分页信息 |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }) |
| | | .catch((error) => { |
| | | // 处理错误情况 |
| | | this.loading = false; |
| | | console.error("发生错误:", error); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }); |
| | | |
| | | // 更新状态并提交修改请求 |
| | | const statePromise = getfiedState(reportData).then((res) => { |
| | | this.drawer = false; |
| | | }); |
| | | |
| | | // 处理其他修改操作 |
| | | const updatePromises = this.changedate.map((item) => { |
| | | this.proIds = item.parentId; |
| | | let remarks = item.remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | }); |
| | | |
| | | // 等待所有请求完成 |
| | | Promise.all([reportPromise, statePromise, ...updatePromises]) |
| | | .then(() => { |
| | | // 所有请求完成,关闭 loading |
| | | // 如果 addOrderPromise 失败,处理错误 |
| | | this.loading = false; |
| | | // 更新分页信息 |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }) |
| | | .catch((error) => { |
| | | // 处理错误情况 |
| | | this.loading = false; |
| | | console.error("发生错误:", error); |
| | | console.error("addOrderPromise 失败:", error); |
| | | }); |
| | | } else { |
| | | // 提交失败,关闭 loading |
| | |
| | | width: 1700px; |
| | | height: 900px; |
| | | } |
| | | ::v-deep .el-dialog__header{ |
| | | ::v-deep .el-dialog__header { |
| | | padding: 8px; |
| | | } |
| | | ::v-deep .el-dialog__body{ |
| | | padding: 0; |
| | | ::v-deep .el-dialog__body { |
| | | padding: 0; |
| | | } |
| | | ::v-deep .el-button--medium { |
| | | padding: 10px; |
| | | } |
| | | ::v-deep .el-dialog__headerbtn{ |
| | | ::v-deep .el-dialog__headerbtn { |
| | | // position: relative; |
| | | top: 13px; |
| | | } |
| | |
| | | .box { |
| | | display: flex; |
| | | |
| | | height: 100vh; |
| | | // height: 100vh; |
| | | } |
| | | |
| | | .rightbox { |
| | | margin-left: 60px; |
| | | position: fixed; |
| | | top: 107px; |
| | | right: 56px; |
| | | // margin-left: 60px; |
| | | // position: fixed; |
| | | // top: 107px; |
| | | // right: 56px; |
| | | width: 684px; |
| | | |
| | | position: fixed; /* 固定定位 */ |
| | | right: 60px; |
| | | .right { |
| | | background-color: #fff; |
| | | // box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | z-index: 10; |
| | | max-height: calc(100vh - 100px); /* 假设你想为顶部和底部留出一些空间 */ |
| | | overflow-y: auto; /* 允许垂直滚动 */ |
| | | max-height: 900px; |
| | | height: calc(100vh - 100px); |
| | | /* 假设你想为顶部和底部留出一些空间 */ |
| | | overflow-y: auto !important; /* 允许垂直滚动 */ |
| | | padding: 0 0 50px; /* 可选:添加一些内边距以避免内容紧贴边缘 */ |
| | | padding-bottom: 200px; |
| | | } |
| | | } |
| | | |