From 9c2eb9ed6da32c1830b02431875dacaa7f904b1f Mon Sep 17 00:00:00 2001 From: 黄何裕 <1053952480@qq.com> Date: 星期五, 12 七月 2024 18:16:56 +0800 Subject: [PATCH] 修改资料校验 --- src/views/personal-center/index.vue | 49 +++++++++++++++++++++++++++++++++++-------------- components.d.ts | 4 ++++ 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/components.d.ts b/components.d.ts index 6873c8e..4bfb9be 100644 --- a/components.d.ts +++ b/components.d.ts @@ -11,6 +11,7 @@ ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCol: typeof import('element-plus/es')['ElCol'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] @@ -27,6 +28,9 @@ ElSelect: typeof import('element-plus/es')['ElSelect'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] + ElTag: typeof import('element-plus/es')['ElTag'] ExamAudio: typeof import('./src/components/ExamAudio/index.vue')['default'] ExamInfo: typeof import('./src/components/ExamInfo/index.vue')['default'] ExamInfoDialog: typeof import('./src/components/ExamInfoDialog/index.vue')['default'] diff --git a/src/views/personal-center/index.vue b/src/views/personal-center/index.vue index 26980b4..0995cbf 100644 --- a/src/views/personal-center/index.vue +++ b/src/views/personal-center/index.vue @@ -23,12 +23,12 @@ ref="fileHeadPortrait" id="fileHeadPortrait" /> - <img - class="img" - id="headPortrait" - @click="uploadImage" - :src="'api/files/' + userData.imagePath" - /> + <img + class="img" + id="headPortrait" + @click="uploadImage" + :src="'api/files/' + userData.imagePath" + /> <span>{{ userData.userName }}</span> </div> <div> @@ -55,8 +55,9 @@ :model="informationForm" label-width="auto" style="max-width: 600px" + :rules="informationRules" > - <el-form-item label="鐪熷疄濮撳悕"> + <el-form-item label="鐪熷疄濮撳悕" prop="name"> <el-input v-model="informationForm.name" /> </el-form-item> <el-form-item label="骞撮緞"> @@ -67,8 +68,8 @@ v-model="informationForm.sex" style="width: 100px" > - <el-option label="鐢�" value="1" /> - <el-option label="濂�" value="2" /> + <el-option label="鐢�" :value="1" /> + <el-option label="濂�" :value="2" /> </el-select> </el-form-item> <el-form-item label="鍑虹敓骞存湀"> @@ -79,11 +80,14 @@ :size="size" /> </el-form-item> - <el-form-item label="鎵嬫満"> - <el-input - v-model="informationForm.phone" - /> </el-form-item></el-form - ></el-tab-pane> + <el-form-item label="鎵嬫満" prop="phone"> + <el-input v-model="informationForm.phone" /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="onSubmit">鏇存柊</el-button> + </el-form-item></el-form + ></el-tab-pane + > <el-tab-pane label="瀵嗙爜淇敼" name="password"> <el-form :model="passwordForm" @@ -123,6 +127,23 @@ phone: userData.value.phone, birthDay: userData.value.birthDay, }); +// 鎵嬫満鍙烽獙璇侀�昏緫 +const validatePhone = (rule, value, callback) => { + const phoneRegex = /^1[3-9]\d{9}$/; + if (!phoneRegex.test(value)) { + callback(new Error("鎵嬫満鍙锋牸寮忎笉姝g‘")); + } else { + callback(); + } +}; + +const informationRules = { + name: [{ required: true, message: "璇峰~鍐欑湡瀹炲鍚�", trigger: "blur" }], + phone: [ + { validator: validatePhone, trigger: "blur" }, + { required: true, message: "璇疯緭鍏ユ墜鏈哄彿", trigger: "blur" }, + ], +}; const passwordForm = ref({ name: "" }); //澶村儚涓婁紶 let formData = new FormData(); -- Gitblit v1.8.0