| | |
| | | |
| | | <!-- 点击弹出框 --> |
| | | <el-drawer |
| | | title="" |
| | | custom-class="tanchu" |
| | | :visible.sync="drawer" |
| | | :before-close="handleClose" |
| | | :with-header="false" |
| | |
| | | <i class="el-icon-close" @click="guanbi"></i> |
| | | </div> |
| | | |
| | | <div style="margin-right: 10px; display: flex"> |
| | | <div class="btn1"> |
| | | <div style="margin-right: 10px; display: flex" class="btnbox"> |
| | | <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'"> |
| | | <el-button @click="Graphicreport()" type="primary" |
| | | >图文报告</el-button |
| | | > |
| | | </div> |
| | | <div class="btn2"> |
| | | <div class="btn1"> |
| | | <el-button @click="historicalreport()" type="primary" |
| | | >历史报告</el-button |
| | | > |
| | |
| | | >职业病史</el-button |
| | | > |
| | | </div> |
| | | <div class="btn3"> |
| | | <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'"> |
| | | <el-button @click="jianqian()" type="primary">检前问诊</el-button> |
| | | </div> |
| | | |
| | | <div class="btn4"> |
| | | <el-button @click="xiangmuqingkuang()" type="primary">项目情况</el-button> |
| | | |
| | | <div class="btn1"> |
| | | <el-button @click="xiangmuqingkuang()" type="primary" |
| | | >项目情况</el-button |
| | | > |
| | | </div> |
| | | <div class="btn5"> |
| | | <el-button @click="yichangjieguo()" type="primary">异常结果</el-button> |
| | | <div class="btn1"> |
| | | <el-button @click="yichangjieguo()" type="primary" |
| | | >异常结果</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="box"> |
| | |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="3" |
| | | > |
| | | <el-input |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footers"> |
| | | <el-button type="primary" @click.stop="guanbi">取消</el-button> |
| | | <el-button |
| | | v-if="tjproject == '0' && (msgkcf == 'y' || msgkcf == 'Y')" |
| | | type="primary" |
| | | size="mini" |
| | | @click.stop="guanbi" |
| | | >取消</el-button |
| | | > |
| | | <el-button |
| | | v-if="tjproject == '0'" |
| | | type="primary" |
| | | size="mini" |
| | | @click.stop="rowClick" |
| | | icon="el-icon-edit-outline" |
| | | >开处方</el-button |
| | | > |
| | | <div v-if="tjproject == '0'" style="padding-left: 10px"> |
| | | <div v-if="tjproject == '0'"> |
| | | <el-button |
| | | type="primary" |
| | | @click="determine" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="rightbox"> |
| | | <div class="right"> |
| | | <template v-if="status==0"> |
| | | <div v-for="(item, index) in yichangList" :key="index" > |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #aad8df; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | {{ item.proName || "" }} |
| | | </div> |
| | | <el-table |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#aad8df' }" |
| | | > |
| | | <el-table-column align="center" label="检测项目" width="240"> |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="160" |
| | | > |
| | | </el-table-column> |
| | | <template v-if="status == 0"> |
| | | <div v-for="(item, index) in yichangList" :key="index"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #67c23a; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | {{ item.proName || "" }} |
| | | </div> |
| | | <el-table |
| | | :stripe="true" |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#67C23A' }" |
| | | > |
| | | <el-table-column align="center" label="检测项目" width="220"> |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="160" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column align="center" prop="stanId" label=" 参考范围"> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="proAdvice" label="单位"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div v-if="!yichangList.length">暂无异常结果</div> |
| | | </template> |
| | | <template v-if="status==1"> |
| | | <div v-for="(item, index) in statusList" :key="index"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #aad8df; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | {{ item.proName || "" }} |
| | | </div> |
| | | <el-table |
| | | :data="statusList" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#aad8df' }" |
| | | > |
| | | <el-table-column align="center" label="部门" width="190" prop="deptName"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proName" |
| | | label="项目" |
| | | width="160" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="type" |
| | | :show-overflow-tooltip="true" |
| | | width="60" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.type == '0'">未检</span> |
| | | <span v-if="scope.row.type == '1'">已检</span> |
| | | <span v-if="scope.row.type == '2'">弃检</span> |
| | | <span v-if="scope.row.type == '3'">延期</span> |
| | | <el-table-column |
| | | align="center" |
| | | prop="stanId" |
| | | label=" 参考范围" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="proAdvice" label="单位"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检查时间" |
| | | align="center" |
| | | prop="bcupdateTime" |
| | | width="160" |
| | | /> |
| | | </el-table> |
| | | <template v-if="status == 1"> |
| | | <div> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #e6a23c; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 项目检查情况 |
| | | </div> |
| | | <el-table |
| | | :row-style="redxiangmu" |
| | | :data="statusList" |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#e6a23c' }" |
| | | :expand-row-keys="expends" |
| | | :row-key="getRowKeys" |
| | | :stripe="true" |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <span>{{ props.row.deptName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="部门" |
| | | width="160" |
| | | prop="deptName" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proName" |
| | | label="项目" |
| | | width="160" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="type" |
| | | :show-overflow-tooltip="true" |
| | | width="60" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.type == '0'">未检</span> |
| | | <span v-if="scope.row.type == '1'">已检</span> |
| | | <span v-if="scope.row.type == '2'">弃检</span> |
| | | <span v-if="scope.row.type == '3'">延期</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检查时间" |
| | | align="center" |
| | | prop="bcupdateTime" |
| | | width="160" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | import { getCompany, queryCompany } from "@/api/team/tuanti"; |
| | | import { reportHistory, yichang } from "@/api/doctor/check"; |
| | | import { getPdf, revoke } from "@/api/hosp/order"; |
| | | import { cSWebGetPro} from "@/api/doctor/examination"; |
| | | import { cSWebGetPro } from "@/api/doctor/examination"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | import Historicalreport from "@/components/Historicalreport"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import { getTjYxjcList } from "@/api/system/package"; |
| | | import { getNewDateList } from "@/api/hosp/order"; |
| | | import { getconfigKey } from "@/api/login"; |
| | | import moment from "moment"; |
| | | |
| | | export default { |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | msgtuwen: "", |
| | | msgjianqian: "", |
| | | msgkcf: "", |
| | | // 页面全部数据 |
| | | checkList: [], |
| | | // 绑定单选按钮 |
| | |
| | | tjCategory: undefined, |
| | | payType: undefined, |
| | | }, |
| | | status: 0 // 0展示异常1展示项目情况 |
| | | status: 0, // 0展示异常1展示项目情况 |
| | | viewportHeight: 0, |
| | | expends: [], |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | // this.getNowTime(); |
| | | |
| | | this.getConfigKey(); |
| | | this.getdate(); |
| | | }, |
| | | |
| | | mounted() { |
| | | this.$nextTick(() => { |
| | | this.$refs.inputName.focus(); |
| | | |
| | | this.viewportHeight = |
| | | window.innerHeight || document.documentElement.clientHeight; |
| | | }); |
| | | }, |
| | | methods: { |
| | | // 项目情况 |
| | | xiangmuqingkuang () { |
| | | cSWebGetPro(this.tjNumber).then((res) => { |
| | | this.status = 1 |
| | | this.statusList = res.data; |
| | | }) |
| | | getConfigKey() { |
| | | getconfigKey("sfkqtwbg").then((res) => { |
| | | this.msgtuwen = res.msg; |
| | | }); |
| | | getconfigKey("sfkqjqwz").then((res) => { |
| | | this.msgjianqian = res.msg; |
| | | }); |
| | | getconfigKey("kcf").then((res) => { |
| | | this.msgkcf = res.msg; |
| | | }); |
| | | }, |
| | | guanbi(){ |
| | | //设置table中的扩展项,展开的id,此处我需要全部展开 |
| | | getExpends() { |
| | | var proId = this.statusList.map((item) => item.proId); |
| | | this.expends = proId; |
| | | }, |
| | | getRowKeys(row) { |
| | | return row.proId; |
| | | }, |
| | | // 项目情况 |
| | | xiangmuqingkuang() { |
| | | cSWebGetPro(this.tjNumber).then((res) => { |
| | | this.status = 1; |
| | | this.statusList = res.data; |
| | | this.getExpends(); |
| | | if (this.statusList.length == 0) { |
| | | _this.$message.msgSuccess("暂无项目情况"); |
| | | } |
| | | }); |
| | | }, |
| | | guanbi() { |
| | | this.drawer = false; |
| | | }, |
| | | yichangjieguo() { |
| | | this.status = 0 |
| | | let _this = this |
| | | this.status = 0; |
| | | let _this = this; |
| | | yichang({ |
| | | tjNum: this.tjNumber, |
| | | }).then((res) => { |
| | | this.yichangList = res.data; |
| | | if (this.yichangList.length == 0) { |
| | | _this.$message.msgSuccess("暂无异常报告"); |
| | | } |
| | | }); |
| | | }, |
| | | getdate() { |
| | |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | this.jianqianwenzhendata.push(tjNumber); |
| | | }, |
| | | |
| | | |
| | | getList() { |
| | | this.loading = true; |
| | | this.queryParams.compId = this.CheckBox.drugManufacturerId; |
| | |
| | | color: "red", |
| | | }; |
| | | }, |
| | | redxiangmu({ row }) { |
| | | if (row.type == 0) { |
| | | // 变颜色的条件 |
| | | return { |
| | | color: "red", // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | }; |
| | | } |
| | | }, |
| | | /* changRed(row) { |
| | | if (row.label === "↑") { |
| | | return { |
| | |
| | | this.tjproject = "0"; |
| | | |
| | | this.tjNumber = this.tableAll.tjNumber; |
| | | |
| | | |
| | | getState(this.tjNumber).then((res) => { |
| | | this.status = res.data; |
| | | |
| | | |
| | | if (this.status.status === "1") { |
| | | this.yichangjieguo() |
| | | this.yichangjieguo(); |
| | | getInfo().then((response) => { |
| | | this.userId = response.user.userId; |
| | | if (this.userId) { |
| | |
| | | } |
| | | }); |
| | | } else { |
| | | |
| | | this.$confirm( |
| | | "" + this.status.name + "正在修改该信息, 是否强制进去?", |
| | | "提示", |
| | |
| | | } |
| | | ) |
| | | .then(() => { |
| | | this.yichangjieguo() |
| | | this.yichangjieguo(); |
| | | getInfo().then((response) => { |
| | | this.userId = response.user.userId; |
| | | |
| | | |
| | | if (this.userId) { |
| | | let data = { |
| | | userId: this.userId, |
| | |
| | | message: "已取消进入", |
| | | }); |
| | | }); |
| | | |
| | | this.drawer = false; |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | ); |
| | | this.drawer = false; |
| | | } |
| | | }); |
| | | |
| | | // 获取小结 |
| | | // getDeptAdvice().then((response) => { |
| | |
| | | .mainbox { |
| | | position: relative; |
| | | } |
| | | .tanchu { |
| | | background-color: red; |
| | | } |
| | | .btn { |
| | | margin: 20px 0px; |
| | | } |
| | | /* 按钮的初始状态 */ |
| | | .btn1, |
| | | .btn2, |
| | | .btn3, |
| | | .btn4, |
| | | .btn5 { |
| | | position: fixed; |
| | | right: 0; |
| | | transform: translateY(-50%); |
| | | .btnbox { |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 10px; |
| | | cursor: pointer; |
| | | animation: fadeInUp 0.5s ease-out forwards; /* 加载时的淡入动画 */ |
| | | gap: 10px; /* 按钮之间的间距 */ |
| | | position: fixed; /* 使整个按钮区域固定在页面 */ |
| | | right: 0; /* 固定在页面右侧 */ |
| | | top: 20%; /* 初始位置 */ |
| | | z-index: 10; |
| | | transition: transform 0.3s ease; /* 平滑过渡 */ |
| | | writing-mode: vertical-rl; /* 使文本竖直排列 */ |
| | | text-align: center; /* 文字居中 */ |
| | | } |
| | | // ::v-deep .el-button{ |
| | | // background-color: rgba(170, 226, 233, 0.5); |
| | | // color: white; |
| | | // } |
| | | /* 加载动画,按钮逐渐显现并放大 */ |
| | | |
| | | /* 每个按钮的样式 */ |
| | | .btn1 { |
| | | animation: fadeInUp 0.5s ease-out forwards; /* 按钮加载时的淡入动画 */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | cursor: pointer; |
| | | writing-mode: vertical-rl; /* 按钮文本竖直排列 */ |
| | | text-align: center; /* 文字居中 */ |
| | | } |
| | | |
| | | /* 设置动画效果 */ |
| | | @keyframes fadeInUp { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateY(20px) scale(0.5); /* 初始状态:透明且缩小 */ |
| | | transform: translateY(20px) scale(0.5); /* 初始状态:透明且缩小 */ |
| | | } |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateY(0) scale(1); /* 最终状态:完全显示且正常大小 */ |
| | | transform: translateY(0) scale(1); /* 最终状态:完全显示且正常大小 */ |
| | | } |
| | | } |
| | | |
| | | /* 每个按钮的具体位置和延迟 */ |
| | | .btn1 { |
| | | top: 20%; |
| | | animation-delay: 0s; /* 第一个按钮无延迟 */ |
| | | /* 每个按钮的位置和动画延迟 */ |
| | | .btnbox > div:nth-child(1) { |
| | | top: 20%; /* 第一个按钮的位置 */ |
| | | animation-delay: 0s; /* 无延迟 */ |
| | | } |
| | | |
| | | .btn2 { |
| | | top: 30%; |
| | | animation-delay: 0.2s; /* 第二个按钮延迟 0.2 秒 */ |
| | | .btnbox > div:nth-child(2) { |
| | | top: 30%; /* 第二个按钮的位置 */ |
| | | animation-delay: 0.2s; |
| | | } |
| | | |
| | | .btn3 { |
| | | top: 40%; |
| | | animation-delay: 0.4s; /* 第三个按钮延迟 0.4 秒 */ |
| | | .btnbox > div:nth-child(3) { |
| | | top: 40%; /* 第三个按钮的位置 */ |
| | | animation-delay: 0.4s; |
| | | } |
| | | |
| | | .btn4 { |
| | | top: 50%; |
| | | animation-delay: 0.6s; /* 第四个按钮延迟 0.6 秒 */ |
| | | .btnbox > div:nth-child(4) { |
| | | top: 50%; /* 第四个按钮的位置 */ |
| | | animation-delay: 0.6s; |
| | | } |
| | | .btn5 { |
| | | top: 60%; |
| | | animation-delay: 0.8s; /* 第四个按钮延迟 0.6 秒 */ |
| | | |
| | | .btnbox > div:nth-child(5) { |
| | | top: 60%; /* 第五个按钮的位置 */ |
| | | animation-delay: 0.8s; |
| | | } |
| | | |
| | | .btnbox > div:nth-child(6) { |
| | | top: 70%; /* 第六个按钮的位置 */ |
| | | animation-delay: 1s; |
| | | } |
| | | |
| | | .main { |
| | | height: 700px; |
| | | overflow: hidden; |
| | |
| | | } |
| | | |
| | | .dialog-footers { |
| | | /* margin-top: 5px; */ |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 50%; |
| | | transform: translateX(-50%); |
| | | display: flex; |
| | | margin-left: calc(100% - 25%); |
| | | justify-content: center; |
| | | align-items: center; |
| | | padding: 0px 20px; |
| | | z-index: 1000; /* 确保按钮层级在其他内容上方 */ |
| | | width: 100%; |
| | | background-color: white; /* 可根据需要调整背景颜色 */ |
| | | } |
| | | |
| | | /* 确保按钮之间有合适的间距 */ |
| | | .dialog-footers .el-button { |
| | | margin: 0 5px; |
| | | } |
| | | |
| | | textarea { |
| | |
| | | overflow: auto; // 确保父容器可以滚动 |
| | | } |
| | | |
| | | .rightbox{ |
| | | .rightbox { |
| | | margin-left: 30px; |
| | | overflow-y: scroll; |
| | | position: sticky; |
| | | top: 0px; |
| | | |
| | | .right { |
| | | position: sticky; |
| | | top: 0px; |
| | | background-color: #fff; |
| | | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | z-index: 10; |
| | | } |
| | | position: sticky; |
| | | top: 0px; |
| | | background-color: #fff; |
| | | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | z-index: 10; |
| | | } |
| | | } |
| | | |
| | | .top { |
| | |
| | | background-color: #fff; |
| | | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | display: flex; |
| | | .el-icon-close{ |
| | | .el-icon-close { |
| | | cursor: pointer; |
| | | font-size: 30px; |
| | | position: relative; |
| | | top: 7px; |
| | | right: 4px; |
| | | color: rgb(24,144,255); |
| | | color: rgb(24, 144, 255); |
| | | } |
| | | } |
| | | .kong { |
| | | box-shadow: none; |
| | | } |
| | | </style> |
| | | |
| | | |