From 16ab2673285119a38a78f635c0b74384b423c55e Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期二, 29 四月 2025 17:12:50 +0800 Subject: [PATCH] 1 --- src/views/doctor/checkAll/index.vue | 5 src/views/hosp/advicerules/index.vue | 369 +++++++++++++++++++++++++++++++--------- src/api/hosp/advicerules.js | 10 + src/views/system/package/index.vue | 87 +++++++++ src/views/hosp/project/index.vue | 26 ++ 5 files changed, 407 insertions(+), 90 deletions(-) diff --git a/src/api/hosp/advicerules.js b/src/api/hosp/advicerules.js index 0bafcd9..3dda435 100644 --- a/src/api/hosp/advicerules.js +++ b/src/api/hosp/advicerules.js @@ -42,3 +42,13 @@ method: 'delete' }) } + +// 鑾峰彇浣撴璇婃柇寤鸿绉戝鍒楄〃鎺ュ彛 +export function getTjProAdvicerulesKsList(query) { + return request({ + url: '/hosp/advicerules/getTjProAdvicerulesKsList' , + method: 'get', + params: query + }) +} + diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue index 02f1ecd..cdb1d10 100644 --- a/src/views/doctor/checkAll/index.vue +++ b/src/views/doctor/checkAll/index.vue @@ -1113,6 +1113,9 @@ this.newItem.jcxm = value; } }, + change(val) { + console.log('閫変腑鐨勫�兼槸锛�', val); + }, addAdvice() { this.newItem.map.push({ bt: '', nr: '' }); @@ -1132,6 +1135,8 @@ shanchu({ id: row.orderDetailId, }).then((res) => { + console.log(res,1111); + if (res.code === 200) { const parentItem = this.yichangList.find(item => item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId) diff --git a/src/views/hosp/advicerules/index.vue b/src/views/hosp/advicerules/index.vue index 484251f..e3620df 100644 --- a/src/views/hosp/advicerules/index.vue +++ b/src/views/hosp/advicerules/index.vue @@ -60,8 +60,7 @@ </el-col> <el-col :span="1.5"> <el-button - type="success" - plain + type="primary" icon="el-icon-edit" size="mini" :disabled="single" @@ -72,8 +71,7 @@ </el-col> <el-col :span="1.5"> <el-button - type="danger" - plain + type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @@ -82,7 +80,7 @@ >鍒犻櫎 </el-button> </el-col> - <el-col :span="1.5"> + <!-- <el-col :span="1.5"> <el-button type="warning" plain @@ -102,98 +100,147 @@ v-hasPermi="['hosp:advicerules:export']" >瀵煎嚭 </el-button> - </el-col> + </el-col> --> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" ></right-toolbar> </el-row> - <el-table - v-loading="loading" - :data="advicerulesList" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="搴忓彿" width="50" align="center"> - <template slot-scope="scope"> - {{ scope.$index + 1 }} - <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� --> - </template> - </el-table-column> - <el-table-column label="缂栫爜" align="center" prop="bm" /> - <el-table-column label="绉戝" align="center" prop="ks" /> - <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" /> - <el-table-column - label="涓昏璇婃柇" - align="center" - :show-overflow-tooltip="true" - width="120" - prop="zyzd" - /> - <el-table-column - label="寤鸿鍚嶇О" - align="center" - :show-overflow-tooltip="true" - width="150" - prop="jymc" - /> - <el-table-column - label="寤鸿鍐呭" - align="center" - :show-overflow-tooltip="true" - width="200" - prop="jynr" - /> - <el-table-column label="鑼冨洿" align="center" prop="fwz" /> - <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" /> - <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" /> - <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" /> - <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb"> - </el-table-column> - <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb"> - </el-table-column> - <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb"> - </el-table-column> - <el-table-column - label="鏄惁閲嶅ぇ鐤剧梾" - align="center" - width="120" - prop="sfzdjb" - ></el-table-column> - <el-table-column - label="鎿嶄綔" - align="center" - class-name="small-padding fixed-width" - > - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - v-hasPermi="['hosp:advicerules:edit']" + <el-row :gutter="20" style="display: flex"> + <el-col :span="3" :xs="24"> + <div class="head-container"> + <el-input + v-model="xmmc" + placeholder="璇疯緭鍏ラ」鐩悕" + clearable + size="small" + prefix-icon="el-icon-search" + style="margin-bottom: 20px" + /> + </div> + <div class="scrollable-container"> + <div class="content"> + <el-tree + :data="deptOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + node-key="id" + :default-expanded-keys="treeId" + highlight-current + @node-click="handleNodeClick" + /> + </div> + </div> + </el-col> + <el-col :span="20" :xs="24"> + <el-table + v-loading="loading" + :data="advicerulesList" + @selection-change="handleSelectionChange" + height="520" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="搴忓彿" width="50" align="center"> + <template slot-scope="scope"> + {{ scope.$index + 1 }} + <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� --> + </template> + </el-table-column> + <el-table-column label="缂栫爜" align="center" prop="bm" /> + <el-table-column label="绉戝" align="center" prop="ks" /> + <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" /> + <el-table-column + label="涓昏璇婃柇" + align="center" + :show-overflow-tooltip="true" + width="120" + prop="zyzd" + /> + <el-table-column + label="寤鸿鍚嶇О" + align="center" + :show-overflow-tooltip="true" + width="150" + prop="jymc" + /> + <el-table-column + label="寤鸿鍐呭" + align="center" + :show-overflow-tooltip="true" + width="200" + prop="jynr" + /> + <el-table-column + label="鎬у埆" + align="center" + prop="xb" + :formatter="formatSex" + /> + <el-table-column label="鑼冨洿" align="center" prop="fwz" /> + <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" /> + <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" /> + <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" /> + <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb"> + </el-table-column> + <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb"> + </el-table-column> + <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb"> + </el-table-column> + <el-table-column + label="鏄惁閲嶅ぇ鐤剧梾" + align="center" + width="120" + prop="sfzdjb" + ></el-table-column> + <el-table-column + label="鎿嶄綔" + align="center" + class-name="small-padding fixed-width" > - </el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - v-hasPermi="['hosp:advicerules:remove']" - > - </el-button> - </template> - </el-table-column> - </el-table> - + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['hosp:advicerules:edit']" + > + </el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['hosp:advicerules:remove']" + > + </el-button> + </template> + </el-table-column> + </el-table> + <div class="pag"> + <div class="pag1"> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getListByXmId" + /> + </div> + </div> + </el-col> + </el-row> +<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" - /> + /> --> <!-- 娣诲姞鎴栦慨鏀逛綋妫�椤圭洰寤鸿瑙勫垯鏂拌〃瀵硅瘽妗� --> <el-dialog @@ -262,11 +309,24 @@ /> </el-form-item> <el-form-item label="寮傚父鏍囧織" prop="ycbz"> - <el-input + <!-- <el-input v-model="form.ycbz" style="width: 200px" placeholder="璇疯緭鍏ュ紓甯告爣蹇�" - /> + /> --> + <el-select + v-model="form.ycbz" + placeholder="璇烽�夋嫨寮傚父鏍囧織" + style="width: 200px" + clearable + > + <el-option + v-for="item in ycdata" + :key="item.value" + :label="item.label" + :value="item.label" + ></el-option> + </el-select> </el-form-item> <el-form-item label="鐤剧梾" prop="sfjb"> <el-checkbox v-model="form.sfjb" true-label="鏄�" false-label="鍚�"> @@ -292,6 +352,21 @@ true-label="鏄�" false-label="" ></el-checkbox> + </el-form-item> + <el-form-item label="鎬у埆" prop="xb"> + <el-select + v-model="form.xb" + placeholder="璇烽�夋嫨浣撴浜烘�у埆" + style="width: 200px" + clearable + > + <el-option + v-for="dict in dict.type.sys_user_sex" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> </el-form-item> <el-form-item label="寤鸿鍚嶇О" prop="jymc" style="display: block"> <el-input @@ -469,6 +544,7 @@ delAdvicerules, addAdvicerules, updateAdvicerules, + getTjProAdvicerulesKsList, } from "@/api/hosp/advicerules"; import { listAdvice } from "@/api/advice/advice"; import { getToken } from "@/utils/auth"; @@ -476,12 +552,29 @@ export default { name: "Advicerules", + dicts: ["sys_user_sex"], data() { return { // 閬僵灞� loading: true, // 閫変腑鏁扮粍 ids: [], + ycdata: [ + { label: "鈫�", value: "up" }, + { label: "鈫�", value: "down" }, + { label: "闃虫��", value: "positive" }, + { label: "寮遍槼鎬�", value: "weak_positive" }, + { label: "4+", value: "4plus" }, + { label: "3+", value: "3plus" }, + { label: "2+", value: "2plus" }, + { label: "1+", value: "1plus" }, + { label: "+1", value: "plus1" }, + { label: "+2", value: "plus2" }, + { label: "+3", value: "plus3" }, + { label: "+4", value: "plus4" }, + { label: "+", value: "plus" }, + { label: "+-", value: "plus_minus" }, + ], // 闈炲崟涓鐢� single: true, // 闈炲涓鐢� @@ -494,15 +587,22 @@ // 浣撴椤圭洰寤鸿瑙勫垯鏂拌〃琛ㄦ牸鏁版嵁 advicerulesList: [], adviceList: [], + deptOptions: [], + treeId: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, key: "", + xmmc: "", moduleName: "exampleModule", // 绀轰緥妯″潡鍚� businessName: "exampleBusiness", // 绀轰緥涓氬姟鍚� objs: {}, departmentOptions: [], + defaultProps: { + children: "children", + label: "label", + }, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -529,9 +629,13 @@ pageSize: 10, }, // 琛ㄥ崟鍙傛暟 - form: {}, + form: { + xb: "2", + }, // 琛ㄥ崟鏍¢獙 - rules: {}, + rules: { + ks: [{ required: true, message: " ", trigger: ["blur", "change"] }], + }, upload: { // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛� open: false, @@ -552,15 +656,80 @@ created() { this.getList(); }, + watch: { + // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲 + xmmc(val) { + this.$refs.tree.filter(val); + }, + treeId(newVal, oldVal) { + if (newVal) { + this.$nextTick(() => { + const node = document.querySelector( + ".el-tree-node__children .el-tree-node__content" + ); + if (node) { + node.click(); + } else { + console.warn("娌℃湁鎵惧埌 el-tree 鑺傜偣锛屾棤娉曡Е鍙戠偣鍑�"); + } + }); + } + }, + }, methods: { /** 鏌ヨ浣撴椤圭洰寤鸿瑙勫垯鏂拌〃鍒楄〃 */ getList() { + // this.loading = true; + // listAdvicerules(this.queryParams).then((response) => { + // this.advicerulesList = response.rows; + // this.total = response.total; + // this.loading = false; + // }); + getTjProAdvicerulesKsList().then((response) => { + this.deptOptions = response.data.map((name, index) => { + return { + id: index + 1, // 鍙嚜瀹氫箟鍞竴 ID + label: name, // el-tree 榛樿鐨勬樉绀哄瓧娈� + }; + }); + + // 璁剧疆榛樿灞曞紑椤� + this.treeId = [this.deptOptions[0]?.id]; + this.queryParams.proId = this.deptOptions[0]?.id; + this.getListByXmId(); + }); + }, + + handleNodeClick(data) { + this.formIn = data; + this.queryParams.ks = data.label; + this.getListByXmId(); + }, + + getListByXmId() { this.loading = true; listAdvicerules(this.queryParams).then((response) => { + response.rows.forEach((item, index) => { + item.newID = + (this.queryParams.pageNum - 1) * this.queryParams.pageSize + + index + + 1; + }); this.advicerulesList = response.rows; this.total = response.total; this.loading = false; }); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + // return data.label.indexOf(value) !== -1; + return ( + data.label && + typeof data.label === "string" && + data.label.indexOf(value) !== -1 + ); }, idFn(value) { @@ -575,6 +744,12 @@ cancel() { this.open = false; this.reset(); + }, + formatSex(row) { + const dictItem = this.dict.type.sys_user_sex.find( + (item) => item.value === row.xb + ); + return dictItem ? dictItem.label : ""; }, // 琛ㄥ崟閲嶇疆 reset() { @@ -599,6 +774,7 @@ createBy: null, updateBy: null, deleted: null, + xb: "2", }; this.resetForm("form"); }, @@ -697,6 +873,7 @@ submitForm() { this.$refs["form"].validate((valid) => { if (valid) { + this.form.xb = this.form.xb === "1" ? "1" : null; if (this.form.id != null) { updateAdvicerules(this.form).then((response) => { console.log(response, 1111333); @@ -788,3 +965,19 @@ }; </script> +<style scoped> +.scrollable-container { + width: 200px; + height: 520px; + overflow: auto; + border: 1px solid #ccc; + position: relative; +} + +.content { + width: 1000px; + /* 璁剧疆鍐呭鐨勫搴︼紝浠ヨЕ鍙戞按骞虫粴鍔ㄦ潯 */ + height: 1000px; + /* 璁剧疆鍐呭鐨勯珮搴︼紝浠ヨЕ鍙戝瀭鐩存粴鍔ㄦ潯 */ +} +</style> \ No newline at end of file diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue index 0ae2020..7e0036e 100644 --- a/src/views/hosp/project/index.vue +++ b/src/views/hosp/project/index.vue @@ -77,6 +77,11 @@ <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" /> </template> </el-table-column> + <el-table-column label="鏄惁澶栭��" align="center" prop="proDelivery" :show-overflow-tooltip="true" width="75px"> + <template v-slot="scope"> + {{ scope.row.proDelivery === 0 ? "鏄�" : scope.row.proDelivery === 1 ? "鍚�" : "" }} + </template> + </el-table-column> <el-table-column label="椤圭洰鏍囧噯鍊�" align="center" prop="proScope" :show-overflow-tooltip="true" width="90px"> </el-table-column> <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc" :show-overflow-tooltip="true" width="200px"> @@ -232,6 +237,12 @@ <el-form-item label="鏄惁鍙備笌寮傚父" prop="sfcyyc"> <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 260px"> <el-option v-for="dict in dictTypesy" :key="dict.value" :label="dict.label" + :value="dict.value"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鏄惁澶栭��" prop="proDelivery"> + <el-select v-model="form.proDelivery" placeholder="璇烽�夋嫨鏄惁澶栭��" style="width: 200px"> + <el-option v-for="dict in wsTypesy" :key="dict.value" :label="dict.label" :value="dict.value"></el-option> </el-select> </el-form-item> @@ -457,6 +468,16 @@ label:"鍚�" } ], + wsTypesy: [ + { + value:"0", + label:"鏄�" + }, + { + value:"1", + label:"鍚�" + } + ], List: false, deptName: "", deptOption: [], @@ -532,6 +553,7 @@ proSex: "2", resultType: "", sfcyyc: "0", + proDelivery:"1" }, rules: { createTime: [ @@ -742,6 +764,7 @@ this.title = "浣撴椤圭洰淇℃伅缁存姢"; this.form.deptId = this.queryParams.deptId || null; this.form.proCheckMethod = "N"; + this.form.proDelivery = "1"; if (this.key === "Y") { gettreeList().then((response) => { this.deptOptionstree = response.data; @@ -923,6 +946,7 @@ tjStandardList: [], proStatus: "0", resultType: "1", + proDelivery:'1' }; this.resetForm("form"); }, @@ -1007,6 +1031,7 @@ this.form = this.xiugaiList; this.form.proStatus = this.form.proStatus.toString(); this.form.sfcyyc = this.form.sfcyyc.toString(); + this.form.proDelivery = this.form.proDelivery.toString(); this.proParent = true; this.isPriceDisabled = true; getlist().then((response) => { @@ -1034,6 +1059,7 @@ this.showRentPrise = !this.showPrise; this.form.proStatus = this.form.proStatus.toString(); this.form.sfcyyc = this.form.sfcyyc.toString(); + this.form.proDelivery = this.form.proDelivery.toString() this.form.consumablesList = response.data.consumablesList; this.form.tjStandardList = response.data.tjStandardList; if (this.form.tjStandardList) { diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue index 020d483..7a4c5e5 100644 --- a/src/views/system/package/index.vue +++ b/src/views/system/package/index.vue @@ -118,8 +118,12 @@ <el-form-item label="鎶樻墸"> <el-input-number style="width: 150px" v-model="youhui" :precision="2" :step="0.1" :max="10" :min="0.1" @change="debounceNumberChange" :debounce="3000"></el-input-number> </el-form-item> - <el-form-item label="鐜颁环" prop="xianprice"> + <!-- <el-form-item label="鐜颁环" prop="xianprice"> <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia" @blur="numberChangeXianPrice(youhui, youhui)" type="number" :debounce="3000" min="0"/> + </el-form-item> --> + <el-form-item label="鐜颁环" prop="xianprice"> + <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia" + type="number" :debounce="3000" min="0"/> </el-form-item> <el-form-item label="鍏抽敭瀛�" prop="keywords"> <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 160px" @change="sel" filterable clearable> @@ -777,7 +781,7 @@ this.DataList = this.DataList.filter((item) => item.proParentId !== row.proParentId); this.TotalPrice1 = this.DataList.reduce((sum, item) => sum + item.priceOrd, 0); }, - submitForm() { + /* submitForm() { this.form.limits = this.youhui; this.form.price = this.pics; this.form.priceNow = this.form.xianprice; @@ -813,6 +817,85 @@ this.open = false; this.getList(); }); + }, */ + submitForm() { + // 妫�鏌ョ幇浠锋槸鍚﹀彂鐢熷彉鍖� + if (this.form.xianprice !== this.lastXianPrice) { + this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }).then(() => { + // 鏇存柊鎵�鏈夊瓙椤圭殑鎶樻墸 + this.youhui = (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10; + let totalYsprice = new Big(0); + this.DataList.forEach((item) => { + item.limits = this.youhui; + const ordPrice = new Big(item.priceOrd); + const discount = new Big(item.limits); + const result = ordPrice.times(discount.div(10)); + item.priceNow = result.toNumber(); + totalYsprice = totalYsprice.plus(new Big(item.priceNow)); + }); + + if (!totalYsprice.eq(this.form.xianprice)) { + const diff = new Big(this.form.xianprice).minus(totalYsprice); + if (this.DataList.length > 0) { + const lastItem = this.DataList[this.DataList.length - 1]; + const newYsPrice = new Big(lastItem.priceNow).plus(diff).toNumber(); + this.$set(this.DataList[this.DataList.length - 1], "priceNow", newYsPrice); + } + } + + // 淇濆瓨鏁版嵁 + return this.saveData(); + }).catch(() => { + // 鐢ㄦ埛鍙栨秷鎿嶄綔锛屾仮澶嶅師鏉ョ殑鐜颁环 + this.form.xianprice = this.lastXianPrice; + }); + } else { + // 鐜颁环娌℃湁鍙樺寲锛岀洿鎺ヤ繚瀛� + this.saveData(); + } + }, + // 鏂板涓�涓柟娉曞鐞嗕繚瀛橀�昏緫 + saveData() { + this.form.limits = this.youhui; + this.form.price = this.pics; + this.form.priceNow = this.form.xianprice; + if (this.keys) { + this.form.keywords = this.keys; + } + let packageProjects = []; + this.DataList.forEach((item) => { + packageProjects.push({ + proName: item.proName, + proId: item.proId, + priceNow: item.priceNow, + limits: item.limits, + priceOrd: item.priceOrd, + }); + }); + let data = { + pacName: this.form.pacName, + limits: this.form.limits, + pacStatus: this.form.pacStatus, + packageProjects: packageProjects, + newPrice: this.form.xianprice, + price: this.pics, + pacId: this.form.pacId || null, + isOnSale: this.form.isOnSale, + sort: this.form.sort, + retailPrice: this.form.retailPrice, + tjCategory: this.form.tjCategory, + pacRemark: this.form.pacRemark, + detail: this.form.detail, + }; + + return saveOreditTjPacNew(data).then((res) => { + this.open = false; + this.getList(); + }); }, handleDelete(row) { const pacIds = row.pacId || this.ids; -- Gitblit v1.8.0