From 5f6e994d3ce5f47e8b5dd95bbdfb8aef3e321cb0 Mon Sep 17 00:00:00 2001 From: qx <1084500556@qq.com> Date: 星期三, 16 七月 2025 15:07:36 +0800 Subject: [PATCH] Merge branch 'master' of http://101.42.27.146:5001/r/ltkj_peisweb_region --- src/views/system/tijian/index.vue | 288 ++-- src/views/doctor/checkAll/index.vue | 22 src/views/hosp/order/index.vue | 6 src/components/proposal/index.vue | 14 src/views/doctor/checkAll/index copy.vue | 2711 ++++++++++++++++++++++++++++++++++++++++++++++ public/yuanqu.ini | 29 src/views/login copy.vue | 392 ++++++ 7 files changed, 3,310 insertions(+), 152 deletions(-) diff --git a/public/yuanqu.ini b/public/yuanqu.ini new file mode 100644 index 0000000..63f25b6 --- /dev/null +++ b/public/yuanqu.ini @@ -0,0 +1,29 @@ +[development] +8094=pbkwyy +81=jdczgzyy +8095=jdczgzyy +8096=sqyy +8097=wbzxyy +8098=bjxjyy +8099=bjfhyy +8100=ssyjyy +8101=bjsqyy + +[staging] +9013=pbkwyy +9014=jdczgzyy +9015=sqyy +9016=wbzxyy +9017=bjxjyy +9018=ssyjyy +9019=bjsqyy + +[production] +8094=pbkwyy +8095=jdczgzyy +8096=sqyy +8097=wbzxyy +8098=bjxjyy +8099=bjfhyy +8100=ssyjyy +8101=bjsqyy \ No newline at end of file diff --git a/src/components/proposal/index.vue b/src/components/proposal/index.vue index 58d3474..d8aac1c 100644 --- a/src/components/proposal/index.vue +++ b/src/components/proposal/index.vue @@ -19,8 +19,8 @@ <el-form inline @submit.native.prevent="search"> <el-form-item> <el-radio-group v-model="tjproposal" @input="radiotjproposalChange"> - <el-radio-button label="0">甯哥敤寤鸿</el-radio-button> - <el-radio-button label="1">蹇嵎寤鸿</el-radio-button> + <el-radio-button label="0">蹇嵎寤鸿</el-radio-button> + <el-radio-button label="1">甯哥敤寤鸿</el-radio-button> </el-radio-group> </el-form-item> <el-form-item v-show="tjproposal == 0"> @@ -171,6 +171,10 @@ this.tjproposal = "0"; this.getList(); }, + mrjy(val) { + const mode = val === "Y" ? "1" : "0"; + this.setTjProposal(mode); + }, }, mounted() { // this.getList() @@ -182,6 +186,12 @@ // } }, methods: { + setTjProposal(mode) { + if (this.tjproposal !== mode) { + this.tjproposal = mode; + this.radiotjproposalChange(mode); // 鎵ц鍒囨崲閫昏緫 + } + }, getAllList() { this.loading = true; this.openone = true; diff --git a/src/views/doctor/checkAll/index copy.vue b/src/views/doctor/checkAll/index copy.vue new file mode 100644 index 0000000..f8f3b19 --- /dev/null +++ b/src/views/doctor/checkAll/index copy.vue @@ -0,0 +1,2711 @@ +<template> + <div class="mainbox"> + <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px" + v-if="tjStatus == 0"> + <el-form-item label="濮撳悕" prop="name"> + <el-input v-model="queryParams.name" style="width: 120px" placeholder="璇疯緭鍏ュ鍚�" clearable + @keyup.enter.native="submitForm"></el-input> + </el-form-item> + <el-form-item label="浣撴鍙�" prop="tjNumber"> + <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable + @keyup.enter.native="submitForm" @blur="hb"></el-input> + </el-form-item> + <el-form-item label="浣撴鏃堕棿" prop="tjTime"> + <el-date-picker v-model="startTime" 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 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="浣撴绫诲埆"> + <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="璇烽�夋嫨浣撴绫诲埆" @change="searchCategory"> + <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label" + :value="dict.value"></el-option> + </el-select> + <!-- <el-input v-model="form.category" placeholder="璇疯緭鍏ヤ綋妫�绫诲埆" /> --> + </el-form-item> + <el-form-item> + <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">鎼滅储</el-button> + <el-button size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + + <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px" + v-if="tjStatus == 1"> + <el-form-item label="濮撳悕" prop="name"> + <el-input v-model="queryParams.name" style="width: 120px" placeholder="璇疯緭鍏ュ鍚�" clearable + @keyup.enter.native="submitForm"></el-input> + </el-form-item> + <el-form-item label="浣撴鍙�" prop="tjNumber"> + <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable + @keyup.enter.native="submitForm" @blur="hb"></el-input> + </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-select> + </el-form-item> + <el-form-item label="瀹℃牳鍖诲笀" prop="shys"> + <el-input ref="inputName" v-model="queryParams.shys" style="width: 180px" placeholder="璇疯緭鍏ュ鏍稿尰甯�" clearable + @keyup.enter.native="submitForm"></el-input> + </el-form-item> + <el-form-item label="浣撴绫诲埆"> + <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="璇烽�夋嫨浣撴绫诲埆"> + <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label" + :value="dict.value"></el-option> + </el-select> + <!-- <el-input v-model="form.category" placeholder="璇疯緭鍏ヤ綋妫�绫诲埆" /> --> + </el-form-item> + <el-form-item> + <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">鎼滅储</el-button> + <el-button 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-form-item> + <el-row v-show="isCollapsed == 1" :gutter="20"> + <el-col :span="8"> + <el-form-item label="浣撴鏃堕棿" prop="tjTime"> + <el-date-picker v-model="startTime" 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-col> + </el-row> + + </el-form> + + <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px"> + <el-radio-button label="0">鏈鏍�</el-radio-button> + <el-radio-button label="1">宸插鏍�</el-radio-button> + </el-radio-group> + + <el-row :gutter="10" class="mb8" v-if="piliang" style="margin: 15px;"> + <el-col :span="1.5"> + <el-button type="primary" size="mini" @click="handleshenhe">鎵归噺鏍告敹</el-button> + </el-col> + </el-row> + + <template> + <el-table v-loading="loading" :data="checkList" ref="table" border style="margin: 20px; width: 98%" + @current-change="handleCurrentChange"> + <el-table-column type="selection" align="center" label="閫夋嫨" width="50" v-if="piliang"/> + <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px" + fixed="left" /> + <el-table-column label="濮撳悕" align="center" prop="cusName" :show-overflow-tooltip="true" width="100px" + fixed="left" /> + <el-table-column label="鎬у埆" align="center" prop="cusSex" :show-overflow-tooltip="true" width="55px"> + <template slot-scope="scope"> + <span v-if="scope.row.cusSex == '0'">鐢�</span> + <span v-if="scope.row.cusSex == '1'">濂�</span> + <span v-if="scope.row.cusSex == '2'">鏈煡</span> + <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span> + </template> + </el-table-column> + <el-table-column label="鍑虹敓鏃ユ湡" align="center" prop="cusBrithday" :show-overflow-tooltip="true" width="110px" /> + <el-table-column label="鐢佃瘽" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" /> + <el-table-column label="瀹℃牳鏃堕棿" align="center" prop="shsj" :show-overflow-tooltip="true" width="180px" v-if="tjStatus == 1" /> + <el-table-column label="浣撴鏃堕棿" align="center" prop="tjTime" :show-overflow-tooltip="true" width="180px" v-if="tjStatus == 0" /> + <!-- <el-table-column label="瀹屾垚鏃堕棿" align="center" prop="finishTime" :show-overflow-tooltip="true" width="160px" /> --> + <el-table-column label="鐘舵��" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px" + v-if="tjStatus == 0"> + <template slot-scope="scope" v-if="tjStatus == 0"> + <span>{{ scope.row.tjStatus == "1" ? "宸插鏍�" : "鏈鏍�" }}</span> + </template> + </el-table-column> + <el-table-column label="瀹℃牳鍖诲笀" align="center" prop="shys" width="120px" v-if="tjStatus == 1" /> + <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="tjCompName" :show-overflow-tooltip="true" /> + <el-table-column label="浣撴绫诲埆" align="center" prop="tjCategory"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.dict_tjtype" :value="scope.row.tjCategory" /> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" align="center" width="120px" fixed="right"> + <template slot-scope="scope"> + <el-button fixed="right" title="澶勬柟" type="text" size="mini" @click.stop="rowClick(scope.row)" + icon="el-icon-edit-outline"></el-button> + <el-button fixed="right" title="璇︽儏" type="text" size="mini" @click.stop="handleClick(scope.row)" + icon="el-icon-document-copy"></el-button> + <el-button type="text" size="mini" @click.stop="viewReport(scope.row)" v-if="scope.row.tjStatus == '1'" + title="棰勮" icon="el-icon-view"></el-button> + <el-button type="text" size="mini" v-if="scope.row.tjStatus == '1'" title="鎾ら攢" + @click.stop="getRevoke(scope.row)" icon="el-icon-refresh-left"></el-button> + </template> + </el-table-column> + </el-table> + + <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> + </template> + + <!-- 鐐瑰嚮寮瑰嚭妗� --> + <el-drawer custom-class="tanchu" :visible.sync="drawer" :before-close="handleClose" :with-header="false" size="100%" + :show-close="true"> + <div v-loading="isLoading" element-loading-text="姝e湪鍔犺浇鏁版嵁锛岃绋嶅��..." element-loading-spinner="el-icon-loading" + element-loading-background="rgba(255, 255, 255, 0.8)" style="height: 100%; padding: 20px; position: relative;"> + <div class="top"> + <table style="width: 100%; margin: 10px 10px; border: 1px solid #dfe6ec; border-collapse: collapse;" + cellspacing="4"> + <caption style="background-color: #f8f8f9; font-size: 18px"> + {{ tableAll.cusName }}鐨勪綋妫�璧勬枡 + </caption> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">濮撳悕锛�</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.cusName }}</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">鎬у埆锛歿{ tableAll.cusSex == 0 ? "鐢�" : + tableAll.cusSex == 1 ? "濂�" : "鏈煡" }}</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">骞撮緞锛歿{ tableAll.age }}</td> + </tr> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">浣撴鍗曞彿锛�</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.tjNumber }}</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">浣撴鏃堕棿锛�</td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.tjTime }}</td> + </tr> + </table> + <i class="el-icon-close" @click="guanbi"></i> + </div> + + <div style="margin-right: 10px; display: flex" class="btnbox"> + <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'"> + <el-button @click="Graphicreport()" type="primary"> + <span class="vertical-text">鍥炬枃鎶ュ憡</span> + </el-button> + </div> + <div class="btn1"> + <el-button @click="historicalreport()" type="primary"><span class="vertical-text">鍘嗗彶鎶ュ憡</span></el-button> + </div> + <div v-if="tableAll.tjCategory == '02'" class="btn1"> + <el-button @click="medicalhistory()" type="primary"><span class="vertical-text">鑱屼笟鐥呭彶</span></el-button> + </div> + <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'"> + <el-button @click="jianqian()" type="primary"><span class="vertical-text">妫�鍓嶉棶璇�</span></el-button> + </div> + <div class="btn1"> + <el-button @click="xiangmuqingkuang()" type="primary"><span class="vertical-text">椤圭洰鎯呭喌</span></el-button> + </div> + <div class="btn1"> + <el-button @click="yichangjieguo()" type="primary"><span class="vertical-text">寮傚父缁撴灉</span></el-button> + </div> + <div class="btn1"> + <el-button @click="fuchaxiangmu()" type="primary"><span class="vertical-text">澶嶆煡椤圭洰</span></el-button> + </div> + <div class="btn1"> + <el-button @click="yichanghuifu()" type="primary"><span class="vertical-text">寮傚父鎭㈠</span></el-button> + </div> + </div> + <div class="box"> + <div class="left-container"> + <div class="left"> + <div v-for="(item, index) in changedate" :key="index"> + <div style="text-align: center; background-color: #aad8df; margin-top: 10px;"> + {{ item.parent || "" }} + </div> + <div v-if="item.xmlb == '0'"> + <el-table :data="item.sons" border style="width: 100%" :row-style="changRed" + :header-cell-style="{ background: '#aad8df' }"> + <el-table-column align="center" label="妫�娴嬮」鐩�" width="464"> + <template slot-scope="scope"> + <div>{{ scope.row.proName }}</div> + </template> + </el-table-column> + <el-table-column align="center" prop="proResult" label="妫�娴嬬粨鏋�" width="180"></el-table-column> + <el-table-column align="center" prop="" label="鍗曚綅"> + <template slot-scope="scope"> + <div v-if="scope.row.project != null">{{ scope.row.standard.company || "" }}</div> + <div v-else>{{ scope.row.proAdvice }}</div> + </template> + </el-table-column> + <el-table-column align="center" prop="conclusion" label="寮傚父" width="180"></el-table-column> + <el-table-column align="center" prop="" label=" 鍙傝�冭寖鍥�"> + <template slot-scope="scope"> + <div v-if="scope.row.project != null"> + {{ scope.row.standard.tjStandardGtValue || "/" + "-" + scope.row.standard.tjStandardLtValue || + "/" }} + </div> + <div v-else>{{ scope.row.stanId || "/" }}</div> + </template> + </el-table-column> + </el-table> + <table style="width: 100%" v-if="tjproject != '1'"> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 7%;"> + 灏忕粨锛� + </td> + <td style="border: 1px solid #dfe6ec; width: 45%"> + <el-input v-model="item.remark" disabled></el-input> + </td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 15%;"> + 涓绘鍖诲笀锛� + </td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2"> + {{ item.doctorName }} + </td> + </tr> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 200px;"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 240px;"> + 澶囨敞锛� + </td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="3"> + <el-input type="textarea" autosize placeholder="璇疯緭鍏ュ唴瀹�" v-model="changedate[index].remark" + v-on:input="change" style="width: 100%"></el-input> + </td> + </tr> + </table> + </div> + <div v-else> + <table style="width: 100%" v-if="tjproject != '1'"> + <tr style="border: 1px solid #dfe6ec"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 15%; height: auto;"> + 妫�鏌ユ墍瑙侊細 + </td> + <td style="border: 1px solid #dfe6ec; height: auto" colspan="2"> + <el-input type="textarea" autosize placeholder="璇疯緭鍏ュ唴瀹�" v-model="item.jgbx" + style="width: 100%"></el-input> + </td> + </tr> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 15%;"> + 妫�鏌ユ彁绀猴細 + </td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2"> + <el-input type="textarea" autosize placeholder="璇疯緭鍏ュ唴瀹�" v-model="item.remark" + style="width: 100%"></el-input> + </td> + </tr> + <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 200px;"> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse; width: 15%;"> + 涓绘鍖诲笀锛� + </td> + <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2"> + {{ item.doctorName }} + </td> + </tr> + </table> + </div> + </div> + <div v-if="tableAll && tableAll.tjCategory === '02'" class="section-title">鑱屼笟鐥呮�绘</div> + <el-form v-if="tableAll && tableAll.tjCategory === '02'" ref="numberValidateForm" label-width="80px" + class="demo-ruleForm"> + <el-form-item label="妫�鏌ョ粨璁�"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="zhiyeJl" :rows="3" + style="width: 96%"></el-input> + </el-form-item> + <el-form-item label="浣撴缁撴灉"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="zhiyeJg" :rows="3" + style="width: 96%"></el-input> + </el-form-item> + </el-form> + <div style="margin: 0 0px 10px 15px" v-if="tjproject != '1'"> + <el-button type="primary" @click="propoChange">蹇嵎寤鸿</el-button> + <el-button type="primary" @click="proposalChange">鐢熸垚寤鸿</el-button> + </div> + + <el-form ref="numberValidateForm" label-width="80px" class="demo-ruleForm" v-if="tjproject != '1'"> + <el-form-item label="鎬绘寤鸿"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea1" :rows="3" + style="width: 96%"></el-input> + </el-form-item> + </el-form> + <el-form ref="numberValidateForm" label-width="100px" class="demo-ruleForm" v-if="tjproject != '1' && sfsjsh == 'Y'"> + <el-form-item label="涓婄骇鍖诲笀寤鸿"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea1" :rows="3" + style="width: 96%"></el-input> + </el-form-item> + </el-form> + <el-form ref="numberValidateForm" label-width="100px" class="demo-ruleForm" v-if="tjproject != '1' && sfsjsh == 'Y'"> + <el-form-item label="涓讳换鍖诲笀寤鸿"> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea1" :rows="3" + style="width: 96%"></el-input> + </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" + @click.stop="rowClick" icon="el-icon-edit-outline">寮�澶勬柟</el-button> + <div v-if="tjproject == '0'"> + <el-button type="primary" @click="determine" :disabled="isdisabled">鎻愪氦骞剁敓鎴愭姤鍛�</el-button> + </div> + </div> + </div> + </div> + <div class="rightbox"> + <div class="right"> + <template v-if="status1 == 0"> + <div v-for="(item, index) in yichangList" :key="index"> + <div style="text-align: center; background-color: #67c23a; margin-top: 10px;"> + {{ item.proName || "" }} + </div> + <template v-if="item.jyjc == '0'"> + <el-table :stripe="true" :row-style="red" :data="item.sone" border style="width: 100%" + :header-cell-style="{ background: '#67C23A' }" :expand-row-keys="expends" :row-key="getRowKeys" + v-loading="loading"> + <el-table-column type="expand"> + <template slot-scope="props"> + <div style="padding: 10px;"> + <!-- 鍐呭鍖哄煙 --> + <div v-if="props.row.advices && props.row.advices.length > 0"> + <div v-for="(jianyi, index1) in props.row.advices" :key="index1" + style="margin-bottom: 10px"> + <div> + 鏍囬锛� + <el-input v-model="jianyi.bt" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, index1)"></el-input> + </div> + <div> + 鍐呭锛� + <el-input v-model="jianyi.nr" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, index1)"></el-input> + </div> + </div> + </div> + <!-- 濡傛灉 advices 涓虹┖鏃讹紝娓叉煋绌虹殑杈撳叆妗� --> + <div v-else> + <div> + 鏍囬锛� + <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, -1)"></el-input> + </div> + <div> + 鍐呭锛� + <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, -1)"></el-input> + </div> + </div> + <div style="margin-top: 10px;"> + <el-button @click="shanchu(props.row)" type="danger" size="small">鍒犻櫎</el-button> + </div> + </div> + </template> + </el-table-column> + <el-table-column align="center" label="妫�娴嬮」鐩�" :show-overflow-tooltip="true" width="353"> + <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> + </template> + <template v-if="item.jyjc == '1'"> + <el-table :stripe="true" :row-style="red" :data="item.sone" border style="width: 100%" + :header-cell-style="{ background: '#67C23A' }" :expand-row-keys="expends" :row-key="getRowKeys"> + <el-table-column type="expand"> + <template slot-scope="props"> + <div style="padding: 10px;"> + <!-- 鍐呭鍖哄煙 --> + <div v-if="props.row.advices && props.row.advices.length > 0"> + <div v-for="(jianyi, index1) in props.row.advices" :key="index1" + style="margin-bottom: 10px"> + <div> + 鏍囬锛� + <el-input v-model="jianyi.bt" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, index1)"></el-input> + </div> + <div> + 鍐呭锛� + <el-input v-model="jianyi.nr" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, index1)"></el-input> + </div> + </div> + </div> + <!-- 濡傛灉 advices 涓虹┖鏃讹紝娓叉煋绌虹殑杈撳叆妗� --> + <div v-else> + <div> + 鏍囬锛� + <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, -1)"></el-input> + </div> + <div> + 鍐呭锛� + <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize + @blur="handleAdviceBlur(props.row, -1)"></el-input> + </div> + </div> + <div style="margin-top: 10px;"> + <el-button @click="shanchu(props.row)" type="danger" size="small">鍒犻櫎</el-button> + </div> + </div> + </template> + </el-table-column> + <el-table-column align="center" label="妫�娴嬮」鐩�" width="232" :show-overflow-tooltip="true"> + <template slot-scope="scope"> + <div>{{ scope.row.proName }}</div> + </template> + </el-table-column> + <el-table-column align="center" prop="proResult" label="妫�娴嬬粨鏋�" width="403"></el-table-column> + </el-table> + </template> + </div> + </template> + <template v-if="status1 == 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' }"> + <el-table-column align="center" label="閮ㄩ棬" width="144" prop="deptName"></el-table-column> + <el-table-column align="center" prop="proName" label="椤圭洰" width="260"></el-table-column> + <el-table-column label="鐘舵��" align="center" prop="type" :show-overflow-tooltip="true" width="120"> + <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-column label="鎿嶄綔" align="center" width="130px"> + <template slot-scope="scope"> + <el-button type="primary" size="mini" @click="huifu" v-if="scope.row.type == '2'">鎭㈠</el-button> + </template> + </el-table-column> + </el-table> + </div> + </template> + + <template v-if="status1 == 2"> + <div> + <div style="text-align: center; margin-top: 10px;"> + 澶嶆煡椤圭洰 + </div> + <div style="display: flex;margin:15px ;"> + <span slot="label" style="display: inline-block; border-bottom: 2px solid blue;font-size: 0.8vw;" + @click="handleQuery"> + 椤圭洰閫夋嫨 + </span> + <div v-if="xmChange.length > 0" style="display: flex;"> + <div style="margin:0 40px;font-size: 0.8vw;">椤圭洰鍚嶇О锛歿{ xmChange[0].proName || "" }}</div> + <div style="margin:0 80px ;font-size: 0.8vw;">浠锋牸锛歿{ xmChange[0].price || "" }}</div> + </div> + <div v-else style="display: flex;"> + <div style="margin:0 40px;font-size: 0.8vw;">椤圭洰鍚嶇О锛歿{ }}</div> + <div style="margin:0 80px ;font-size: 0.8vw;">浠锋牸锛歿{ }}</div> + </div> + <el-button type="primary" size="mini" @click="handleaddClick()">娣诲姞</el-button> + </div> + + <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%" border> + <el-table-column type="selection" width="40" align="center" /> + <el-table-column label="搴忓彿" align="center" prop="newID" /> + <el-table-column label="鍚嶇О" align="center" prop="proName" width="100px" /> + <el-table-column label="浠锋牸" align="center" prop="price" /> + <el-table-column label="绉戝" align="center" prop="deptName" /> + <el-table-column label="鎿嶄綔" align="center" width="130px"> + <template slot-scope="scope"> + <el-button type="primary" size="mini" @click="handledeleteClick(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </div> + </template> + <template v-if="status1 == 3"> + <div class="hist3"> + <span class="txt">闂瘖淇℃伅</span> + <el-form ref="form" :model="formobj" label-width="100px" :inline="true" size="mini"> + <el-collapse class="coll" v-model="activeName" accordion> + <el-collapse-item class="coll" title="鍩烘湰淇℃伅" name="1" style="width: 100%; font-weight: 600"> + <div style="width: 100%"> + <el-form-item label="濮撳悕" prop="cusName"> + <el-input disabled v-model="formobj.cusName" placeholder="璇疯緭鍏ュ鍚�" /> + </el-form-item> + <el-form-item label="鑱屼笟" prop="work"> + <el-select filterable v-model="formobj.work" placeholder="璇烽�夋嫨鑱屼笟" clearable + style="width: 150px" disabled> + <el-option v-for="dict in dict.type.tj_work" :key="dict.value" :label="dict.label" + :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="宸ヤ綔鐘舵��" prop="workStatus"> + <el-select disabled filterable v-model="formobj.workStatus" placeholder="璇烽�夋嫨宸ヤ綔鐘舵��" clearable + style="width: 150px"> + <el-option v-for="dict in dict.type.tj_work_status" :key="dict.value" :label="dict.label" + :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="鎺ヨЕ姣掔墿" prop="contactPoison"> + <el-input disabled type="textarea" rows="4" v-model="formobj.contactPoison" + placeholder="璇疯緭鍏ユ帴瑙︽瘨鐗�" style="width: 700px" /> + </el-form-item> + <el-form-item label="鏃㈠線鐥呭彶" prop="medicalHistory"> + <el-input disabled type="textarea" rows="4" v-model="formobj.medicalHistory" + placeholder="璇疯緭鍏ユ棦寰�鐥呭彶" style="width: 700px" /> + </el-form-item> + </div> + </el-collapse-item> + <el-collapse-item title="鏈堢粡鍙�" name="2" v-show="sex"> + <div style="width: 100%"> + <el-form-item label="鍒濇疆(宀�)" prop="chuchao"> + <el-input v-model="formobj.chuchao" style="width: 70px" disabled /> + </el-form-item> + <el-form-item label="缁忔湡" prop="jingqi"> + <el-input v-model="formobj.jingqi" disabled style="width: 70px" />澶� + </el-form-item> + <el-form-item label="鍛ㄦ湡" prop="zhouqi"> + <el-input v-model="formobj.zhouqi" disabled style="width: 70px" />澶� + </el-form-item> + <el-form-item label="鏈鏈堢粡" prop="mociage"> + <el-input v-model="formobj.mociage" disabled style="width: 100px" /> + </el-form-item> + </div> + </el-collapse-item> + <el-collapse-item title="鐢熻偛鍙�" name="3" v-show="sex"> + <div style="width: 100%"> + <el-form-item label="鐜版湁瀛愬コ(浜�)" prop="zinv"> + <el-input v-model="formobj.zinv" style="width: 70px" disabled /> + </el-form-item> + <el-form-item label="娴佷骇(娆�)" prop="liuchan"> + <el-input v-model="formobj.liuchan" style="width: 70px" disabled /> + </el-form-item> + <el-form-item label="鏃╀骇(娆�)" prop="zaochan"> + <el-input v-model="formobj.zaochan" style="width: 70px" disabled /> + </el-form-item> + <el-form-item label="姝讳骇(娆�)" prop="sichan"> + <el-input v-model="formobj.sichan" style="width: 70px" disabled /> + </el-form-item> + <el-form-item label="寮傚父鑳�(娆�)" prop="yichangtai"> + <el-input v-model="formobj.yichangtai" style="width: 70px" disabled /> + </el-form-item> + </div> + </el-collapse-item> + <el-collapse-item title="鐑熼厭鍙�" name="4"> + <div style="width: 100%"> + <el-form-item label="鏄惁鍚哥儫" prop="xiyan"> + <el-select disabled filterable v-model="formobj.xiyan" placeholder="璇烽�夋嫨鏄惁鍚哥儫" clearable + style="width: 150px"> + <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" + :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="鍚哥儫棰戠巼" prop="xiyanpinlv"> + <el-input v-model="formobj.xiyanpinlv" disabled style="width: 70px" />鏀�/澶� + </el-form-item> + <el-form-item label="鍚哥儫鏃堕棿" prop="xiyanyear"> + <el-input v-model="formobj.xiyanyear" disabled style="width: 70px" />骞� + </el-form-item><br /> + <el-form-item label="鏄惁楗厭" prop="yinjiu"> + <el-select filterable v-model="formobj.yinjiu" disabled placeholder="璇烽�夋嫨鏄惁楗厭" clearable + style="width: 150px"> + <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" + :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="楗厭棰戠巼" prop="yinjiupinlv"> + <el-input v-model="formobj.yinjiupinlv" disabled style="width: 70px" />ml/澶� + </el-form-item> + <el-form-item label="楗厭鏃堕棿" prop="yinjiuyear"> + <el-input v-model="formobj.yinjiuyear" disabled style="width: 70px" />骞� + </el-form-item> + <el-form-item label="鍏朵粬" prop="qita"> + <el-input v-model="formobj.qita" placeholder="璇疯緭鍏ュ叾浠�" disabled type="textarea" + style="width: 600px" rows="2" /> + </el-form-item> + </div> + </el-collapse-item> + <el-collapse-item title="鎬ユ參鎬ц亴涓氱梾鍙蹭俊鎭�" name="5"> + <div style="width: 100%"> + <el-table border :data="formobj.tjAskHistorysList" ref="tjAskHistorys" style="width: 98%"> + <el-table-column type="selection" width="40" align="center" /> + <el-table-column label="鐤剧梾鍚嶇О" prop="diseaseName"> + <template slot-scope="scope"> + <el-input size="mini" disabled v-model="scope.row.diseaseName" placeholder="璇疯緭鍏ョ柧鐥呭悕绉�" /> + </template> + </el-table-column> + <el-table-column label="璇婃柇鏃ユ湡" prop="diseaseData"> + <template slot-scope="scope"> + <el-date-picker size="mini" v-model="scope.row.diseaseData" align="right" type="date" + placeholder="閫夋嫨鏃ユ湡" :picker-options="pickerOptions" style="width: 130px" + value-format="yyyy-MM-dd"> + </el-date-picker> + </template> + </el-table-column> + <el-table-column label="璇婃柇鍗曚綅" prop="diseaseCompany"> + <template slot-scope="scope"> + <el-input size="mini" disabled v-model="scope.row.diseaseCompany" + placeholder="璇疯緭鍏ヨ瘖鏂崟浣�" /> + </template> + </el-table-column> + <el-table-column label="鏄惁鐥婃剤" prop="isOk"> + <template slot-scope="scope"> + <el-select disabled filterable size="mini" v-model="scope.row.isOk" + placeholder="璇烽�夋嫨鏄惁鐥婃剤" clearable> + <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" + :value="dict.value" /> + </el-select> + </template> + </el-table-column> + <el-table-column label="澶囨敞" prop="remark"> + <template slot-scope="scope"> + <el-input disabled size="mini" v-model="scope.row.remark" placeholder="璇疯緭鍏ュ娉�" /> + </template> + </el-table-column> + </el-table> + </div> + </el-collapse-item> + <el-collapse-item title="鑱屼笟鍙�" name="7"> + <div style="width: 100%"> + <el-table border :data="formobj.workLogs" style="width: 98%"> + <el-table-column type="selection" width="40" align="center" /> + <el-table-column label="寮�濮嬫椂闂�" prop="beginTime"> + <template slot-scope="scope"> + <el-date-picker size="mini" v-model="scope.row.beginTime" align="right" type="date" + placeholder="閫夋嫨鏃ユ湡" :picker-options="pickerOptions" style="width: 130px" + value-format="yyyy-MM-dd"> + </el-date-picker> + </template> + </el-table-column> + <el-table-column label="缁撴潫鏃堕棿" prop="endTime"> + <template slot-scope="scope"> + <el-date-picker size="mini" disabled v-model="scope.row.endTime" align="right" + type="date" placeholder="閫夋嫨鏃ユ湡" :picker-options="pickerOptions" style="width: 130px" + value-format="yyyy-MM-dd"> + </el-date-picker> + </template> + </el-table-column> + <el-table-column label="宸ヤ綔鍗曚綅" prop="workCompany"> + <template slot-scope="scope"> + <el-input size="mini" disabled v-model="scope.row.workCompany" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" /> + </template> + </el-table-column> + <el-table-column label="閮ㄩ棬" prop="workDept"> + <template slot-scope="scope"> + <el-input disabled size="mini" v-model="scope.row.workDept" placeholder="璇疯緭鍏ラ儴闂�" /> + </template> + </el-table-column> + <el-table-column label="宸ョ" prop="workType"> + <template slot-scope="scope"> + <el-input disabled size="mini" v-model="scope.row.workType" placeholder="璇疯緭鍏ュ伐绉�" /> + </template> + </el-table-column> + <el-table-column label="鏈夊鍥犵礌" prop="harmTypeLogs"> + <template slot-scope="scope"> + <el-select filterable disabled size="mini" v-model="scope.row.harmTypeLogs" multiple + placeholder="璇烽�夋嫨鏈夊鍥犵礌" clearable> + <el-option v-for="dict in harmTypeList" :key="dict.aid" :label="dict.harmtype" + :value="dict.aid" /> + </el-select> + </template> + </el-table-column> + <el-table-column label="闃叉姢鎺柦" prop="fangHu"> + <template slot-scope="scope"> + <el-input disabled size="mini" v-model="scope.row.fangHu" placeholder="璇疯緭鍏ラ槻鎶ゆ帾鏂�" /> + </template> + </el-table-column> + </el-table> + </div> + </el-collapse-item> + </el-collapse> + </el-form> + </div> + </template> + <template v-if="status1 == 4"> + <div> + <el-table + :data="ychfList" + style="width: 100%" + :header-cell-style="{ background: '#e6a23c' }" + > + <el-table-column + align="center" + prop="jcxm" + label="椤圭洰鍚�" + width="260" + ></el-table-column> + <el-table-column + label="缁撴灉" + align="center" + prop="jcjg" + width="160" + /> + <el-table-column label="鎿嶄綔" align="center" width="130px"> + <template v-slot="scope"> + <el-button + type="primary" + size="mini" + @click="hfyc(scope.row.id)" + >鎭㈠</el-button + > + </template> + </el-table-column> + </el-table> + </div> + </template> + <el-button type="primary" @click="addnew" :disabled="isdisabled" style="margin-top: 20px;">鏂板</el-button> + </div> + </div> + </div> + </div> + + </el-drawer> + + <el-dialog title="PDF 棰勮" :visible.sync="dialogVisible" :close-on-click-modal="false" width="50%"> + <div class="main"> + <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe> + </div> + </el-dialog> + <el-dialog title="鎻愮ず" :visible.sync="jianqians" width="1000px" :before-close="handleClose1"> + <jianqianwenzhen :jianqianwenzhendata="jianqianwenzhendata" v-if="flags"></jianqianwenzhen> + <span slot="footer" class="dialog-footer"> + <el-button @click="jianqians = false">鍙� 娑�</el-button> + </span> + </el-dialog> + <el-dialog title="鏂板寮傚父缁撴灉" :visible.sync="addNewDialogVisible" width="900px" class="custom-dialog"> + <el-form :model="newItem" ref="newItemForm" label-width="100px" class="custom-form"> + <el-form-item label="椤圭洰鍒嗙被" prop="parentName"> + <el-select v-model="newItem.parentName" placeholder="璇烽�夋嫨椤圭洰鍒嗙被" clearable filterable + @change="handleCategoryChange"> + <el-option v-for="item in projectCategories" :key="item.proId" :label="item.proName" + :value="item.proName" /> + </el-select> + </el-form-item> + <el-form-item label="妫�娴嬮」鐩�" prop="jcxm"> + <el-input v-model="newItem.jcxm" placeholder="璇疯緭鍏ユ娴嬮」鐩垨浠庡垎绫婚�夋嫨" clearable></el-input> + </el-form-item> + <el-form-item label="妫�娴嬬粨鏋�" prop="jcjg"> + <el-input v-model="newItem.jcjg" placeholder="璇疯緭鍏ユ娴嬬粨鏋�" clearable></el-input> + </el-form-item> + <el-form-item label="鍙傝�冭寖鍥�" prop="ckfw"> + <el-input v-model="newItem.ckfw" placeholder="璇疯緭鍏ュ弬鑰冭寖鍥�" clearable></el-input> + </el-form-item> + <el-form-item label="鍗曚綅" prop="dw"> + <el-input v-model="newItem.dw" placeholder="璇疯緭鍏ュ崟浣�" clearable></el-input> + </el-form-item> + <!-- 鍔ㄦ�佸缓璁粍 --> + <div v-for="(advice, index) in newItem.map" :key="index" class="advice-group"> + <el-form-item label="寤鸿鏍囬" :prop="'map.' + index + '.bt'"> + <el-input v-model="advice.bt" placeholder="璇疯緭鍏ュ缓璁爣棰�" clearable @focus="tan($event)"></el-input> + </el-form-item> + <el-form-item label="寤鸿鍐呭" :prop="'map.' + index + '.nr'"> + <el-input v-model="advice.nr" type="textarea" rows="3" placeholder="璇疯緭鍏ュ缓璁唴瀹�" resize="none" + @focus="tan($event)"></el-input> + </el-form-item> + <el-button v-if="index > 0" type="danger" size="small" @click="removeAdvice(index)" + style="margin-left: 100px; margin-bottom: 10px;">鍒犻櫎</el-button> + </div> + <el-form-item> + <el-button type="primary" size="small" @click="addAdvice" style="margin-left: 100px;">娣诲姞寤鸿</el-button> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="addNewDialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="submitNewItem">纭畾</el-button> + </span> + </el-dialog> + <el-dialog title="蹇嵎寤鸿閫夋嫨" :visible.sync="showjianyi" width="1000px" class="custom-dialog" + :before-close="handleCloseAdviceDialog"> + <!-- 鎼滅储鍖哄煙 --> + <div style="margin-bottom: 15px;"> + <el-form :inline="true"> + <el-form-item label="寤鸿鍚嶇О"> + <el-input v-model="queryParams1.zyzd" placeholder="璇疯緭鍏ュ缓璁悕绉拌繘琛岀瓫閫�" clearable style="width: 200px" + @input="filterAdvices(true)" @keyup.enter.native="filterAdvices(true)" /> + </el-form-item> + </el-form> + </div> + + <!-- 寤鸿琛ㄦ牸 --> + <el-table v-loading="adviceLoading" :data="advicerulesList" ref="adviceTable" border highlight-current-row + @current-change="handleCurrentChangeAdvice" style="max-height: 400px; overflow-y: auto;" + :empty-text="adviceEmptyText"> + <el-table-column label="绉戝" prop="ks" width="100" align="center" /> + <el-table-column label="寤鸿鍚嶇О" prop="jymc" align="center" /> + <el-table-column label="寤鸿鍐呭" prop="jynr" align="center" /> + </el-table> + + <!-- 鍒嗛〉 --> + <div class="pag"> + <div class="pag2"> + <pagination v-show="total1 > 0" :total="total1" :page.sync="queryParams1.pageNum" + :limit.sync="queryParams1.pageSize" @pagination="filterAdvices(false)" /> + </div> + </div> + + <!-- 搴曢儴鎸夐挳 --> + <span slot="footer" class="dialog-footer"> + <el-button @click="cancelAdviceDialog">鍙栨秷</el-button> + <el-button type="primary" @click="applySelectedAdvice" :disabled="!selectedAdvice">纭畾</el-button> + </span> + </el-dialog> + + <el-dialog :visible.sync="xmopen" width="800px" append-to-body> + <div style="margin: 20px;"> + <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border + height="320px"> + <el-table-column type="selection" width="40" align="center" /> + <el-table-column label="鍚嶇О" align="center" prop="proName" width="100px" /> + <el-table-column label="浠锋牸" align="center" prop="price" /> + <el-table-column label="绉戝" align="center" prop="deptName" /> + </el-table> + </div> + + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitFormxm">纭� 瀹�</el-button> + <el-button @click="cancels">鍙� 娑�</el-button> + </div> + </el-dialog> + <Packages ref="bbb" :baogao="baogao" /> + <Prescription ref="Pre" :preObj="preObj" /> + <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" /> + <createproposal ref="createproposal" :creatobj="creatobj" /> + <el-dialog title="甯哥敤寤鸿缁存姢" :visible.sync="propdialog" width="500px" append-to-body></el-dialog> + </div> +</template> +<script> +import _ from 'lodash'; +import jianqianwenzhen from "@/components/jianqianwenzhen"; +import Packages from "@/components/Packages"; +import Prescription from "@/components/Prescription"; +import proposal from "@/components/proposal"; +import createproposal from "@/components/createproposal"; +import { + getcheckList, + getTjdetailList, + getupdateCheckType, + getupdateCheckTypeHuaYan, + getModifiedState, + getfiedState, + getState, + getforceIn, + gettoPdf, + getModified, + isPdfOrJimu, + addOrder, + addOrder1, + getFcList, + UpdFcPro, + huiFuyichangxiangmu, + hfbt, +} from "@/api/doctor/checkAll"; +import { getInfoById } from "@/api/hosp/history"; +import { getInfo } from "@/api/login"; +import { getCompany, queryCompany } from "@/api/team/tuanti"; +import { reportHistory, yichang, shanchu } from "@/api/doctor/check"; +import { getPdf, revoke } from "@/api/hosp/order"; +import { cSWebGetPro,huifu,} 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/system/config"; +import moment from "moment"; +import { listAdvicerules } from "@/api/hosp/advicerules"; + +export default { + components: { + ViewPdf, + Historicalreport, + jianqianwenzhen, + Packages, + proposal, + createproposal, + Prescription, + }, + dicts: [ + "dict_team", + "dict_tjtype", + "sys_user_sex", + "sys_yes_no", + "tj_result_type", + "lj_positive", + "tj_work", + "tj_work_status", + "tj_smoking_pinlv", + "tj_work", + ], + name: "checkAll", + data() { + return { + sfsjsh: '', // 鏄惁涓夌骇瀹℃牳 + zhiyeJl: '', // 鍒濆鍖栨鏌ョ粨璁轰负绌� + zhiyeJg: '', // 鍒濆鍖栦綋妫�缁撴灉涓洪粯璁ゅ�� + selectedAdvice: null, + activeAdviceIndex: 0, + gotyval: null, + advicerulesList: [], + xmChange: [], + showjianyi: false, + piliang: false, + isLoading: false, + adviceLoading: false, + adviceEmptyText: '鏆傛棤鏁版嵁', + total1: 0, + forms: { + pacName: "" + }, + xmopen: false, + datasList: [], + queryParams1: { + pageNum: 1, + pageSize: 10, + zyzd: '', + }, + adviceCache: new Map(), + addNewDialogVisible: false, + newItem: { + parentName: '', + jcxm: '', + jcjg: '', + ckfw: '', + dw: '', + map: [{ bt: '', nr: '' }] + }, + projectCategories: [], + emptyAdvice: { + bt: "", + nr: "", + }, + initialTotalCheckAdvice: "", + initialState: "", + preObj: {}, + baogao: [], + flags: false, + jianqianwenzhendata: [], + jianqians: false, + sex: true, + activeName: "1", + hosproy: true, + remarks: "", + remark: "", + creatobj: {}, + propdialog: false, + proIds: "", + cusobj: {}, + xiaojie: "", + isdisabled: false, + src: "", + url: "", + userId: "", + flag: true, + bill: null, + numberList: [], + reportHistorydata: [], + dialogVisible: false, + pickerOptions: { + shortcuts: [ + { + text: "鏈�杩戜竴鍛�", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜竴涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜笁涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit("pick", [start, end]); + }, + }, + ], + }, + msgtuwen: "", + msgjianqian: "", + msgkcf: "", + checkList: [], + tjStatus: "0", + tjproject: "0", + total: 0, + CompanyList: [], + Testitems: [], + CheckBox: {}, + startTime: [], + isCollapsed: 0, + textarea1: "", + loading: true, + selectLettercurrent: " ", + drawer: false, + tableAll: {}, + tjNumber: "", + DeptadviceAll: [], + MsgId: "", + Deptobj: "", + changedate: [], + dataText: [], + status: {}, + queryParams: { + page: 1, + pageSize: 10, + tjNumber: "", + beginTime: null, + endTime: null, + compId: null, + name: null, + checkStatus: null, + shys: null, + tjCategory: null + }, + formobj: {}, + yichangList: [], + fcList: [], + statusList: [], + queryParam: { + pageNum: 1, + pageSize: 10, + company: undefined, + companyId: undefined, + pacId: undefined, + pacName: undefined, + jobNo: undefined, + name: undefined, + sex: undefined, + idCard: undefined, + age: undefined, + birthday: undefined, + position: undefined, + department: undefined, + departmentId: undefined, + phoe: undefined, + address: undefined, + marriage: undefined, + nation: undefined, + email: undefined, + tjCategory: undefined, + payType: undefined, + }, + status1: 0, + viewportHeight: 0, + expends: [], + }; + }, + + created() { + console.log(this.dict.type.dict_tjtype, "鑱屼笟浣撴"); + this.getConfigKey(); + this.getdate(); + }, + mounted() { + this.$nextTick(() => { + this.$refs.inputName.focus(); + this.viewportHeight = window.innerHeight || document.documentElement.clientHeight; + }); + }, + + methods: { + // 鎵撳紑寤鸿閫夋嫨寮圭獥 + tan(event) { + this.activeAdviceIndex = event.target.closest('.advice-group') + ? Array.from(event.target.closest('.el-form').querySelectorAll('.advice-group')) + .indexOf(event.target.closest('.advice-group')) + : 0; + this.queryParams1.pageNum = 1; + this.queryParams1.pageSize = 10; + this.queryParams1.zyzd = ''; + this.selectedAdvice = null; + this.advicerulesList = []; + this.total1 = 0; + this.adviceCache.clear(); + this.filterAdvices(); + this.showjianyi = true; + }, + + // 绛涢�夊揩鎹峰缓璁紙闃叉姈 800ms锛屽甫缂撳瓨鍜屽姞杞界姸鎬侊級 + filterAdvices: _.debounce(function (resetPage = false) { + if (resetPage) { + this.queryParams1.pageNum = 1; + } + + const cacheKey = `${this.queryParams1.zyzd || ''}_${this.queryParams1.pageNum}_${this.queryParams1.pageSize}`; + + if (this.adviceCache.has(cacheKey)) { + const cachedData = this.adviceCache.get(cacheKey); + this.advicerulesList = cachedData.rows; + this.total1 = cachedData.total; + this.adviceEmptyText = this.advicerulesList.length === 0 ? '鏆傛棤鍖归厤鐨勫缓璁�' : '鏆傛棤鏁版嵁'; + return; + } + + this.adviceLoading = true; + this.adviceEmptyText = '鍔犺浇涓�...'; + + listAdvicerules(this.queryParams1) + .then((response) => { + this.advicerulesList = response.rows || []; + this.total1 = response.total || 0; + + this.adviceCache.set(cacheKey, { + rows: this.advicerulesList, + total: this.total1, + }); + + this.adviceEmptyText = this.advicerulesList.length === 0 ? '鏆傛棤鍖归厤鐨勫缓璁�' : '鏆傛棤鏁版嵁'; + }) + .catch((error) => { + console.error('绛涢�夊揩鎹峰缓璁け璐�:', error); + this.advicerulesList = []; + this.total1 = 0; + this.adviceEmptyText = '鍔犺浇澶辫触锛岃绋嶅悗閲嶈瘯'; + this.$message.error('鍔犺浇寤鸿澶辫触锛岃妫�鏌ョ綉缁滃悗閲嶈瘯'); + }) + .finally(() => { + this.adviceLoading = false; + }); + }, 800), + + handleCurrentChangeAdvice(currentRow) { + this.selectedAdvice = currentRow; + }, + + + toggleCollapse3() { + this.isCollapsed = 0; + }, + toggleCollapse() { + this.isCollapsed = 1; + }, + + applySelectedAdvice() { + if (this.selectedAdvice) { + this.$set(this.newItem.map, this.activeAdviceIndex, { + bt: this.selectedAdvice.jymc, + nr: this.selectedAdvice.jynr, + }); + this.showjianyi = false; + this.selectedAdvice = null; + } else { + this.$message.warning('璇峰厛閫夋嫨涓�鏉″缓璁�'); + } + }, + + cancelAdviceDialog() { + this.showjianyi = false; + this.selectedAdvice = null; + this.queryParams1.zyzd = ''; + this.queryParams1.pageNum = 1; + this.advicerulesList = []; + this.total1 = 0; + this.adviceCache.clear(); + }, + + handleCloseAdviceDialog(done) { + if (this.selectedAdvice) { + this.$confirm('鎮ㄥ凡閫夋嫨涓�鏉″缓璁紝纭畾瑕佸叧闂悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + this.cancelAdviceDialog(); + done(); + }) + .catch(() => { }); + } else { + this.cancelAdviceDialog(); + done(); + } + }, + + handleAdviceBlur(row, index) { + let advicesToSubmit = []; + + if (index === -1) { + if (this.emptyAdvice.bt || this.emptyAdvice.nr) { + advicesToSubmit = [{ bt: this.emptyAdvice.bt || '', nr: this.emptyAdvice.nr || '' }]; + this.$set(row, 'advices', advicesToSubmit); + } + } else { + advicesToSubmit = row.advices; + } + + if (!advicesToSubmit || advicesToSubmit.length === 0) { + return; + } + + const parentItem = this.yichangList.find(item => + item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId) + ); + + if (!parentItem) { + this.$message.error('鏈壘鍒板搴旂殑鐖剁骇椤圭洰'); + return; + } + + const data = { + tjh: this.tableAll.tjNumber, + parentName: parentItem.proName, + jcxm: row.proName, + jcjg: row.proResult, + ckfw: row.stanId, + dw: row.proAdvice, + map: advicesToSubmit, + jyjc: parentItem.jyjc, + id: row.orderDetailId, + }; + + addOrder1(data).then((res) => { + if (res.code === 200) { + // 鎴愬姛鏇存柊寤鸿 + } else { + this.$message.error('寤鸿鏇存柊澶辫触锛�' + (res.msg || '鏈煡閿欒')); + } + }).catch((error) => { + console.error('寤鸿鏇存柊澶辫触:', error); + this.$message.error('寤鸿鏇存柊澶辫触锛�' + error.message); + }); + }, + + handleSelectionChange(selection) { + console.log(selection); + }, + + submitNewItem() { + const data = { + tjh: this.tableAll.tjNumber, + parentName: this.newItem.parentName, + jcxm: this.newItem.jcxm, + jcjg: this.newItem.jcjg, + ckfw: this.newItem.ckfw, + dw: this.newItem.dw, + map: this.newItem.map, + jyjc: this.newItem.ckfw ? "0" : "1" + }; + + addOrder1(data).then((res) => { + if (res.code === 200) { + this.$message.success('鏂板寮傚父缁撴灉鎴愬姛'); + this.addNewDialogVisible = false; + this.yichangjieguo(); + } else { + this.$message.error('鏂板澶辫触'); + } + }).catch((error) => { + console.error('鏂板寮傚父缁撴灉澶辫触:', error); + this.$message.error('鏂板寮傚父缁撴灉澶辫触'); + }); + }, + + addnew() { + this.newItem = { + parentName: '', + jcxm: '', + jcjg: '', + ckfw: '', + dw: '', + map: [{ bt: '', nr: '' }] + }; + this.addNewDialogVisible = true; + + cSWebGetPro(this.tjNumber).then((res) => { + if (res.data && Array.isArray(res.data)) { + this.projectCategories = res.data; + } else { + this.$message.warning('鏈幏鍙栧埌椤圭洰鍒嗙被鏁版嵁'); + this.projectCategories = []; + } + }).catch((error) => { + console.error('鑾峰彇椤圭洰鍒嗙被澶辫触:', error); + this.$message.error('鑾峰彇椤圭洰鍒嗙被澶辫触'); + this.projectCategories = []; + }); + }, + + handleCategoryChange(value) { + if (value) { + this.newItem.jcxm = value; + } + }, + + change(val) { + console.log('閫変腑鐨勫�兼槸锛�', val); + }, + + addAdvice() { + this.newItem.map.push({ bt: '', nr: '' }); + }, + + removeAdvice(index) { + if (this.newItem.map.length > 1) { + this.newItem.map.splice(index, 1); + } else { + this.$message.warning('鑷冲皯淇濈暀涓�缁勫缓璁�'); + } + }, + + shanchu(row) { + this.isdisabled = true; + + shanchu({ + id: row.orderDetailId, + }).then((res) => { + console.log(res, 1111); + + if (res.code === 200) { + const parentItem = this.yichangList.find(item => + item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId) + ); + + if (parentItem) { + const index = parentItem.sone.findIndex(item => item.orderDetailId === row.orderDetailId); + if (index > -1) { + parentItem.sone.splice(index, 1); + + if (parentItem.sone.length === 0) { + const parentIndex = this.yichangList.indexOf(parentItem); + if (parentIndex > -1) { + this.yichangList.splice(parentIndex, 1); + } + } + + this.getExpends(); + this.$forceUpdate(); + this.$message.success('鍒犻櫎鎴愬姛'); + } else { + this.$message.error('鏈壘鍒拌鍒犻櫎鐨勫瓙椤�'); + } + } else { + this.$message.error('鏈壘鍒拌鍒犻櫎鐨勭埗椤�'); + } + } else { + this.$message.error('鍚庣鍒犻櫎澶辫触锛�' + (res.msg || '鏈煡閿欒')); + } + }).catch((error) => { + console.error('鍒犻櫎澶辫触:', error); + this.$message.error('鍒犻櫎鎿嶄綔澶辫触锛�' + error.message); + }).finally(() => { + this.isdisabled = false; + }); + }, + + handleQuery() { + this.xmopen = true; + let data = { + tjNum: this.tjNumber, + type: 0 + }; + getFcList(data).then(res => { + this.datasList = res.data; + }); + }, + + handleaddClick() { + console.log(this.xmChange); + let data = { + orderId: this.xmChange[0].orderId, + data: [{ + proId: this.xmChange[0].proId, + type: 1 + }] + }; + UpdFcPro(data).then(res => { }); + }, + + handledeleteClick() { + UpdFcPro(data).then(res => { }); + }, + + handlexmChange(selection) { + this.xmChange = []; + this.xmChange = selection; + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.elTable.toggleRowSelection(del_row, false); + } + }, + + submitFormxm() { + this.xmopen = false; + }, + + cancels() { + this.xmopen = false; + this.xmChange = []; + }, + + getExpends() { + this.expends = this.yichangList.flatMap(item => + item.sone.map(soneItem => soneItem.orderDetailId) + ); + }, + + 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; + }); + getConfigKey("sfsjsh").then((res) => { + this.sfsjsh = res.msg; + }); + }, + + getRowKeys(row) { + return row.orderDetailId; + }, + + xiangmuqingkuang() { + this.loading = true; + cSWebGetPro(this.tjNumber) + .then((res) => { + this.status1 = 1; + this.statusList = res.data; + if (this.statusList.length == 0) { + this.$message.success("鏆傛棤椤圭洰鎯呭喌"); + } + }) + .catch((error) => { + console.error('鑾峰彇椤圭洰鎯呭喌澶辫触:', error); + this.$message.error('鑾峰彇椤圭洰鎯呭喌澶辫触'); + }) + .finally(() => { + this.loading = false; + }); + }, + + guanbi() { + this.drawer = false; + }, + + yichangjieguo() { + this.isLoading = true + this.status1 = 0; + this.yichangList = [] + yichang({ + tjNum: this.tjNumber, + }) + .then((res) => { + this.isLoading = false + this.yichangList = res.data; + this.yichangList.forEach((item) => { + item.sone.forEach((soneItem) => { + if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) { + soneItem.advices = [{ bt: "", nr: "" }]; + } + }); + }); + if (!this.yichangList) { + this.$message.warning("鏆傛棤寮傚父鎶ュ憡"); + } + }) + .catch((error) => { + this.isLoading = false + console.error('鑾峰彇寮傚父缁撴灉澶辫触:', error); + this.$message.error('鑾峰彇寮傚父缁撴灉澶辫触'); + }) + .finally(() => { + this.isLoading = false + this.loading = false; + }); + }, + + fuchaxiangmu() { + this.loading = true; + this.status1 = 2; + let data = { + tjNum: this.tjNumber, + type: 1 + }; + getFcList(data) + .then((res) => { + this.fcList = res.data; + }) + .catch((error) => { + console.error('鑾峰彇澶嶆煡椤圭洰澶辫触:', error); + this.$message.error('鑾峰彇澶嶆煡椤圭洰澶辫触'); + }) + .finally(() => { + this.loading = false; + }); + }, + + getdate() { + getNewDateList().then((res) => { + this.getList(); + }); + }, + + getNowTime() { + var curDate = new Date().getTime(); + var dayNum = 7 * 24 * 3600 * 1000; + var threeDays = curDate - dayNum; + var sDay = this.getLocalTime(threeDays); + var end = this.getLocalTime(curDate); + this.startTime = [sDay, end]; + }, + + add0(m) { + return m < 10 ? "0" + m : m; + }, + + getLocalTime(nS) { + var time = new Date(nS); + var y = time.getFullYear(); + var m = time.getMonth() + 1; + var d = time.getDate(); + var h = time.getHours(); + var mm = time.getMinutes(); + return ( + y + + "-" + + this.add0(m) + + "-" + + this.add0(d) + + " " + + this.add0(h) + + ":" + + this.add0(mm) + ); + }, + + jianqian() { + this.flags = true; + this.jianqians = true; + let tjNumber = this.tableAll.tjNumber; + this.jianqianwenzhendata.push(tjNumber); + }, + + getList() { + this.loading = true; + this.queryParams.compId = this.CheckBox.drugManufacturerId; + this.queryParams.checkStatus = this.tjStatus; + if (this.startTime) { + this.queryParams.beginTime = this.startTime[0]; + this.queryParams.endTime = this.startTime[1]; + } else { + this.queryParams.beginTime = null; + this.queryParams.endTime = null; + } + + getcheckList(this.queryParams).then((response) => { + if (response.code == 200) { + this.loading = false; + if (response.data) { + if (response.data.date) { + this.checkList = response.data.date; + } else { + this.checkList = response.data.customers; + } + this.total = response.data.total; + } else { + this.checkList = []; + } + } + }); + + getCompany(this.queryParam).then((response) => { + this.CompanyList = response.data; + this.loading = false; + }); + }, + + viewReport(row) { + const tjNumber = row.tjNumber; + isPdfOrJimu(tjNumber).then((response) => { + if (response.data.flag == "0") { + const flag = true; + getPdf(tjNumber, flag).then((response) => { + if (response.size === 0) { + const loading = this.$loading({ + lock: true, + text: "Loading", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + setTimeout(() => { + loading.close(); + }, 3000); + this.$message({ + message: "璇锋挙鍥為噸鏂扮敓鎴愭姤鍛�", + type: "error" + }); + } else { + this.dialogVisible = true; + this.url = window.webkitURL.createObjectURL(response); + } + }); + } else { + let url = response.data.url; + const params = { url }; + this.$tab.openPage("鍋ュ悍璇佹鏌ヨ〃", "/report/zongjianjiankangzheng", params); + } + }); + }, + + Graphicreport() { + this.loading = true; + let dictType = "dict_ageunit"; + getDicts(dictType) + .then((res) => { + if (res.code == 200) { + res.data.forEach((item) => { + if (this.tableAll.age_unit == item.dictValue) { + this.tableAll.age_unit = item.dictLabel; + } + }); + let dictTypes = "sys_user_sex"; + return getDicts(dictTypes); + } else { + throw new Error('鑾峰彇骞撮緞鍗曚綅瀛楀吀澶辫触'); + } + }) + .then((res) => { + if (res.code == 200) { + res.data.forEach((item) => { + if (this.tableAll.cusSex == item.dictValue) { + this.tableAll.cusSex = item.dictLabel; + } + }); + let data = { + patname: this.tableAll.cusName, + sex: this.tableAll.cusSex, + patage: this.tableAll.age, + patagename: this.tableAll.age_unit, + patbirth: this.tableAll.cusBrithday, + }; + return getTjYxjcList(data); + } else { + throw new Error('鑾峰彇鎬у埆瀛楀吀澶辫触'); + } + }) + .then((res) => { + this.baogao = res.data; + this.$refs.bbb.open = true; + this.$refs.bbb.title = "鎶ュ憡瀛楀吀"; + }) + .catch((error) => { + console.error('鐢熸垚鍥炬枃鎶ュ憡澶辫触:', error); + this.$message.error('鐢熸垚鍥炬枃鎶ュ憡澶辫触'); + }) + .finally(() => { + this.loading = false; + }); + }, + + historicalreport() { + this.loading = true; + let data = { + cusId: this.tableAll.cusId, + }; + reportHistory(data) + .then((res) => { + if (res.data[0] != null) { + this.reportHistorydata = res.data; + } else { + this.reportHistorydata = []; + } + }) + .catch((error) => { + console.error('鑾峰彇鍘嗗彶鎶ュ憡澶辫触:', error); + this.$message.error('鑾峰彇鍘嗗彶鎶ュ憡澶辫触'); + }) + .finally(() => { + this.loading = false; + }); + }, + + medicalhistory() { + this.loading = true; + this.status1 = 3; + let tjNumber = this.tableAll.tjNumber; + getInfoById(tjNumber) + .then((response) => { + this.formobj = response.data; + if (this.formobj.xiyan == null) { + this.formobj.xiyan = "1"; + } + if (this.formobj.xiyanpinlv == null) { + this.formobj.xiyanpinlv = "0"; + } + if (this.formobj.xiyanyear == null) { + this.formobj.xiyanyear = "0"; + } + if (this.formobj.yinjiu == null) { + this.formobj.yinjiu = "1"; + } + if (this.formobj.yinjiupinlv == null) { + this.formobj.yinjiupinlv = "0"; + } + if (this.formobj.yinjiuyear == null) { + this.formobj.yinjiuyear = "0"; + } + }) + .catch((error) => { + console.error('鑾峰彇鑱屼笟鐥呭彶澶辫触:', error); + this.$message.error('鑾峰彇鑱屼笟鐥呭彶澶辫触'); + }) + .finally(() => { + this.loading = false; + }); + }, + + downLoadFileImg(row) { + const tjNumber = row.tjNumber; + const flag = true; + getPdf(tjNumber, flag).then((response) => { + this.url = window.webkitURL.createObjectURL(response); + }); + }, + + rowClick(row) { + if (row.tjNumber) { + this.preObj = row; + } else { + this.preObj = this.tableAll; + } + this.$refs.Pre.open = true; + this.$refs.Pre.title = "澶勬柟"; + }, + + radioChange(value) { + this.loading = true; + if(value == "0" && this.gotyval == "01"){ + this.piliang = true + }else{ + this.piliang = false + } + this.queryParams.checkStatus = value; + this.queryParams.page = 1; + this.queryParams.pageSize = 10; + getcheckList(this.queryParams).then((response) => { + if (response.data) { + this.checkList = response.data.customers; + this.total = response.data.total; + } else { + this.checkList = []; + } + this.loading = false; + }); + }, + + propoChange() { + this.cusobj = { sex: this.tableAll.cusSex, isZj: 0 }; + this.$refs.proposal.open = true; + this.$refs.proposal.title = "寤鸿鏂规"; + }, + + eventchange(data) { + this.dataText = data; + if (this.textarea1 == null) { + this.textarea1 = ""; + } + data.forEach((item) => { + if (item.advice) { + this.textarea1 += item.advice; + } else { + this.textarea1 += item.jynr; + } + }); + }, + + proposalChange() { + if (this.textarea1) { + this.creatobj = { proParentList: this.textarea1, isZj: 0 }; + this.$refs.createproposal.open = true; + this.$refs.createproposal.title = "甯哥敤寤鸿缁存姢"; + } else { + this.$message({ + type: "warning", + message: "璇峰厛濉啓鎬绘寤鸿", + }); + } + }, + + radiotjprojectChange() { + if (this.tjproject == "0") { + getupdateCheckType(this.tjNumber).then((response) => { + this.changedate = response.data; + this.changedate.forEach((item) => { + this.textarea1 = item.checkAdvice; + }); + if (this.changedate) { + for (let i = 0; i < this.changedate.length; i++) { + this.remark = this.changedate[i].remark; + } + } else { + this.$message({ + type: "warning", + message: "璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁", + }); + } + }); + } else if (this.tjproject == "1") { + getupdateCheckTypeHuaYan(this.tjNumber).then((res) => { + if (res.data) { + this.changedate = res.data; + this.changedate.forEach((item) => { + this.textarea1 = item.checkAdvice; + }); + if (this.changedate) { + for (let i = 0; i < this.changedate.length; i++) { + this.remark = this.changedate[i].remark; + } + } + } else { + this.$message({ + type: "warning", + message: "璇ュ鎴锋病鏈夊寲楠岄」鐩暟鎹�", + }); + } + }); + } + }, + + getRemoteData(query) { + if (query) { + let compName = query; + queryCompany(compName).then((response) => { + this.CompanyList = response.data; + }); + } + }, + + searchSelect(val) { + this.CheckBox = val; + }, + + searchCategory(val){ + this.gotyval = val + if(val == "01" && this.tjStatus == "0"){ + this.piliang = true + }else{ + this.piliang = false + } + }, + + handleshenhe(){ + + }, + + dateChangebirthday1(val) { + this.startTime = val; + }, + + hb() { + if (this.queryParams.tjNumber != "") { + this.submitForm(); + } + }, + + submitForm() { + this.loading = true; + this.queryParams.compId = this.CheckBox.drugManufacturerId; + this.queryParams.checkStatus = this.tjStatus; + if (this.startTime) { + this.queryParams.beginTime = this.startTime[0]; + this.queryParams.endTime = this.startTime[1]; + } else { + this.queryParams.beginTime = null; + this.queryParams.endTime = null; + } + + getcheckList(this.queryParams).then((response) => { + if (response.code == 200) { + this.loading = false; + if (response.data.customers != null) { + this.checkList = response.data.customers; + this.checkList.forEach((item) => { + this.tjStatus = item.tjStatus.toString(); + }); + this.total = response.data.total; + } else { + this.checkList = []; + } + } + }); + }, + + huifu(row){ + const tjNUm = this.tjNumber; + const proId = row.proId; + huifu(tjNUm, proId).then((res) => { + if (res.code == 200) { + this.xiangmuqingkuang() + } + }); + }, + + yichanghuifu() { + this.loading = true; + let tjNum = this.tjNumber; + huiFuyichangxiangmu(tjNum).then((res) => { + this.status1 = 4; + this.ychfList = res.data; + if(this.ychfList.length == 0){ + this.message.success("鏆傛棤寮傚父鎭㈠椤圭洰") + } + }) + .catch((error)=>{ + console.error("鑾峰彇椤圭洰澶辫触锛�",error); + + this.$message.error("鑾峰彇椤圭洰澶辫触") + }) + .finally(()=>{ + this.loading = false; + }) + }, + + hfyc(id) { + this.$confirm("纭瑕佹仮澶嶈椤瑰悧锛�", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + // 鐢ㄦ埛纭鍚庢墽琛屾帴鍙� + hfbt({ id }) + .then((res) => { + this.$message.success("鎭㈠鎴愬姛"); + this.yichanghuifu(); // 鎭㈠鍚庡埛鏂板垪琛� + }) + .catch((err) => { + console.error(err); + this.$message.error("鎭㈠澶辫触"); + }); + }) + .catch(() => { + // 鐢ㄦ埛鍙栨秷浜嗘搷浣� + this.$message.info("宸插彇娑堟仮澶�"); + }); + }, + + resetQuery() { + this.startTime = []; + this.queryParams = { + page: 1, + pageSize: 10, + tjNumber: "", + beginTime: null, + endTime: null, + compId: null, + name: null, + checkStatus: null, + shys: null, + tjCategory: null + }, + this.resetForm("tableList"); + this.submitForm(); + }, + + changRed({ row }) { + if (row.ycbz != "" && row.ycbz != null) { + return { + color: "red", + }; + } + }, + + red() { + return { + color: "red", + }; + }, + + redxiangmu({ row }) { + if (row.type != 1) { + return { + backgroundColor: "#AAD8DF !important", + }; + } + }, + + handleCurrentChange(val) { + console.log(val) + if (val != null) { + this.handleClick(val); + } + }, + qingkong() { + this.tableAll = {} + this.changedate = [] + this.yichangList = [] + this.statusList = [] + this.xmChange = [] + this.fcList = [] + this.formobj = {} + }, + + handleClick(row) { + this.qingkong() + this.$refs.Pre.open = false; + this.tableAll = row; + this.tjproject = "0"; + this.tjNumber = this.tableAll.tjNumber; + + getState(this.tjNumber).then((res) => { + this.status = res.data; + if (this.status) { + if (this.status.status === "1") { + this.yichangjieguo(); + getInfo().then((response) => { + this.userId = response.user.userId; + if (this.userId) { + let data = { + userId: this.userId, + tjNumber: this.tjNumber, + state: 0, + }; + getModifiedState(data).then((res) => { + this.MsgId = res.msg; + this.isLoading = true + this.drawer = true; + getupdateCheckType(this.tjNumber).then((response) => { + this.isLoading = false + this.changedate = response.data; + if (this.changedate) { + this.changedate.forEach((item) => { + this.textarea1 = item.checkAdvice || ""; + }); + this.initialTotalCheckAdvice = this.textarea1; + this.initialState = JSON.parse(JSON.stringify(this.changedate)); + for (let i = 0; i < this.changedate.length; i++) { + this.remark = this.changedate[i].remark; + } + // 鍥炴樉 zhiyeJl 鍜� zhiyeJg + this.zhiyeJl = this.changedate[0].zhiyejl || ''; + this.zhiyeJg = this.changedate[0].zhiyejg || '鏈彂鐜扮洰鏍囨�х柧鐥�'; + } else { + this.$message({ + type: "warning", + message: "璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁", + }); + // 濡傛灉娌℃湁鏁版嵁锛屾竻绌哄瓧娈� + this.zhiyeJl = ''; + this.zhiyeJg = '鏈彂鐜扮洰鏍囨�х柧鐥�'; + } + }); + }); + } + }); + + } else { + this.$confirm("" + this.status.name + "姝e湪淇敼璇ヤ俊鎭�, 鏄惁寮哄埗杩涘幓?", "鎻愮ず", { + confirmButtonText: "鏄�", + cancelButtonText: "鍚�", + type: "warning", + }) + .then(() => { + this.yichangjieguo(); + getInfo().then((response) => { + this.userId = response.user.userId; + if (this.userId) { + let data = { + userId: this.userId, + tjNumber: this.tjNumber, + state: 0, + }; + getforceIn(data).then((res) => { + this.MsgId = res.msg; + this.isLoading = true + this.drawer = true; + getupdateCheckType(this.tjNumber).then((response) => { + this.isLoading = false + this.changedate = response.data; + if (this.changedate) { + for (let i = 0; i < this.changedate.length; i++) { + this.remark = this.changedate[i].remark; + } + this.initialState = JSON.parse(JSON.stringify(this.changedate)); + this.changedate.forEach((item) => { + this.textarea1 = item.checkAdvice || ""; + }); + // 鍥炴樉 zhiyeJl 鍜� zhiyeJg + this.zhiyeJl = this.changedate[0].zhiyejl || ''; + this.zhiyeJg = this.changedate[0].zhiyejg || '鏈彂鐜扮洰鏍囨�х柧鐥�'; + } else { + this.$message({ + type: "warning", + message: "璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁", + }); + // 濡傛灉娌℃湁鏁版嵁锛屾竻绌哄瓧娈� + this.zhiyeJl = ''; + this.zhiyeJg = '鏈彂鐜扮洰鏍囨�х柧鐥�'; + } + }); + }); + } + }); + + }) + .catch(() => { + this.$message({ + type: "info", + message: "宸插彇娑堣繘鍏�", + }); + }); + } + } + }); + }, + + handleClose(done) { + if (JSON.stringify(this.initialState) !== JSON.stringify(this.changedate) || this.initialTotalCheckAdvice !== this.textarea1) { + this.$confirm("鎮ㄦ湁鏈繚瀛樼殑鏇存敼锛岀‘瀹氳鍏抽棴鍚楋紵", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + let data = { + userId: this.userId, + tjNumber: this.tjNumber, + state: 1, + }; + getfiedState(data).then((res) => { + this.drawer = false; + done(); + }); + }) + .catch(() => { }); + } else { + let data = { + userId: this.userId, + tjNumber: this.tjNumber, + state: 1, + }; + getfiedState(data).then((res) => { + this.drawer = false; + done(); + }); + } + }, + + handleClose1(done) { + this.jianqians = false; + this.flags = false; + done(); + }, + + determine() { + let tjNumber = this.tableAll.tjNumber; + let tjh = this.tableAll.tjNumber; + let advice = this.textarea1; + let data = { + tjNumber, + advice, + checkStatus: 1, + zhiyeJl: this.zhiyeJl, // 娣诲姞妫�鏌ョ粨璁� + zhiyeJg: this.zhiyeJg // 娣诲姞浣撴缁撴灉 + }; + 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(); + + this.loading = true; + getTjdetailList(data) + .then((response) => { + if (response.code === 200) { + this.$modal.msgSuccess("鎻愪氦鎴愬姛"); + // 娓呯┖瀛楁 + this.zhiyeJl = ''; + this.zhiyeJg = ''; + + let reportData = { + userId: this.userId, + tjNumber: tjNumber, + state: 1, + id: this.MsgId, + }; + + addOrder(dataList) + .then((res) => { + 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.all([statePromise, ...updatePromises]) + .then(() => { + 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.loading = false; + console.error("addOrderPromise 澶辫触:", error); + }); + } else { + this.loading = false; + this.$modal.msgError("鎻愪氦澶辫触"); + } + }) + .catch((error) => { + this.loading = false; + console.error("鎻愪氦璇锋眰澶辫触:", error); + this.$modal.msgError("鎻愪氦璇锋眰澶辫触"); + }); + }, + + getRevoke(row) { + this.$confirm("纭鎾ら攢璇ユ姤鍛婂悧锛�", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + revoke(row.tjNumber).then((response) => { + if (response.code === 200) { + this.submitForm(); + this.$message.success("鎾ら攢鎴愬姛"); + } else { + this.$message.error("鎾ら攢澶辫触"); + } + }); + }) + .catch(() => { + this.$message({ + type: "info", + message: "宸插彇娑堟挙閿�", + }); + }); + }, + }, +}; +</script> +<style scoped lang="scss"> +.mainbox { + position: relative; +} + +.btn { + margin: 20px 0px; +} + +.btnbox { + display: flex; + flex-direction: column; + gap: 10px; + /* 鎸夐挳涔嬮棿鐨勯棿璺� */ + position: fixed; + /* 浣挎暣涓寜閽尯鍩熷浐瀹氬湪椤甸潰 */ + right: 0; + /* 鍥哄畾鍦ㄩ〉闈㈠彸渚� */ + top: 20%; + /* 鍒濆浣嶇疆 */ + z-index: 10; +} + +/* 姣忎釜鎸夐挳鐨勬牱寮� */ +.btn1 { + animation: fadeInUp 0.5s ease-out forwards; + /* 鎸夐挳鍔犺浇鏃剁殑娣″叆鍔ㄧ敾 */ + cursor: pointer; + text-align: center; +} + +.vertical-text { + writing-mode: vertical-rl; + text-orientation: upright; +} + +/* 璁剧疆鍔ㄧ敾鏁堟灉 */ +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px) scale(0.5); + /* 鍒濆鐘舵�侊細閫忔槑涓旂缉灏� */ + } + + 100% { + opacity: 1; + transform: translateY(0) scale(1); + /* 鏈�缁堢姸鎬侊細瀹屽叏鏄剧ず涓旀甯稿ぇ灏� */ + } +} + +/* 姣忎釜鎸夐挳鐨勪綅缃拰鍔ㄧ敾寤惰繜 */ +.btnbox>div:nth-child(1) { + top: 20%; + /* 绗竴涓寜閽殑浣嶇疆 */ + animation-delay: 0s; + /* 鏃犲欢杩� */ +} + +.btnbox>div:nth-child(2) { + top: 30%; + /* 绗簩涓寜閽殑浣嶇疆 */ + animation-delay: 0.2s; +} + +.btnbox>div:nth-child(3) { + top: 40%; + /* 绗笁涓寜閽殑浣嶇疆 */ + animation-delay: 0.4s; +} + +.btnbox>div:nth-child(4) { + top: 50%; + /* 绗洓涓寜閽殑浣嶇疆 */ + animation-delay: 0.6s; +} + +.btnbox>div:nth-child(5) { + top: 60%; + /* 绗簲涓寜閽殑浣嶇疆 */ + animation-delay: 0.8s; +} + +.btnbox>div:nth-child(6) { + top: 70%; + /* 绗叚涓寜閽殑浣嶇疆 */ + animation-delay: 1s; +} + +.main { + height: 80vh; // 鏀逛负浣跨敤瑙嗙獥楂樺害 + min-height: 600px; // 璁剧疆鏈�灏忛珮搴� + overflow: auto; // 鏀逛负auto鍏佽婊氬姩 +} + +// 浼樺寲婊氬姩鏉℃牱寮� +.main::-webkit-scrollbar { + width: 6px; +} + +.main::-webkit-scrollbar-track { + background-color: white; + border-radius: 2em; +} + +.main::-webkit-scrollbar-thumb { + background-color: #dcdfe6; + border-radius: 2em; +} + +::v-deep .el-dialog { + margin-top: 5vh !important; // 璋冩暣瀵硅瘽妗嗕綅缃� +} + +::v-deep .el-dialog__header { + padding: 8px; +} + +::v-deep .el-dialog__body { + padding: 0; +} + +::v-deep .el-button--medium { + padding: 10px; +} + +::v-deep .el-dialog__headerbtn { + // position: relative; + top: 13px; +} + +/* .el-dialog { + width: 1264px; + height: 800px; +} + +.el-dialog__header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.el-dialog__body { + padding: 0; +} */ + +.pag { + width: 100%; + display: flex; + justify-content: center; + /* 纭繚鍒嗛〉鍣ㄦ暣浣撳眳涓� */ + align-items: center; + /* 鍨傜洿灞呬腑 */ + margin-top: 15px; + /* 涓庤〃鏍肩殑闂磋窛 */ +} + +.pag2 { + width: auto; + /* 绉婚櫎鍥哄畾瀹藉害锛岃鍒嗛〉鍣ㄦ牴鎹唴瀹硅嚜閫傚簲 */ + min-width: 750px; + /* 璁剧疆鏈�灏忓搴︼紝纭繚鍒嗛〉鍣ㄤ笉浼氬お绐� */ + text-align: center; + /* 纭繚鍒嗛〉鍣ㄥ唴閮ㄥ厓绱犲眳涓� */ +} + +@media (max-width: 750px) { + .pag2 { + min-width: 300px; + /* 绉诲姩绔渶灏忓搴� */ + overflow-x: auto; + /* 鍏佽妯悜婊氬姩 */ + padding: 10px; + /* 绉诲姩绔唴杈硅窛 */ + } +} + +.pag1 { + width: auto; + /* 绉婚櫎鍥哄畾瀹藉害锛岃鍒嗛〉鍣ㄦ牴鎹唴瀹硅嚜閫傚簲 */ + min-width: 300px; + /* 璁剧疆鏈�灏忓搴︼紝纭繚鍒嗛〉鍣ㄤ笉浼氬お绐� */ + text-align: center; + /* 纭繚鍒嗛〉鍣ㄥ唴閮ㄥ厓绱犲眳涓� */ +} + +.dialog-footers { + position: fixed; + bottom: 0; + left: 50%; + transform: translateX(-50%); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + /* 纭繚鎸夐挳灞傜骇鍦ㄥ叾浠栧唴瀹逛笂鏂� */ + width: 300px; + background-color: white; + /* 鍙牴鎹渶瑕佽皟鏁磋儗鏅鑹� */ +} + +/* 纭繚鎸夐挳涔嬮棿鏈夊悎閫傜殑闂磋窛 */ +.dialog-footers .el-button { + margin: 0 5px; +} + +textarea { + background: #ffffff; + border: none; + outline: none; +} + +.box { + display: flex; + height: calc(100vh - 200px); + margin-top: 20px; + overflow: hidden; +} + +.left-container { + flex: 1; + margin-right: 10px; + overflow: hidden; +} + +.left { + height: 100%; + padding: 0 10px; + overflow-y: scroll; // 鏀逛负 scroll 鑰屼笉鏄� auto + + &::-webkit-scrollbar { + width: 8px; // 澧炲姞瀹藉害浣垮叾鏇村鏄撶湅瑙� + background-color: #f5f5f5; + display: block; // 纭繚鏄剧ず + } + + &::-webkit-scrollbar-thumb { + background: #909399; + border-radius: 4px; + } + + &::-webkit-scrollbar-track { + background: #f5f5f5; + border-radius: 4px; + } +} + +.rightbox { + width: 700px; + overflow: hidden; +} + +.right { + height: 100%; + padding: 0 10px; + overflow-y: scroll; // 鏀逛负 scroll 鑰屼笉鏄� auto + + &::-webkit-scrollbar { + width: 8px; // 澧炲姞瀹藉害 + background-color: #f5f5f5; + display: block; // 纭繚鏄剧ず + } + + &::-webkit-scrollbar-thumb { + background: #909399; + border-radius: 4px; + } + + &::-webkit-scrollbar-track { + background: #f5f5f5; + border-radius: 4px; + } +} + +.top { + position: sticky; + top: 0; + z-index: 10; + background-color: #fff; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + display: flex; + + .el-icon-close { + cursor: pointer; + font-size: 30px; + position: relative; + top: 7px; + right: 4px; + color: rgb(24, 144, 255); + } +} + +.kong { + box-shadow: none; +} + +::v-deep .el-table--medium .el-table__cell { + padding: 5px 0; +} + +::-webkit-scrollbar { + display: none; +} + +::v-deep .el-drawer { + padding: 0 0 50px; +} + +.custom-dialog { + ::v-deep .el-dialog__header { + padding: 15px 20px; + background-color: #f5f7fa; + border-bottom: 1px solid #e8ecef; + } + + ::v-deep .el-dialog__title { + font-size: 18px; + color: #303133; + font-weight: 600; + } + + ::v-deep .el-dialog__body { + padding: 20px; // 澧炲姞鍐呰竟璺� + background-color: #fff; + } + + ::v-deep .el-dialog__footer { + padding: 10px 20px; + border-top: 1px solid #e8ecef; + text-align: right; + } + + .custom-form { + .advice-group { + border: 1px solid #e8ecef; + border-radius: 4px; + padding: 10px; + margin-bottom: 15px; + background-color: #f9fbfc; + + .el-form-item { + margin-bottom: 15px; + } + + .el-button { + margin-top: 5px; + } + } + } +} + +.section-title { + font-size: 20px; + font-weight: bold; + color: #303133; + background-color: #f5f7fa; + padding: 10px 15px; + border-left: 4px solid #409eff; + /* 宸︿晶钃濊壊杈规潯锛屽寮鸿瑙夋晥鏋� */ + margin-bottom: 15px; + margin-top: 15px; + border-radius: 4px; +} + +.dialog-pager { + display: flex; + justify-content: center; + /* 姘村钩灞呬腑 */ + align-items: center; + /* 鍨傜洿灞呬腑 */ + margin-top: 15px; + /* 涓庤〃鏍肩殑闂磋窛 */ + padding: 0 20px; + /* 澧炲姞鍐呰竟璺濓紝閬垮厤杩囦簬璐磋竟 */ + box-sizing: border-box; + /* 纭繚鍐呰竟璺濅笉褰卞搷瀹藉害 */ +} + +// .dialog-pager-inner { +// width: auto; /* 鑷�傚簲瀹藉害 */ +// min-width: 300px; /* 璁剧疆鏈�灏忓搴︼紝纭繚鍒嗛〉鍣ㄤ笉浼氬お绐� */ +// text-align: center; /* 纭繚鍒嗛〉鍣ㄥ唴閮ㄥ厓绱犲眳涓� */ +// }</style> diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue index e6d237d..39ada35 100644 --- a/src/views/doctor/checkAll/index.vue +++ b/src/views/doctor/checkAll/index.vue @@ -337,8 +337,7 @@ <el-form ref="numberValidateForm" label-width="80px" class="demo-ruleForm" v-if="tjproject != '1'"> <el-form-item label="鎬绘寤鸿"> - <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea1" :rows="3" - style="width: 96%"></el-input> + <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea1" :autosize="{ minRows: minRows, maxRows: maxRows }"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footers"> @@ -869,13 +868,14 @@ </el-dialog> <Packages ref="bbb" :baogao="baogao" /> <Prescription ref="Pre" :preObj="preObj" /> - <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" /> + <proposal ref="proposal" :cusobj="cusobj" :mrjy="mrjy" @event1="eventchange($event)" /> <createproposal ref="createproposal" :creatobj="creatobj" /> <el-dialog title="甯哥敤寤鸿缁存姢" :visible.sync="propdialog" width="500px" append-to-body></el-dialog> </div> </template> <script> import _ from 'lodash'; +import { getConfigKey } from "@/api/system/config"; import jianqianwenzhen from "@/components/jianqianwenzhen"; import Packages from "@/components/Packages"; import Prescription from "@/components/Prescription"; @@ -945,6 +945,8 @@ zhiyeJg: '', // 鍒濆鍖栦綋妫�缁撴灉涓洪粯璁ゅ�� selectedAdvice: null, activeAdviceIndex: 0, + minRows: 3, + maxRows: null, gotyval: null, advicerulesList: [], xmChange: [], @@ -1000,6 +1002,7 @@ src: "", url: "", userId: "", + mrjy: "", flag: true, bill: null, numberList: [], @@ -1116,6 +1119,12 @@ this.$nextTick(() => { this.$refs.inputName.focus(); this.viewportHeight = window.innerHeight || document.documentElement.clientHeight; + }); + getConfigKey("zjysjymrhs").then((res) => { + const val = parseInt(res.msg); // 纭繚鏄暟瀛� + if (!isNaN(val)) { + this.maxRows = val; + } }); }, @@ -1813,8 +1822,11 @@ propoChange() { this.cusobj = { sex: this.tableAll.cusSex, isZj: 0 }; - this.$refs.proposal.open = true; - this.$refs.proposal.title = "寤鸿鏂规"; + getConfigKey("mrzscyjy").then((res) => { + this.mrjy = res.msg; + this.$refs.proposal.title = "寤鸿鏂规"; + this.$refs.proposal.open = true; + }); }, eventchange(data) { diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue index 7f41531..1e200a9 100644 --- a/src/views/hosp/order/index.vue +++ b/src/views/hosp/order/index.vue @@ -785,6 +785,12 @@ </el-table-column> <el-table-column align="center" prop="price" label="璐圭敤鍚堣"> </el-table-column> + <el-table-column align="center" prop="sfzt" label="璐圭敤鐘舵��"> + <template v-slot="scope"> + <span v-if="scope.row.sfzt">{{ '宸茬粨璐�' }}</span> + <span v-else>{{ '鏈粨璐�' }}</span> + </template> + </el-table-column> </el-table> <h3>浠樻璇︽儏</h3> <el-table :data="bill" style="width: 100%; margin-top: 10px"> diff --git a/src/views/login copy.vue b/src/views/login copy.vue new file mode 100644 index 0000000..bf40696 --- /dev/null +++ b/src/views/login copy.vue @@ -0,0 +1,392 @@ +<template> + <div class="login"> + <!-- <div style="padding-top: 130px;"> --> + <div style="font-weight: 700;font-size: 50px;">鏅鸿兘鍋ュ悍浣撴绠$悊绯荤粺</div> + <!-- </div> --> + + + <el-form :inline="true" ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> + <div class="img"> + <img class="image" src="../assets/images/ewm.png" alt="" /> + </div> + <div class="card"> + <!-- <h3 class="title">璺嘲绉戞妧鍚庡彴绠$悊绯荤粺</h3> --> + <el-form-item> + <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="璐﹀彿/鎵嬫満鍙风爜/浣撴鍙�" + @keyup.enter.native="jumpInput"> + <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" @click="hide" + @keyup.enter.native="jumpInput" /> + </el-input> + </el-form-item> + <el-form-item> + <el-input v-model="loginForm.password" :type="type" auto-complete="off" placeholder="瀵嗙爜" ref="barcodeMsg" + @keyup.enter.native="handleLogin"> + <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> + <i slot="suffix" class="icon-style" :class="elIcon" autocomplete="auto" @click="flag = !flag" /></el-input> + <!-- <img :src="openeye" class="show_hid" @click="changetype" > --> + </el-form-item> + <el-form-item prop="code" v-if="captchaEnabled"> + <el-input v-model="loginForm.code" auto-complete="off" placeholder="楠岃瘉鐮�" style="width: 63%" + @keyup.enter.native="handleLogin"> + <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> + </el-input> + <div class="login-code"> + <img :src="codeUrl" @click="getCode" class="login-code-img" /> + </div> + </el-form-item> + <el-checkbox v-model="loginForm.rememberMe" style="margin:10px 0px 40px 0px;">璁颁綇瀵嗙爜</el-checkbox> + <!-- <el-form-item style="margin-left:10px" prop="mobile"> + <el-radio-group v-model="loginForm.mobile"> + <el-radio :label="true">鍛樺伐鐧诲綍</el-radio> + <el-radio :label="false">鐢ㄦ埛鐧诲綍</el-radio> + </el-radio-group> + </el-form-item> --> + <el-form-item style="width:100%;"> + <el-button :loading="loading" size="medium" type="primary" style="width:310px;" @keyup.enter="keyDown(e)" + @click.native.prevent="handleLogin"> + <span v-if="!loading">鐧� 褰�</span> + <span v-else>鐧� 褰� 涓�...</span> + </el-button> + <div style="float: right;" v-if="register"> + <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link> + </div> + </el-form-item> + </div> + + </el-form> + + + <!-- 搴曢儴 --> + <div class="el-login-footer"> + <span>Copyright 漏 2024-2025 All Rights Reserved.</span> + <!-- <span>Copyright 漏 2022-2023榫欑編缃戠粶 All Rights Reserved.</span> --> + </div> + </div> +</template> + +<script> + +import { getCodeImg, getconfigKey } from "@/api/login"; +import Cookies from "js-cookie"; +import { encrypt, decrypt } from '@/utils/jsencrypt' +import ini from 'ini'; +import fs from 'fs'; // Node.js 鏂囦欢绯荤粺妯″潡 +export default { + name: "Login", + data() { + return { + codeUrl: "", + loginForm: { + username: "", + password: "", + mobile: false, + hospId: "", + // username:"13800138008", + // password:"888888", + rememberMe: false, + code: "", + uuid: "", + // type: false, + }, + loginRules: { + username: [ + { required: true, trigger: "blur", message: "" } + ], + password: [ + { required: true, trigger: "blur", message: "" } + ], + code: [{ required: true, trigger: "change", message: "" }], + mobile: [ + { required: true, trigger: "change", message: "" } + ] + }, + pwdtype: 'password', + openeye: require('../assets/images/by.png'), + flag: false, + loading: false, + configKey: "captcha_switch", + // // 楠岃瘉鐮佸紑鍏� + captchaEnabled: true, + // 娉ㄥ唽寮�鍏� + register: false, + redirect: undefined + }; + }, + computed: { + type() { + return this.flag ? "text" : "password"; + }, + elIcon() { + return this.flag ? "el-icon-minus" : "el-icon-view"; + } + }, + mounted() { + // 缁戝畾鐩戝惉浜嬩欢 + window.addEventListener("keydown", this.keyDown); + }, + destroyed() { + // 閿�姣佷簨浠� + window.removeEventListener("keydown", this.keyDown, false); + }, + watch: { + $route: { + handler: function (route) { + this.redirect = route.query && route.query.redirect; + }, + immediate: true + } + }, + created() { + this.getstate(); + this.getCookie(); + this.loadAll(); + }, + methods: { + getstate() { + getconfigKey().then(res => { + if (res.msg == "Y") { + this.captchaEnabled = true + this.getCode(); + } else if (res.msg == "N") { + this.captchaEnabled = false + } + }) + + }, + loadAll() { + const env = process.env.VUE_APP_ENV; + const port = window.location.port; + + // yuanqu.ini鍔犺浇hospId + fetch('/yuanqu.ini') + .then(response => { + if (!response.ok) { + throw new Error('Failed to fetch config.ini'); + } + return response.text(); + }) + .then(text => { + const config = ini.parse(text); + + if (config[env] && config[env][port]) { + this.loginForm.hospId = config[env][port]; + Cookies.set("hospId", this.loginForm.hospId); + } else { + console.error(`No hospId found for environment ${env} and port ${port}`); + this.$message.error(`閰嶇疆閿欒锛氭湭鎵惧埌鐜 ${env} 鍜岀鍙� ${port} 瀵瑰簲鐨勫尰闄D`); + } + }) + .catch(error => { + console.error('Error fetching or parsing config.ini:', error); + this.$message.error('鏃犳硶鍔犺浇閰嶇疆鏂囦欢锛岃鑱旂郴绠$悊鍛�'); + }); + }, + hide() { + // this.loginForm.username = "10001"; + // this.loginForm.password = "admin123"; + }, + changetype() { + this.pwdtype = this.pwdtype === 'password' ? 'text' : 'password' + this.openeye = this.openeye === require('../assets/images/by.png') ? require('../assets/images/zy.png') : require('../assets/images/by.png') + }, + getCode() { + getCodeImg().then(res => { + this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; + if (this.captchaEnabled) { + this.codeUrl = "data:image/gif;base64," + res.img; + this.loginForm.uuid = res.uuid; + } + }); + }, + getCookie() { + const username = Cookies.get("username"); + const password = Cookies.get("password"); + const rememberMe = Cookies.get('rememberMe') + this.loginForm = { + username: username === undefined ? this.loginForm.username : username, + password: password === undefined ? this.loginForm.password : decrypt(password), + rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), + }; + }, + jumpInput() { + if (this.loginForm.password) { + this.handleLogin(); // 瀹氫箟鐨勭櫥褰曟柟娉� + } else { + this.$refs.barcodeMsg.focus(); // 鑷姩鑾峰彇鐒︾偣 + } + }, + handleLogin() { + if (this.loginForm.username.length < 12) { + this.loginForm.mobile = true; + this.$router.push({ path: this.redirect || "/" }).catch(() => { }); + } else { + this.$router.push({ path: this.redirect || "/404" }).catch(() => { }); + this.loginForm.mobile = false; + } + + this.$refs.loginForm.validate(valid => { + if (valid) { + this.loading = true; + if (this.loginForm.rememberMe) { + Cookies.set("username", this.loginForm.username, { expires: 30 }); + Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); + Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); + } else { + Cookies.remove("username"); + Cookies.remove("password"); + Cookies.remove('rememberMe'); + } + + this.$store.dispatch("Login", this.loginForm).then((res) => { + if (res.msg == "璇ヨ处鍙锋鍦ㄤ娇鐢ㄤ腑") { + this.$confirm('璇ヨ处鍙锋鍦ㄤ娇鐢ㄤ腑,鏄惁寮哄埗鐧婚檰?', '娓╅Θ鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.loginForm.type = true + this.$store.dispatch("Login", this.loginForm).then((res) => { + this.$router.push({ path: this.redirect || "/" }).catch(() => { }); + }) + }).catch(() => { + this.loading = false; + + }); + } else { + const securitMessage = JSON.parse(localStorage.getItem("securitMessage")); + if (securitMessage) { + if (securitMessage != null) { + this.$message({ + message: securitMessage, + type: 'success' + }); + localStorage.removeItem("securitMessage"); + } + } + this.$router.push({ path: this.redirect || "/" }).catch(() => { }); + location.reload(); + } + + }).catch(() => { + this.loading = false; + if (this.captchaEnabled) { + this.getCode(); + } + }); + + } + }); + } + } +}; +</script> + +<style rel="stylesheet/scss" lang="scss"> +.login { + display: flex; + justify-content: flex-start; + align-items: center; + width: 100%; + height: 100%; + // background-image: url("../assets/images/login-background.jpg"); + background-size: cover; + flex-direction: column; + margin-top: 170px; +} + +.card { + width: 519px; + padding-left: 100px; + border-left: 1px solid #ededed; + display: flex; + flex-direction: column; + // margin-left: 100px; +} + +.show_hid { + width: 25px; + height: 25px; +} + +.img { + width: 506px; + height: 200px; + display: flex; + align-items: center; + justify-content: flex-end; + +} + +.image { + width: 200px; + height: 200px; +} + +.title { + margin: 0px auto 30px auto; + text-align: center; + color: #707070; +} + +.login-form { + border-radius: 6px; + background: #ffffff; + width: 90%; + padding: 25px 25px 5px 25px; + // margin-left: 800px; + margin-top: 100px; + display: flex; + justify-content: space-around; + // justify-content: space-evenly; + + .el-input { + height: 38px; + + input { + width: 300px; + height: 38px; + } + } + + .input-icon { + height: 39px; + width: 14px; + margin-left: 2px; + } +} + +.login-tip { + font-size: 13px; + text-align: center; + color: #bfbfbf; +} + +.login-code { + width: 33%; + height: 38px; + margin-top: 5px; + // float: right; + + img { + cursor: pointer; + vertical-align: middle; + } +} + +.el-login-footer { + height: 40px; + line-height: 40px; + position: fixed; + bottom: 0; + width: 100%; + text-align: center; + color: black; + font-family: Arial; + font-size: 12px; + letter-spacing: 1px; +} + +.login-code-img { + height: 38px; +} +</style> diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue index 51025ed..a0d7bad 100644 --- a/src/views/system/tijian/index.vue +++ b/src/views/system/tijian/index.vue @@ -427,7 +427,7 @@ <el-form-item label="濮撳悕" prop="pacName"> <el-input v-model="queryParam.pacName" placeholder="璇疯緭鍏ュ鍚�" clearable @keyup.enter.native="handle" /> </el-form-item> - <el-form-item label="韬唤璇�" prop="pacName"> + <el-form-item label="韬唤璇�" prop="pacName"> <el-input v-model="queryParam.pacName" placeholder="璇疯緭鍏ヨ韩浠借瘉" clearable @keyup.enter.native="handle" /> </el-form-item> <el-form-item> @@ -952,7 +952,7 @@ // 鏄剧ず鎼滅储鏉′欢 showSearch: true, tjtype: false, - sftj:null, + sftj: null, activeNames: "first", // 鏍戠姸褰㈢姸 Treedata: [], @@ -984,12 +984,10 @@ pacName: null, pacRemark: null, }, - // valueUrl: "ws://127.0.0.1:18890", - // valueUrl: "ws://192.168.1.3:6789/websocket", - valueUrl: "ws://127.0.0.1:6789/websocket", - valueUrls: "ws://127.0.0.1:6789/websocket", - - // valueUrls: "ws://"+getIp() +":6789/websocket", + // valueUrl: "ws://127.0.0.1:6789/websocket", + // valueUrls: "ws://127.0.0.1:6789/websocket", + valueUrl: "ws://192.168.1.244:6789/websocket", + valueUrls: "ws://192.168.1.244:6789/websocket", webSocket: null, // 韬唤璇侀渶瑕� // socket: null, @@ -1742,57 +1740,57 @@ }, /** 鐧昏鎻愪氦鎸夐挳 */ /** 鐧昏鎻愪氦鎸夐挳 */ - submitForm() { - let _this = this; - if (!this.form.cusPhone || !this.form.cusName) { - this.$message.warning("璇峰~閫夊繀濉」"); - return; - } - - this.$refs["form"].validate((valid) => { - if (valid) { - // 鍒涘缓琛ㄥ崟鏁版嵁鐨勫壇鏈苟鍘婚櫎绌烘牸 - const formData = { ...this.form }; - formData.cusName = formData.cusName ? formData.cusName.replace(/\s/g, '') : ''; - formData.cusPhone = formData.cusPhone ? formData.cusPhone.replace(/\s/g, '') : ''; - formData.cusIdcard = formData.cusIdcard ? formData.cusIdcard.replace(/\s/g, '') : ''; - // 娣诲姞 sfzImg 瀛楁 - formData.sfzImg = this.imageUrl || ''; // 浣跨敤 base64 鏍煎紡鐨勫ご鍍忔暟鎹紝鑻ヤ负绌哄垯浼犵┖瀛楃涓� - - // 澶勭悊鎬у埆鍊� - if (formData.cusSex === "濂�") { - formData.cusSex = 1; - } - if (formData.cusSex === "鐢�") { - formData.cusSex = 0; - } - if (formData.cusSex === "鏈煡") { - formData.cusSex = 2; - } - if (formData.tjType === "") { - formData.tjType = this.dict.type.dict_team[0].value; + submitForm() { + let _this = this; + if (!this.form.cusPhone || !this.form.cusName) { + this.$message.warning("璇峰~閫夊繀濉」"); + return; } - // 鍙�夛細妫�鏌� sfzImg 鏄惁瀛樺湪 - // if (!formData.sfzImg) { - // this.$message.warning("璇峰厛鑾峰彇韬唤璇佸ご鍍�"); - // return; - // } + this.$refs["form"].validate((valid) => { + if (valid) { + // 鍒涘缓琛ㄥ崟鏁版嵁鐨勫壇鏈苟鍘婚櫎绌烘牸 + const formData = { ...this.form }; + formData.cusName = formData.cusName ? formData.cusName.replace(/\s/g, '') : ''; + formData.cusPhone = formData.cusPhone ? formData.cusPhone.replace(/\s/g, '') : ''; + formData.cusIdcard = formData.cusIdcard ? formData.cusIdcard.replace(/\s/g, '') : ''; + // 娣诲姞 sfzImg 瀛楁 + formData.sfzImg = this.imageUrl || ''; // 浣跨敤 base64 鏍煎紡鐨勫ご鍍忔暟鎹紝鑻ヤ负绌哄垯浼犵┖瀛楃涓� - addCustomer(formData).then((response) => { - this.responseList = response.data; - this.form.tjType = this.dict.type.dict_team[0].value; - this.$modal.msgSuccess("鏂板鎴愬姛"); - _this.tcShow = true; - _this.isDisabled = true; - _this.top = false; - }).catch((error) => { - this.$modal.msgError("鐧昏澶辫触锛岃妫�鏌ユ暟鎹�"); - console.error("Error in addCustomer:", error); + // 澶勭悊鎬у埆鍊� + if (formData.cusSex === "濂�") { + formData.cusSex = 1; + } + if (formData.cusSex === "鐢�") { + formData.cusSex = 0; + } + if (formData.cusSex === "鏈煡") { + formData.cusSex = 2; + } + if (formData.tjType === "") { + formData.tjType = this.dict.type.dict_team[0].value; + } + + // 鍙�夛細妫�鏌� sfzImg 鏄惁瀛樺湪 + // if (!formData.sfzImg) { + // this.$message.warning("璇峰厛鑾峰彇韬唤璇佸ご鍍�"); + // return; + // } + + addCustomer(formData).then((response) => { + this.responseList = response.data; + this.form.tjType = this.dict.type.dict_team[0].value; + this.$modal.msgSuccess("鏂板鎴愬姛"); + _this.tcShow = true; + _this.isDisabled = true; + _this.top = false; + }).catch((error) => { + this.$modal.msgError("鐧昏澶辫触锛岃妫�鏌ユ暟鎹�"); + console.error("Error in addCustomer:", error); + }); + } }); - } - }); -}, + }, getmailType() { if (this.getType == "2") { @@ -2978,7 +2976,7 @@ // 澶勭悊璁㈠崟椤圭洰 processOrderItems(cusId) { getTransitionList1(cusId).then((response) => { - this.tableData1 = response.data; + this.tableData1 = response.data; // if (response.data.tjCategory != null) { // this.tjCategory = response.data.tjCategory; // } @@ -3288,100 +3286,100 @@ }, // 鏈�鍚庢彁浜ゆ寜閽� - submitPrice() { - let _this = this; - this.loadingSubmit = true; - if (_this.tjCategory !== "") { - let List = _this.tableData1; // 鍗曚釜椤圭洰淇℃伅 - if (this.responseList.cusId) { - var userId = this.responseList.cusId; - } else { - var userId = _this.form.cusId; - } - let tjType = _this.form.tjType; - if (this.tableData[0]) { - var pacId = this.tableData[0].pacId; - } - - // tjOrderList 澶勭悊 - List.forEach((item) => { - if (item.list) { - item.list.forEach((item1) => { - this.tjOrderList.push({ - proName: item1.proName, - proPrice: item1.nowPrice, - proId: item1.proId, - }); - }); - } else if (item.tjProjectList) { - item.tjProjectList.forEach((item1) => { - this.tjOrderList.push({ - proName: item1.proName, - proPrice: item1.priceNow, - proId: item1.proId, - }); - }); - } else { - this.tjOrderList.push({ - proName: item.proName, - proPrice: item.ysPrice, - proId: item.proId, - }); - } - }); - - let copeWith = this.TotalPrice1; - let paidIn = this.TotalPrice.toString(); - let discount = this.discount; - this.tjFlowingWater = { copeWith, paidIn, discount }; - - const newArray = this.tableData1 - .filter((item) => item.discount < 10) - .map((item) => ({ - discount: item.discount, - parentProId: item.parentProId, - cusIdCard: item.cusId, - yhj: item.nowPrice, - })); - - gaibianzhekou(newArray).then((res) => { - this.loadingSubmit = false; - if (res.code === 200) { - let data; - - if (pacId || this.tjOrderList.length > 0) { - data = { - photo: this.srcUrl, // 淇濈暀鍘熸湁 photo 瀛楁锛堝鏋滃悗绔粛闇�瑕侊級 - sfzImg: this.imageUrl, // 娣诲姞 sfzImg 瀛楁锛屼紭鍏堜娇鐢ㄦ湇鍔″櫒URL锛岃嫢鏃犲垯浣跨敤base64 - pacId, - tjOrderList: this.tjOrderList, - tjFlowingWater: this.tjFlowingWater, - userId, - tjType, - tjCategory: this.tjCategory, - firmId: this.form.firmId, - firmName: this.form.firmName, - firmDeptName: this.form.firmDeptName, - }; - - this.listgetOrder(data); + submitPrice() { + let _this = this; + this.loadingSubmit = true; + if (_this.tjCategory !== "") { + let List = _this.tableData1; // 鍗曚釜椤圭洰淇℃伅 + if (this.responseList.cusId) { + var userId = this.responseList.cusId; } else { - this.loadingSubmit = false; - this.$message({ - type: "warning", - message: "璇烽�夋嫨濂楅!", - }); + var userId = _this.form.cusId; } + let tjType = _this.form.tjType; + if (this.tableData[0]) { + var pacId = this.tableData[0].pacId; + } + + // tjOrderList 澶勭悊 + List.forEach((item) => { + if (item.list) { + item.list.forEach((item1) => { + this.tjOrderList.push({ + proName: item1.proName, + proPrice: item1.nowPrice, + proId: item1.proId, + }); + }); + } else if (item.tjProjectList) { + item.tjProjectList.forEach((item1) => { + this.tjOrderList.push({ + proName: item1.proName, + proPrice: item1.priceNow, + proId: item1.proId, + }); + }); + } else { + this.tjOrderList.push({ + proName: item.proName, + proPrice: item.ysPrice, + proId: item.proId, + }); + } + }); + + let copeWith = this.TotalPrice1; + let paidIn = this.TotalPrice.toString(); + let discount = this.discount; + this.tjFlowingWater = { copeWith, paidIn, discount }; + + const newArray = this.tableData1 + .filter((item) => item.discount < 10) + .map((item) => ({ + discount: item.discount, + parentProId: item.parentProId, + cusIdCard: item.cusId, + yhj: item.nowPrice, + })); + + gaibianzhekou(newArray).then((res) => { + this.loadingSubmit = false; + if (res.code === 200) { + let data; + + if (pacId || this.tjOrderList.length > 0) { + data = { + photo: this.srcUrl, // 淇濈暀鍘熸湁 photo 瀛楁锛堝鏋滃悗绔粛闇�瑕侊級 + sfzImg: this.imageUrl, // 娣诲姞 sfzImg 瀛楁锛屼紭鍏堜娇鐢ㄦ湇鍔″櫒URL锛岃嫢鏃犲垯浣跨敤base64 + pacId, + tjOrderList: this.tjOrderList, + tjFlowingWater: this.tjFlowingWater, + userId, + tjType, + tjCategory: this.tjCategory, + firmId: this.form.firmId, + firmName: this.form.firmName, + firmDeptName: this.form.firmDeptName, + }; + + this.listgetOrder(data); + } else { + this.loadingSubmit = false; + this.$message({ + type: "warning", + message: "璇烽�夋嫨濂楅!", + }); + } + } else { + this.loadingSubmit = false; + this.$modal.msgError("鏀瑰彉鎶樻墸閿欒"); + } + }); } else { this.loadingSubmit = false; - this.$modal.msgError("鏀瑰彉鎶樻墸閿欒"); + this.$modal.msgError("璇烽�夋嫨浣撴绫诲埆"); } - }); - } else { - this.loadingSubmit = false; - this.$modal.msgError("璇烽�夋嫨浣撴绫诲埆"); - } -}, + }, }, }; </script> -- Gitblit v1.8.0