| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <template>
- <el-form ref="userRef" :model="user" :rules="rules" label-width="80px">
- <el-form-item label="性别">
- <el-radio-group v-model="user.sex">
- <el-radio label="0">男</el-radio>
- <el-radio label="1">女</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="用户昵称" prop="nickName">
- <el-input v-model="user.nickName" maxlength="30" />
- </el-form-item>
- <el-form-item label="手机号码" prop="phonenumber">
- <!-- <el-input v-model="user.phonenumber" @input="phoneNumChange" maxlength="11" /> -->
- <el-input v-model="showPhone" @input="phoneNumChange" maxlength="11" />
- </el-form-item>
- <el-form-item label="邮箱" prop="email">
- <el-input v-model="user.email" maxlength="50" />
- </el-form-item>
-
- <el-form-item>
- <el-button type="primary" @click="submit" class="sure">保存</el-button>
- <el-button type="danger" @click="close" class="cancel">关闭</el-button>
- </el-form-item>
- </el-form>
- </template>
- <script setup>
- import {
- ref,
- computed,
- reactive,
- defineComponent,
- watch,
- toRaw,
- onMounted,
- onBeforeMount,
- defineExpose,
- onDeactivated,
- inject
- } from "vue";
- import { updateUserProfile,getUserProfile } from "@/api/system/user";
- import { encode, decode } from '@/utils/sm2util'
- const delMenuFn = inject("delMenuFn");
- const props = defineProps({
- user: {
- type: Object
- }
- });
- const { proxy } = getCurrentInstance();
- const clickPath = inject("clickPath");
- const rules = ref({
- nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
- email: [{ required: false, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
- phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
- });
- const showPhone = ref()
- function getUser() {
- getUserProfile().then(response => {
- showPhone.value = decode(response.data.phonenumber);
- showPhone.value = phoneNumber(showPhone.value)
- });
- };
- const emit = defineEmits(["chengeUser"]);
- /** 提交按钮 */
- function submit() {
- proxy.$refs.userRef.validate(valid => {
- if (valid) {
- let query=props.user
- query.phonenumber = encode(query.phonenumber+'')
- // console.log('props.user',query);
- updateUserProfile(query).then(response => {
- proxy.$modal.msgSuccess("修改成功");
- });
- }
- });
- };
- /** 关闭按钮 */
- function close() {
- // proxy.$tab.closePage();
- delMenuFn('个人中心')
- clickPath(null,{label: "首页",path: "/home"})
- };
- const phoneNumChange = (num)=>{
-
- emit('chengeUser',num)
- // console.log('num',num);
- }
- const phoneNumber = (num)=>{
- if(num){
- num = num+''
- // console.log('num',num);
- const str1 = num.substr(0,3)
- const str2 = num.substr(3,4)
- const str3 = num.substr(7,4)
- // console.log(str1,str2,str3);
- return str1+'****'+str3
- }
- }
- getUser();
- onMounted(()=>{
- console.log('showPhone',showPhone);
- })
- </script>
- <style lang="scss" scoped>
- :deep(.el-form-item--default .el-form-item__label){
- color: #505870 !important;
- font-weight: 400;
- font-size: 14px;
- }
- .el-button{
- width: 120px;
- }
- :deep(.sure.el-button){
- --el-button-bg-color:#2E6BC8
- }
- :deep(.cancel.el-button){
- --el-button-bg-color:#fff;
- color: #505870;
- --el-button-border-color:#C1CCE3;
- }
- </style>
|