From d23ab1d66456d5dd8aa8645bb262deef4e70a9eb Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期五, 17 一月 2025 19:02:01 +0800 Subject: [PATCH] 2 --- src/views/hosp/order/index.vue | 441 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 406 insertions(+), 35 deletions(-) diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue index 504fde3..9d7b6c4 100644 --- a/src/views/hosp/order/index.vue +++ b/src/views/hosp/order/index.vue @@ -13,7 +13,7 @@ ref="inputName" v-model="queryParams.name" placeholder="璇疯緭鍏ュ鍚�" - style="width: 120px" + style="width: 150px" clearable @keyup.enter.native="handleQuery" /> @@ -23,7 +23,7 @@ ref="inputName" v-model="queryParams.tjNum" placeholder="璇疯緭鍏ヤ綋妫�鍙�" - style="width: 170px" + style="width: 150px" clearable @keyup.enter.native="handleQuery" @blur="hb" @@ -34,12 +34,59 @@ ref="inputName" v-model="queryParams.xmmc" placeholder="璇疯緭鍏ヤ綋妫�椤圭洰" - style="width: 120px" + style="width: 150px" clearable @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="鐧昏鏃堕棿" prop="createTimeList"> + <el-form-item + label="鍗曚綅鍚嶇О" + prop="tjCompName" + style="margin-left: 20px; margin-right: 500px" + > + <el-select + :remote-method="getRemoteData" + v-model="queryParams.tjCompName" + value-key="drugManufacturerId" + style="width: 200px" + 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="zt"> + <el-select + :remote-method="getRemoteData" + v-model="queryParams.zt" + style="width: 150px" + remote + filterable + placeholder="璇烽�夋嫨鐘舵��" + clearable + @change="searchSelect" + > + <el-option + v-for="item in ztList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + <el-form-item + label="鐧昏鏃堕棿" + prop="createTimeList" + style="margin-right: 107px" + > <el-date-picker v-model="createTimeList" type="datetimerange" @@ -94,6 +141,24 @@ > </el-form-item> </el-form> + + <div v-if="shijianlist.length > 0" style="margin-bottom: 20px"> + {{ findNameByTjnum(shijianlist[shijianlist.length - 1].tjNUm) }} + <el-steps + :space="200" + :active="shijianlist[shijianlist.length - 1].sjz" + finish-status="success" + align-center + > + <el-step title="鏈"></el-step> + <el-step title="鍦ㄦ"></el-step> + <el-step title="宸插畬鎴�"></el-step> + <el-step title="宸插鏍�"></el-step> + <el-step title="鐢熸垚鎶ュ憡"></el-step> + <el-step title="鎶ュ憡鏍告敹"></el-step> + <el-step title="宸插嚭鎶ュ憡"></el-step> + </el-steps> + </div> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> @@ -165,6 +230,16 @@ :disabled="single" v-hasPermi="['hosp:order:export']" >鎵撳嵃琛ュ綍鍗�</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + type="primary" + size="mini" + @click="ForceChexiao" + :disabled="single" + v-hasPermi="['qzcx']" + >寮哄埗鎾ら攢</el-button > </el-col> <right-toolbar @@ -268,6 +343,18 @@ :show-overflow-tooltip="true" width="160px" /> + <el-table-column + label="鍗曚綅鍚嶇О" + align="center" + prop="dictCompName" + :show-overflow-tooltip="true" + /> + <el-table-column + label="鐘舵��" + align="center" + prop="zt" + :show-overflow-tooltip="true" + /> <!-- <el-table-column label="娴佹按鍙�" align="center" prop="tjSerialNumber" /> --> <el-table-column label="鎵�閫夊椁�" @@ -276,6 +363,18 @@ :formatter="driver" :show-overflow-tooltip="true" /> + <el-table-column + label="瀵艰瘖鎵撳嵃娆℃暟" + align="center" + prop="dycs" + width="110px" + :formatter="driver" + :show-overflow-tooltip="true" + > + <template slot-scope="scope"> + {{ scope.row.dycs === null ? 0 : scope.row.dycs }} + </template> + </el-table-column> <el-table-column label="鐧昏鏃堕棿" align="center" @@ -317,19 +416,14 @@ </el-table-column> <!-- <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" /> --> <!-- <el-table-column label="鏇存柊浜�" align="center" prop="updateBy" /> --> - <el-table-column + <!-- <el-table-column label="鍗曚綅宸ュ彿" align="center" prop="firmWorkId" width="100px" :show-overflow-tooltip="true" - /> - <el-table-column - label="鍗曚綅鍚嶇О" - align="center" - prop="dictCompName" - :show-overflow-tooltip="true" - /> + /> --> + <!-- <el-table-column label="閮ㄩ棬鍚�" align="center" prop="firmDeptName" /> --> <!-- <el-table-column label="瀹㈡埛鐓х墖" align="center" prop="photo" /> --> @@ -564,6 +658,7 @@ width="260px" > </el-table-column> + <el-table-column prop="proPrice" label="鍘熶环" width="56px"> </el-table-column> @@ -668,7 +763,9 @@ > <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> </el-table-column> - <el-table-column prop="proPrice" label="鍘熶环" width="56px"> + <el-table-column prop="sl" label="鏁伴噺" width="56px"> + </el-table-column> + <el-table-column prop="proPrice" label="鍘熶环" width="56px"> </el-table-column> <el-table-column prop="proName" @@ -676,6 +773,7 @@ width="260px" > </el-table-column> + <el-table-column label="鎿嶄綔" @@ -747,7 +845,7 @@ style="width: 90px" ></el-input> </el-form-item> - <el-form-item label="浠樻绫诲瀷" prop="payType"> + <el-form-item label="浠樻绫诲瀷"> <el-select style="width: 120px" v-model="payType" @@ -1017,7 +1115,9 @@ > <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> </el-table-column> - <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px"> + <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="200px"> + </el-table-column> + <el-table-column prop="sl" label="鏁伴噺" width="56px"> </el-table-column> <el-table-column prop="proPrice" label="鍘熶环" width="56px"> </el-table-column> @@ -1044,7 +1144,90 @@ </div> </div> - <div class="heji"> + <el-form + :model="form" + inline + style="display: flex; justify-content: space-between; margin-top: 20px" + > + <!-- 浣撴绫诲瀷 --> + <el-form-item label="浣撴绫诲瀷" prop="tjType" style="display: flex"> + <div class="type"> + {{ { 1: "鍥㈤槦", 2: "涓汉", 3: "鍥綋绁�" }[form.tjType] }} + </div> + </el-form-item> + + <!-- 鍘熶环 --> + <el-form-item label="鍘熶环" style="display: flex"> + <el-input + placeholder="鍘熶环" + :value="TotalPrice1" + disabled + style="width: 90px" + ></el-input> + </el-form-item> + + <!-- 鎶樻墸璁惧畾 --> + <el-form-item label="鎶樻墸" style="display: flex"> + <el-input + style="width: 90px" + type="number" + v-model="discount" + :value="discount" + ></el-input> + </el-form-item> + + <!-- 搴斾粯閲戦 --> + <el-form-item label="搴斾粯" style="display: flex"> + <el-input + placeholder="搴斾粯閲戦" + :value="TotalPrice1 * (discount / 10)" + style="width: 90px" + ></el-input> + </el-form-item> + + <!-- 浠樻绫诲瀷 --> + <el-form-item label="浠樻绫诲瀷" prop="payType" style="display: flex"> + <el-select + style="width: 120px" + v-model="payType" + placeholder="璇烽�夋嫨浠樻绫诲瀷" + @change="onPayTypeChange" + > + <el-option + v-for="dict in dict.type.dict_pay_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + + <!-- 缁撶畻鏂瑰紡 --> + <el-form-item label="缁撶畻鏂瑰紡" prop="jsType" style="display: flex"> + <el-select + v-model="jsType" + placeholder="璇烽�夋嫨缁撶畻鏂瑰紡" + style="width: 130px" + clearable + > + <el-option + v-for="dict in dict.type.reservation_pay_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + + <!-- 鎻愪氦鎸夐挳 --> + <el-form-item style="display: flex"> + <el-button type="primary" @click="submitPrice1" :disabled="confirm"> + 鎻愪氦 + </el-button> + </el-form-item> + </el-form> + + <!-- <div class="heji"> <div class="o"> <el-form :model="form" @@ -1099,6 +1282,21 @@ ></el-option> </el-select> </el-form-item> + <el-form-item label="缁撶畻鏂瑰紡" prop="payType"> + <el-select + v-model="payType" + placeholder="璇烽�夋嫨缁撶畻鏂瑰紡" + style="width: 130px" + clearable + > + <el-option + v-for="dict in dict.type.reservation_pay_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> <el-form-item style="display: flex"> <el-button type="primary" @@ -1109,7 +1307,7 @@ </el-form-item> </el-form> </div> - </div> + </div> --> </el-dialog> <!-- 娣诲姞鎴栦慨鏀逛綋妫�璁板綍瀵硅瘽妗� --> @@ -1422,6 +1620,7 @@ getTransitionInfo, getBlproByTjh, revokeBlProByBldhAndTjh, + getForceChexiao, } from "@/api/hosp/order"; import moment from "moment"; import { getZhList, getlistByZhId } from "@/api/system/package"; @@ -1429,20 +1628,34 @@ import { getInfo } from "@/api/login"; import ViewPdf from "@/components/ViewPdf"; import { - projectGetList, + shijianzhou, getaddtTransition, getProParentIdDxList, getProSonDxList, } from "@/api/system/tijian"; -import { createLogger } from "vuex"; +import { + SubmitCompany, + getCompany, + queryCompany, + addbatch, +} from "@/api/team/tuanti"; export default { components: { ViewPdf, }, - dicts: ["dict_pay_type", "dict_team"], + dicts: ["dict_pay_type", "dict_team", "reservation_pay_type"], name: "Order", data() { return { + ztList: [ + { name: "鏈", id: 0 }, + { name: "鍦ㄦ", id: 1 }, + { name: "宸插畬鎴�", id: 2 }, + { name: "宸插鏍�", id: 3 }, + { name: "鐢熸垚鎶ュ憡", id: 4 }, + { name: "鎶ュ憡鏍告敹", id: 5 }, + { name: "宸插嚭鎶ュ憡", id: 6 }, + ], DataList3: [], bldhid: "", budadaozhen: false, @@ -1450,6 +1663,7 @@ DataLists: [], infoList: [], bldhs: [], + CompanyList: [], filterage: "", activeName1: "second", filterText: "", @@ -1472,6 +1686,7 @@ packagedataList: [], cusId: "", payType: "0", + jsType: "0", packageList: [], checkedkeys: [], dialogVisible: false, @@ -1497,6 +1712,7 @@ TreedataList: [], discount: 10, DataList: [], + shijianlist: [], // 濂楅鎻愪氦鎸夐挳 confirm: false, list1: true, @@ -1507,6 +1723,7 @@ TotalPrice7: 0, numberList: [], dialogVisible: false, + CheckBox: {}, // 閬僵灞� loading: true, // 閫変腑鏁扮粍 @@ -1543,6 +1760,8 @@ bgbeginTime: null, bgendTime: null, xmmc: null, + tjCompName: "", + dw: null, }, startTime: "", startTime1: "", @@ -1605,13 +1824,37 @@ }); }, methods: { + findNameByTjnum(tjnum) { + const order = this.orderList.find( + (orderItem) => orderItem.tjNumber === tjnum + ); + return order ? order.tjCustomerName : "鏈壘鍒�"; // 濡傛灉鎵句笉鍒板搴旂殑椤癸紝杩斿洖涓�涓粯璁ゅ�� + }, + // 鎼滅储 + getRemoteData(query) { + if (query) { + let compName = query; + queryCompany(compName).then((response) => { + this.CompanyList = response.data; + this.CompanyList.forEach((item) => { + this.queryParams = item; + }); + }); + } + }, + // 閫夋鏁版嵁 + searchSelect(val) { + this.CheckBox = val; + this.queryParams.dw = this.CheckBox.cnName; + console.log(this.CheckBox, 9999); + }, onPayTypeChange() { if (this.payType === "6" && this.form.tjType !== 3) { - this.cannotSelectPayType = true; - this.$message.warning("璇ヤ粯娆剧被鍨嬪湪姝や綋妫�绫诲瀷涓嬩笉鍏佽閫夋嫨锛�"); - this.payType = this.dict.type.dict_pay_type[0]?.value || null; + this.cannotSelectPayType = true; + this.$message.warning("璇ヤ粯娆剧被鍨嬪湪姝や綋妫�绫诲瀷涓嬩笉鍏佽閫夋嫨锛�"); + this.payType = this.dict.type.dict_pay_type[0]?.value || null; } else { - this.cannotSelectPayType = false; + this.cannotSelectPayType = false; } }, getdate() { @@ -1673,6 +1916,46 @@ }, /** 鏌ヨ浣撴璁板綍鍒楄〃 */ getList() { + this.queryParams.compId = this.CheckBox.drugManufacturerId; + if (this.startTime) { + this.queryParams.djbeginTime = this.startTime[0]; + this.queryParams.djendTime = this.startTime[1]; + } else if (this.createTimeList) { + this.queryParams.djbeginTime = this.createTimeList[0]; + this.queryParams.djendTime = this.createTimeList[1]; + } else if (this.createTimeList == null) { + this.queryParams.djbeginTime = null; + this.queryParams.djendTime = null; + } + if (this.startTime1) { + this.queryParams.bgbeginTime = this.startTime1[0]; + this.queryParams.bgendTime = this.startTime1[1]; + } + + this.loading = true; + getOrderList(this.queryParams).then((response) => { + this.orderList = response.data.list; + if (this.orderList) { + this.orderList.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); + } + this.total = response.data.total; + this.loading = false; + }); + // 鑾峰彇鍗曚綅淇℃伅闆嗗悎 + getCompany(this.queryParams).then((response) => { + this.CompanyList = response.data; + + this.loading = false; + }); + }, + + sub() { + this.queryParams.compId = this.CheckBox.drugManufacturerId; if (this.startTime) { this.queryParams.djbeginTime = this.startTime[0]; this.queryParams.djendTime = this.startTime[1]; @@ -1762,6 +2045,45 @@ }); }, + // 寮哄埗鎾ら攢鎸夐挳 + ForceChexiao() { + const tjNum = this.tjnumbers; + this.$confirm( + "鎮ㄦ槸鍚﹂渶瑕佸己鍒舵挙閿�锛熸挙閿�鍚庤浜哄憳鏈浣撴璁板綍涓嶅彲鎭㈠锛�", + "纭淇℃伅", + { + distinguishCancelAndClose: true, + confirmButtonText: "纭", + cancelButtonText: "鍙栨秷", + customClass: "custom-message-box", + } + ) + + .then(() => { + getForceChexiao(tjNum).then((res) => { + this.$modal.msgSuccess("鎾ら攢鎴愬姛"); + this.getList(); + }); + }) + .catch((action) => { + if (action === "cancel") { + this.$message({ + type: "warning", + message: "宸插彇娑�", + }); + } + }); + this.$nextTick(() => { + // 纭繚寮规娓叉煋鍚庡簲鐢ㄦ牱寮� + const messageBox = document.querySelector( + ".custom-message-box .el-message-box__message" + ); + if (messageBox) { + messageBox.style.color = "red"; // 閫氳繃 JS 寮哄埗璁剧疆棰滆壊 + } + }); + }, + handleRevoke() { this.$confirm("鎮ㄧ‘璁よ鎾ら攢锛�", "纭淇℃伅", { distinguishCancelAndClose: true, @@ -1770,7 +2092,7 @@ }) .then(() => { revokeTjOrderByTjNum(this.tjnumbers).then((res) => { - this.$modal.msgSuccess(res.msg); + this.$modal.msgSuccess("鎾ら攢鎴愬姛"); this.getList(); }); }) @@ -1864,6 +2186,7 @@ djendTime: null, bgbeginTime: null, bgendTime: null, + dw: null, }; this.resetForm("form"); }, @@ -1875,7 +2198,8 @@ /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; - this.getList(); + // this.getList(); + this.sub(); }, renderContents(h, { node, data, store }) { return ( @@ -1930,10 +2254,23 @@ this.startTime1 = []; this.createTimeList = []; this.resetForm("queryForm"); + this.queryParams = { + pageNum: 1, + pageSize: 10, + djbeginTime: null, + djendTime: null, + tjNum: null, + bgbeginTime: null, + bgendTime: null, + xmmc: null, + tjCompName: "", + dw: null, + }; this.handleQuery(); }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { + let tjNUms = selection.map((item) => item.tjNumber); selection.forEach((item) => { this.orderIds = item.orderId; this.tjnumbers = item.tjNumber; @@ -1945,10 +2282,17 @@ this.cusSex = item.tjCustomerSex; this.form.tjType = parseInt(item.tjType); }); + this.ids = selection.map((item) => item.orderId); - // this.tjNumbers = selection.map((item) => item.tjNumber); this.single = selection.length !== 1; this.multiple = !selection.length; + if (tjNUms.length > 0) { + shijianzhou(tjNUms).then((res) => { + this.shijianlist = res.data; + }); + } else { + this.shijianlist = []; + } }, /** 鏂板鎸夐挳鎿嶄綔 */ // handleAdd() { @@ -1970,7 +2314,7 @@ var discount = ""; response.data.water.forEach((item) => { copeWith += item.copeWith; - paidIn += item.copeWith; + paidIn += item.paidIn; discount = item.discount; }); this.bill.push({ @@ -2011,7 +2355,7 @@ var discount = ""; response.data.water.forEach((item) => { copeWith += item.copeWith; - paidIn += item.copeWith; + paidIn += item.paidIn; discount = item.discount; }); this.bill.push({ @@ -2122,8 +2466,10 @@ let datas = { zhId: data.id, }; + getlistByZhId(datas).then((res) => { this.packagedataList = res.data.tjProjectList; + for (var i = 0; i < this.packagedataList.length; i++) { let proId = this.packagedataList[i].proId; getProSonDxList(proId).then((res) => { @@ -2170,7 +2516,7 @@ // 琛ュ綍椤圭洰 handleProject(row) { - this.payType = "0" + this.payType = "0"; this.loading = true; this.DataList = []; this.DataList3 = []; @@ -2240,7 +2586,7 @@ }, // 琛ュ綍椤圭洰 handleProject1() { - this.payType = "0" + this.payType = "0"; this.loading = true; this.DataList = []; this.DataList3 = []; @@ -2275,7 +2621,6 @@ this.checkedListkey.push(item.proId); this.DataList.push(item); this.DataList3 = this.DataList.concat(this.Datalists); - console.log(this.DataList, 77777); this.spliceData(); this.DataList.forEach((item1) => { if (item1.proParentId == data.proId) { @@ -2286,7 +2631,8 @@ this.TotalPrice1 = 0; if (this.DataList3.length != 0) { this.DataList3.forEach((item) => { - this.TotalPrice1 += item.proPrice; + + this.TotalPrice1 += item.proPrice * item.sl; }); } // this.TotalPrice1 = 0; @@ -2330,7 +2676,9 @@ this.DataList.splice(index, 1); this.TotalPrice1 = 0; this.DataList.forEach((item1) => { + this.TotalPrice1 = item1.proPrice + this.TotalPrice1; + }); if (this.marryalls != 0) { this.TotalPrice1 += this.marryalls; @@ -2339,7 +2687,6 @@ }); } else if (checked == true) { this.DataList.push(data); - console.log(this.DataList, 6666); this.DataList.forEach((item1) => { if (item1.proParentId == this.dataObj.proId) { item1.propinName = this.dataObj.proName; @@ -2348,6 +2695,9 @@ this.spliceData(); this.TotalPrice1 = 0; this.DataList.forEach((item1) => { + console.log(item1.proPrice,3322); + console.log(this.TotalPrice1,1122); + this.TotalPrice1 = item1.proPrice + this.TotalPrice1; }); if (this.marryalls != 0) { @@ -2553,10 +2903,12 @@ discount, copeWith, tjType, + payStasus:this.jsType, orderId: this.orderIds, tjProIds: this.proIds, payType: this.payType, }; + getwater(data).then((res) => { this.$modal.msgSuccess("鎻愪氦鎴愬姛"); this.mobanId = res.data.mobanId; @@ -2574,6 +2926,7 @@ handleProjectssChange(selection) { this.DataListss = []; this.selection = []; + this.bldhs = selection.map((item) => item.bldh); selection.forEach((item) => { item.projectList.forEach((item1) => { @@ -2628,7 +2981,7 @@ }, }; </script> -<style lang="scss"> +<style lang="scss" scoped> .pag { width: 100%; display: flex; @@ -2679,6 +3032,12 @@ // .el-dialog__body { // padding: 20px; // } +::v-deep .el-message-box__message { + color: red !important; /* 寮哄埗璁剧疆棰滆壊涓虹孩鑹� */ +} +// .custom-message-box .el-message-box__message { +// color: red !important; /* 璁剧疆鏂囧瓧涓虹孩鑹� */ +// } .o { margin-top: 8px; } @@ -2726,4 +3085,16 @@ display: flex; flex-direction: column; } + +::v-deep .el-step__title.is-process { + color: rgb(24, 144, 255); +} +::v-deep .el-step__head.is-process { + color: rgb(24, 144, 255); + border-color: rgb(24, 144, 255); +} +.shijian { + display: flex; + align-items: flex-start; +} </style> -- Gitblit v1.8.0