From ead85633109bcb3cc8d8b3c6804c280dd6ee1e5d Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 06 一月 2026 11:38:51 +0800
Subject: [PATCH] 省人民维护
---
/dev/null | 0
src/views/project/donationdetails/index.vue | 360 +++++++++++++++++++++++++++++++-------------
vue.config.js | 4
opo-srm.zip | 0
src/views/project/components/orgselect/index.vue | 114 +++++++++----
5 files changed, 332 insertions(+), 146 deletions(-)
diff --git a/OPO.zip b/OPO.zip
deleted file mode 100644
index cbc4b0d..0000000
--- a/OPO.zip
+++ /dev/null
Binary files differ
diff --git "a/opo \0502\051.zip" "b/opo \0502\051.zip"
deleted file mode 100644
index ad5c91c..0000000
--- "a/opo \0502\051.zip"
+++ /dev/null
Binary files differ
diff --git a/OPO-srm .zip b/opo-srm.zip
similarity index 81%
rename from OPO-srm .zip
rename to opo-srm.zip
index b4e27f6..61f1e99 100644
--- a/OPO-srm .zip
+++ b/opo-srm.zip
Binary files differ
diff --git a/src/views/project/components/orgselect/index.vue b/src/views/project/components/orgselect/index.vue
index be20106..7471f43 100644
--- a/src/views/project/components/orgselect/index.vue
+++ b/src/views/project/components/orgselect/index.vue
@@ -14,6 +14,7 @@
@focus="focusEvents.func"
@change="change"
@blur="changeBlur"
+ @visible-change="handleVisibleChange"
value-key="organizationid"
allow-create
reserve-keyword
@@ -22,8 +23,8 @@
ref="selecter"
>
<el-option
- v-for="(spec, index) in dataList"
- :key="index"
+ v-for="(spec, index) in displayList"
+ :key="spec.organizationid"
:label="spec.organizationname"
:value="spec.organizationid"
>
@@ -101,8 +102,10 @@
return {
pageData: { pageNum: 1, pageSize: 100 },
isLoading: false,
- // dataList: [],
- tempList: [],
+ // 涓変釜鐙珛鐨勬暟鎹簮锛岄伩鍏嶇浉浜掓薄鏌�
+ originalList: [], // 瀹屾暣鐨勫師濮嬫暟鎹簮
+ tempList: [], // 涓棿缂撳瓨鏁版嵁
+ displayList: [], // 鐢ㄤ簬娓叉煋鏄剧ず鐨勫垪琛�
myValue: this.multiple ? [] : "",
focusEvents: {
func: () => {},
@@ -145,15 +148,17 @@
let userType = { userType: "1" };
if (this.orgType == 4) {
let arr = this.$store.state.user.organization;
- this.dataList.push(...arr);
+ this.originalList.push(...arr);
if (this.isAll) {
let all = {
organizationid: "",
organizationname: "鍏ㄩ儴"
};
- this.dataList.unshift(all);
+ this.originalList.unshift(all);
}
- this.tempList = this.dataList.map(item => item);
+ // 鍒濆鍖栦笁涓垪琛ㄤ负鐩稿悓鏁版嵁
+ this.tempList = [...this.originalList];
+ this.displayList = [...this.originalList];
this.focusEvents.loaded = true;
this.isLoading = false;
return;
@@ -161,57 +166,64 @@
listOrganization(searchData)
.then(response => {
- this.dataList.push(...response.rows);
+ this.originalList.push(...response.rows);
if (this.isAll) {
let all = {
organizationid: "",
organizationname: "鍏ㄩ儴"
};
- this.dataList.unshift(all);
+ this.originalList.unshift(all);
}
- this.tempList = this.dataList.map(item => item);
+ // 鍒濆鍖栦笁涓垪琛ㄤ负鐩稿悓鏁版嵁
+ this.tempList = [...this.originalList];
+ this.displayList = [...this.originalList];
this.focusEvents.loaded = true;
})
.catch(error => {
- // 鏆傛棤澶勭悊
+ console.error("鑾峰彇鏈烘瀯鍒楄〃澶辫触:", error);
})
.finally(() => {
this.isLoading = false;
});
},
- getOptionByValue(key) {
- let outValue = null;
- this.dataList.forEach(e => {
- if (e.organizationid == key) {
- outValue = e;
- }
- });
-
- return outValue;
- },
-
+ /**
+ * 鑷畾涔夌瓫閫夋柟娉� - 淇鎼滅储鏃犳晥闂
+ * @param {string} val - 鎼滅储鍏抽敭璇�
+ */
filterMethod(val) {
- this.myValue = val;
if (val) {
- this.dataList = this.tempList.filter(item => {
- if (
- (item.PYM &&
- !!~item.PYM.toUpperCase().indexOf(val.toUpperCase())) ||
- (item.WBM &&
- !!~item.WBM.toUpperCase().indexOf(val.toUpperCase())) ||
+ // 瀵逛复鏃跺垪琛ㄨ繘琛岀瓫閫夛紝涓嶄慨鏀瑰師濮嬫暟鎹�
+ this.displayList = this.tempList.filter(item => {
+ return (
+ (item.PYM && item.PYM.toUpperCase().includes(val.toUpperCase())) ||
+ (item.WBM && item.WBM.toUpperCase().includes(val.toUpperCase())) ||
(item.organizationname &&
- !!~item.organizationname.toUpperCase().indexOf(val.toUpperCase()))
- ) {
- return true;
- } else {
- return false;
- }
+ item.organizationname.toUpperCase().includes(val.toUpperCase()))
+ );
});
} else {
- this.dataList = this.tempList.map(item => item);
+ // 鎼滅储璇嶄负绌烘椂鏄剧ず瀹屾暣鍒楄〃
+ this.displayList = [...this.tempList];
}
},
+
+ /**
+ * 澶勭悊涓嬫媺妗嗘樉绀�/闅愯棌浜嬩欢 - 淇鏁版嵁鎭㈠闂
+ * @param {boolean} visible - 鏄惁鍙
+ */
+ handleVisibleChange(visible) {
+ if (!visible) {
+ // 涓嬫媺妗嗗叧闂椂閲嶇疆鏄剧ず鍒楄〃涓哄畬鏁存暟鎹�
+ this.displayList = [...this.originalList];
+ this.tempList = [...this.originalList];
+ }
+ },
+
+ getOptionByValue(key) {
+ return this.originalList.find(item => item.organizationid == key) || null;
+ },
+
focus() {
this.$refs.selecter.focus();
},
@@ -227,9 +239,10 @@
this.$emit("change", data);
});
},
+
defaultInit(defaultItem, defaultItemName) {
if (defaultItem && defaultItemName) {
- let list = this.dataList.filter(
+ let list = this.originalList.filter(
r =>
r.organizationid == defaultItem &&
r.organizationname == defaultItemName
@@ -239,10 +252,11 @@
organizationname: defaultItemName,
organizationid: defaultItem
};
- this.dataList.push(data);
+ this.originalList.push(data);
+ this.tempList = [...this.originalList];
+ this.displayList = [...this.originalList];
}
}
- this.tempList = this.dataList.map(item => item);
}
},
computed: {},
@@ -254,6 +268,18 @@
myValue(newVal) {
this.$emit("input", newVal);
this.$emit("change", newVal);
+ },
+ // 鐩戝惉props涓殑dataList鍙樺寲
+ dataList: {
+ handler(newList) {
+ if (newList && newList.length > 0) {
+ this.originalList = [...newList];
+ this.tempList = [...newList];
+ this.displayList = [...newList];
+ }
+ },
+ immediate: true,
+ deep: true
}
}
};
@@ -265,4 +291,14 @@
position: relative;
width: 90%;
}
+
+// 浼樺寲鎼滅储妗嗘牱寮�
+::v-deep.selectclass .el-select__input {
+ min-width: 80px;
+}
+
+// 纭繚閫夐」鍒楄〃姝e父鏄剧ず
+::v-deep.selectclass .el-select-dropdown {
+ z-index: 9999 !important;
+}
</style>
diff --git a/src/views/project/donationdetails/index.vue b/src/views/project/donationdetails/index.vue
index 4b030f6..7c004c2 100644
--- a/src/views/project/donationdetails/index.vue
+++ b/src/views/project/donationdetails/index.vue
@@ -1,9 +1,20 @@
<template>
<div class="particularsdiv">
- <div class="left-course">
+ <div class="left-course" :class="{ 'left-collapsed': isLeftCollapsed }">
<div class="postfilx">
- <div class="title">宸ヤ綔杩涚▼</div>
- <div>
+ <div class="title">
+ 宸ヤ綔杩涚▼
+ <el-button
+ class="collapse-btn"
+ @click="toggleLeftCollapse"
+ :icon="
+ isLeftCollapsed ? 'el-icon-arrow-right' : 'el-icon-arrow-left'
+ "
+ size="mini"
+ >
+ </el-button>
+ </div>
+ <div v-show="!isLeftCollapsed">
<el-steps direction="vertical" :active="workflow">
<el-step title="娼滃湪鎹愮尞" icon="el-icon-user">
<template slot="description" v-if="donatebaseinfo.createtime">
@@ -155,7 +166,7 @@
</div>
</div>
<!-- 鍙充晶鏁版嵁 -->
- <div style="background: #fff; width: 80%;">
+ <div class="right-content" :class="{ 'right-expanded': isLeftCollapsed }">
<!-- 椤堕儴鏁版嵁 -->
<div class="boxdiv">
<div class="top-text">鎹愮尞妗堜緥淇℃伅</div>
@@ -1503,6 +1514,7 @@
<org-selecter
ref="tranHosSelect"
:org-type="'4'"
+ :filterable="true"
:dataList="dataList"
v-model="scope.row.transplanthospitalno"
/>
@@ -2349,7 +2361,7 @@
</el-form-item>
</el-col>
</el-row>
- <el-row>
+ <el-row v-if="accomplishform.isbodydonation">
<el-col :span="6">
<el-form-item align="left" label="閬椾綋鎹愮尞" prop="isbodydonation">
<el-radio-group v-model="accomplishform.isbodydonation">
@@ -2746,6 +2758,7 @@
return {
infoid: 736,
drawer: false,
+ isLeftCollapsed: false,
form: {
donorno: "",
reporterno: "",
@@ -3002,9 +3015,9 @@
],
sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }],
age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }],
- treatmenthospitalno: [
- { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" }
- ],
+ // treatmenthospitalno: [
+ // { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" }
+ // ],
bloodtype: [
{ required: true, message: "璇烽�夋嫨ABO琛�鍨�", trigger: "blur" }
],
@@ -3039,7 +3052,23 @@
]
},
// 鍚勭骇鏄庣粏鏁堥獙
- medicinerules: {},
+ medicinerules: {
+ illnessoverview: [
+ { required: true, message: "璇疯緭鍏ョ梾鎯呮鍐�", trigger: "blur" }
+ ],
+ diagnosisname: [
+ { required: true, message: "璇疯緭鍏ョ柧鐥呰瘖鏂�", trigger: "blur" }
+ ],
+ hospitalassessdoctor: [
+ { required: true, message: "璇疯緭鍏ラ櫌绾ц瘎浼板尰鐢�", trigger: "blur" }
+ ],
+ provincialassessdoctor: [
+ { required: true, message: "璇疯緭鍏ョ渷绾ц瘎浼板尰鐢�", trigger: "blur" }
+ ],
+ coreteamassessdoctor: [
+ { required: true, message: "璇疯緭鍏ユ牳蹇冩垚鍛樿瘎浼板尰鐢�", trigger: "blur" }
+ ],
+ },
affirmrules: {
name: [
{ required: true, message: "浜插睘濮撳悕涓嶈兘涓虹┖", trigger: "blur" }
@@ -3438,8 +3467,11 @@
});
}
},
+ // 鍒囨崲渚ц竟闅愯棌
+ toggleLeftCollapse() {
+ this.isLeftCollapsed = !this.isLeftCollapsed;
+ },
/** 淇濆瓨涓昏〃鎸夐挳 */
-
submitForm() {
this.$refs["form"].validate(valid => {
console.log("鎻愪氦鐨勬暟鎹滑锛�", this.form);
@@ -4416,124 +4448,242 @@
<style lang="scss" scoped>
.particularsdiv {
- display: -webkit-box;
+ display: flex;
background-color: #f5f7fa;
- height: 100%;
+ height: 100vh;
+ overflow: hidden;
+ transition: all 0.3s ease;
+ // 宸︿晶宸ヤ綔杩涚▼鏍�
.left-course {
background: #fff;
- width: 14vw;
+ width: 220px;
+ min-width: 220px;
text-align: center;
- margin: 20px 10px;
- padding: 10px;
- margin-top: 0;
- min-height: 888px;
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
+ transition: all 0.3s ease;
+ position: relative;
+ z-index: 100;
+
+ &.left-collapsed {
+ width: 64px; // 鏀逛负鍥哄畾瀹藉害锛岃�屼笉鏄�0
+ min-width: 64px; // 淇濇寔鏈�灏忓搴�
+ transform: translateX(0); // 绉婚櫎骞崇Щ
+
+ // 鎶樺彔鐘舵�佷笅闅愯棌姝ラ鍐呭锛屽彧鏄剧ず鏍囬鍜屾寜閽�
+ .postfilx > div:last-child {
+ opacity: 0;
+ visibility: hidden;
+ pointer-events: none; // 绂佺敤浜や簰
+ }
+
+ .title {
+ padding: 15px 5px; // 璋冩暣鍐呰竟璺濋�傚簲绐勫搴�
+
+ .collapse-btn {
+ margin: 0 auto; // 鎸夐挳灞呬腑
+ }
+ }
+ }
.postfilx {
- width: 12vw;
- text-align: center;
- margin: 20px 10px;
- padding: 10px;
- margin-top: 0;
- // z-index: 999;
- // position: -webkit-sticky;
- // position: fixed;
- // top: 50;
- }
-
- .title {
- background: #22a2c3;
- margin-bottom: 20px;
- padding: 10px 0;
- color: #fff;
- }
- }
-}
-
-.upload-demo {
- text-align: center;
-}
-
-.pdfimg {
- display: flex; // text-align: center;
- width: 100%;
- height: 600px;
-
- .box-pdf {
- width: 400px;
- margin-right: 30px;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
- box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); // <- Add this to fix.
- }
-
- .pdftit {
- width: 200px;
- padding: 20px;
- font-size: 18px;
- }
-
- .pdftit:hover {
- background: #c0cef7;
- }
-
- .pdfimgmin {
- width: 60%;
-
- img {
width: 100%;
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ display: flex;
+ flex-direction: column;
+
+ .title {
+ background: #22a2c3;
+ margin-bottom: 0;
+ padding: 15px 10px;
+ color: #fff;
+ font-size: 16px;
+ font-weight: 600;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ position: relative;
+ transition: all 0.3s ease;
+ min-height: 54px; // 纭繚鏍囬鍖哄煙鏈夊浐瀹氶珮搴�
+ box-sizing: border-box;
+
+ .collapse-btn {
+ background: rgba(255, 255, 255, 0.2);
+ border: none;
+ color: #fff;
+ width: 32px; // 绋嶅井澧炲ぇ纭繚鍙偣鍑诲尯鍩�
+ height: 32px;
+ padding: 0;
+ border-radius: 4px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: all 0.3s ease;
+ flex-shrink: 0; // 闃叉鎸夐挳琚帇缂�
+
+ &:hover {
+ background: rgba(255, 255, 255, 0.3);
+ transform: scale(1.1);
+ }
+
+ // 纭繚鍥炬爣灞呬腑鏄剧ず
+ .el-icon {
+ margin: 0;
+ }
+ }
+
+ // 鎶樺彔鐘舵�佷笅璋冩暣鏍囬鏂囧瓧
+
+ }
+
+ // 鎶樺彔鐘舵�佷笅闅愯棌瀹屾暣鏍囬鏂囧瓧
+ &.left-collapsed .title {
+ &:after {
+ opacity: 0;
+ }
+ }
+
+ > div:last-child {
+ flex: 1;
+ overflow-y: auto;
+ padding: 20px 15px;
+ transition: all 0.3s ease;
+ }
}
}
-
- .pdfimgmins {
- font-size: 28px;
- width: 60%;
- text-align: center;
- }
-}
-
-.Ticket-button {
- margin-top: 10px;
+.Ticket-button{
text-align: right;
- padding-right: 66px;
+ margin-right: 50px;
}
+ // 鍙充晶鍐呭鍖哄煙
+ .right-content {
+ flex: 1;
+ background: #fff;
+ transition: all 0.3s ease;
+ overflow-y: auto;
+ margin: 0;
-.boxdiv {
- max-width: 85vw;
- font-size: 18px;
- padding: 0 30px;
- padding-bottom: 10px;
- margin-top: 10px;
+ &.right-expanded {
+ margin-left: 0;
+ }
- .top-text {
- text-align: center;
- font-size: 23px;
- font-weight: 600;
- margin: 20px 0;
- margin-bottom: 30px;
+ .boxdiv {
+ width: 100%;
+ max-width: none;
+ font-size: 18px;
+ padding: 0 30px;
+ padding-bottom: 20px;
+ margin-top: 0;
+
+ .top-text {
+ text-align: center;
+ font-size: 23px;
+ font-weight: 600;
+ margin: 20px 0;
+ margin-bottom: 30px;
+ padding-top: 20px;
+ }
+ }
}
}
-::v-deep .el-step__head.is-finish {
- color: #22a2c3;
- border-color: #22a2c3;
+// 姝ラ鏍峰紡浼樺寲
+::v-deep .el-steps {
+ &.el-steps--vertical {
+ height: 100%;
+
+ .el-step {
+ margin-bottom: 15px;
+
+ .el-step__head {
+ &.is-finish {
+ color: #22a2c3;
+ border-color: #22a2c3;
+ }
+ }
+
+ .el-step__title {
+ font-size: 14px;
+ font-weight: 600;
+
+ &.is-finish {
+ color: #22a2c3;
+ }
+ }
+
+ .el-step__description {
+ font-size: 12px;
+ color: #666;
+ line-height: 1.5;
+
+ &.is-finish {
+ color: #22a2c3;
+ }
+
+ p {
+ margin: 4px 0;
+ }
+ }
+ }
+ }
}
-::v-deep .el-step__title.is-finish {
- color: #22a2c3;
+// 鍝嶅簲寮忚璁�
+@media (max-width: 768px) {
+ .particularsdiv {
+ flex-direction: column;
+
+ .left-course {
+ width: 100%;
+ height: auto;
+ max-height: 300px;
+
+ &.left-collapsed {
+ width: 100%; // 绉诲姩绔繚鎸佸叏瀹�
+ min-width: 100%;
+ height: 60px; // 鍙樉绀烘爣棰樻爮楂樺害
+ max-height: 60px;
+
+ .postfilx > div:last-child {
+ display: none; // 瀹屽叏闅愯棌鍐呭鑰屼笉鏄�忔槑
+ }
+ }
+
+ .postfilx {
+ .title {
+ .collapse-btn {
+ transform: rotate(0deg); // 淇濇寔姝e父鏂瑰悜
+ }
+ }
+ }
+ }
+
+ .right-content {
+ margin-left: 0;
+ }
+ }
}
-::v-deep .el-step__description.is-finish {
- color: #22a2c3;
+// 婊氬姩鏉℃牱寮忎紭鍖�
+.left-course ::-webkit-scrollbar {
+ width: 4px;
}
-:v-deep .el-select {
- display: inline-block;
- position: relative;
- width: 80%;
+.left-course ::-webkit-scrollbar-track {
+ background: #f1f1f1;
}
-:v-deep .el-tabs__nav-scroll {
- overflow: auto;
+
+.left-course ::-webkit-scrollbar-thumb {
+ background: #c1c1c1;
+ border-radius: 2px;
+}
+
+.left-course ::-webkit-scrollbar-thumb:hover {
+ background: #a8a8a8;
}
</style>
diff --git a/vue.config.js b/vue.config.js
index 84302f4..51f078a 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -33,8 +33,8 @@
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
- // target:`http://localhost:8080`,
- target:`http://192.168.100.10:8080`,
+ target:`http://localhost:8080`,
+ // target:`http://192.168.100.10:8080`,
// target:`http://192.168.100.137:8080`,
// target: `https://slb.hospitalstar.com:9093`,
changeOrigin: true,
--
Gitblit v1.9.3