【招生主控端】 修复# 1、支持用户修改账号密码;2、修改标题名称

master
kaeery 2025-03-10 16:26:08 +08:00
parent 1c912f58a5
commit 40c084c1f6
8 changed files with 286 additions and 141 deletions

View File

@ -1,11 +1,10 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>粤好生活-后台管理系统</title>
<title>易客云-后台管理系统</title>
<style>
* {
margin: 0;
@ -42,7 +41,6 @@
}
@keyframes loading-dash {
0% {
stroke-dasharray: 90, 150;
stroke-dashoffset: -40px;
@ -67,5 +65,4 @@
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

BIN
primary-admin.zip 100644

Binary file not shown.

View File

@ -8,7 +8,7 @@
*/
const config = {
terminal: 1, //终端
title: '粤好生活-后台管理系统', //网站默认标题
title: '易客云-后台管理系统', //网站默认标题
version: '1.3.3', //版本号
baseUrl: `${import.meta.env.VITE_APP_BASE_URL || ''}/`, //请求接口域名
urlPrefix: 'api', //请求默认前缀

View File

@ -1,7 +1,7 @@
<template>
<footer class="layout-footer bg-[#f5f5f5] bg-opacity-90 text-center">
<div class="p-2 text-xs text-tx-secondary max-w-[900px] mx-auto">
<a href="http://beian.miit.gov.cn" class="my-[10px]">Copyright © 2023 粤ICP备2023059183号 - 广东粤好生活服务有限公司版权所有</a>
<a href="http://beian.miit.gov.cn" class="my-[10px]">Copyright © 2023 粤ICP备2023059183号 - 广东合创云科技有限公司版权所有</a>
</div>
</footer>
</template>

View File

@ -34,20 +34,20 @@ export const constantRoutes: Array<RouteRecordRaw> = [
path: PageEnum.LOGIN,
component: () => import('@/views/account/login.vue')
},
// {
// path: '/user',
// component: LAYOUT,
// children: [
// {
// path: 'setting',
// name: Symbol(),
// component: () => import('@/views/user/setting.vue'),
// meta: {
// title: '个人设置'
// }
// }
// ]
// },
{
path: '/user',
component: LAYOUT,
children: [
{
path: 'setting',
name: Symbol(),
component: () => import('@/views/user/setting.vue'),
meta: {
title: '个人设置'
}
}
]
},
{
path: '/dev_tools',
component: LAYOUT,

View File

@ -6,7 +6,15 @@
<el-input v-model="formData.account" placeholder="请输入账号名称" clearable :maxlength="20" show-word-limit />
</el-form-item>
<el-form-item v-if="formData.id == ''" label="账号密码" prop="password">
<el-input v-model="formData.password" placeholder="请输入账号密码" clearable :maxlength="20" show-word-limit />
<el-input
v-model="formData.password"
placeholder="请输入账号密码"
clearable
:maxlength="20"
show-word-limit
type="password"
show-password
/>
</el-form-item>
<el-form-item label="客户名称" prop="clientName">
<el-input v-model="formData.clientName" placeholder="请输入客户名称" clearable :maxlength="20" show-word-limit />

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>粤好生活-后台管理系统</title>
<title>易客云-后台管理系统</title>
<style>
* {
margin: 0;
@ -40,7 +40,6 @@
}
@keyframes loading-dash {
0% {
stroke-dasharray: 90, 150;
stroke-dashoffset: -40px;

View File

@ -0,0 +1,141 @@
<!-- 个人资料 -->
<template>
<div class="user-setting">
<el-card class="!border-none" shadow="never">
<el-form ref="formRef" class="ls-form" :model="formData" :rules="rules" label-width="100px">
<el-form-item label="头像:" prop="avatar">
<material-picker v-model="formData.avatar" :limit="1" />
</el-form-item>
<el-form-item label="账号:" prop="username">
<div class="w-80">
<el-input v-model="formData.username" disabled />
</div>
</el-form-item>
<el-form-item label="名称:" prop="nickname">
<div class="w-80">
<el-input v-model="formData.nickname" placeholder="请输入名称" />
</div>
</el-form-item>
<el-form-item label="当前密码:" prop="currPassword">
<div class="w-80">
<el-input v-model.trim="formData.currPassword" placeholder="修改密码时必填, 不修改密码时留空" type="password" show-password />
</div>
</el-form-item>
<el-form-item label="新的密码:" prop="password">
<div class="w-80">
<el-input v-model.trim="formData.password" placeholder="修改密码时必填, 不修改密码时留空" type="password" show-password />
</div>
</el-form-item>
<el-form-item label="确定密码:" prop="passwordConfirm">
<div class="w-80">
<el-input
v-model.trim="formData.passwordConfirm"
placeholder="修改密码时必填, 不修改密码时留空"
type="password"
show-password
/>
</div>
</el-form-item>
</el-form>
</el-card>
<footer-btns v-perms="['setting.web.web_setting/setAgreement']">
<el-button type="primary" @click="handleSubmit"></el-button>
</footer-btns>
</div>
</template>
<script setup lang="ts">
import { setUserInfo } from '@/api/user'
import useUserStore from '@/stores/modules/user'
import feedback from '@/utils/feedback'
import type { FormInstance } from 'element-plus'
const formRef = ref<FormInstance>()
const userStore = useUserStore()
//
const formData = reactive({
avatar: '', //
username: '', //
nickname: '', //
currPassword: '', //
password: '', //
passwordConfirm: '' //
})
//
const rules = reactive<object>({
avatar: [
{
required: true,
message: '头像不能为空',
trigger: ['change']
}
],
nickname: [
{
required: true,
message: '请输入名称',
trigger: ['blur']
}
]
})
//
const getUser = async () => {
const userInfo = userStore.userInfo
for (const key in formData) {
//@ts-ignore
formData[key] = userInfo[key]
}
}
//
const setUser = async () => {
if (formData.currPassword || formData.password || formData.passwordConfirm) {
if (!formData.currPassword) {
return feedback.msgError('请输入当前密码')
}
if (!formData.password) {
return feedback.msgError('请输入新的密码')
}
if (!formData.passwordConfirm) {
return feedback.msgError('请输入确定密码')
}
if (formData.passwordConfirm != formData.password) {
return feedback.msgError('两次输入的密码不一样')
}
}
if (formData.currPassword && formData.password && formData.passwordConfirm) {
if (formData.currPassword.length < 6 || formData.currPassword.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.password.length < 6 || formData.password.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
if (formData.passwordConfirm.length < 6 || formData.passwordConfirm.length > 32) {
return feedback.msgError('密码长度在6到32之间')
}
}
await setUserInfo(formData)
userStore.getUserInfo()
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
await setUser()
userStore.logout()
}
getUser()
</script>
<style lang="scss" scoped></style>