From e03e83323c452893d3d5e43fc3e0f2f8f34f47c9 Mon Sep 17 00:00:00 2001 From: qx <1084500556@qq.com> Date: 星期一, 09 六月 2025 10:36:08 +0800 Subject: [PATCH] qx --- src/views/doctor/examination/index.vue | 586 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 449 insertions(+), 137 deletions(-) diff --git a/src/views/doctor/examination/index.vue b/src/views/doctor/examination/index.vue index 66e337f..237219b 100644 --- a/src/views/doctor/examination/index.vue +++ b/src/views/doctor/examination/index.vue @@ -7,6 +7,15 @@ :inline="true" label-width="68px" > + <el-form-item label="濮撳悕" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ鍚�" + clearable + @keyup.enter.native="handleQuery" + style="width: 110px" + /> + </el-form-item> <el-form-item label="浣撴鍙�" prop="tjNumber"> <el-input ref="inputName" @@ -18,13 +27,38 @@ style="width: 170px" /> </el-form-item> - <el-form-item label="濮撳悕" prop="name"> + + <el-form-item + label="鍗曚綅鍚嶇О" + prop="tjCompName" + style="margin-left: 20px" + > + <el-select + :remote-method="getRemoteData" + v-model="queryParams.tjCompName" + value-key="drugManufacturerId" + style="width: 180px" + remote + filterable + placeholder="璇烽�夋嫨鍗曚綅鍚嶇О" + clearable + @change="searchSelect" + > + <el-option + v-for="dict in CompanyList" + :key="dict.drugManufacturerId" + :label="dict.cnName" + :value="dict" + /> + </el-select> + </el-form-item> + <el-form-item label="椤圭洰" prop="tcm"> <el-input - v-model="queryParams.name" - placeholder="璇疯緭鍏ュ鍚�" + v-model="queryParams.tcm" + placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable @keyup.enter.native="handleQuery" - style="width: 110px" + style="width: 170px" /> </el-form-item> <el-form-item label="鐧昏鏃堕棿" prop="createTimeList"> @@ -67,7 +101,7 @@ </el-radio-group> <div style="width: 100%; margin-left: 10px; display: flex"> - <div style="width: 40.5%; margin-right: 20px"> + <div style="width: 45%"> <el-table id="ta" v-loading="loading" @@ -78,25 +112,26 @@ :row-class-name="tableRowClassName" highlight-current-row @current-change="handleCurrentChange" + > <!-- <el-table-column type="selection" width="40" align="center" /> --> <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" - width="160px" + min-width="160" /> <el-table-column label="濮撳悕" align="center" prop="cusName" - width="80px" + min-width="80" /> <el-table-column label="鎬у埆" align="center" prop="cusSex" - width="50px" + min-width="50" > <template slot-scope="scope"> <span v-if="scope.row.cusSex == '0'">鐢�</span> @@ -111,23 +146,35 @@ <!-- </template> --> </el-table-column> <el-table-column + label="骞撮緞" + align="center" + prop="age" + min-width="100" + /> + <el-table-column label="鎵嬫満鍙�" align="center" prop="cusPhone" - width="100px" + min-width="100" + /> + <el-table-column + label="濂楅鍚�" + align="center" + prop="tcm" + min-width="100" /> <el-table-column label="鐧昏鏃堕棿" align="center" prop="tjTime" - width="120px" + min-width="120" /> <el-table-column v-if="checkStatus == '1'" label="瀹℃牳鐘舵��" align="center" prop="confirmStatus" - width="80px" + min-width="80" > <template slot-scope="scope"> <span @@ -149,48 +196,41 @@ </template> </el-table-column> <!-- v-hasPermi="['reservation:reservation:edit']" --> - <!-- <el-table-column label="鎿嶄綔" align="center" width="120px"> + <el-table-column label="鎿嶄綔" align="center" min-width="120px"> <template slot-scope="scope"> <el-button size="mini" type="text" @click="tongbu(scope.row)" - v-show=" - (xianshi == 'Y' || xianshi == 'y') && - (scope.row.confirmStatus == '299' || - scope.row.confirmStatus == 288) - " + >鍚屾</el-button > - <el-button - :disabled="dis" + <!-- :disabled="dis" --> + <!-- <el-button + disabled size="mini" type="text" @click="tongguo(scope.row)" - v-show=" - (xianshi == 'Y' || xianshi == 'y') && - (scope.row.confirmStatus == '299' || - scope.row.confirmStatus == 288) - " >閫氳繃</el-button > <el-button size="mini" type="text" - v-show=" + disabled + @click="bohui(scope.row)" + >椹冲洖</el-button + > --> + </template> + <!-- v-show=" (xianshi == 'Y' || xianshi == 'y') && (scope.row.confirmStatus == '301' || scope.row.confirmStatus == 288) - " - @click="bohui(scope.row)" - >椹冲洖</el-button - > - </template> - </el-table-column> --> + " --> + </el-table-column> </el-table> </div> - <div style="width: 50%"> + <div style="width: 45%; margin-left: 5%"> <el-table v-loading="loading" border @@ -200,20 +240,21 @@ :data="xiangmuList" highlight-current-row @row-click="handleRowClick" + > <!-- <el-table-column type="selection" width="40" align="center" /> --> <el-table-column - label="閮ㄩ棬" + label="绉戝" align="center" prop="deptName" - width="100" + min-width="100" :show-overflow-tooltip="true" /> <el-table-column label="椤圭洰" align="center" prop="proName" - width="150" + min-width="150" :show-overflow-tooltip="true" /> <el-table-column @@ -221,12 +262,15 @@ align="center" prop="type" :show-overflow-tooltip="true" - width="100" + min-width="100" > <template slot-scope="scope"> - <span v-if="scope.row.type == '0'" style="color: red" - >鏈畬鎴�</span + <span + v-if="scope.row.type == '0'" + :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }" > + {{ 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> @@ -262,7 +306,7 @@ label="妫�鏌ユ椂闂�" align="center" prop="bcupdateTime" - width="160" + min-width="160" /> <!-- <el-table-column label="淇濆瓨鍖荤敓" @@ -276,21 +320,31 @@ prop="zhupdateTime" width="160" /> --> - <el-table-column label="鎿嶄綔" align="center" width="120px"> + <el-table-column label="鎿嶄綔" align="center" min-width="120px"> <template slot-scope="scope"> <el-button size="mini" type="text" :disabled="scope.row.type === 1" + :loading="scope.row.isLoading" @click="qijian(scope.row)" - >寮冩</el-button + >{{ scope.row.type === 0 ? "寮冩" : "鎭㈠" }}</el-button > <el-button size="mini" type="text" - @click="queryResultone(scope.row)" - >缁撴灉鏌ヨ</el-button + @click="yijian(scope.row)" + v-if="yijiantype == 'N'" + >宸叉</el-button > + <el-button + size="mini" + type="text" + :disabled="scope.row.type === 0 || scope.row.type === 2" + @click="queryResultone(scope.row)" + >缁撴灉</el-button + > + <!-- --> <!-- @click="chaxun(scope.row) " --> </template> </el-table-column> @@ -298,80 +352,58 @@ </div> </div> - <!-- <el-drawer title="鎴戞槸鏍囬" :visible.sync="drawer" :with-header="false"> - <div class="rightbox"> - <div class="right"> - <template> - <div v-for="(item, index) in xiangmuList" :key="index"> + <el-drawer title="鎴戞槸鏍囬" :visible.sync="drawer" :with-header="false"> + <div style="text-align: center; background-color: #aad8df"> + {{ name || "" }} + </div> + <div class="a"> + <div v-if="jyjc == 0"> + <el-table + :data="jieguoList" + border + :row-style="changRed" + style="width: 100%" + :header-cell-style="{ background: '#AAD8DF' }" + > + <el-table-column label="妫�娴嬮」鐩�" prop="pro_name"> + </el-table-column> + <el-table-column label="妫�娴嬬粨鏋�" prop="pro_result"> + </el-table-column> + <el-table-column label="鍙傝�冭寖鍥�" prop="ckfw"> </el-table-column> + <el-table-column label="寮傚父鏍囧織" prop="ycbz"> + <template slot-scope="scope"> + {{ scope.row.ycbz == 0 ? "姝e父" : "寮傚父" }} + </template> + </el-table-column> + </el-table> + </div> + + <div v-if="jyjc == 1"> + <div style="text-align: center; background-color: #aad8df"></div> + <div class="check-result-container"> + <div class="check-item"> + <div class="check-title">妫�鏌ユ墍瑙侊細</div> <div - style=" - text-align: center; - background-color: #fde2e2; - margin-top: 10px; - " + class="check-description" + :style="{ color: isRed ? 'red' : '' }" > - {{ item.proName || "" }} + {{ jieguoList[0].pro_result }} </div> - <el-table - :stripe="true" - :row-style="red" - :data="item.sone" - border - style="width: 100%" - :header-cell-style="{ background: 'Transparent' }" - > - <el-table-column type="expand"> - <template slot-scope="props"> - <div - v-if="props.row.advices && props.row.advices.length > 0" - > - <div - v-for="(jianyi, index1) in props.row.advices" - :key="index1" - style="padding: 0 10px; margin-bottom: 10px" - > - <div>鏍囬锛歿{ jianyi.bt || "" }}</div> - <div>鍐呭锛歿{ jianyi.nr || "" }}</div> - </div> - </div> - </template> - </el-table-column> - - <el-table-column align="center" label="妫�娴嬮」鐩�" width="335"> - <template slot-scope="scope"> - <div>{{ scope.row.proName }}</div> - </template> - </el-table-column> - <el-table-column - align="center" - prop="proResult" - label="妫�娴嬬粨鏋�" - width="85" - > - </el-table-column> - - <el-table-column - align="center" - prop="stanId" - label=" 鍙傝�冭寖鍥�" - width="117" - > - </el-table-column> - - <el-table-column - align="center" - prop="proAdvice" - label="鍗曚綅" - width="78" - > - </el-table-column> - </el-table> </div> - - </template> + + <div class="check-item"> + <div class="check-title">妫�鏌ョ粨璁猴細</div> + <div + class="check-description" + :style="{ color: isRed ? 'red' : '' }" + > + {{ jieguoList[0].yxzd || "鏆傛棤缁撹" }} + </div> + </div> + </div> </div> </div> - </el-drawer> --> + </el-drawer> <div class="pag"> <div class="pag1"> @@ -384,10 +416,33 @@ :pager-count="5" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize" - @pagination="getList" + @pagination="submitForm" /> </div> </div> + + <el-dialog :visible.sync="open" width="980px" append-to-body> + <el-form ref="form" :model="form" label-width="98px" @submit.native.prevent> + <el-form-item label="寮冩" prop="isZybUnit"> + <el-radio-group v-model="form.isZybUnit"> + <el-radio :label="0">鑷姩寮冩</el-radio> + <el-radio :label="1">鍏朵粬</el-radio> + </el-radio-group> + </el-form-item> + <!-- filterable --> + <el-form-item label="寮冩鍘熷洜" prop="yy" style="margin-left: 20px" v-if="form.isZybUnit == 1"> + <el-select v-model="form.yy" placeholder="璇烽�夋嫨寮冩鍘熷洜" clearable style="width: 150px"> + <el-option v-for="dict in dict.type.qj_type" :key="dict.value" :label="dict.label" :value="dict.label" /> + </el-select> + </el-form-item> + <br /> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitFormqijian">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> </div> </template> @@ -399,21 +454,34 @@ cSWebGetPro, dataSynchronization, qijian, + yijian, + resultList, + typeOne, + huifu,csymxmxzqtyybcjk } from "@/api/doctor/examination"; +import { getCompany, queryCompany } from "@/api/team/tuanti"; import { getNewDateList } from "@/api/hosp/order"; import moment from "moment"; export default { - dicts: ["dict_tj_status"], + dicts: ["dict_tj_status", "qj_type"], data() { return { + jieguoList: [], + jyjc: null, dis: false, + isLoading:false, + open: false, createTimeList: "", currentRow: null, total: 0, loading: true, selectedTjNumber: "", drawer: false, + yijiantype: null, + type: null, + CompanyList: [], + CheckBox: {}, // 鏌ヨ鍙傛暟 queryParams: { page: 1, @@ -424,12 +492,15 @@ name: null, beginTime: null, endTime: null, + tcm:"", + tjCompName: "", }, // 缁戝畾鍗曢�夋寜閽� checkStatus: "0", exaList: [], // 琛ㄥ崟鍙傛暟 xianshi: "", + name: "", form: {}, clearTimeSet: null, tjNumbers: "", @@ -484,21 +555,28 @@ }); }, methods: { - red() { - return { - color: "red", - }; + changRed({ row }) { + if (row.ycbz != "" && row.ycbz != null && row.ycbz === 1) { + // 鍙橀鑹茬殑鏉′欢 + return { + color: "red", // 杩欎釜return鐨勫氨鏄牱寮� 鍙互鏄痗olor 涔熷彲浠ユ槸backgroundColor + }; + } }, getdate() { getConfigKey("tj_confirm").then((res) => { this.xianshi = res.msg; - console.log(this.xianshi, 999); + // console.log(this.xianshi, 999); }); getNewDateList().then((res) => { - this.createTimeList = [ - moment(res.data).format("YYYY-MM-DD 00:00:00"), - moment(res.data).format("YYYY-MM-DD 23:59:00"), - ]; + // console.log(res,222); + + // this.createTimeList = [ + // moment(res.data).format("YYYY-MM-DD 00:00:00"), + // moment(res.data).format("YYYY-MM-DD 23:59:00"), + // ]; + // console.log(this.createTimeList,8855); + this.getList(); }); }, @@ -537,9 +615,15 @@ dateChangebirthday1(val) { this.startTime = val; }, + // 閫夋鏁版嵁 + searchSelect(val) { + this.CheckBox = val; + // console.log(this.CheckBox, 9999); + }, getList() { this.loading = true; this.queryParams.checkStatus = this.checkStatus; + this.queryParams.compId = this.CheckBox.drugManufacturerId; if (this.createTimeList) { this.queryParams.beginTime = this.createTimeList[0]; this.queryParams.endTime = this.createTimeList[1]; @@ -547,6 +631,14 @@ this.queryParams.beginTime = null; this.queryParams.endTime = null; } + + // 鑾峰彇鍗曚綅淇℃伅闆嗗悎 + getCompany(this.queryParam).then((response) => { + this.CompanyList = response.data; + // console.log(this.CompanyList, 555); + + this.loading = false; + }); getCsList(this.queryParams).then((res) => { if (res.code == 200) { @@ -568,6 +660,15 @@ } } }); + }, + // 浣撴鍏徃鎷奸煶鎼滅储 + getRemoteData(query) { + if (query) { + let compName = query; + queryCompany(compName).then((response) => { + this.CompanyList = response.data; + }); + } }, // 鍗曢�夋寜閽� radioChange(value) { @@ -593,9 +694,46 @@ hb() { // console.log(this.queryParams.tjNumber); if (this.queryParams.tjNumber != null) { - this.handleQuery(); + // this.handleQuery(); + this.submitForm(); } }, + + submitForm() { + this.loading = true; + this.queryParams.checkStatus = this.checkStatus; + this.queryParams.compId = this.CheckBox.drugManufacturerId; + if (this.createTimeList) { + this.queryParams.beginTime = this.createTimeList[0]; + this.queryParams.endTime = this.createTimeList[1]; + } else if (this.createTimeList == null) { + this.queryParams.beginTime = null; + this.queryParams.endTime = null; + } + + // 椤甸潰鏁版嵁 + getCsList(this.queryParams).then((res) => { + if (res.code == 200) { + this.loading = false; + if (res.data) { + this.exaList = res.data.customers; + this.total = res.data.total; + if (this.exaList.length != 0) { + this.$nextTick(() => { + this.$refs.tb.toggleRowSelection(this.exaList[0], true); + }); + } else { + this.$refs.tb.clearSelection(); + } + this.total = res.data.total; + } else { + this.exaList = []; + this.tableList = []; + } + } + }); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.page = 1; @@ -604,8 +742,21 @@ /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.createTimeList = []; - this.resetForm("queryForm"); + (this.queryParams = { + page: 1, + pageSize: 20, + checkStatus: null, + tjNumber: null, + compId: null, + name: null, + beginTime: null, + endTime: null, + tjCompName: "", + tcm:"" + }), + (this.CheckBox.drugManufacturerId = ""); this.handleQuery(); + this.loading = true; }, // 鍗曢�夋閫変腑鏁版嵁 @@ -619,9 +770,11 @@ this.multipleSelection = selection[selection.length - 1] ? [selection[selection.length - 1]] : []; + this.multipleSelection.forEach((element) => { this.tjnum = element.tjNumber; let tjNumber = this.tjnum; + cSWebGetPro(tjNumber).then((res) => { this.xiangmuList = res.data; this.xiangmuList.forEach((item) => { @@ -646,7 +799,14 @@ this.currentRow = val; let tjNumber = val.tjNumber; this.selectedTjNumber = val.tjNumber; - console.log(this.currentRow, 4455); + + typeOne(tjNumber).then((res) => { + this.type = res.data; + }); + + getConfigKey("sfyccsyjan").then((res) => { + this.yijiantype = res.msg; + }); cSWebGetPro(tjNumber).then((res) => { this.xiangmuList = res.data; @@ -683,33 +843,133 @@ }); }, + cancel() { + this.open = false + }, + + submitFormqijian() { + if (this.form.isZybUnit == 0) { + const tjNUm = this.selectedTjNumber; + const proId = this.rowProId; + qijian(tjNUm, proId).then((res) => { + if (res.code == 200) { + this.open = false + cSWebGetPro(tjNUm).then((res) => { + if (res.code === 200) { + // 鏇存柊鍙宠竟琛ㄦ牸鐨勬暟鎹� + this.xiangmuList = res.data; + this.isLoading = false + } + }); + } + }); + } else { + if (this.form.yy != null) { + let data = { + tjNum: this.selectedTjNumber, + proId: this.rowProId, + yy: this.form.yy, + } + csymxmxzqtyybcjk(data).then((res) => { + if (res.code == 200) { + cSWebGetPro(this.selectedTjNumber).then((res) => { + if (res.code === 200) { + this.open = false + // 鏇存柊鍙宠竟琛ㄦ牸鐨勬暟鎹� + this.xiangmuList = res.data; + this.isLoading = false + } + }); + } + }); + } else { + this.$modal.msgError("璇烽�夋嫨寮冩鍘熷洜"); + } + } + }, + // 寮冩鎸夐挳 qijian(row) { const tjNUm = this.selectedTjNumber; const proId = row.proId; - - qijian(tjNUm, proId).then((res) => { + row.isLoading = true; + if (row.type == "2") { + huifu(tjNUm, proId).then((res) => { + if (res.code == 200) { + cSWebGetPro(tjNUm).then((res) => { + if (res.code === 200) { + // 鏇存柊鍙宠竟琛ㄦ牸鐨勬暟鎹� + this.xiangmuList = res.data; + row.isLoading = false + } + }); + } + }); + } else { + this.open = true + this.form = {} + // qijian(tjNUm, proId).then((res) => { + // if (res.code == 200) { + // cSWebGetPro(tjNUm).then((res) => { + // if (res.code === 200) { + // // 鏇存柊鍙宠竟琛ㄦ牸鐨勬暟鎹� + // this.xiangmuList = res.data; + // this.isLoading = false + // } + // }); + // } + // }); + } + }, + yijian(row) { + const tjNUm = this.selectedTjNumber; + const proId = row.proId; + row.isLoading = true; + yijian(tjNUm, proId).then((res) => { if (res.code == 200) { + this.$modal.msgSuccess("宸叉鎴愬姛"); cSWebGetPro(tjNUm).then((res) => { if (res.code === 200) { - // 鏇存柊鍙宠竟琛ㄦ牸鐨勬暟鎹� this.xiangmuList = res.data; + row.isLoading = false; } }); } + }).catch(() => { + row.isLoading = false; }); }, - chaxun() {}, handleRowClick(row, column, event) { - console.log(row); // + // console.log(row, 2323); + this.name = row.proName; + // console.log(this.name, 99999); }, queryResultone(row) { - // 灏嗗綋鍓嶈鐨勬暟鎹瓨鍌ㄥ埌 currentRow - // this.currentRow = row; - // console.log(this.currentRow, 999555); - // 鎵撳紑鎶藉眽 - this.drawer = true; + const tjNum = this.selectedTjNumber; + const proId = row.proId; + resultList(tjNum, proId).then((res) => { + this.jieguoList = res.data; + this.jyjc = this.jieguoList[0].jyjc; + const ycbz = this.jieguoList[0].ycbz; + /* if (ycbz === "" || ycbz === null) { + return; + } */ + + // 璁剧疆鏄惁闇�瑕佹敼鍙橀鑹� + if (ycbz === "1") { + this.isRed = true; // 璁剧疆鏍囪瘑锛屾敼鍙樺瓧浣撻鑹� + console.log(this.isRed, 444); + } else { + this.isRed = false; // 鎭㈠榛樿棰滆壊 + } + + if (res.data.length > 0) { + this.drawer = true; + } else { + this.$message.warning("璇ラ」鐩病鏈夌粨鏋�"); + } + }); }, setTime() { //璁剧疆瀹氭椂鍣� @@ -718,14 +978,12 @@ }, 300000); }, tongbu(row) { - // this.$refs.tb.toggleRowSelection(row); this.$modal.loading("姝e湪鍚屾锛岃绋嶅��..."); this.setTime(); let tjNumber = row.tjNumber; dataSynchronization(tjNumber) .then((res, error) => { if (res.code == 200) { - // this.$forceUpdate(); this.handleCurrentChange(row); clearInterval(this.clearTimeSet); this.clearTimeSet = null; @@ -781,8 +1039,62 @@ display: flex; justify-content: center; } +.red-text { + color: red !important; +} .pag1 { width: 30%; } + +.a ::v-deep .el-table__cell { + padding: 1px 0 !important; +} +.check-result-container { + // background-color: #fafafa; + padding: 20px; + border-radius: 8px; + // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + margin: 0 auto; + max-width: 700px; +} + +.check-item { + margin-bottom: 20px; +} + +.check-title { + font-size: 16px; + font-weight: bold; + color: #333; + // margin-bottom: 8px; +} + +.check-description { + font-size: 14px; + color: #555; /* 涓伆鑹叉枃瀛� */ + line-height: 1.6; /* 琛岄珮锛屽鍔犲彲璇绘�� */ + padding: 8px 0; /* 涓婁笅鍐呰竟璺� */ +} + +.check-description.no-result { + color: #bbb; /* 濡傛灉娌℃湁缁撹锛屾枃瀛椾负娣$伆鑹� */ +} + +::v-deep .el-table { + width: 100% !important; +} + +::v-deep .el-table__body { + width: 100% !important; +} + +::v-deep .el-table__header { + width: 100% !important; +} + +/* 濡傛灉闇�瑕侀殣钘忔í鍚戞粴鍔ㄦ潯 */ +::v-deep .el-table__body-wrapper::-webkit-scrollbar-horizontal { + display: none; +} </style> \ No newline at end of file -- Gitblit v1.8.0