|
|
@@ -5,11 +5,8 @@ meta:
|
|
|
cache: personal-edit.password
|
|
|
</route>
|
|
|
|
|
|
-<script lang="ts" setup name="PersonalSetting">
|
|
|
-import type { UploadProps } from 'element-plus'
|
|
|
-import { ElMessage } from 'element-plus'
|
|
|
-
|
|
|
-const router = useRouter()
|
|
|
+<script lang="ts" setup name="PersonalProfile">
|
|
|
+import type { FormInstance, FormRules, UploadProps } from 'element-plus'
|
|
|
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
|
@@ -29,26 +26,61 @@ const state = reactive({
|
|
|
},
|
|
|
})
|
|
|
|
|
|
-const form = ref({
|
|
|
- headimg: '',
|
|
|
- mobile: '',
|
|
|
- name: '',
|
|
|
- qq: '',
|
|
|
- wechat: '',
|
|
|
-})
|
|
|
+const router = useRouter()
|
|
|
+const formRef = ref<FormInstance>()
|
|
|
|
|
|
-const handleSuccess: UploadProps['onSuccess'] = (res) => {
|
|
|
- if (res.error === '') {
|
|
|
- form.value.headimg = res.data.path
|
|
|
+const validatePass2 = (rule: any, value: any, callback: any) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('请再次输入密码'))
|
|
|
+ }
|
|
|
+ else if (value !== state.passData.password) {
|
|
|
+ callback(new Error('两次输入密码不一致!'))
|
|
|
}
|
|
|
else {
|
|
|
- ElMessage.warning(res.error)
|
|
|
+ callback()
|
|
|
}
|
|
|
}
|
|
|
-const editPassword = () => {
|
|
|
- router.push({
|
|
|
- name: 'personalEditPassword',
|
|
|
- })
|
|
|
+
|
|
|
+const formRules = ref<FormRules>({
|
|
|
+ accountName: [
|
|
|
+ { required: true, message: '请输入用户名', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ accountPhone: [
|
|
|
+ { required: true, message: '请输入手机号', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ accountStaffNo: [
|
|
|
+ { required: false, message: '请输入工号', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ password: [
|
|
|
+ { required: true, message: '请输入密码', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ rePassword: [
|
|
|
+ { required: true, validator: validatePass2, trigger: 'blur' },
|
|
|
+ ],
|
|
|
+})
|
|
|
+
|
|
|
+const basicFormRef = ref()
|
|
|
+const passFormRef = ref()
|
|
|
+
|
|
|
+const uploadSuccess: UploadProps['onSuccess'] = (res) => {
|
|
|
+ state.basicData.accountAvatar = res.data.fileUrl
|
|
|
+}
|
|
|
+
|
|
|
+function submitForm(formName: string) {
|
|
|
+ if (formName === 'basic') {
|
|
|
+ basicFormRef.value && basicFormRef.value.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ window.console.log('abc')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ passFormRef.value && passFormRef.value.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ window.console.log('abc')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
@@ -60,19 +92,16 @@ const editPassword = () => {
|
|
|
<h2>基本设置</h2>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
- <image-upload
|
|
|
- v-model:url="form.headimg"
|
|
|
- action="http://scrm.1daas.com/api/upload/upload"
|
|
|
+ <avatar-upload
|
|
|
+ v-model:url="state.basicData.accountAvatar"
|
|
|
name="image"
|
|
|
- :data="{ token: 'TKD628431923530324' }"
|
|
|
notip
|
|
|
- class="headimg-upload"
|
|
|
- @on-success="handleSuccess"
|
|
|
+ @on-success="uploadSuccess"
|
|
|
/>
|
|
|
</el-col>
|
|
|
|
|
|
<el-col :span="16">
|
|
|
- <el-form ref="formRef" :model="state.basicData" label-width="120px" label-suffix=":">
|
|
|
+ <el-form ref="basicFormRef" :model="state.basicData" :rules="formRules" label-width="120px" label-suffix=":">
|
|
|
<el-form-item label="帐号名称" prop="accountName">
|
|
|
<el-input v-model="state.basicData.accountName" />
|
|
|
</el-form-item>
|
|
|
@@ -93,56 +122,30 @@ const editPassword = () => {
|
|
|
<el-input v-model="state.basicData.accountIntro" type="textarea" :rows="8" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
+ <div class="btn-group">
|
|
|
+ <el-button type="primary" @click="submitForm('basicForm')">
|
|
|
+ 更新
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="安全设置" class="security">
|
|
|
- <h2>安全设置</h2>
|
|
|
+ <el-tab-pane label="修改密码" class="security">
|
|
|
+ <h2>修改密码</h2>
|
|
|
<div class="setting-list">
|
|
|
- <div class="item">
|
|
|
- <div class="content">
|
|
|
- <div class="title">
|
|
|
- 账户密码
|
|
|
- </div>
|
|
|
- <div class="desc">
|
|
|
- 当前密码强度:强
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <el-button type="primary" text @click="editPassword">
|
|
|
- 修改
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="item">
|
|
|
- <div class="content">
|
|
|
- <div class="title">
|
|
|
- 密保手机
|
|
|
- </div>
|
|
|
- <div class="desc">
|
|
|
- 已绑定手机:187****3441
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <el-button type="primary" text>
|
|
|
- 修改
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="item">
|
|
|
- <div class="content">
|
|
|
- <div class="title">
|
|
|
- 备用邮箱
|
|
|
- </div>
|
|
|
- <div class="desc">
|
|
|
- 当前未绑定备用邮箱
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="action">
|
|
|
- <el-button type="primary" text>
|
|
|
- 绑定
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
+ <el-form ref="passFormRef" :model="state.passData" :rules="formRules" label-position="right" label-width="130px">
|
|
|
+ <el-form-item label="输入新密码" prop="password">
|
|
|
+ <el-input v-model="state.passData.password" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="再输入一遍" prop="rePassword">
|
|
|
+ <el-input v-model="state.passData.rePassword" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div class="btn-group">
|
|
|
+ <el-button type="primary" @click="submitForm('passForm')">
|
|
|
+ 更新
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
@@ -179,16 +182,6 @@ h2 {
|
|
|
font-weight: normal;
|
|
|
}
|
|
|
|
|
|
-.basic {
|
|
|
- :deep(.headimg-upload) {
|
|
|
- text-align: center;
|
|
|
-
|
|
|
- .el-upload-dragger {
|
|
|
- border-radius: 50%;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
.security {
|
|
|
.setting-list {
|
|
|
.item {
|