From 5f5425c1be29b82205f19b7779cda67cfcc3a6e5 Mon Sep 17 00:00:00 2001 From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com> Date: 星期三, 19 六月 2024 17:53:26 +0800 Subject: [PATCH] qxtj --- src/views/hosp/order/index.vue | 380 ++++++++++++++++++++++++++++++----------------------- 1 files changed, 216 insertions(+), 164 deletions(-) diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue index 94af7c0..880c529 100644 --- a/src/views/hosp/order/index.vue +++ b/src/views/hosp/order/index.vue @@ -96,6 +96,16 @@ >瀵煎嚭</el-button > </el-col> + + <el-col :span="1.5"> + <el-button + type="primary" + size="mini" + @click="handleRevoke" + :disabled="single" + >鎾ら攢绛惧埌</el-button + > + </el-col> <el-col :span="1.5"> <el-button type="primary" @@ -106,6 +116,7 @@ >琛ュ綍椤圭洰</el-button > </el-col> + <el-col :span="1.5"> <el-button type="primary" @@ -412,7 +423,7 @@ <el-dialog :title="title" :visible.sync="Projectopen" - width="1500px" + width="1100px" style="height: 860px" append-to-body > @@ -426,103 +437,93 @@ <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> </el-input> <div class="tab3"> - <div class="outside1"> - <el-tree - class="filter-tree" - v-loading="loading" - :data="Treedata" - :props="defaultProps" - show-checkbox - node-key="proId" - @check-change="handleCurrentChecked" - :default-checked-keys="checkedkey" - :filter-node-method="filterNode" - ref="tree" - > - </el-tree> - </div> + <el-tree + class="filter-tree" + v-loading="loading" + :data="Treedata" + :props="defaultProps" + show-checkbox + node-key="proId" + @check="handleCurrentChecked" + :default-checked-keys="checkedkey" + :filter-node-method="filterNode" + ref="tree" + > + </el-tree> </div> </el-col> - <el-col :span="4"> + <el-col :span="5"> <div style="text-align: center; margin-bottom: 10px; margin-top: 10px" > - 椤圭洰鍒楄〃 + 鏄庣粏椤圭洰鍒楄〃 </div> <div class="tab3"> - <div class="outside1"> - <el-tree - class="filter-tree" - v-loading="loading" - :data="TreedataList" - node-key="proId" - :props="defaultProps" - :filter-node-method="filterNode" - show-checkbox - @check-change="handleCurrentChecked1" - :default-checked-keys="checkedListkey" - > - </el-tree> - </div> + <el-tree + class="filter-tree" + v-loading="loading" + :data="TreedataList" + node-key="proId" + :props="defaultProps" + :filter-node-method="filterNode" + show-checkbox + @check-change="handleCurrentChecked1" + :default-checked-keys="checkedListkey" + > + </el-tree> </div> </el-col> - <el-col :span="12"> + <el-col :span="11"> <div class="grid-content bg-purple"> - <div style="text-align: center; margin-bottom: 10px"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > 宸查�夐」鐩垪琛� </div> - <div - style=" - padding: 0px 6px; - border: 1px solid #e6ebf5; - max-height: 420px; - overflow: auto; - " + <el-table + :data="DataList" + border + style="width: 100%" + height="400" + :span-method="objectSpanMethod" > - <el-table - :data="DataList" - border - style="width: 100%" - height="250" - > - <el-table-column prop="propinName" label="鐖堕」"> - </el-table-column> - <el-table-column prop="proName" label="椤圭洰" width="180"> - </el-table-column> - <el-table-column prop="proPrice" label="鍘熶环"> - </el-table-column> + <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> + </el-table-column> + <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px"> + </el-table-column> + <el-table-column prop="proPrice" label="鍘熶环" width="56px"> + </el-table-column> - <el-table-column - label="鎿嶄綔" - align="center" - fixed="right" - class-name="small-padding fixed-width" - width="80px" - > - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - >鍒犻櫎</el-button - > - </template> - </el-table-column> - </el-table> - <el-collapse v-model="activeName" accordion v-if="list1"> - <div> - <el-collapse-item title="璇烽�夋嫨椤圭洰"> - <el-table :data="DataList" border style="width: 100%"> - <el-table-column prop="proName" label="椤圭洰" width="180"> - </el-table-column> - <el-table-column prop="ordPrice" label="鍘熶环"> - </el-table-column> - </el-table> - </el-collapse-item> - </div> - </el-collapse> - </div> + <el-table-column + label="鎿嶄綔" + align="center" + fixed="right" + class-name="small-padding fixed-width" + width="50px" + > + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + title="鍒犻櫎" + ></el-button> + </template> + </el-table-column> + </el-table> + <el-collapse v-model="activeName" accordion v-if="list1"> + <div> + <el-collapse-item title="璇烽�夋嫨椤圭洰"> + <el-table :data="DataList" border style="width: 100%"> + <el-table-column prop="proName" label="椤圭洰" width="180"> + </el-table-column> + <el-table-column prop="ordPrice" label="鍘熶环"> + </el-table-column> + </el-table> + </el-collapse-item> + </div> + </el-collapse> <template> <el-form :model="form"> <el-form-item label="浣撴绫诲瀷" prop="tjType"> @@ -593,7 +594,7 @@ <el-dialog :title="title" :visible.sync="Projectopen1" - width="1500px" + width="1100px" style="height: 860px" append-to-body > @@ -607,28 +608,26 @@ <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> </el-input> <div class="tab3"> - <div class="outside1"> - <el-tree - class="filter-tree" - v-loading="loading" - :data="Treedata" - :props="defaultProps" - show-checkbox - node-key="proId" - @check="handleCurrentChecked" - :default-checked-keys="checkedkey" - :filter-node-method="filterNode" - ref="tree" - > - </el-tree> - </div> + <el-tree + class="filter-tree" + v-loading="loading" + :data="Treedata" + :props="defaultProps" + show-checkbox + node-key="proId" + @check="handleCurrentChecked" + :default-checked-keys="checkedkey" + :filter-node-method="filterNode" + ref="tree" + > + </el-tree> </div> </el-col> - <el-col :span="4"> + <el-col :span="5"> <div style="text-align: center; margin-bottom: 10px; margin-top: 10px" > - 椤圭洰鍒楄〃 + 鏄庣粏椤圭洰鍒楄〃 </div> <div class="tab3"> <div class="outside1"> @@ -647,63 +646,65 @@ </div> </div> </el-col> - <el-col :span="12"> + <el-col :span="11"> <div class="grid-content bg-purple"> - <div style="text-align: center; margin-bottom: 10px"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > 宸查�夐」鐩垪琛� </div> - <div - style=" - padding: 0px 6px; - border: 1px solid #e6ebf5; - max-height: 420px; - overflow: auto; - " - > - <el-table - :data="DataList" - border - style="width: 100%" - height="250" - > - <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> - </el-table-column> - <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="180"> - </el-table-column> - <el-table-column prop="proPrice" label="鍘熶环"> - </el-table-column> - <el-table-column - label="鎿嶄綔" - align="center" - fixed="right" - class-name="small-padding fixed-width" - width="80px" - > - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - title="鍒犻櫎" - ></el-button> - </template> - </el-table-column> - </el-table> - <el-collapse v-model="activeName" accordion v-if="list1"> - <div> - <el-collapse-item title="璇烽�夋嫨椤圭洰"> - <el-table :data="DataList" border style="width: 100%"> - <el-table-column prop="proName" label="椤圭洰" width="180"> - </el-table-column> - <el-table-column prop="ordPrice" label="鍘熶环"> - </el-table-column> - </el-table> - </el-collapse-item> - </div> - </el-collapse> - </div> + <el-table + :data="DataList" + border + style="width: 100%" + height="400" + :span-method="objectSpanMethod" + > + <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> + </el-table-column> + <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px"> + </el-table-column> + <el-table-column prop="proPrice" label="鍘熶环" width="56px"> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + align="center" + fixed="right" + class-name="small-padding fixed-width" + width="50px" + > + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + title="鍒犻櫎" + ></el-button> + </template> + </el-table-column> + </el-table> + <el-collapse v-model="activeName" accordion v-if="list1"> + <div> + <el-collapse-item title="璇烽�夋嫨椤圭洰"> + <el-table + :data="DataList" + border + style="width: 100%" + height="400" + :span-method="objectSpanMethod" + > + <el-table-column prop="proName" label="椤圭洰" width="180"> + </el-table-column> + <el-table-column prop="ordPrice" label="鍘熶环"> + </el-table-column> + </el-table> + </el-collapse-item> + </div> + </el-collapse> + <template> <el-form :model="form"> <el-form-item label="浣撴绫诲瀷" prop="tjType"> @@ -819,6 +820,7 @@ getPdf, getOrderList, getNewDateList, + revokeTjOrderByTjNum, } from "@/api/hosp/order"; import moment from "moment"; import { getwater } from "@/api/hosp/customer"; @@ -880,7 +882,7 @@ loading: true, // 閫変腑鏁扮粍 ids: [], - dataObj:{}, + dataObj: {}, // 闈炲崟涓鐢� single: true, // 闈炲涓鐢� @@ -1075,6 +1077,33 @@ this.$message.error("璇ョ敤鎴锋殏鏃犻」鐩紒"); } }); + }, + + handleRevoke() { + this.$confirm( + "鎮ㄧ‘璁よ鎾ら攢锛�", + "纭淇℃伅", + { + distinguishCancelAndClose: true, + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + } + ) + .then(() => { + revokeTjOrderByTjNum(this.tjnumbers).then((res) => { + + this.$modal.msgSuccess(res.msg); + this.getList(); + }); + }) + .catch((action) => { + if (action === "cancel") { + this.$message({ + type: "warning", + message: "宸插彇娑�", + }); + } + }); }, /** 鐐瑰嚮鏄剧ず浣撴鎶ュ憡鎶ヨ〃*/ // viewReport(row) { @@ -1293,9 +1322,10 @@ this.Projectopen1 = true; this.title = "琛ュ綍椤圭洰"; }, + // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐� handleCurrentChecked(data, checked, checkedNodes) { - this.dataObj = data + this.dataObj = data; if (checked.checkedNodes.length != 0) { this.$refs.tree.setCheckedKeys([data.proId]); let proId = data.proId; @@ -1325,7 +1355,6 @@ this.TreedataList = res.data.list; this.checkedListkey = []; }); - } }, @@ -1357,11 +1386,11 @@ } else if (checked == true) { this.DataList.push(data); this.DataList.forEach((item1) => { - if (item1.proParentId == this.dataObj.proId) { - item1.propinName = this.dataObj.proName; - } - }); - this.spliceData() + if (item1.proParentId == this.dataObj.proId) { + item1.propinName = this.dataObj.proName; + } + }); + this.spliceData(); this.TotalPrice1 = 0; this.DataList.forEach((item1) => { this.TotalPrice1 = item1.proPrice + this.TotalPrice1; @@ -1380,6 +1409,28 @@ }); } }); + }, + + // // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 } + objectSpanMethod({ row, column, rowIndex, columnIndex }) { + console.log(row, column, rowIndex, columnIndex); + let fields = ["propinName"]; + let cellValue = row[column.property]; + if (cellValue && fields.includes(column.property)) { + let prevRow = this.DataList[rowIndex - 1]; + let nextRow = this.DataList[rowIndex + 1]; + if (prevRow && prevRow[column.property] === cellValue) { + return { rowspan: 0, colspan: 0 }; + } else { + let countRowspan = 1; + while (nextRow && nextRow[column.property] === cellValue) { + nextRow = this.DataList[++countRowspan + rowIndex]; + } + if (countRowspan > 1) { + return { rowspan: countRowspan, colspan: 1 }; + } + } + } }, // 鏀惰垂鎸夐挳 @@ -1552,7 +1603,7 @@ // } .outside { - width: 700px; + width: 500px; display: flex; margin-top: 8px; } @@ -1560,6 +1611,7 @@ .tab3 { max-height: 500px; overflow-y: auto; + border: 1px solid #d9d9d9; } .outside1 { -- Gitblit v1.8.0