From eb5ed8e534632b23987214759cb4b27f80b147a4 Mon Sep 17 00:00:00 2001 From: qx <1084500556@qq.com> Date: 星期一, 17 三月 2025 14:42:39 +0800 Subject: [PATCH] qx --- src/views/system/tijian/index.vue | 361 ++++++++++++++++++++++++++++---------------------- 1 files changed, 201 insertions(+), 160 deletions(-) diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue index 34913f1..4b51460 100644 --- a/src/views/system/tijian/index.vue +++ b/src/views/system/tijian/index.vue @@ -89,7 +89,8 @@ <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="openname"> 濮撳悕 </span> - <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" :disabled="isDisabled" /> + <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" :disabled="isDisabled" + @input="form.cusName = $event.replace(/\s/g, '')" /> </el-form-item> <el-form-item label="璇佷欢绫诲瀷" prop="idType"> @@ -147,7 +148,8 @@ <span slot="label" style="display: inline-block; border-bottom: 2px solid blue" @click="handleQuery"> 璇佷欢鍙风爜 </span> - <el-input :disabled="isDisabled" v-model="form.cusIdcard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" @input="inputChange" /> + <el-input :disabled="isDisabled" v-model="form.cusIdcard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" + @input="handleIdCardInput" /> <!-- <i style=" font-size: 1rem; position: absolute; @@ -179,7 +181,8 @@ trigger: 'blur', }, ]"> - <el-input v-model="form.cusPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" :disabled="isDisabled" /> + <el-input v-model="form.cusPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" :disabled="isDisabled" + @input="form.cusPhone = $event.replace(/\s/g, '')" /> </el-form-item> <el-form-item label="鍑虹敓鏃ユ湡" prop="cusBrithday"> @@ -303,14 +306,9 @@ </div> </el-tab-pane> <el-tab-pane label="缁勫悎" name="third"> - <!-- <div class="tab3"> --> <el-row :gutter="20" style="width: 100%"> - <el-col :span="6"> - <div style=" - text-align: center; - margin-bottom: 10px; - margin-top: 10px; - "> + <el-col :span="6" style="min-width: 200px"> + <div style="text-align: center; margin-bottom: 10px; margin-top: 10px;"> 椤圭洰鍒楄〃 </div> <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterage"> @@ -322,12 +320,8 @@ </el-tree> </div> </el-col> - <el-col :span="6"> - <div style=" - text-align: center; - margin-bottom: 10px; - margin-top: 10px; - "> + <el-col :span="6" style="min-width: 200px"> + <div style="text-align: center; margin-bottom: 10px; margin-top: 10px;"> 鏄庣粏椤圭洰鍒楄〃 </div> <div class="tab3"> @@ -345,6 +339,7 @@ margin-top: 10px; "> 宸查�夐」鐩垪琛� + </div> <el-table :data="DataLists" border style="width: 100%" height="400" :span-method="objectspanmethod"> <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> @@ -370,74 +365,60 @@ </div> </el-col> </el-row> - <!-- </div> --> </el-tab-pane> <el-tab-pane label="鍗曢」" name="second"> - <div class="tab8"> - <el-row :gutter="24"> - <el-col :span="8"> - <div style=" - text-align: center; - "> - 椤圭洰鍒楄〃 + <el-row :gutter="20" style="width: 100%"> + <el-col :span="6" style="min-width: 200px"> + <div style="text-align: center; margin-bottom: 10px; margin-top: 10px;"> + 椤圭洰鍒楄〃 + </div> + <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText" style="margin-bottom: 10px;"> + </el-input> + <div class="tab3"> + <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" :render-content="renderContent"> + </el-tree> + </div> + </el-col> + <el-col :span="6" style="min-width: 200px"> + <div style="text-align: center; margin-bottom: 10px; margin-top: 10px;"> + 鏄庣粏椤圭洰鍒楄〃 + </div> + <div class="tab3"> + <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" + :render-content="renderContent"> + </el-tree> + </div> + </el-col> + <el-col :span="11"> + <div class="grid-content bg-purple"> + <div style="text-align: center; margin-bottom: 10px; margin-top: 10px;"> + 宸查�夐」鐩垪琛� </div> - <!-- @input="gaibian" --> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> - </el-input> - <div class="tab3"> - <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" :render-content="renderContent"> - </el-tree> - </div> - </el-col> - <el-col :span="8"> - <div style=" - text-align: center; - margin-bottom: 10px; - margin-top: 10px; - "> - 鏄庣粏椤圭洰鍒楄〃 - </div> - <div class="tab3"> - <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" - :render-content="renderContent"> - </el-tree> - </div> - </el-col> - <el-col :span="8"> - <div class="grid-content bg-purple"> - <div style=" - text-align: center; - margin-bottom: 10px; - margin-top: 10px; - "> - 宸查�夐」鐩垪琛� - </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="sl" label="鏁伴噺" width="56px"> - </el-table-column> - <el-table-column prop="proPrice" label="鍘熶环" width="56px"></el-table-column> - <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px"> - </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> - <h3 style="font-weight: 600">鍚堣锛歿{ marryall }}鍏�</h3> - </div> - </el-col> - </el-row> - </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="sl" label="鏁伴噺" width="56px"> + </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> + <h3 style="font-weight: 600">鍚堣锛歿{ marryall }}鍏�</h3> + </div> + </el-col> + </el-row> </el-tab-pane> </el-tabs> <span slot="footer" class="dialog-footer"> @@ -551,7 +532,7 @@ this.tableData1[0].pacName || "" }}</span> 宸查�夐」鐩潯鏁帮細<span style="font-weight: 700; color: red; margin-right: 5px">{{ this.tableData1.length || 0 - }}</span>鏉� + }}</span>鏉� </div> 宸查�夐」鐩垪琛� </div> @@ -587,6 +568,10 @@ </template> </el-table-column> <el-table-column prop="nowPrice" label="瀹炴敹閲戦"> + <template slot-scope="scope"> + {{ scope.row.nowPrice.toFixed(2) }} + </template> + </el-table-column> <el-table-column prop="proCheckMethod" label="鏄惁绌鸿吂"> <template slot-scope="scope"> @@ -753,6 +738,7 @@ getByTjNum, } from "@/api/hosp/customer"; import { getPrintSetUp } from "@/api/system/examcharge"; +import cnchar from 'cnchar'; import { tuantiSelect, deptTreeSelect, @@ -764,15 +750,12 @@ getPackageListName, getaddtTransition, tuantiqueren, - getTransitionList, getTransitionList1, - getByTeamNo, delTbBycusCardIdAndProId, getLoadFile, getIsRequired, getconfigKey, getHistryTjOrderProByCusIdCard, - readCertCardInfos, gaibianzhekou, } from "@/api/system/tijian"; import { addComp } from "@/api/system/comp"; @@ -1092,11 +1075,15 @@ // this.getData(); }, mounted() { - this.TreedataList = []; - this.DataList = []; - this.marryall = 0; -}, + this.TreedataList = []; + this.DataList = []; + this.marryall = 0; + }, methods: { + handleIdCardInput(value) { + this.form.cusIdcard = value.replace(/\s/g, ''); + this.inputChange(); // 淇濈暀鍘熸湁鐨勮韩浠借瘉杈撳叆澶勭悊閫昏緫 + }, debounceNumberChange(currentValue, oldValue) { clearTimeout(this.debounceTimer); this.debounceTimer = setTimeout(() => { @@ -1245,11 +1232,9 @@ this.open1 = true; this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢"; }, - idFn1(value) { - if (value) { - // console.log(value); + idFn1() { + if (this.form.firmName) { const originalCompId = this.form.firmId; - this.form.firmName = value; this.CompanyList.forEach((item) => { if (item.cnName == this.form.firmName) { this.form.firmId = item.drugManufacturerId; @@ -1259,10 +1244,15 @@ if (this.form.firmId === originalCompId) { this.form.firmId = ""; } - if (this.form.firmId) { - this.form.tjType = "1"; - } + } + + if (this.form.firmName) { + this.form.tjType = this.dict.type.dict_team[1].value; + }else{ + this.form.tjType = this.dict.type.dict_team[0].value; + } + }, getCurrentDateTime() { const currentDate = new Date(); @@ -1294,13 +1284,33 @@ }, 1000); //姣忕閽熸洿鏂颁竴娆� }, filterNode(value, data) { - if (!value) return true; + // if (!value) return true; // return data.proName.indexOf(value) !== -1; - if (data.proName.indexOf(value) !== -1) { - return data.proName.indexOf(value) !== -1; - } else { - return data.proEngName.indexOf(value) !== -1; - } + // if (data.proName.indexOf(value) !== -1) { + // return data.proName.indexOf(value) !== -1; + // } else { + // return data.proEngName.indexOf(value) !== -1; + // } + if (!value) return true; + if (data.proName.indexOf(value) !== -1) return true; + if (data.proEngName.indexOf(value) !== -1) return true; + // 鍖归厤灏忓啓 + let arr = data.proName.spell('low', 'array'); + let spell = arr.join(''); + let lengths = [0]; + for (var i = 0; i < arr.length - 1; i++) { + lengths.push(lengths[i] + arr[i].length); + }; + //鍒ゆ柇label瀹屾暣鎷奸煶 涓� 杈撳叆鍊肩殑 index 鏄笉鏄瓑浜庢煇涓眽瀛楃涓�涓嫾闊冲瓧姣嶇殑index鍊� + if (lengths.indexOf(spell.indexOf(value)) !== -1) return true + // 澶у啓 + let arrUp = data.proName.spell('up', 'array'); + let spellUp = arrUp.join(''); + let lengthsUp = [0]; + for (var i = 0; i < arrUp.length - 1; i++) { + lengthsUp.push(lengthsUp[i] + arrUp[i].length); + }; + return lengthsUp.indexOf(spellUp.indexOf(value)) !== -1; }, filterpackage(value, data) { if (!value) return true; @@ -1424,6 +1434,8 @@ this.TotalPrice1 = 0; if (this.tableData1) { this.tableData1.forEach((item) => { + // parseFloat(item.nowPrice.toFixed(2)) + this.TotalPrice1 += item.ordPrice; this.TotalPrice += item.nowPrice; if (item.pacName === null) { @@ -1700,29 +1712,35 @@ }); }, /** 鐧昏鎻愪氦鎸夐挳 */ + /** 鐧昏鎻愪氦鎸夐挳 */ submitForm() { let _this = this; this.$refs["form"].validate((valid) => { if (valid) { - // return; - if (this.form.cusSex === "濂�") { - this.form.cusSex = 1; + // 鍒涘缓琛ㄥ崟鏁版嵁鐨勫壇鏈苟鍘婚櫎绌烘牸 + 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, '') : ''; + + // 澶勭悊鎬у埆鍊� + if (formData.cusSex === "濂�") { + formData.cusSex = 1; } - if (this.form.cusSex === "鐢�") { - this.form.cusSex = 0; + if (formData.cusSex === "鐢�") { + formData.cusSex = 0; } - if (this.form.cusSex === "鏈煡") { - this.form.cusSex = 2; + if (formData.cusSex === "鏈煡") { + formData.cusSex = 2; } - if (this.form.tjType === "") { - this.form.tjType = this.dict.type.dict_team[0].value; + if (formData.tjType === "") { + formData.tjType = this.dict.type.dict_team[0].value; } - addCustomer(this.form).then((response) => { + 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; @@ -1767,7 +1785,7 @@ if (this.form.reservationId != null) { if (this.form.groupingId) { this.form.firmName = this.form.compName; - this.form.tjType = "1"; + this.form.tjType = this.dict.type.dict_team[1].value; this.CompanyList.forEach((item) => { if (item.cnName == this.form.firmName) { this.form.firmId = item.drugManufacturerId; @@ -1883,9 +1901,6 @@ websocket.onmessage = (event) => { var resultObj = eval("(" + event.data + ")"); this.readCardWebSocket(resultObj); - }; - websocket.onclose = function () { - alert("璇诲崱鍣ㄨ繛鎺ュ叧闂�"); }; } else if (res.msg == "Y") { /* this.$refs.aaa.open = true; @@ -2233,15 +2248,16 @@ // 鍙栨秷鎸夐挳 cancel() { - this.TreedataList = []; - this.DataList = []; - this.marryall = 0; // 閲嶇疆鍚堣 - this.Seachopen = false; - this.taocan = false; - this.malldisble = false; - this.defaultKeys = []; - this.DataLists = []; -}, + this.TreedataList = []; + this.DataList = []; + this.marryall = 0; // 閲嶇疆鍚堣 + this.Seachopen = false; + this.taocan = false; + this.malldisble = false; + this.defaultKeys = []; + this.DataLists = []; + + }, cancell() { if (this.addAddress.address) { @@ -2495,25 +2511,25 @@ } }, handleClick(tab, event) { - if (this.activeNames == "second") { - this.DataList = []; - this.checkedkey = []; - this.TreedataList = []; - this.marryall = 0; // 閲嶇疆鍚堣 - this.getDataList(); - } else if (this.activeNames == "third") { - this.DataLists = []; - this.checkedkeys = []; - this.TreedataList = []; - this.marryall = 0; // 閲嶇疆鍚堣 - getZhList().then((response) => { - if (response.data) { - this.packageList = response.data; + if (this.activeNames == "second") { + this.DataList = []; + this.checkedkey = []; + this.TreedataList = []; + this.marryall = 0; // 閲嶇疆鍚堣 + this.getDataList(); + } else if (this.activeNames == "third") { + this.DataLists = []; + this.checkedkeys = []; + this.TreedataList = []; + this.marryall = 0; // 閲嶇疆鍚堣 + getZhList().then((response) => { + if (response.data) { + this.packageList = response.data; + } + this.loading = false; + }); } - this.loading = false; - }); - } -}, + }, // gaibian(val){ // let pname = val; // getProParentIdDxList(pname).then(response=>{ @@ -2668,16 +2684,6 @@ } } } - - // if (columnIndex == 3) { - // let rowspan = 0; - // this.DataLists.forEach((element) => { - // if (element.propinName === row.propinName) { - // rowspan++; - // } - // }); - // return [rowspan, 1]; - // } }, handlePackageChecked(data, checked, checkedNodes) { if (checked == false) { @@ -2918,6 +2924,7 @@ processOrderItems(cusId) { getTransitionList1(cusId).then((response) => { this.tableData1 = response.data; + let Price = 0; if (this.tableData1) { this.tableData1.forEach((item) => { if (item.tjCategory != null) { @@ -2929,8 +2936,10 @@ }); } this.TotalPrice1 += item.ordPrice || 0; // 绱姞搴旀敹閲戦 - this.TotalPrice += item.nowPrice || 0; // 绱姞瀹炴敹閲戦 + Price += item.nowPrice || 0; // 绱姞瀹炴敹閲戦 + this.TotalPrice = Price.toFixed(2) }); + console.log(this.TotalPrice1, this.TotalPrice) // 璁$畻鎶樻墸 this.discount = this.TotalPrice1 > 0 ? (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10 : 0; @@ -2957,6 +2966,15 @@ if (this.tableData[0]) { var pacId = this.tableData[0].pacId; } + + // 鍘荤┖鏍煎鐞� + const processedForm = { + ...this.form, + cusName: this.form.cusName ? this.form.cusName.replace(/\s/g, '') : '', + cusPhone: this.form.cusPhone ? this.form.cusPhone.replace(/\s/g, '') : '', + cusIdcard: this.form.cusIdcard ? this.form.cusIdcard.replace(/\s/g, '') : '' + }; + List.forEach((item) => { if (item.list) { item.list.forEach((item1) => { @@ -2982,6 +3000,7 @@ }); } }); + let copeWith = this.TotalPrice1; let paidIn = this.TotalPrice.toString(); let discount = this.discount; @@ -2999,6 +3018,10 @@ getType: this.getType, addAddress: this.addAddress, tjCategory: this.tjCategory, + // 浣跨敤鍘绘帀绌烘牸鍚庣殑鏁版嵁 + cusName: processedForm.cusName, + cusPhone: processedForm.cusPhone, + cusIdcard: processedForm.cusIdcard }; } else { data = { @@ -3009,8 +3032,13 @@ tjType, getType: this.getType, tjCategory: this.tjCategory, + // 浣跨敤鍘绘帀绌烘牸鍚庣殑鏁版嵁 + cusName: processedForm.cusName, + cusPhone: processedForm.cusPhone, + cusIdcard: processedForm.cusIdcard }; } + getOrder(data).then((res) => { this.$modal.msgSuccess("鎻愪氦鎴愬姛"); this.tjNumbers = res.msg; @@ -3249,6 +3277,7 @@ discount: item.discount, parentProId: item.parentProId, cusIdCard: item.cusId, + yhj: item.nowPrice })); // 鍒涘缓鏂扮殑瀵硅薄锛屽寘鍚� discount 鍜� id gaibianzhekou(newArray).then((res) => { this.loadingSubmit = false; @@ -3355,11 +3384,10 @@ } .filter-tree { - /* max-height: 360px; overflow-y: auto; - border: 1px solid #d9d9d9; */ - overflow: auto; - flex: 1; + /* 淇濈暀绾靛悜婊氬姩鏉� */ + overflow-x: hidden; + /* 闅愯棌妯悜婊氬姩鏉� */ height: 350px; } @@ -3470,4 +3498,17 @@ width: 100%; display: flex; } + +/* .tab3 { + overflow-y: auto; +} + +.tab3::-webkit-scrollbar { + width: 0px; + background: transparent; +} + +.tab3::-webkit-scrollbar-thumb { + background: transparent; +} */ </style> -- Gitblit v1.8.0