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 | 269 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 196 insertions(+), 73 deletions(-) diff --git a/src/views/project/donatebaseinfo/index.vue b/src/views/project/donatebaseinfo/index.vue index 24014f4..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" @@ -72,7 +72,7 @@ size="small" > <el-option - v-for="dict in dict.type.sys_DonationStatus" + v-for="dict in dict.type.sys_donornode" :key="dict.value" :label="dict.label" :value="dict.value" @@ -96,6 +96,22 @@ </el-select> </el-form-item> </el-col> + <el-col :span="5"> + <el-form-item label="鏄惁缁堟"> + <el-select + v-model="queryParams.terminationCase" + placeholder="璇烽�夋嫨鐘舵��" + > + <el-option + v-for="item in terminationCaselist" + :key="item.value" + :label="item.name" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-col> <el-col :span="9"> <el-form-item label="绫嶈疮"> <div> @@ -106,6 +122,8 @@ </div> </el-form-item> </el-col> + </el-row> + <el-row> <el-col :span="4"> <el-form-item> <el-button @@ -199,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" @@ -233,7 +263,7 @@ prop="reportername" width="100" /> - <!-- + <!-- <el-table-column label="鐜版墍鍦ㄥ湴甯�" align="center" @@ -250,7 +280,7 @@ <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" - /> + /> </template> </el-table-column> --> @@ -267,7 +297,7 @@ :value="scope.row.workflow" /> </div> - <div v-else>浠诲姟涓</div> + <div v-else>浠诲姟缁堟</div> </template> </el-table-column> <el-table-column @@ -294,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" @@ -305,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> @@ -439,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> @@ -453,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"> @@ -464,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" @@ -878,7 +912,6 @@ </el-dialog> </div> </template> -<style scoped></style> <script> import { getUserProfile } from "@/api/system/user"; import { @@ -889,8 +922,8 @@ updateDonatebaseinfo, exportDonatebaseinfo, downloadbaseinfo, + getDonationNumber, getdonatorno - // exportProvincemessage, } from "@/api/project/donatebaseinfo"; import Li_area_select from "@/components/Address"; import OrgSelecter from "@/views/project/components/orgselect"; @@ -966,6 +999,10 @@ shi: "", qu: "" }, + terminationCaselist: [ + { name: "缁堟鐘舵��", value: 1 }, + { name: "姝e父鐘舵��", value: 0 } + ], // 閬僵灞� loading: true, // 瀵煎嚭閬僵灞� @@ -1020,7 +1057,11 @@ sex: null, idcardtype: null, idcardno: null, - age: null, + age: null, // 骞撮緞锛堝勾锛� + andAge: "", + ageunit: "骞�", // 鍗曚綅锛岄�氬父鍥哄畾涓衡�滃勾鈥� + age2: null, // 骞撮緞锛堟湀鎴栧ぉ锛� + ageunit2: "鏈�", // 鍗曚綅锛屾牴鎹绠楀喅瀹氭槸鈥滄湀鈥濊繕鏄�滃ぉ鈥� ageunit: null, birthday: null, phone: null, @@ -1059,7 +1100,7 @@ diagnosisname: null, bloodtype: "0", inpatientno: null, - rhyin: '0', + rhyin: "0", donorno: null, donationcategory: null, illnessoverview: null, @@ -1123,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" } ], @@ -1202,7 +1243,12 @@ ] }; }, - created() {}, + created() { + if (sessionStorage.getItem("donatebaseinfo")) { + this.queryParams = JSON.parse(sessionStorage.getItem("donatebaseinfo")); + console.log(this.queryParams, "queryParams"); + } + }, mounted(e) { // let idd = this.$route.query.userid @@ -1217,14 +1263,14 @@ if (this.$route.params.starttime != null && this.$route.params.endtime) { this.selecttime = [ this.$moment(this.$route.params.starttime).format("YYYY-MM-DD"), - this.$moment(this.$route.params.endtime) - .add(-1, "month") - .format("YYYY-MM-DD") + this.$moment(this.$route.params.endtime).format("YYYY-MM-DD") ]; } 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 @@ -1261,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; @@ -1424,7 +1546,8 @@ // 璧嬪�肩粰琛ㄦ牸 this.form.sex = sex; this.form.birthday = birthday; - this.form.age = age; + this.calculateAge(birthday); + // this.form.age = age; } else { } } catch {} @@ -1459,18 +1582,15 @@ }, /** 鏌ヨ鎹愮尞鍩虹鍒楄〃 */ - getList(e) { + getList() { this.loading = true; this.queryParams.params = {}; - // if (null != this.daterangeReporttime && "" != this.daterangeReporttime) { - // this.queryParams.params["beginReporttime"] = - // this.daterangeReporttime[0]; - // this.queryParams.params["endReporttime"] = this.daterangeReporttime[1]; - // } + sessionStorage.removeItem("donatebaseinfo"); + sessionStorage.setItem( + "donatebaseinfo", + JSON.stringify(this.queryParams) + ); // 璺宠浆鏃剁殑榛樿杩涘害 - if (e != null && e != undefined && !isNaN(e)) { - this.queryParams.recordstate = e; - } if (this.reportervalue != "") { this.queryParams.reportno = this.reportervalue; @@ -1489,6 +1609,8 @@ this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng(); this.queryParams.residencecity = this.$refs.areaSelect.getShi(); this.queryParams.residencetown = this.$refs.areaSelect.getQu(); + console.log(this.queryParams); + listDonatebaseinfo(this.queryParams).then(response => { this.donatebaseinfoList = response.rows; //console.log("listDonatebaseinfo", response.rows); @@ -1706,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(","); @@ -1733,8 +1854,8 @@ console.log(this.form); this.$refs["form"].validate(valid => { if (valid) { - const date = {...this.form}; - console.log(date,'date'); + const date = { ...this.form }; + console.log(date, "date"); this.form.birthday = this.$moment(this.form.birthday).format( "YYYY-MM-DD HH:mm:ss" ); @@ -1782,32 +1903,28 @@ this.form.redorganname = this.form.redorganno; } - - - this.form.workflow = 0; - this.form.recordstate = 0; - addDonatebaseinfo(this.form).then(res => { - console.log('22'); - console.log(res.code); - if (res.code == 200) { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.$router.push({ - path: "/organ/donationdetails/", - query: { - id: res.data.id, - organType: "edit" - } - }); - this.open = false; - } else { - console.log('1'); - this.form = date; - console.log(this.form,'form'); - this.$modal.msgError("鏂板澶辫触锛�" + res.msg); - - } - }); - + this.form.workflow = 0; + this.form.recordstate = 0; + addDonatebaseinfo(this.form).then(res => { + console.log("22"); + console.log(res.code); + if (res.code == 200) { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.$router.push({ + path: "/organ/donationdetails/", + query: { + id: res.data.id, + organType: "edit" + } + }); + this.open = false; + } else { + console.log("1"); + this.form = date; + console.log(this.form, "form"); + this.$modal.msgError("鏂板澶辫触锛�" + res.msg); + } + }); } }); }, @@ -1907,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