From 1bff9afb2dfda9824c3956c4a491a1b2261ad306 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期日, 27 四月 2025 14:37:54 +0800 Subject: [PATCH] 1 --- src/views/picture/picture/index.vue | 397 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 294 insertions(+), 103 deletions(-) diff --git a/src/views/picture/picture/index.vue b/src/views/picture/picture/index.vue index 073826f..e182a8b 100644 --- a/src/views/picture/picture/index.vue +++ b/src/views/picture/picture/index.vue @@ -5,9 +5,17 @@ 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: 110px" + /> + </el-form-item> <el-form-item label="浣撴鍙�" prop="tjNumber"> <el-input ref="inputName" @@ -19,13 +27,13 @@ style="width: 170px" /> </el-form-item> - <el-form-item label="濮撳悕" prop="name"> + <el-form-item label="椤圭洰" prop="tcm"> <el-input - v-model="queryParams.name" - placeholder="璇疯緭鍏ュ鍚�" + v-model="queryParams.tcm" + placeholder="璇疯緭鍏ラ」鐩�" clearable @keyup.enter.native="handleQuery" - style="width: 110px" + style="width: 170px" /> </el-form-item> <el-form-item @@ -52,31 +60,6 @@ /> </el-select> </el-form-item> - <el-form-item label="椤圭洰" prop="tcm"> - <el-input - v-model="queryParams.tcm" - placeholder="璇疯緭鍏ヤ綋妫�鍙�" - clearable - @keyup.enter.native="handleQuery" - style="width: 170px" - /> - </el-form-item> - <el-form-item label="鐧昏鏃堕棿" prop="createTimeList"> - <el-date-picker - v-model="createTimeList" - type="datetimerange" - align="right" - :picker-options="pickerOptions" - style="width: 310px" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :default-time="['00:00:00', '23:00:00']" - format="yyyy-MM-dd HH:mm" - value-format="yyyy-MM-dd HH:mm" - @change="dateChangebirthday1" - > - </el-date-picker> - </el-form-item> <el-form-item> <el-button type="primary" @@ -89,13 +72,64 @@ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >閲嶇疆</el-button > + <el-button + type="primary" + size="mini" + @click="toggleCollapse" + style="margin-right: 15px" + v-show="isCollapsed == 0" + >楂樼骇鎼滅储 + </el-button> + <!-- 灞曞紑鏇村绛涢�夐」 --> + <el-button + type="primary" + size="mini" + @click="toggleCollapse3" + style="margin-right: 15px" + v-show="isCollapsed == 1" + >楂樼骇鎼滅储 + </el-button> + <!-- 鏀惰捣鏇村绛涢�夐」 --> </el-form-item> + + <el-row v-show="isCollapsed == 1" :gutter="20"> + <el-col :span="8"> + <el-form-item style="margin-left: 22px;" + label="鐧昏鏃堕棿" + prop="createTimeList" + v-show="isCollapsed == 1" + > + <el-date-picker + v-model="createTimeList" + type="datetimerange" + align="right" + :picker-options="pickerOptions" + style="width: 310px" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + :default-time="['00:00:00', '23:00:00']" + format="yyyy-MM-dd HH:mm" + value-format="yyyy-MM-dd HH:mm" + @change="dateChangebirthday1" + > + </el-date-picker> + </el-form-item> + </el-col> + </el-row> </el-form> - <div style="width: 100%; margin-left: 10px; display: flex"> - <div style="width: 36%; margin-right: 30px"> + <el-radio-group + v-model="checkStatus" + @input="radioChange" + style="margin: 10px 15px" + > + <el-radio-button label="0">鏈</el-radio-button> + <el-radio-button label="1">宸叉</el-radio-button> + </el-radio-group> + + <el-row :gutter="20"> + <el-col :span="11"> <el-table - id="table" v-loading="loading" ref="tb" :data="pictureList" @@ -105,6 +139,7 @@ border height="520px" > + <!-- <el-table-column type="selection" width="55" /> --> <!-- @selection-change="handleSelectionChange" --> <el-table-column label="浣撴鍙�" @@ -180,20 +215,33 @@ </template> </el-table-column> </el-table> - </div> - <div style="width: 44%; height: 610px"> + <div class="pag"> + <div class="pag1"> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.page" + :limit.sync="queryParams.pageSize" + @pagination="submitForm" + /> + </div> + </div> + </el-col> + <el-col :span="11"> <el-table v-loading="loading" ref="mu" :data="tableList" :row-class-name="tableRowClassName" + @header-click="handleHeaderClick" highlight-current-row @selection-change="handleChange" border style="height: 400px" > - <el-table-column type="selection" width="50" align="center" /> + <el-table-column type="selection" width="50" align="center"> + </el-table-column> <el-table-column label="绉戝" align="center" @@ -220,7 +268,7 @@ v-if="scope.row.type == '0'" :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }" > - {{ type == 0 ? "鏈� 妫�" : "鍦� 妫�" }} + {{ type == 0 ? "鏈� 妫�" : "鍦� 妫�" }} </span> <span v-if="scope.row.type == '1'">宸插畬鎴�</span> <span v-if="scope.row.type == '2'">寮冩</span> @@ -233,7 +281,7 @@ prop="bcupdateTime" min-width="160" /> - <el-table-column label="鎿嶄綔" align="center" min-width="120px"> + <!-- <el-table-column label="鎿嶄綔" align="center" min-width="120px"> <template slot-scope="scope"> <el-button size="mini" @@ -253,9 +301,8 @@ @click="queryResultone(scope.row)" >缁撴灉</el-button > - <!-- @click="chaxun(scope.row) " --> </template> - </el-table-column> + </el-table-column> --> <!-- <el-table-column type="selection" width="40" align="center" /> <el-table-column label="鏀惰垂椤圭洰" align="center" prop="proName" /> @@ -271,7 +318,12 @@ label-width="68px" > <el-form-item label="妫�鏌ユ墍瑙�" prop="proResult"> - <el-input v-model="form.proResult" clearable type="textarea" /> + <el-input + v-model="form.proResult" + clearable + type="textarea" + @focus="submiepilog" + /> </el-form-item> <el-form-item label="妫�鏌ョ粨璁�" prop="conclusion"> <el-input @@ -299,34 +351,23 @@ </el-form-item> </el-form> </div> - - <!-- <div style="display:flex;margin:15px 0px;width: 100%;"> - <div style="width: 100%;display:flex;"> - <el-button type="primary" class="default-button-style" size="small" - @click="submiepilog">缁撴灉缁撹</el-button> - <el-button type="primary" icon="el-icon-s-claim" size="mini" @click="submito">鎻愪氦</el-button> - - </div> - </div> --> - </div> - </div> + </el-col> + </el-row> <el-dialog title="鎻愮ず" :visible.sync="dialogVisible" width="60%"> <!-- :before-close="handleClose" --> <img src="../../../assets/logo/logo.png" alt="" /> </el-dialog> - <div style="margin-right: 58%"> - <pagination - v-show="total > 0" - :total="total" - :page.sync="queryParams.page" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - </div> - - <Public ref="aaa" @add="handleChanges" /> + <Public + ref="aaa" + :check-status="checkStatus" + :pro-result="form.proResult" + :conclusion="form.conclusion" + @add="handleChanges" + :project-list="projectList" + /> + <!-- :last-desc="form.conclusion" --> </div> </template> @@ -337,6 +378,7 @@ getYxJcList, getYxJcXx, addYxJcXx, + getYxJcXxJg, } from "@/api/picture/picture"; import { getCompany, queryCompany } from "@/api/team/tuanti"; import { @@ -352,8 +394,6 @@ } from "@/api/doctor/examination"; import Public from "@/components/public"; -import { get } from "sortablejs"; -import { getList } from "../../../api/picture/check"; export default { dicts: [ "sys_user_sex", @@ -371,6 +411,7 @@ topShow: false, rShow: false, type: null, + checkStatus: "0", // 閬僵灞� loading: true, result: true, @@ -379,6 +420,7 @@ // 閫変腑鏁扮粍 ids: [], CheckBox: {}, + isCollapsed: 0, // 榛樿涓烘姌鍙犵姸鎬� // 闈炲崟涓鐢� single: true, // 闈炲涓鐢� @@ -398,6 +440,7 @@ pictureList: [], tableList: [], CompanyList: [], + projectList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -415,6 +458,7 @@ endTime: null, tcm: "", tjCompName: "", + checkStatus: null, // tjNum: null, // cusId: null, // name: null, @@ -472,6 +516,7 @@ this.$nextTick(() => { this.$refs.inputName.focus(); }); + this.radioChange(this.checkStatus); }, methods: { // 榧犳爣杩涘叆鍘熷浘绌洪棿鍑芥暟 @@ -509,6 +554,7 @@ /** 鏌ヨ浣撴蹇冪數鍥剧鐞嗗垪琛� */ getList() { this.loading = true; + this.queryParams.checkStatus = this.checkStatus; this.queryParams.compId = this.CheckBox.drugManufacturerId; if (this.createTimeList) { this.queryParams.beginTime = this.createTimeList[0]; @@ -517,8 +563,7 @@ this.queryParams.beginTime = null; this.queryParams.endTime = null; } - getYxJcList(this.queryParams).then((response) => { - // console.log(response.data.customers, 666); + /* getYxJcList(this.queryParams).then((response) => { if (response.data) { this.pictureList = response.data.customers; @@ -534,15 +579,12 @@ this.$refs.tb.clearSelection(); } this.total = response.data.total; - console.log(response.data.total, 88); this.loading = false; - }); + }); */ getCompany(this.queryParams).then((response) => { this.CompanyList = response.data; - // console.log(this.CompanyList, 555); - this.loading = false; }); }, @@ -584,9 +626,7 @@ }, handleRowClick(row, column, event) { - // console.log(row, 2323); this.name = row.proName; - // console.log(this.name, 99999); }, // 浣撴鍏徃鎷奸煶鎼滅储 getRemoteData(query) { @@ -597,6 +637,39 @@ }); } }, + radioChange(value) { + this.loading = true; + this.queryParams.checkStatus = value; + this.form.proResult = ""; + this.form.conclusion = ""; + getYxJcList(this.queryParams).then((res) => { + if (res.code == 200) { + this.loading = false; + if (res.data) { + this.pictureList = res.data.customers; + this.total = res.data.total; + if (this.pictureList.length != 0) { + this.$nextTick(() => { + this.$refs.tb.toggleRowSelection(this.pictureList[0], true); + }); + } else { + this.$refs.tb.clearSelection(); + } + this.total = res.data.total; + } else { + this.pictureList = []; + } + } + }); + /* const tjNumber = this.pictureList.tjNumber; + + + getYxJcXx(tjNumber).then((res) => { + this.tableList = res.data; + this.loading = false; + }); */ + }, + // 鍙栨秷鎸夐挳 cancel() { this.open = false; @@ -611,7 +684,6 @@ this.resetForm("form"); }, hb() { - // console.log(this.queryParams.tjNum); if (this.queryParams.tjNumber != null) { // this.handleQuery(); this.submitForm(); @@ -619,6 +691,7 @@ }, submitForm() { this.loading = true; + this.queryParams.checkStatus = this.checkStatus; this.queryParams.compId = this.CheckBox.drugManufacturerId; if (this.createTimeList) { this.queryParams.beginTime = this.createTimeList[0]; @@ -653,31 +726,54 @@ // 閫夋鏁版嵁 searchSelect(val) { this.CheckBox = val; - // console.log(this.CheckBox, 9999); + }, + + handleHeaderClick(column, event) { + if (column.type === "selection") { + // 鏌ユ壘鍏ㄩ�夋骞堕殣钘� + const checkbox = event.target.closest(".el-checkbox"); + if (checkbox) checkbox.style.display = "none"; + } }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); + this.queryParams.page = 1; + this.submitForm(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.createTimeList = []; (this.queryParams = { - pageNum: 1, + page: 1, pageSize: 10, tjNumber: null, compId: null, name: null, beginTime: null, + checkStatus: null, endTime: null, tjCompName: "", tcm: "", }), (this.CheckBox.drugManufacturerId = ""); + this.tableList = []; // this.resetForm("queryForm"); this.handleQuery(); this.loading = true; + }, + + toggleCollapse3() { + // this.isCollapsed = !this.isCollapsed; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫�� + this.isCollapsed = 0; + this.$nextTick(() => { + this.$refs.inputName.focus(); + }); + }, + toggleCollapse() { + this.isCollapsed = 1; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫�� + this.$nextTick(() => { + this.$refs.inputName.focus(); + }); }, tableRowClassName({ row, rowIndex }) { @@ -689,14 +785,44 @@ }, handleCurrentChange(val) { - this.currentRow = val; - let tjNumber = val.tjNumber; + this.selectedRow = val; + if (!val || !val.tjNumber) { + console.warn("tjNumber 涓虹┖锛屼笉璋冪敤鎺ュ彛"); + this.tableList = []; + return; + } this.selectedTjNumber = val.tjNumber; + this.changtjNumber(val.tjNumber); + }, + + changtjNumber(val) { + console.log(8989); + let tjNumber = val; this.loading = true; getYxJcXx(tjNumber).then((res) => { - console.log(res, 222); this.tableList = res.data; this.loading = false; + this.$nextTick(() => { + const headerCheckbox = this.$refs.mu.$el.querySelector( + ".el-table__header .el-checkbox" + ); + if (headerCheckbox) headerCheckbox.style.display = "none"; + if (this.queryParams.checkStatus == 0) { + if (this.tableList.length > 0) { + this.tableList.forEach((item, index) => { + if (item.type == 0) { + const firstRow = item; + this.$refs.mu.toggleRowSelection(firstRow, true); + this.handleChange([firstRow]); + } + }); + } + } else { + const firstRow = this.tableList[0]; + this.$refs.mu.toggleRowSelection(firstRow, true); + this.handleChange([firstRow]); + } + }); }); }, @@ -754,7 +880,7 @@ }, // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { + /* handleSelectionChange(selection) { this.imgsrc = selection[0].picturePath; this.tjNumber = selection[0].customer.tjNumber; this.ids = selection.map((item) => item.id); @@ -781,32 +907,90 @@ } this.single = selection.length !== 1; this.multiple = !selection.length; + }, */ + handleSelectionChange(selection) { + this.imgsrc = selection[0].picturePath; + this.tjNumber = selection[0].customer.tjNumber; + this.ids = selection.map((item) => item.id); + + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.tb.toggleRowSelection(del_row, false); + } + + this.single = selection.length !== 1; + this.multiple = !selection.length; + + selection.forEach((element) => { + this.tableList = element.list; + + if (this.tableList.length !== 0) { + // 鉁� 鎻愬墠璧嬪�� selectedRow锛岄伩鍏� handleChange 鏃舵湭璧嬪�� + this.selectedRow = this.tableList[0]; + this.form.proResult = this.tableList[0].proResult; + this.form.conclusion = this.tableList[0].conclusion; + + this.$nextTick(() => { + this.$refs.mu.toggleRowSelection(this.tableList[0], true); + }); + } else { + this.selectedRow = null; + this.$refs.mu.clearSelection(); + } + }); }, - handleChange(selection) { - console.log(selection, 123); + if (selection.length > 1) { + let del_row = selection.shift(); + this.$refs.mu.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑 + } + this.projectList = selection.map((item) => ({ + proId: item.proId, + proName: item.proName, + })); if (selection && selection.length > 0) { - // 鍋囪鎴戜滑閫夋嫨浜嗕竴涓」鐩紝骞朵粠绗竴涓�夋嫨鐨勫璞′腑鎻愬彇 proId const proId = selection[0].proId; - console.log("閫変腑鐨� proId:", proId); - // 鏇存柊 selectedRow锛屼互渚垮湪 submito 鏂规硶涓闂� - this.selectedRow = selection[0]; // 灏嗛�変腑鐨勮璧嬪�肩粰 selectedRow + // 鉁� 纭繚 selectedRow 瀛樺湪涓旀湁 tjNumber + const tjNumber = this.selectedTjNumber; + getYxJcXxJg(tjNumber, proId).then((res) => { + this.form.proResult = res.data.jcsj; + this.form.conclusion = res.data.jcjl; + this.$refs.aaa.updateData(res.data.jcsj, res.data.jcjl); + }); + + // 鉁� 鍚屾椂鏇存柊 selectedRow + this.selectedRow = selection[0]; } }, - handleChanges(value) { + /* handleChange(selection) { + if (selection && selection.length > 0) { + const proId = selection[0].proId; + const tjNumber = this.selectedRow.tjNumber; + this.selectedRow = selection[0]; + getYxJcXxJg(tjNumber, proId).then((res) => { + this.form.proResult = res.data.jcsj; + this.form.conclusion = res.data.jcjl; + }); + } + }, */ + + handleChanges(value, yxbx) { this.form.conclusion = value; + this.form.proResult = yxbx; }, submiepilog() { this.$refs.aaa.open = true; let proId = "1633660948860522585"; + // let proId = null this.$refs.aaa.getList(proId); }, tupian() { this.dialogVisible = true; }, + // 纭畾鎸夐挳 submito() { /* if (this.dataobj) { @@ -829,16 +1013,15 @@ console.error("鏈�変腑琛屾垨缂哄皯 proId"); return; } - console.log(this.selectedRow.proId, 96); const proId = this.selectedRow.proId; - const jcsj = this.form.proResult; // 鑾峰彇妫�鏌ユ墍瑙� - const jcjl = this.form.conclusion; // 鑾峰彇妫�鏌ョ粨璁� + const jcsj = this.form.proResult || " "; // 鑾峰彇妫�鏌ユ墍瑙� + const jcjl = this.form.conclusion || " "; // 鑾峰彇妫�鏌ョ粨璁� // 纭繚 jcsj 鍜� jcjl 瀛樺湪 - if (!jcsj || !jcjl) { - console.error("妫�鏌ユ墍瑙佹垨妫�鏌ョ粨璁轰笉鑳戒负绌�"); - return; - } + // if (!jcsj || !jcjl) { + // console.error("妫�鏌ユ墍瑙佹垨妫�鏌ョ粨璁轰笉鑳戒负绌�"); + // return; + // } addYxJcXx({ proId: proId, @@ -847,10 +1030,19 @@ jcjl: jcjl, // 浼犻�掓鏌ョ粨璁� }) .then((response) => { - console.log("鎻愪氦鎴愬姛", response); - this.getList(); this.form.proResult = ""; this.form.conclusion = ""; + if (this.tableList.length == 1) { + this.submitForm(); + } else { + this.tableList.forEach((item, index) => { + if (item.type == 0) { + this.changtjNumber(this.selectedTjNumber); + } else { + this.submitForm(); + } + }); + } }) .catch((error) => { console.error("鎻愪氦澶辫触", error); @@ -868,10 +1060,6 @@ <style> -#table .el-table__header-wrapper .el-checkbox { - display: none; -} - .default-button-style :hover { width: 80px; border-bottom: none; @@ -933,4 +1121,7 @@ float: left; position: relative; } -</style> \ No newline at end of file +.el-input--small { + font-size: 13px; +} +</style> -- Gitblit v1.8.0