src/components/public/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/hosp/ruleAdvice/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/hosp/rules/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/jmreport/payment/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/picture/picture/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/comp/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/components/public/index.vue
@@ -1,349 +1,320 @@ <template> <div> <el-dialog :title="title" :visible.sync="open" width="1080px" 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" > --> <!-- <el-form-item label="病种名称" prop="bingzhong"> <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-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > </el-form-item> --> <!-- <el-form-item> <h3 >{{ queryParams.proName || '暂无项目名称' }}</h3> </el-form-item> --> <!-- <el-form-item> <h3 style="margin-left: 160px">已选项目</h3> </el-form-item> --> <!-- </el-form> --> <h2 style="text-align: center;margin-top: -30px;">{{ queryParams.proName || '暂无项目名称' }}</h2> <div style="display: flex; width: 100%"> <div style="width: 50%; margin-right: 40px"> <el-table :data="dataList" ref="multipleTable" v-loading="loading" row-key="aid" @selection-change="handleSelectionChange" :reserve-selection="false" border height="420px" > <el-table-column type="selection" width="40" align="center" /> <el-table-column label="序号" type="index" align="center" width="50px" /> <!-- <el-table-column label="规则" align="center" prop="ruleStr" /> --> <el-table-column label="检查所见" align="center" prop="yxbx" /> <el-table-column label="检查结论" align="center" prop="ruleStr" /> </el-table> <div class="pag"> <div class="pag1" style="margin-left: 630px"> <pagination small v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> </div> <div> <el-dialog :title="title" :visible.sync="open" width="1080px" append-to-body> <h3 v-if="fList.proResult">检测项目 :{{ fList.project.proName }}</h3> <h3 v-if="fList.proResult"> 检测结果 :{{ fList.proResult }}{{ fList.project.proMetering }} </h3> <h2 style="text-align: center;">{{ queryParams.proName || '暂无项目名称' }}</h2> <div style="display: flex; width: 100%"> <div style="width: 50%; margin-right: 40px"> <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-form-item>--> <el-form-item label="检查结论" prop="ruleStr"> <el-input v-model="queryParams.ruleStr" placeholder="请输入检查结论" clearable @keyup.enter.native="getList" style="width: 130px" /> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button> </el-form-item> <!-- <el-form-item> <h3 >{{ queryParams.proName || '暂无项目名称' }}</h3> </el-form-item> --> <!-- <el-form-item> <h3 style="margin-left: 160px">已选项目</h3> </el-form-item> --> </el-form> <el-table :data="dataList" ref="multipleTable" v-loading="loading" @selection-change="handleSelectionChange" border height="480px"> <el-table-column type="selection" width="40" align="center" /> <el-table-column label="序号" type="index" align="center" width="50px" /> <!-- <el-table-column label="规则" align="center" prop="ruleStr" /> --> <el-table-column label="检查所见" align="center" prop="yxbx" /> <el-table-column label="检查结论" align="center" prop="ruleStr" /> </el-table> <div class="pag"> <div class="pag1" style="margin-left: 630px"> <pagination small v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" /> </div> </div> <div style="width: 100%; height: 600px"> <!-- <h3 style="margin-top: -30px;">已选项目</h3> --> <el-form :model="form" ref="queryForm" size="small" label-width="68px" :inline="true" > <!-- :inline="true" --> <!-- <el-form-item> <el-input type="textarea" v-model="form.desc" style="width: 560px" ></el-input> </el-form-item> --> <el-form-item label="检查所见" prop="jcsj"> <el-input v-model="form.jcsj" clearable type="textarea" :autosize="{ minRows: 8 }" style="width: 380px" /> </el-form-item> <el-form-item label="检查结论" prop="conclusion"> <el-input v-model="form.desc" clearable type="textarea" :autosize="{ minRows: 8 }" style="width: 380px" /> </el-form-item> </el-form> </div> </div> <span slot="footer" class="dialog-footer" style="margin-top: -120px"> <el-button @click="open = false">取 消</el-button> <el-button type="primary" @click="handleOk">确 定</el-button> </span> </el-dialog> </div> </template> <script> import { getlist, getlistByRuleStr } from "@/api/doctor/check"; import { getYxJcXxJg } from "@/api/picture/picture"; export default { name: "Public", props: { checkStatus: { type: String, default: "0", validator: (value) => ["0", "1"].includes(value), }, proResult: { type: String, default: "", }, conclusion: { type: String, default: "", }, projectList: { type: Array, default: () => [], }, <div class="jianc"> <!-- <h3 style="margin-top: -30px;">已选项目</h3> --> <el-form :model="form" ref="queryForm" size="small" label-width="68px" :label-position="labelPosition"> <!-- :inline="true" --> <!-- <el-form-item> <el-input type="textarea" v-model="form.desc" style="width: 560px" ></el-input> </el-form-item> --> <el-form-item label="检查所见" prop="jcsj"> <el-input v-model="form.jcsj" clearable type="textarea" :autosize="{ minRows: 7 }" style="width: 380px" /> </el-form-item> <el-form-item label="检查结论" prop="desc"> <el-input v-model="form.desc" clearable type="textarea" :autosize="{ minRows: 7 }" style="width: 380px" /> </el-form-item> </el-form> </div> </div> <span slot="footer" class="dialog-footer" style="margin-top: -20px"> <el-button @click="callcolos">取 消</el-button> <el-button type="primary" @click="handleOk">确 定</el-button> </span> </el-dialog> </div> </template> <script> import { getlist, getlistByRuleStr } from "@/api/doctor/check"; import { getYxJcXxJg } from "@/api/picture/picture"; export default { name: "Public", props: { checkStatus: { type: String, default: "0", validator: (value) => ["0", "1"].includes(value), }, data() { return { open: false, // 弹出层标题 title: "", yxbx: "", proName:'', // lastDesc: "", total: 0, dataList: [], // 遮罩层 loading: false, form: { desc: "", jcsj: "", }, queryParams: { bingzhong: "", bzPinyin: "", proId:"", // proName:"", pageNum: 1, pageSize: 10, }, list: [], fList: {}, selectedItems: [], searchDebounce: null, }; proResult: { type: String, default: "", }, watch: { checkStatus(newValue) { if (newValue === "1") { this.updateData(this.proResult, this.conclusion); conclusion: { type: String, default: "", }, projectList: { type: Array, default: () => [], }, }, data() { return { open: false, labelPosition: "top", // 弹出层标题 title: "", yxbx: "", proName: '', // lastDesc: "", total: 0, dataList: [], // 遮罩层 loading: false, form: { desc: "", jcsj: "", }, queryParams: { ruleStr: "", pageNum: 1, pageSize: 10, }, list: [], fList: {}, selectedItems: [], searchDebounce: null, }; }, watch: { checkStatus(newValue) { console.log(565658) if (newValue === "1") { this.updateData(this.proResult, this.conclusion); } }, projectList: { immediate: true, deep: true, handler(newVal) { console.log("收到的项目数据:", newVal); // 你可以在这里处理数据,比如保存到 data 或做逻辑判断 if (newVal && newVal.length > 0) { const firstProject = newVal[0]; // 你也可以遍历所有项目,看你业务需求 this.queryParams.proId = firstProject.proId; // 假设项目中叫 id this.queryParams.proName = firstProject.proName; // 假设叫 proName this.proName = firstProject.proName } }, projectList: { immediate: true, deep: true, handler(newVal) { console.log("收到的项目数据:", newVal); // 你可以在这里处理数据,比如保存到 data 或做逻辑判断 if (newVal && newVal.length > 0) { const firstProject = newVal[0]; // 你也可以遍历所有项目,看你业务需求 this.queryParams.proId = firstProject.proId; // 假设项目中叫 id // this.queryParams.proName = firstProject.proName; this.proName = firstProject.proName } }, }, }, mounted() {}, created() {}, methods: { async getList() { try { this.loading = true; // 添加加载状态 const res = await getlist(this.queryParams); this.dataList = res.data.rows; }, mounted() { }, created() { }, methods: { async getList() { try { this.loading = true; // 添加加载状态 const res = await getlist(this.queryParams); this.dataList = res.data.rows; if (res.data.total) { this.total = res.data.total; // 如果需要选中操作,将其封装为独立方法 await this.handleAutoSelection(); } catch (error) { console.error("获取数据失败:", error); this.$message.error("获取数据失败"); } finally { this.loading = false; } }, // 封装选中逻辑 async handleAutoSelection() { if (!this.fList?.rulesList?.length) return; await this.$nextTick(); // 先清除所有选择 this.$refs.multipleTable?.clearSelection(); // 再进行选择 this.dataList.forEach((item) => { const shouldSelect = this.fList.rulesList.some( (rule) => rule.aid === item.aid ); if (shouldSelect) { this.$refs.multipleTable?.toggleRowSelection(item, true); } }); }, handleQuery() { if (this.searchDebounce) clearTimeout(this.searchDebounce); this.searchDebounce = setTimeout(() => { this.queryParams.pageNum = 1; // 重置页码 this.getList(); }, 300); }, updateData(proResult, conclusion) { if (this.checkStatus === "1") { this.form.jcsj = proResult; // 更新检查所见 this.form.desc = conclusion; // 更新检查结论 // console.log(proResult, conclusion); this.updateData(this.proResult, this.conclusion); // 如果需要选中操作,将其封装为独立方法 await this.handleAutoSelection(); } catch (error) { console.error("获取数据失败:", error); this.$message.error("获取数据失败"); } finally { this.loading = false; } }, // 封装选中逻辑 async handleAutoSelection() { if (!this.fList?.rulesList?.length) return; await this.$nextTick(); this.dataList.forEach((item) => { const shouldSelect = this.fList.rulesList.some( (rule) => rule.aid === item.aid ); if (shouldSelect) { this.$refs.multipleTable?.toggleRowSelection(item, true); } }, handleSelectionChange(selection) { console.log('Selection changed:', selection); this.list = [...selection]; // 使用展开运算符创建新数组 this.updateFormContent(selection); }, updateFormContent(selection) { // 如果处于检查状态,使用传入的值 if (this.checkStatus === "1") { this.updateData(this.proResult, this.conclusion); return; } // 重置表单内容 }); }, handleQuery() { if (this.searchDebounce) clearTimeout(this.searchDebounce); this.searchDebounce = setTimeout(() => { this.queryParams.pageNum = 1; // 重置页码 this.getList(); }, 300); }, updateData(proResult, conclusion) { console.log(proResult, conclusion, 5658) if (this.checkStatus == 1) { this.form.jcsj = proResult; // 更新检查所见 this.form.desc = conclusion; // 更新检查结论 } else { this.form.desc = ""; this.form.jcsj = ""; // 只有在有选中项时才进行拼接 if (selection.length > 0) { // 使用map和join替代forEach和字符串拼接 this.form.desc = selection .map((item) => item.bingzhong || item.ruleStr) .filter(Boolean) .join(","); this.form.jcsj = selection .map((item) => item.yxbx) .filter(Boolean) .join(","); } }, handleOk() { if (!this.form.desc && !this.form.jcsj) { this.$message.warning("请选择数据"); return; } try { this.$emit("add", this.form.desc, this.form.jcsj); this.resetForm(); this.open = false; } catch (error) { console.error("处理数据失败:", error); this.$message.error("操作失败"); } }, resetForm() { this.form.desc = ""; this.form.jcsj = ""; this.list = []; if (this.$refs.multipleTable) { this.$refs.multipleTable.clearSelection(); } }, } if (this.list.length != 0) { let desc = "" desc += this.list .map((item) => item.bingzhong || item.ruleStr) .filter(Boolean) .join(","); let jcsj = "" jcsj += this.list .map((item) => item.yxbx) .filter(Boolean) .join(","); this.form.jcsj = this.form.jcsj + jcsj; // 更新检查所见 this.form.desc = this.form.desc + desc; } }, computed: { isCheckMode() { return this.checkStatus === "1"; }, hasSelectedItems() { return this.list.length > 0; }, handleSelectionChange(selection) { this.list = selection; this.updateFormContent(selection); }, }; </script> <style scoped> .el-dialog__body { padding: 10px 20px; } ::v-deep .el-dialog__footer { padding: 0 !important; padding-bottom: 40px !important; } </style> updateFormContent(selection) { // if (!selection.length) return; this.updateData(this.proResult, this.conclusion); // 如果处于检查状态,使用传入的值 // if (this.checkStatus === "1") { // this.updateData(this.proResult, this.conclusion); // return; // } // 重置表单内容 // this.form.desc = ""; // this.form.jcsj = ""; // console.log(22222); // // 使用map和join替代forEach和字符串拼接 // this.form.desc = selection // .map((item) => item.bingzhong || item.ruleStr) // .filter(Boolean) // .join(","); // this.form.jcsj = selection // .map((item) => item.yxbx) // .filter(Boolean) // .join(","); }, handleOk() { if (!this.form.desc && !this.form.jcsj) { this.$message.warning("请选择数据"); return; } try { this.$emit("add", this.form.desc, this.form.jcsj); this.resetForm(); this.open = false; } catch (error) { console.error("处理数据失败:", error); this.$message.error("操作失败"); } }, resetForm() { this.form.desc = ""; this.form.jcsj = ""; this.list = []; if (this.$refs.multipleTable) { this.$refs.multipleTable.clearSelection(); } }, callcolos() { this.open = false; } }, computed: { isCheckMode() { return this.checkStatus === "1"; }, hasSelectedItems() { return this.list.length > 0; }, }, }; </script> <style scoped> .el-dialog__body { padding: 0px 20px; } ::v-deep .el-dialog__header { padding: 0px !important; padding-bottom: 0px !important; } ::v-deep .el-dialog__footer { padding: 0 !important; padding-bottom: 40px !important; } .jianc { width: 100%; height: 600px; padding-top: 40px } </style> src/views/hosp/ruleAdvice/index.vue
@@ -440,7 +440,7 @@ this.open = true; this.title = "添加病种+意见"; listRules(this.queryParams).then((response) => { this.rulesList = response.rows; this.rulesList = response.data.rows; }); }, /** 修改按钮操作 */ @@ -460,7 +460,7 @@ bingzhong: query, }; listRules(data).then((response) => { this.rulesList = response.rows; this.rulesList = response.data.rows; }); } }, src/views/hosp/rules/index.vue
@@ -617,16 +617,16 @@ getListByXmId() { this.loading = true; listRules(this.queryParams).then((response) => { response.rows.forEach((item, index) => { response.data.rows.forEach((item, index) => { item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + index + 1; }); this.rulesList = response.rows; this.rulesList = response.data.rows; console.log(this.rulesList, 999); this.total = response.total; this.total = response.data.total; this.loading = false; }); }, src/views/jmreport/payment/index.vue
New file @@ -0,0 +1,43 @@ <template> <div v-loading="loading" :style="'height:' + height"> <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> </div> </template> <script> import { getToken } from '@/utils/auth' import { view } from "@/api/jmreport/jimu"; export default { name: "Ureport", data() { return { src: "", height: document.documentElement.clientHeight - 94.5 + "px;", loading: true, viewNum:"1072318375476887552", }; }, created() { view().then((res) => { this.src = res + "/" + this.viewNum + "?token=Bearer " + getToken(); }); // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); }, mounted: function () { setTimeout(() => { this.loading = false; }, 230); const that = this; window.onresize = function temp() { that.height = document.documentElement.clientHeight - 94.5 + "px;"; }; } }; </script> src/views/picture/picture/index.vue
@@ -1,138 +1,58 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" > <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form-item label="体检号" prop="tjNumber"> <el-input ref="inputName" v-model="queryParams.tjNumber" placeholder="请输入体检号" clearable @keyup.enter.native="handleQuery" @blur="hb" style="width: 170px" /> <el-input ref="inputName" v-model="queryParams.tjNumber" placeholder="请输入体检号" clearable @keyup.enter.native="handleQuery" @blur="hb" style="width: 170px" /> </el-form-item> <el-form-item label="姓名" prop="name"> <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" style="width: 110px" /> <el-form-item label="姓名" prop="name" v-show="isCollapsed == 1"> <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" style="width: 110px" /> </el-form-item> <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-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px" v-show="isCollapsed == 1"> <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.tcm" placeholder="请输入体检号" clearable @keyup.enter.native="handleQuery" style="width: 170px" /> <el-form-item label="项目" prop="tcm" v-show="isCollapsed == 1"> <el-input v-model="queryParams.tcm" placeholder="请输入项目" clearable @keyup.enter.native="handleQuery" style="width: 170px" /> </el-form-item> <el-form-item label="登记时间" prop="createTimeList"> <el-date-picker v-model="createTimeList" type="datetimerange" align="right" :picker-options="pickerOptions" style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1" > <el-form-item label="登记时间" prop="createTimeList" v-show="isCollapsed == 1"> <el-date-picker v-model="createTimeList" type="datetimerange" align="right" :picker-options="pickerOptions" style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1"> </el-date-picker> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" style="margin-right: 15px" >搜索</el-button > <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button > <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px" v-show="isCollapsed == 0">展开更多筛选项 </el-button> <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px" v-show="isCollapsed == 1">收起更多筛选项 </el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" style="margin-right: 15px">搜索</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> </el-form-item> </el-form> <el-radio-group v-model="checkStatus" @input="radioChange" style="margin: 10px 15px" > <el-radio-group v-model="checkStatus" @input="radioChange" style="margin: 10px 15px"> <el-radio-button label="0">未检</el-radio-button> <el-radio-button label="1">已检</el-radio-button> </el-radio-group> <div style="width: 100%; margin-left: 10px; display: flex"> <div style="width: 36%; margin-right: 30px"> <el-table id="table" v-loading="loading" ref="tb" :data="pictureList" highlight-current-row :row-class-name="tableRowClassName" @current-change="handleCurrentChange" border height="520px" > <el-row :gutter="20"> <el-col :span="11"> <el-table v-loading="loading" ref="tb" :data="pictureList" highlight-current-row :row-class-name="tableRowClassName" @current-change="handleCurrentChange" border height="520px"> <!-- <el-table-column type="selection" width="55" /> --> <!-- @selection-change="handleSelectionChange" --> <el-table-column label="体检号" align="center" prop="tjNumber" min-width="160" /> <el-table-column label="姓名" align="center" prop="cusName" min-width="80" /> <el-table-column label="性别" align="center" prop="cusSex" min-width="50" > <el-table-column label="体检号" align="center" prop="tjNumber" min-width="160" /> <el-table-column label="姓名" align="center" prop="cusName" min-width="80" /> <el-table-column label="性别" align="center" prop="cusSex" min-width="50"> <template slot-scope="scope"> <span v-if="scope.row.cusSex == '0'">男</span> <span v-if="scope.row.cusSex == '1'">女</span> @@ -145,185 +65,105 @@ <!-- <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.cusSex " /> --> <!-- </template> --> </el-table-column> <el-table-column label="手机号" align="center" prop="cusPhone" min-width="100" /> <el-table-column label="套餐名" align="center" prop="tcm" min-width="100" /> <el-table-column label="登记时间" align="center" prop="tjTime" min-width="120" /> <el-table-column label="审核状态" align="center" prop="confirmStatus" min-width="80" > <el-table-column label="手机号" align="center" prop="cusPhone" min-width="100" /> <el-table-column label="套餐名" align="center" prop="tcm" min-width="100" /> <el-table-column label="登记时间" align="center" prop="tjTime" min-width="120" /> <el-table-column label="审核状态" align="center" prop="confirmStatus" min-width="80"> <template slot-scope="scope"> <span :style="{ color: scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', }" v-if="scope.row.confirmStatus == '301'" >已通过</span > <span :style="{ color: scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', }" v-if="scope.row.confirmStatus == '299'" >已驳回</span > <span :style="{ color: scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', }" v-if="scope.row.confirmStatus == '301'">已通过</span> <span :style="{ color: scope.row.confirmStatus == '301' ? '#0CB618' : '#EA1B29', }" v-if="scope.row.confirmStatus == '299'">已驳回</span> </template> </el-table-column> </el-table> </div> <div style="width: 44%; height: 610px"> <el-table v-loading="loading" ref="mu" :data="tableList" :row-class-name="tableRowClassName" highlight-current-row @selection-change="handleChange" border style="height: 400px" > <el-table-column type="selection" width="50" align="center" /> <el-table-column label="科室" align="center" prop="deptName" min-width="100" :show-overflow-tooltip="true" /> <el-table-column label="项目" align="center" prop="proName" min-width="150" :show-overflow-tooltip="true" /> <el-table-column label="状态" align="center" prop="type" :show-overflow-tooltip="true" min-width="100" > <div class="pag"> <div class="pag1"> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize" @pagination="submitForm" /> </div> </div> </el-col> <el-col :span="11"> <el-table v-loading="loading" ref="mu" :data="tableList" :row-class-name="tableRowClassName" @header-click="handleHeaderClick" highlight-current-row @selection-change="handleChange" border style="height: 400px"> <el-table-column type="selection" width="50" align="center"> </el-table-column> <el-table-column label="科室" align="center" prop="deptName" min-width="100" :show-overflow-tooltip="true" /> <el-table-column label="项目" align="center" prop="proName" min-width="150" :show-overflow-tooltip="true" /> <el-table-column label="状态" align="center" prop="type" :show-overflow-tooltip="true" min-width="100"> <template slot-scope="scope"> <span v-if="scope.row.type == '0'" :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }" > {{ type == 0 ? "未 检" : "在 检" }} <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> </template> </el-table-column> <el-table-column label="检查时间" align="center" prop="bcupdateTime" min-width="160" /> <el-table-column label="检查时间" align="center" prop="bcupdateTime" min-width="160" /> <!-- <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)" >{{ scope.row.type === 0 ? "弃检" : "恢复" }}</el-button > <el-button size="mini" type="text" @click="yijian(scope.row)" >已检</el-button > <el-button size="mini" type="text" :disabled="scope.row.type === 0 || scope.row.type === 2" @click="queryResultone(scope.row)" >结果</el-button > </template> </el-table-column> --> <!-- <el-table-column type="selection" width="40" align="center" /> <el-table-column label="收费项目" align="center" prop="proName" /> <el-table-column label="项目名称" align="center" prop="proName" /> <el-table-column label="项目结果" align="center" prop="proResult" /> --> </el-table> <div style="margin-top: 10px"> <el-form :model="form" ref="queryForm" size="small" :inline="false" label-width="68px" > <el-form :model="form" ref="queryForm" size="small" :inline="false" label-width="68px"> <el-form-item label="检查所见" prop="proResult"> <el-input v-model="form.proResult" clearable type="textarea" @focus="submiepilog" /> <el-input v-model="form.proResult" clearable type="textarea" @focus="submiepilog" /> </el-form-item> <el-form-item label="检查结论" prop="conclusion"> <el-input v-model="form.conclusion" clearable type="textarea" @focus="submiepilog" /> <el-input v-model="form.conclusion" clearable type="textarea" @focus="submiepilog" /> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-picture" size="mini" @click="tupian" >图片</el-button > <el-button type="primary" icon="el-icon-search" size="mini" @click="submito" >提交</el-button > <el-button type="primary" icon="el-icon-picture" size="mini" @click="tupian">图片</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="submito">提交</el-button> </el-form-item> </el-form> </div> </el-col> </el-row> <!-- <div style="display:flex;margin:15px 0px;width: 100%;"> <div style="width: 100%;display:flex;"> <el-button type="primary" class="default-button-style" size="small" @click="submiepilog">结果结论</el-button> <el-button type="primary" icon="el-icon-s-claim" size="mini" @click="submito">提交</el-button> </div> </div> --> </div> </div> <el-dialog title="提示" :visible.sync="dialogVisible" width="60%"> <!-- :before-close="handleClose" --> <img src="../../../assets/logo/logo.png" alt="" /> </el-dialog> <div style="margin-right: 58%"> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize" @pagination="submitForm" /> </div> <Public ref="aaa" :check-status="checkStatus" :pro-result="form.proResult" :conclusion="form.conclusion" @add="handleChanges" :project-list="projectList" /> <Public ref="aaa" :check-status="checkStatus" :pro-result="form.proResult" :conclusion="form.conclusion" @add="handleChanges" :project-list="projectList" /> <!-- :last-desc="form.conclusion" --> </div> </template> @@ -377,6 +217,7 @@ // 选中数组 ids: [], CheckBox: {}, isCollapsed: 0, // 默认为折叠状态 // 非单个禁用 single: true, // 非多个禁用 @@ -519,7 +360,26 @@ this.queryParams.beginTime = null; this.queryParams.endTime = null; } /* getYxJcList(this.queryParams).then((response) => { if (response.data) { this.pictureList = response.data.customers; } else { this.$message.warning("查无此人"); } if (this.pictureList.length != 0) { this.$nextTick(() => { this.$refs.tb.toggleRowSelection(this.pictureList[0], true); }); } else { this.$refs.tb.clearSelection(); } this.total = response.data.total; this.loading = false; }); */ getCompany(this.queryParams).then((response) => { this.CompanyList = response.data; this.loading = false; @@ -563,9 +423,7 @@ }, handleRowClick(row, column, event) { // console.log(row, 2323); this.name = row.proName; // console.log(this.name, 99999); }, // 体检公司拼音搜索 getRemoteData(query) { @@ -579,6 +437,8 @@ radioChange(value) { this.loading = true; this.queryParams.checkStatus = value; this.form.proResult = ""; this.form.conclusion = ""; getYxJcList(this.queryParams).then((res) => { if (res.code == 200) { this.loading = false; @@ -602,7 +462,6 @@ getYxJcXx(tjNumber).then((res) => { console.log(res, 222); this.tableList = res.data; this.loading = false; }); */ @@ -622,7 +481,6 @@ this.resetForm("form"); }, hb() { // console.log(this.queryParams.tjNum); if (this.queryParams.tjNumber != null) { // this.handleQuery(); this.submitForm(); @@ -665,18 +523,25 @@ // 选框数据 searchSelect(val) { this.CheckBox = val; // console.log(this.CheckBox, 9999); }, handleHeaderClick(column, event) { if (column.type === "selection") { // 查找全选框并隐藏 const checkbox = event.target.closest(".el-checkbox"); if (checkbox) checkbox.style.display = "none"; } }, /** 搜索按钮操作 */ handleQuery() { this.queryParams.pageNum = 1; this.queryParams.page = 1; this.submitForm(); }, /** 重置按钮操作 */ resetQuery() { this.createTimeList = []; (this.queryParams = { pageNum: 1, page: 1, pageSize: 10, tjNumber: null, compId: null, @@ -694,6 +559,14 @@ this.loading = true; }, toggleCollapse3() { // this.isCollapsed = !this.isCollapsed; // 点击按钮时切换isCollapsed的值 this.isCollapsed = 0; }, toggleCollapse() { this.isCollapsed = 1; // 点击按钮时切换isCollapsed的值 }, tableRowClassName({ row, rowIndex }) { for (let i = 0; i < this.selectList.length; i++) { if (row === this.selectList[i]) { @@ -709,17 +582,34 @@ this.tableList = []; return; } let tjNumber = val.tjNumber; this.selectedTjNumber = val.tjNumber; this.loading = true; this.changtjNumber(val.tjNumber) }, changtjNumber(val) { console.log(8989) let tjNumber = val; this.loading = true; getYxJcXx(tjNumber).then((res) => { console.log(res, 222); this.tableList = res.data; this.loading = false; this.$nextTick(() => { if (this.tableList.length > 0) { const headerCheckbox = this.$refs.mu.$el.querySelector( ".el-table__header .el-checkbox" ); if (headerCheckbox) headerCheckbox.style.display = "none"; if (this.queryParams.checkStatus == 0) { if (this.tableList.length > 0) { this.tableList.forEach((item, index) => { if (item.type == 0) { const firstRow = item; this.$refs.mu.toggleRowSelection(firstRow, true); this.handleChange([firstRow]); } }) } } else { const firstRow = this.tableList[0]; this.$refs.mu.toggleRowSelection(firstRow, true); this.handleChange([firstRow]); @@ -728,7 +618,59 @@ }); }, // 弃检按钮 qijian(row) { const tjNUm = this.selectedTjNumber; const proId = row.proId; 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 { 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; }); }, // 多选框选中数据 /* handleSelectionChange(selection) { this.imgsrc = selection[0].picturePath; @@ -790,6 +732,10 @@ }); }, handleChange(selection) { if (selection.length > 1) { let del_row = selection.shift(); this.$refs.mu.toggleRowSelection(del_row, false); //设置这一行取消选中 } this.projectList = selection.map((item) => ({ proId: item.proId, proName: item.proName, @@ -798,16 +744,12 @@ const proId = selection[0].proId; // ✅ 确保 selectedRow 存在且有 tjNumber if (this.selectedRow && this.selectedRow.tjNumber) { const tjNumber = this.selectedRow.tjNumber; getYxJcXxJg(tjNumber, proId).then((res) => { this.form.proResult = res.data.jcsj; this.form.conclusion = res.data.jcjl; this.$refs.aaa.updateData(res.data.jcsj, res.data.jcjl); }); } else { console.warn("selectedRow 未准备好,跳过接口调用"); } const tjNumber = this.selectedTjNumber; getYxJcXxJg(tjNumber, proId).then((res) => { this.form.proResult = res.data.jcsj; this.form.conclusion = res.data.jcjl; this.$refs.aaa.updateData(res.data.jcsj, res.data.jcjl); }); // ✅ 同时更新 selectedRow this.selectedRow = selection[0]; @@ -815,13 +757,11 @@ }, /* handleChange(selection) { // console.log(selection, 123); if (selection && selection.length > 0) { const proId = selection[0].proId; const tjNumber = this.selectedRow.tjNumber; this.selectedRow = selection[0]; getYxJcXxJg(tjNumber, proId).then((res) => { console.log(res, 333); this.form.proResult = res.data.jcsj; this.form.conclusion = res.data.jcjl; }); @@ -842,6 +782,7 @@ tupian() { this.dialogVisible = true; }, // 确定按钮 submito() { /* if (this.dataobj) { @@ -864,16 +805,15 @@ console.error("未选中行或缺少 proId"); return; } console.log(this.selectedRow.proId, 96); const proId = this.selectedRow.proId; const jcsj = this.form.proResult; // 获取检查所见 const jcjl = this.form.conclusion; // 获取检查结论 const jcsj = this.form.proResult || " "; // 获取检查所见 const jcjl = this.form.conclusion || " "; // 获取检查结论 // 确保 jcsj 和 jcjl 存在 if (!jcsj || !jcjl) { console.error("检查所见或检查结论不能为空"); return; } // if (!jcsj || !jcjl) { // console.error("检查所见或检查结论不能为空"); // return; // } addYxJcXx({ proId: proId, @@ -882,11 +822,20 @@ jcjl: jcjl, // 传递检查结论 }) .then((response) => { console.log("提交成功", response); this.submitForm(); this.form.proResult = ""; this.form.conclusion = ""; if (this.tableList.length == 1) { this.submitForm(); } else { this.tableList.forEach((item, index) => { if (item.type == 0) { this.changtjNumber(this.selectedTjNumber); } else { this.submitForm(); } }) } }) .catch((error) => { console.error("提交失败", error); @@ -894,20 +843,16 @@ }, //删除按钮 handleDelete() {}, handleDelete() { }, // 导出 handleExport() {}, handleExport() { }, }, }; </script> <style> #table .el-table__header-wrapper .el-checkbox { display: none; } .default-button-style :hover { width: 80px; border-bottom: none; @@ -969,4 +914,5 @@ float: left; position: relative; } </style> </style> src/views/system/comp/index.vue
@@ -288,6 +288,9 @@ <el-form-item> <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">重置</el-button> </el-form-item> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> </el-form> <!-- <div style="color: red; font-size: 8px"> 注释:鼠标左键双击选中行可删除 @@ -320,9 +323,7 @@ <el-col :span="8" :xs="24"> <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> <el-form-item label="项目名称" prop="proName"> <el-input ref="inputName" v-model="queryParams1.proName" placeholder="请输入项目名称" clearable @keyup.enter.native="handleSearchFor" style="width: 140px" /> @@ -334,8 +335,8 @@ <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="项目名称" align="center" prop="proName" /> <el-table-column label="项目价格/元" align="center" prop="proPrice" /> <el-table-column label="项目名称" align="center" prop="proName" width="230px"/> <el-table-column label="项目价格/元" align="center" prop="proPrice" width="100px"/> </el-table> </el-col> </el-row> @@ -366,6 +367,9 @@ </el-form-item> <el-form-item> <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">重置</el-button> </el-form-item> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> </el-form> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> @@ -411,9 +415,7 @@ <el-col :span="7" :xs="24"> <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> <el-form-item label="项目名称" prop="proName"> <el-input ref="inputName" v-model="queryParams1.proName" placeholder="请输入项目名称" clearable @@ -426,8 +428,8 @@ <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478" style="width: 100%"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="项目名称" align="center" prop="proName" /> <el-table-column label="项目价格/元" align="center" prop="proPrice" /> <el-table-column label="项目名称" align="center" prop="proName" width="230px"/> <el-table-column label="项目价格/元" align="center" prop="proPrice" width="100px"/> </el-table> </el-col> </el-row> @@ -472,6 +474,9 @@ <el-form-item> <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">重置</el-button> </el-form-item> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> </el-form> <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"> <el-table-column label="项目名称" align="center" prop="proName" width="170"> @@ -503,9 +508,7 @@ <el-col :span="8" :xs="24"> <el-form :model="queryParams" ref="queryForm1" size="small" :inline="true" v-show="showSearch" label-width="68px" @submit.native.prevent> <el-form-item> <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">选择套餐</el-button> </el-form-item> <el-form-item label="项目名称" prop="proName"> <el-input ref="inputName" v-model="queryParams1.proName" placeholder="请输入项目名称" clearable @keyup.enter.native="handleSearchFor" style="width: 140px" /> @@ -517,7 +520,7 @@ <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle" height="478"> <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="项目名称" align="center" prop="proName" width="288" /> <el-table-column label="项目名称" align="center" prop="proName" width="230" /> <el-table-column label="项目价格/元" align="center" prop="proPrice" width="100" /> </el-table> </el-col>