From cb1f69717eed3b6a61b6c61a8934bac752782b2d Mon Sep 17 00:00:00 2001 From: wwl <xchao828@163.com> Date: 星期三, 05 三月 2025 17:00:38 +0800 Subject: [PATCH] 1 --- src/views/hosp/history/index.vue | 551 ++++++++++++++++++------------------------------------ 1 files changed, 183 insertions(+), 368 deletions(-) diff --git a/src/views/hosp/history/index.vue b/src/views/hosp/history/index.vue index 7a54ea5..154a1d9 100644 --- a/src/views/hosp/history/index.vue +++ b/src/views/hosp/history/index.vue @@ -2,32 +2,107 @@ <div class="app-container"> <div class="hist1"> <div class="hist2"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="68px" + > <el-form-item label="濮撳悕" prop="name"> - <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ュ鎴峰悕" clearable @keyup.enter.native="handleQuery" style="width:130px"/> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ鎴峰悕" + clearable + @keyup.enter.native="handleQuery" + style="width: 130px" + /> </el-form-item> <el-form-item label="浣撴鍙�" prop="tjNum"> - <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="璇疯緭鍏ヤ綋妫�鍙�" style="width: 170px" clearable @keyup.enter.native="handleQuery"/> + <el-input + ref="inputName" + v-model="queryParams.tjNum" + placeholder="璇疯緭鍏ヤ綋妫�鍙�" + style="width: 170px" + clearable + @keyup.enter.native="handleQuery" + @blur="hb" + /> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" + >閲嶇疆</el-button + > </el-form-item> </el-form> - <el-table :row-class-name="tableRowClassName" height="650px" v-loading="loading" :data="orderList" ref="multipleTable" @selection-change="handleSelectionChange" border style="width: 95%"> + <el-table + :row-class-name="tableRowClassName" + height="650px" + v-loading="loading" + :data="orderList" + ref="multipleTable" + @selection-change="handleSelectionChange" + border + style="width: 95%" + > <el-table-column type="selection" width="40px" align="center" /> - <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" :show-overflow-tooltip="true" fixed="left"/> - <el-table-column label="濮撳悕" align="center" prop="tjCustomerName" width="110px" :show-overflow-tooltip="true"/> - <el-table-column label="鎬у埆" align="center" prop="tjCustomerSex" width="55px" :show-overflow-tooltip="true"> + <el-table-column + label="搴忓彿" + align="center" + prop="newID" + width="50px" + :show-overflow-tooltip="true" + fixed="left" + /> + <el-table-column + label="濮撳悕" + align="center" + prop="tjCustomerName" + width="110px" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鎬у埆" + align="center" + prop="tjCustomerSex" + width="55px" + :show-overflow-tooltip="true" + > <template slot-scope="scope"> <span v-if="scope.row.tjCustomerSex == '0'">鐢�</span> <span v-if="scope.row.tjCustomerSex == '1'">濂�</span> + <span v-if="scope.row.tjCustomerSex == '2'">鏈煡</span> </template> </el-table-column> - <el-table-column label="鐢佃瘽" align="center" prop="tjCustomerPhone" width="120px" :show-overflow-tooltip="true"/> - <el-table-column label="骞撮緞" align="center" prop="tjCustomerAge" width="70" :show-overflow-tooltip="true" + <el-table-column + label="鐢佃瘽" + align="center" + prop="tjCustomerPhone" + width="120px" + :show-overflow-tooltip="true" /> - <el-table-column label="骞撮緞鍗曚綅" align="center" prop="ageUnit" width="80" :show-overflow-tooltip="true"> + <el-table-column + label="骞撮緞" + align="center" + prop="tjCustomerAge" + width="70" + :show-overflow-tooltip="true" + /> + <el-table-column + label="骞撮緞鍗曚綅" + align="center" + prop="ageUnit" + width="80" + :show-overflow-tooltip="true" + > <template slot-scope="scope"> <dict-tag :options="dict.type.dict_ageunit" @@ -35,7 +110,13 @@ /> </template> </el-table-column> - <el-table-column label="鑱屼笟" align="center" prop="career" width="120" :show-overflow-tooltip="true"> + <el-table-column + label="鑱屼笟" + align="center" + prop="career" + width="120" + :show-overflow-tooltip="true" + > <template slot-scope="scope"> <dict-tag :options="dict.type.dict_job" @@ -57,278 +138,7 @@ </div> </div> <div class="hist3"> - <span class="txt">闂瘖淇℃伅</span> - <el-form - ref="form" - :model="form" - :rules="rules" - 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: 900px; font-weight: 600" - > - <div style="width: 900px"> - <el-form-item label="濮撳悕" prop="cusName"> - <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" /> - </el-form-item> - <el-form-item label="鑱屼笟" prop="work"> - <el-select - filterable - v-model="form.work" - placeholder="璇烽�夋嫨鑱屼笟" - clearable - style="width: 150px" - > - <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 - filterable - v-model="form.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="medicalHistory"> - <el-input - type="textarea" - rows="4" - v-model="form.medicalHistory" - placeholder="璇疯緭鍏ユ棦寰�鐥呭彶" - style="width: 700px" - /> - </el-form-item> - </div> - </el-collapse-item> - <el-collapse-item title="鏈堢粡鍙�" name="2" v-show="sex"> - <div style="width: 900px"> - <el-form-item label="鍒濇疆(宀�)" prop="chuchao"> - <el-input v-model="form.chuchao" style="width: 70px" /> - </el-form-item> - <el-form-item label="缁忔湡" prop="jingqi"> - <el-input v-model="form.jingqi" style="width: 70px" />澶� - </el-form-item> - <el-form-item label="鍛ㄦ湡" prop="zhouqi"> - <el-input v-model="form.zhouqi" style="width: 70px" />澶� - </el-form-item> - <el-form-item label="鏈鏈堢粡" prop="mociage"> - <el-input v-model="form.mociage" style="width: 100px" /> - </el-form-item> - </div> - </el-collapse-item> - <el-collapse-item title="鐢熻偛鍙�" name="3" v-show="sex"> - <div style="width: 900px"> - <el-form-item label="鐜版湁瀛愬コ(浜�)" prop="zinv"> - <el-input v-model="form.zinv" style="width: 70px" /> - </el-form-item> - <el-form-item label="娴佷骇(娆�)" prop="liuchan"> - <el-input v-model="form.liuchan" style="width: 70px" /> - </el-form-item> - <el-form-item label="鏃╀骇(娆�)" prop="zaochan"> - <el-input v-model="form.zaochan" style="width: 70px" /> - </el-form-item> - <el-form-item label="姝讳骇(娆�)" prop="sichan"> - <el-input v-model="form.sichan" style="width: 70px" /> - </el-form-item> - <el-form-item label="寮傚父鑳�(娆�)" prop="yichangtai"> - <el-input v-model="form.yichangtai" style="width: 70px" /> - </el-form-item> - </div> - </el-collapse-item> - <el-collapse-item title="鐑熼厭鍙�" name="4"> - <div style="width: 900px"> - <el-form-item label="鏄惁鍚哥儫" prop="xiyan"> - <!-- <el-input v-model="form.xiyanpinlv" placeholder="璇疯緭鍏ュ惛鐑熼鐜�" /> --> - <el-select - filterable - v-model="form.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="form.xiyanpinlv" - style="width: 70px" - />鏀�/澶� - </el-form-item> - <el-form-item label="鍚哥儫鏃堕棿" prop="xiyanyear"> - <el-input - v-model="form.xiyanyear" - style="width: 70px" - />骞� </el-form-item - ><br /> - <el-form-item label="鏄惁楗厭" prop="yinjiu"> - <!-- <el-input v-model="form.yinjiupinlv" placeholder="璇疯緭鍏ラギ閰掗鐜�" /> --> - <el-select - filterable - v-model="form.yinjiu" - 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="form.yinjiupinlv" - style="width: 70px" - />ml/澶� - </el-form-item> - <el-form-item label="楗厭鏃堕棿" prop="yinjiuyear"> - <el-input v-model="form.yinjiuyear" style="width: 70px" />骞� - </el-form-item> - <el-form-item label="鍏朵粬" prop="qita"> - <el-input - v-model="form.qita" - placeholder="璇疯緭鍏ュ叾浠�" - type="textarea" - style="width: 600px" - rows="2" - /> - </el-form-item> - </div> - </el-collapse-item> - <el-collapse-item title="鎬ユ參鎬ц亴涓氱梾鍙蹭俊鎭�" name="5"> - <div style="width: 900px"> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - icon="el-icon-plus" - size="mini" - @click="addmembers()" - >娣诲姞 - </el-button> - </el-col> - <el-col :span="1.5"> - <el-button type="danger" icon="el-icon-delete" size="mini" - >鍒犻櫎 - </el-button> - </el-col> - </el-row> - <el-table - border - :data="form.tjAskHistorysList" - ref="tjAskHistorys" - style="width: 98%" - > - <el-table-column type="selection" width="40" align="center" /> - <!-- <el-table-column - label="搴忓彿" - align="center" - prop="index" - width="50" - /> --> - <el-table-column label="鐤剧梾鍚嶇О" prop="diseaseName"> - <template slot-scope="scope"> - <el-input - size="mini" - v-model="scope.row.diseaseName" - placeholder="璇疯緭鍏ョ柧鐥呭悕绉�" - /> - </template> - </el-table-column> - <el-table-column label="璇婃柇鏃ユ湡" prop="diseaseData"> - <template slot-scope="scope"> - <!-- <el-input - v-model="scope.row.diseaseData" - placeholder="璇疯緭鍏ヨ瘖鏂棩鏈�" - /> --> - <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" - v-model="scope.row.diseaseCompany" - placeholder="璇疯緭鍏ヨ瘖鏂崟浣�" - /> - </template> - </el-table-column> - <el-table-column label="鏄惁鐥婃剤" prop="isOk"> - <template slot-scope="scope"> - <!-- <el-input v-model="scope.row.isOk" placeholder="璇疯緭鍏ユ槸鍚︾棅鎰�" /> --> - <el-select - 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 - size="mini" - v-model="scope.row.remark" - placeholder="璇疯緭鍏ュ娉�" - /> - </template> - </el-table-column> - </el-table> - </div> - </el-collapse-item> - </el-collapse> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm" style="margin-top: 10px" :disabled="isdisabled" - >鎻愪氦</el-button - > - </div> + <jianqianwenzhen @submitLoading="handleLoading" :jianqianwenzhendata="jianqianwenzhendata"></jianqianwenzhen> </div> </div> @@ -344,19 +154,36 @@ </template> <script> -import { - updateHistory, - getInfoById, -} from "@/api/hosp/history"; +import jianqianwenzhen from "@/components/jianqianwenzhen"; import { Message } from "element-ui"; import { getOrderList } from "@/api/hosp/order"; - +import { listHarmType } from "@/api/hosp/harmType"; export default { name: "History", - dicts: ["tj_smoking_pinlv", "sys_yes_no", "tj_work_status", "tj_work","dict_ageunit","dict_job"], + components: { jianqianwenzhen }, + dicts: [ + "tj_smoking_pinlv", + "sys_yes_no", + "tj_work_status", + "tj_work", + "dict_ageunit", + "dict_job", + ], data() { + let checkPhoneNum = (rule, value, callback) => { + let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); + if (value == "" && value == undefined && !value) { + return callback(""); + } else if (value != undefined && value != "") { + return callback(); + } else if (!patter.test(value)) { + return callback(""); + } + }; return { - selectList:[], + jianqianwenzhendata: [], + selectList: [], + dataList: [], pickerOptions: { disabledDate(time) { return time.getTime() > Date.now(); @@ -390,6 +217,7 @@ activeName: "1", // 閬僵灞� loading: true, + tableLoading: false, isdisabled: false, // 閫変腑鏁扮粍 ids: [], @@ -419,15 +247,18 @@ pageSize: 20, cusName: null, }, + harmTypeList: [], // 琛ㄥ崟鍙傛暟 form: {}, + chageall: [], + bingshiall: [], rew: [], // 琛ㄥ崟鏍¢獙 rules: { deleted: [ { required: true, - message: "$comment涓嶈兘涓虹┖", + validator: checkPhoneNum, trigger: "blur", }, ], @@ -436,6 +267,11 @@ }, created() { this.getList(); + }, + mounted() { + this.$nextTick(() => { + this.$refs.inputName.focus(); + }); }, methods: { /** 鏌ヨ闂瘖鍒楄〃 */ @@ -456,6 +292,10 @@ /** 鏌ヨ浣撴璁板綍鍒楄〃 */ getList() { this.loading = true; + listHarmType().then((response) => { + this.harmTypeList = response.rows; + + }); getOrderList(this.queryParams).then((response) => { this.orderList = response.data.list; if (this.orderList) { @@ -473,6 +313,7 @@ true ); }); + this.dataList = this.orderList[0]; } else { this.$refs.multipleTable.clearSelection(); } @@ -523,6 +364,11 @@ this.tjAskHistorysList = []; this.resetForm("form"); }, + hb(){ + if (this.queryParams.tjNum != undefined) { + this.handleQuery(); + } + }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; @@ -535,6 +381,7 @@ }, // 鍗曢�夋閫変腑鏁版嵁 handleSelectionChange(selection) { + this.dataList = []; this.selectList = selection; // this.ids = selection.map((item) => item.askId); // this.single = selection.length !== 1; @@ -549,37 +396,40 @@ let del_row = selection.shift(); this.$refs.multipleTable.toggleRowSelection(del_row, false); } - selection.forEach(item1=>{ + selection.forEach((item1) => { if (item1.tjCustomerSex === 1) { - this.sex = true; - } else { - this.sex = false; - } - }) - let userId = selection.map((item) => item.userId); - getInfoById(userId).then((response) => { - this.form = response.data; - if(this.form.xiyan == null){ - this.form.xiyan ="1" + this.sex = true; + } else { + this.sex = false; } - if(this.form.xiyanpinlv == null){ - this.form.xiyanpinlv ="0" - } - if(this.form.xiyanyear == null){ - this.form.xiyanyear ="0" - } - if(this.form.yinjiu == null){ - this.form.yinjiu ="1" - } - if(this.form.yinjiupinlv == null){ - this.form.yinjiupinlv ="0" - } - if(this.form.yinjiuyear == null){ - this.form.yinjiuyear ="0" - } - this.form.tjAskHistorysList = response.data.tjAskHistorysList; - // this.isdisabled= true }); + let tjNumber = selection.map((item) => item.tjNumber); + this.jianqianwenzhendata = tjNumber; + + + // getInfoById(tjNumber).then((response) => { + // this.jianqianwenzhendata = response.data; + // if (this.form.xiyan == null) { + // this.form.xiyan = "1"; + // } + // if (this.form.xiyanpinlv == null) { + // this.form.xiyanpinlv = "0"; + // } + // if (this.form.xiyanyear == null) { + // this.form.xiyanyear = "0"; + // } + // if (this.form.yinjiu == null) { + // this.form.yinjiu = "1"; + // } + // if (this.form.yinjiupinlv == null) { + // this.form.yinjiupinlv = "0"; + // } + // if (this.form.yinjiuyear == null) { + // this.form.yinjiuyear = "0"; + // } + // this.form.tjAskHistorysList = response.data.tjAskHistorysList; + // // this.isdisabled= true + // }); }, tableRowClassName({ row, rowIndex }) { for (let i = 0; i < this.selectList.length; i++) { @@ -588,42 +438,14 @@ } } }, - // 鏂板琛� - addmembers() { - if (this.form.cusName) { - if (!this.form.tjAskHistorysList) { - this.form.tjAskHistorysList = []; - this.form.tjAskHistorysList.push({ - id: parseInt(length), - diseaseName: "", - diseaseData: "", - diseaseCompany: "", - isOk: "", - remark: "", - Selection, - }); - } else { - this.form.tjAskHistorysList.push({ - id: parseInt(length), - diseaseName: "", - diseaseData: "", - diseaseCompany: "", - isOk: "", - remark: "", - Selection, - }); - } - } else { - Message.warning("璇峰厛濉啓瀹㈡埛鍚�"); - } - this.$forceUpdate(); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - updateHistory(this.form).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - }); - }, + + handleLoading(isLoading) { + this.loading = isLoading; + } + + + + }, }; </script> @@ -640,27 +462,20 @@ display: flex; justify-content: space-evenly; } + .hist2 { width: 708px; } + .hist3 { margin-top: 60px; } -.coll { - width: 100%; -} + ::v-deep .el-collapse-item__header { font-weight: 800; font-size: 16px; } -.txt { - font-size: 16px; - font-weight: 800; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 20px; -} + .el-table .warning-row { background: #e5f3ff !important; } -- Gitblit v1.8.0