mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoManager
synced 2025-06-05 00:28:11 +00:00
feat: ✨新增设置接口调试
This commit is contained in:
parent
0adb7f13b0
commit
f0c6dd0ca5
28
src/api/setting.ts
Normal file
28
src/api/setting.ts
Normal file
@ -0,0 +1,28 @@
|
||||
import request from '@/utils/axios';
|
||||
|
||||
// 更新密码
|
||||
export function userUpdatepasswordPost(data: any) {
|
||||
return request({
|
||||
url: '/manager/user/updatepassword',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取通用设置
|
||||
export function getAppconfigGet(params?: any) {
|
||||
return request({
|
||||
url: '/manager/common/appconfig',
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 更新通用设置
|
||||
export function updateAppconfigPost(data: any) {
|
||||
return request({
|
||||
url: '/manager/common/appconfig',
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="footer flex-center">
|
||||
<a href="https://github.com" target="_blank"> 2023 © 悟空IM. </a>
|
||||
<a href="https://github.com" target="_blank"> 2023 © 唐僧叨叨. </a>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -1,7 +1,48 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="wh-full flex-col">
|
||||
<!-- 布局 -->
|
||||
通用设置
|
||||
<div class="flex-1 el-card border-none flex-col box-border overflow-hidden">
|
||||
<div class="h-50px pl-12px pr-12px box-border flex items-center justify-between bd-title">
|
||||
<div class="bd-title-left">
|
||||
<p class="m-0 font-600">通用设置</p>
|
||||
</div>
|
||||
<div class="flex items-center h-50px"></div>
|
||||
</div>
|
||||
<div class="flex-1 overflow-hidden p-12px">
|
||||
<div class="w-540px">
|
||||
<el-form :model="formData" label-width="160px">
|
||||
<el-form-item label="用户默认加入群聊:">
|
||||
<el-radio-group v-model="formData.new_user_join_system_group">
|
||||
<el-radio :label="1">加入</el-radio>
|
||||
<el-radio :label="0">不加入</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="消息可撤回时长:">
|
||||
<el-select v-model="formData.revoke_second" class="!w-100%">
|
||||
<el-option label="1分钟" :value="60" />
|
||||
<el-option label="2分钟" :value="120" />
|
||||
<el-option label="3分钟" :value="180" />
|
||||
<el-option label="4分钟" :value="240" />
|
||||
<el-option label="5分钟" :value="300" />
|
||||
<el-option label="永久" :value="-1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="登录欢迎语:">
|
||||
<el-input
|
||||
v-model="formData.welcome_message"
|
||||
:autosize="{ minRows: 14, maxRows: 16 }"
|
||||
type="textarea"
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :loading="loginButLoading" class="!w-100%" type="primary" @click="onSaveClick">保存</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -10,10 +51,51 @@ meta:
|
||||
title: 通用设置
|
||||
</route>
|
||||
|
||||
<script lang="ts" setup name="MyBb">
|
||||
// 逻辑代码
|
||||
<script lang="ts" setup>
|
||||
import { ElMessage } from 'element-plus';
|
||||
// API 接口
|
||||
import { getAppconfigGet, updateAppconfigPost } from '@/api/setting';
|
||||
// 表单
|
||||
const formData = reactive({
|
||||
welcome_message: '欢迎你来到悟空聊天。',
|
||||
revoke_second: 60,
|
||||
new_user_join_system_group: 1,
|
||||
search_by_phone: 1
|
||||
});
|
||||
// 初始化数据
|
||||
const initData = () => {
|
||||
getAppconfigGet().then((res: any) => {
|
||||
formData.welcome_message = res.welcome_message;
|
||||
formData.revoke_second = res.revoke_second;
|
||||
formData.new_user_join_system_group = res.new_user_join_system_group;
|
||||
formData.search_by_phone = res.search_by_phone;
|
||||
});
|
||||
};
|
||||
|
||||
// 更新通用设置
|
||||
const loginButLoading = ref(false);
|
||||
const onSaveClick = () => {
|
||||
loginButLoading.value = true;
|
||||
updateAppconfigPost(formData)
|
||||
.then((_res: any) => {
|
||||
loginButLoading.value = false;
|
||||
ElMessage.success('更新成功');
|
||||
})
|
||||
.catch(err => {
|
||||
loginButLoading.value = false;
|
||||
if (err.status == 400) {
|
||||
ElMessage.error(err.msg);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
initData();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 样式
|
||||
.bd-title {
|
||||
border-bottom: 1px solid var(--el-card-border-color);
|
||||
}
|
||||
</style>
|
||||
|
@ -1,7 +1,33 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="wh-full flex-col">
|
||||
<!-- 布局 -->
|
||||
修改登录密码
|
||||
<div class="flex-1 el-card border-none flex-col box-border overflow-hidden">
|
||||
<div class="h-50px pl-12px pr-12px box-border flex items-center justify-between bd-title">
|
||||
<div class="bd-title-left">
|
||||
<p class="m-0 font-600">修改登录密码</p>
|
||||
</div>
|
||||
<div class="flex items-center h-50px"></div>
|
||||
</div>
|
||||
<div class="flex-1 overflow-hidden p-12px">
|
||||
<div class="w-540px">
|
||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="160px" autocomplete="on">
|
||||
<el-form-item label="旧密码:" prop="oldPwd">
|
||||
<el-input v-model="formData.oldPwd" type="password" show-password />
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码:" prop="newPwd">
|
||||
<el-input v-model="formData.newPwd" type="password" show-password />
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码:" prop="surePwd">
|
||||
<el-input v-model="formData.surePwd" type="password" show-password />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :loading="loginButLoading" type="primary" @click="onSubmitClick(formRef)"> 提交 </el-button>
|
||||
<el-button @click="onResetClick(formRef)"> 重置 </el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -10,10 +36,80 @@ meta:
|
||||
title: 修改登录密码
|
||||
</route>
|
||||
|
||||
<script lang="ts" setup name="MyBb">
|
||||
// 逻辑代码
|
||||
<script lang="ts" setup>
|
||||
import type { FormInstance, FormRules } from 'element-plus';
|
||||
import { ElMessage } from 'element-plus';
|
||||
// API 接口
|
||||
import { userUpdatepasswordPost } from '@/api/setting';
|
||||
// 表单
|
||||
const formRef = ref<FormInstance>();
|
||||
const formData = reactive({
|
||||
oldPwd: '',
|
||||
newPwd: '',
|
||||
surePwd: ''
|
||||
});
|
||||
const loginButLoading = ref(false);
|
||||
// 输入验证
|
||||
const validateNewpwd = (_rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请输入新密码'));
|
||||
} else {
|
||||
if (value.length < 6) {
|
||||
callback(new Error('密码长度必须大于6位!'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
};
|
||||
const validateSurepwd = (_rule: any, value: any, callback: any) => {
|
||||
if (value === '') {
|
||||
callback(new Error('请重新输入密码'));
|
||||
} else if (value !== formData.newPwd) {
|
||||
callback(new Error('两个输入不匹配!'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
const rules = reactive<FormRules<typeof formData>>({
|
||||
oldPwd: { required: true, message: '请输入旧密码', trigger: 'blur' },
|
||||
newPwd: { required: true, validator: validateNewpwd, trigger: 'blur' },
|
||||
surePwd: { required: true, validator: validateSurepwd, trigger: 'blur' }
|
||||
});
|
||||
// 提交
|
||||
const onSubmitClick = async (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return;
|
||||
await formEl.validate(valid => {
|
||||
if (valid) {
|
||||
if (formData.newPwd === formData.surePwd) {
|
||||
loginButLoading.value = true;
|
||||
userUpdatepasswordPost({
|
||||
password: formData.oldPwd,
|
||||
new_password: formData.newPwd
|
||||
})
|
||||
.then((_res: any) => {
|
||||
loginButLoading.value = false;
|
||||
ElMessage.success('修改成功!');
|
||||
})
|
||||
.catch(err => {
|
||||
loginButLoading.value = false;
|
||||
if (err.status == 400) {
|
||||
ElMessage.error(err.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 重置
|
||||
const onResetClick = (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return;
|
||||
formEl.resetFields();
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 样式
|
||||
.bd-title {
|
||||
border-bottom: 1px solid var(--el-card-border-color);
|
||||
}
|
||||
</style>
|
||||
|
Loading…
x
Reference in New Issue
Block a user