From f64155f6ad27c50451bb7d4a15f553bc72ead7de Mon Sep 17 00:00:00 2001 From: WXL <wl_5969728@163.com> Date: 星期五, 12 九月 2025 14:35:26 +0800 Subject: [PATCH] 年龄计算相关 --- src/views/project/donatebaseinfo/index.vue | 160 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 132 insertions(+), 28 deletions(-) diff --git a/src/views/project/donatebaseinfo/index.vue b/src/views/project/donatebaseinfo/index.vue index 724e87e..01e076a 100644 --- a/src/views/project/donatebaseinfo/index.vue +++ b/src/views/project/donatebaseinfo/index.vue @@ -47,7 +47,7 @@ </el-form-item> </el-col> <el-col :span="9"> - <el-form-item label="鏃ユ湡"> + <el-form-item label="妗堜緥鏃堕棿"> <el-date-picker style="width: 100%" v-model="selecttime" @@ -97,7 +97,7 @@ </el-form-item> </el-col> <el-col :span="5"> - <el-form-item label="鏄惁缁堟路"> + <el-form-item label="鏄惁缁堟"> <el-select v-model="queryParams.terminationCase" placeholder="璇烽�夋嫨鐘舵��" @@ -217,7 +217,19 @@ /> </template> </el-table-column> - <el-table-column label="骞撮緞" align="center" prop="age" width="100" /> + <el-table-column label="骞撮緞" align="center" prop="age" width="100"> + <template slot-scope="scope"> + {{ + `${ + scope.row.age && scope.row.age !== 0 ? `${scope.row.age}${scope.row.ageunit?scope.row.ageunit:''}` : "" + } ${ + scope.row.age2 && scope.row.age2 !== 0 + ? `${scope.row.age2}${scope.row.ageunit2}` + : "" + }`.trim() + }} + </template> + </el-table-column> <el-table-column label="鍖荤枟鏈烘瀯" align="center" @@ -251,7 +263,7 @@ prop="reportername" width="100" /> - <!-- + <!-- <el-table-column label="鐜版墍鍦ㄥ湴甯�" align="center" @@ -268,7 +280,7 @@ <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" - /> + /> </template> </el-table-column> --> @@ -312,9 +324,9 @@ v-hasPermi="['project:donatebaseinfo:remove']" >鍒犻櫎</el-button > - <!-- + <!-- <el-button v-if="scope.row.recordstate == 0 || scope.row.recordstate == 3" size="mini" type="text" - icon="el-icon-thumb" @click="handleapproval(scope.row)">鎻愪氦</el-button> + icon="el-icon-thumb" @click="handleapproval(scope.row)">鎻愪氦</el-button> --> <el-button size="mini" @@ -323,9 +335,9 @@ @click="handledownload(scope.row)" >涓嬭浇</el-button > - <!-- + <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handletermination(scope.row)" - v-hasPermi="['project:donatebaseinfo:edit']">{{ scope.row.recordstate == 99 ? "鎭㈠": "缁堟" }}</el-button> + v-hasPermi="['project:donatebaseinfo:edit']">{{ scope.row.recordstate == 99 ? "鎭㈠": "缁堟" }}</el-button> --> </template> </el-table-column> @@ -457,8 +469,15 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="骞撮緞" prop="age"> - <el-input v-model="form.age" placeholder="璇疯緭鍏ュ勾榫�" /> + <el-form-item label="瀛﹀巻" prop="education"> + <el-select v-model="form.education" placeholder="璇烽�夋嫨瀛﹀巻"> + <el-option + v-for="dict in dict.type.sys_education" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> </el-form-item> </el-col> </el-row> @@ -471,10 +490,19 @@ v-model="form.birthday" type="date" style="width: 174px" - value-format="yyyy-MM-dd HH:mm:ss" + @change="calculateAge" + value-format="yyyy-MM-dd" placeholder="閫夋嫨鍑虹敓鏃ユ湡" > </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="6"> + <!-- <el-form-item label="骞撮緞" prop="age"> + <el-input v-model="form.age" placeholder="璇疯緭鍏ュ勾榫�" /> + </el-form-item> --> + <el-form-item label="骞撮緞" prop="age"> + <el-input v-model="form.andAge" disabled> </el-input> </el-form-item> </el-col> <el-col :span="6"> @@ -482,18 +510,6 @@ <el-select v-model="form.occupation" placeholder="璇烽�夋嫨鑱屼笟"> <el-option v-for="dict in dict.type.sys_occupation" - :key="dict.value" - :label="dict.label" - :value="dict.value" - ></el-option> - </el-select> - </el-form-item> - </el-col> - <el-col :span="6"> - <el-form-item label="瀛﹀巻" prop="education"> - <el-select v-model="form.education" placeholder="璇烽�夋嫨瀛﹀巻"> - <el-option - v-for="dict in dict.type.sys_education" :key="dict.value" :label="dict.label" :value="dict.value" @@ -1041,7 +1057,11 @@ sex: null, idcardtype: null, idcardno: null, - age: null, + age: null, // 骞撮緞锛堝勾锛� + andAge: "", + ageunit: "骞�", // 鍗曚綅锛岄�氬父鍥哄畾涓衡�滃勾鈥� + age2: null, // 骞撮緞锛堟湀鎴栧ぉ锛� + ageunit2: "鏈�", // 鍗曚綅锛屾牴鎹绠楀喅瀹氭槸鈥滄湀鈥濊繕鏄�滃ぉ鈥� ageunit: null, birthday: null, phone: null, @@ -1144,7 +1164,7 @@ { required: true, message: "璇锋纭緭鍏ヨ瘉浠跺彿鐮�", trigger: "blur" } ], sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }], - age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }], + // age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }], treatmenthospitalno: [ { required: true, message: "璇烽�夋嫨鍖荤枟鏈烘瀯", trigger: "blur" } ], @@ -1249,6 +1269,8 @@ if (this.$route.params.reporterno != "") { this.reporterno = this.$route.params.reporterno; } + this.queryParams.terminationcase = this.$route.params.terminationcase; + if ( this.$route.params.tempRecordState != "" && this.$route.params.tempRecordState != undefined @@ -1285,7 +1307,83 @@ this.currentuser = response.data; }); }, + calculateAge(birthday) { + if (!birthday) { + // 娓呯┖骞撮緞瀛楁 + this.form.age = null; + this.form.age2 = null; + // this.form.age3 = null; + return; + } + const birthDate = new Date(birthday); + const today = new Date(); + + // 璁$畻鎬绘湀浠藉樊寮� + let yearDiff = today.getFullYear() - birthDate.getFullYear(); + let monthDiff = today.getMonth() - birthDate.getMonth(); + let dayDiff = today.getDate() - birthDate.getDate(); + + // 濡傛灉褰撳墠鏃ユ湡鐨勫ぉ鏁板皬浜庡嚭鐢熸棩鏈熺殑澶╂暟锛屽垯鍊熸湀 + if (dayDiff < 0) { + monthDiff--; + // 鑾峰彇涓婁釜鏈堢殑鏈�鍚庝竴澶� + const lastDayOfMonth = new Date( + today.getFullYear(), + today.getMonth(), + 0 + ).getDate(); + dayDiff += lastDayOfMonth; + } + + // 濡傛灉鏈堜唤宸负璐燂紝鍒欏�熷勾 + if (monthDiff < 0) { + yearDiff--; + monthDiff += 12; + } + + // 璧嬪�煎勾閮ㄥ垎 + this.form.age = yearDiff; + this.form.ageunit = "宀�"; + + // 璧嬪�兼湀閮ㄥ垎锛堟垨鑰呮偍涔熷彲浠ラ�夋嫨鏄剧ず鍓╀綑鐨勫ぉ鏁帮級 + this.form.age2 = monthDiff; + this.form.ageunit2 = "鏈�"; + + // 濡傛灉鎮ㄨ繕鎯虫樉绀哄ぉ鏁� + // this.form.age3 = dayDiff; + // this.form.ageunit3 = '澶�'; + + // 濡傛灉骞撮緞灏忎簬1宀侊紝鍙兘鎮ㄥ笇鏈涚敤鏈堟垨澶╂潵琛ㄧず涓诲勾榫� + // 杩欓噷鏄竴涓畝鍗曠殑閫昏緫锛屾偍鍙互鏍规嵁闇�姹傝皟鏁� + if (yearDiff === 0) { + if (monthDiff === 0) { + // 灏忎簬1涓湀锛岀敤澶╄〃绀� + this.form.age = dayDiff; + this.form.ageunit = "澶�"; + this.form.age2 = null; // 娓呯┖绗簩瀛楁 + // this.form.age3 = null; + } else { + // 灏忎簬1骞达紝鐢ㄦ湀琛ㄧず + this.form.age = monthDiff; + this.form.ageunit = "鏈�"; + this.form.age2 = dayDiff; // 绗簩瀛楁鏄剧ず澶� + this.form.ageunit2 = "澶�"; + } + } + + this.form.andAge = `${ + this.form.age && this.form.age !== 0 + ? `${this.form.age}${this.form.ageunit}` + : "" + } ${ + this.form.age2 && this.form.age2 !== 0 + ? `${this.form.age2}${this.form.ageunit2}` + : "" + }`.trim(); + this.$forceUpdate(); // 寮哄埗鏇存柊 + console.log(this.form.andAge); + }, LoadReportList() { listDonatebaseinfo().then(res => { let list = res.rows; @@ -1448,7 +1546,8 @@ // 璧嬪�肩粰琛ㄦ牸 this.form.sex = sex; this.form.birthday = birthday; - this.form.age = age; + this.calculateAge(birthday); + // this.form.age = age; } else { } } catch {} @@ -1729,7 +1828,6 @@ const id = row.id || this.ids; getDonatebaseinfo(id).then(response => { this.form = response.data; - this.form.diseasetype = this.form.diseasetype.split(","); this.form.infectious = this.form.infectious.split(","); this.form.selfwill = this.form.selfwill.split(","); @@ -1926,4 +2024,10 @@ margin: auto !important; padding-bottom: 0px !important; } +::v-deep .el-input.is-disabled .el-input__inner { + background-color: #fff; + border-color: #dfe4ed; + color: #000; + cursor: not-allowed; +} </style> -- Gitblit v1.9.3