feat: 🚀 邮箱用户更新状态
This commit is contained in:
parent
ccf028fcd0
commit
248124c195
|
@ -1,30 +1,27 @@
|
|||
import { http } from '@/api/service/request';
|
||||
import type { BaseResult, ResultTable } from '@/api/service/types';
|
||||
|
||||
/**
|
||||
* 邮箱用户发送配置管理---获取邮箱用户发送配置管理列表
|
||||
*/
|
||||
/** 邮箱用户发送配置管理---获取邮箱用户发送配置管理列表 */
|
||||
export const fetchGetEmailUsersList = (data: any) => {
|
||||
return http.request<BaseResult<ResultTable>>('get', `emailUsers/getEmailUsersList/${data.currentPage}/${data.pageSize}`, { params: data });
|
||||
};
|
||||
|
||||
/**
|
||||
* 邮箱用户发送配置管理---添加邮箱用户发送配置管理
|
||||
*/
|
||||
/** 邮箱用户发送配置管理---添加邮箱用户发送配置管理 */
|
||||
export const fetchAddEmailUsers = (data: any) => {
|
||||
return http.request<BaseResult<object>>('post', 'emailUsers/addEmailUsers', { data });
|
||||
};
|
||||
|
||||
/**
|
||||
* 邮箱用户发送配置管理---更新邮箱用户发送配置管理
|
||||
*/
|
||||
/** 邮箱用户发送配置管理---更新邮箱用户发送配置管理 */
|
||||
export const fetchUpdateEmailUsers = (data: any) => {
|
||||
return http.request<BaseResult<object>>('put', 'emailUsers/updateEmailUsers', { data });
|
||||
};
|
||||
|
||||
/**
|
||||
* 邮箱用户发送配置管理---删除邮箱用户发送配置管理
|
||||
*/
|
||||
/** 邮箱用户发送配置管理---更新邮箱用户状态 */
|
||||
export const fetchUpdateEmailUserStatus = (data: any) => {
|
||||
return http.request<BaseResult<object>>('put', 'emailUsers/updateEmailUserStatus', { data });
|
||||
};
|
||||
|
||||
/** 邮箱用户发送配置管理---删除邮箱用户发送配置管理 */
|
||||
export const fetchDeleteEmailUsers = (data: any) => {
|
||||
return http.request<BaseResult<object>>('delete', 'emailUsers/deleteEmailUsers', { data });
|
||||
};
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import { http } from '@/api/service/request';
|
||||
import type { BaseResult, ResultTable } from '@/api/service/types';
|
||||
import type { BaseResult } from '@/api/service/types';
|
||||
|
||||
/** 菜单管理-列表 */
|
||||
export const fetchGetMenusList = (data?: any) => {
|
||||
return http.request<BaseResult<ResultTable>>('get', `router/getMenusList`, { params: data });
|
||||
return http.request<BaseResult<any>>('get', `router/getMenusList`, { params: data });
|
||||
};
|
||||
|
||||
/** 菜单管理-添加菜单 */
|
||||
|
|
|
@ -29,9 +29,7 @@ export const userI18nStore = defineStore('i18nStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取多语言
|
||||
*/
|
||||
/** 获取多语言 */
|
||||
async fetchI18n() {
|
||||
const result = await fetchGetI18n();
|
||||
|
||||
|
@ -46,9 +44,8 @@ export const userI18nStore = defineStore('i18nStore', {
|
|||
this.i18n = data;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* * 获取多语言列表
|
||||
*/
|
||||
|
||||
/** 获取多语言列表 */
|
||||
async getI18nMangeList() {
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
delete data.pageSizes;
|
||||
|
@ -61,25 +58,19 @@ export const userI18nStore = defineStore('i18nStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加多语言
|
||||
*/
|
||||
/** 添加多语言 */
|
||||
async addI18n(data: any) {
|
||||
const result = await fetchAddI18n(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 更新多语言
|
||||
*/
|
||||
/** 更新多语言 */
|
||||
async updateI18n(data: any) {
|
||||
const result = await fetchUpdateI18n(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除多语言
|
||||
*/
|
||||
/** 删除多语言 */
|
||||
async deleteI18n(data: any) {
|
||||
const result = await fetchDeleteI18n(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -44,9 +44,7 @@ export const useAdminUserStore = defineStore('adminUserStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取用户信息
|
||||
*/
|
||||
/** 获取用户信息 */
|
||||
getAdminUserList: async function () {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -68,43 +66,31 @@ export const useAdminUserStore = defineStore('adminUserStore', {
|
|||
return result.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加用户信息
|
||||
*/
|
||||
/** 添加用户信息 */
|
||||
async addAdminUser(data: any) {
|
||||
const result = await fetchAddAdminUser(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改用户信息
|
||||
*/
|
||||
/** 修改用户信息 */
|
||||
async updateAdminUser(data: any) {
|
||||
const result = await fetchUpdateAdminUser(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除用户信息
|
||||
*/
|
||||
/** 删除用户信息 */
|
||||
async deleteAdminUser(data: any) {
|
||||
const result = await fetchDeleteAdminUser(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 更新用户密码
|
||||
* @param data
|
||||
*/
|
||||
/** 更新用户密码 */
|
||||
async updateAdminUserPasswordByManager(data: any) {
|
||||
const result: any = await fetchUpdateUserPasswordByAdmin(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改用户状态
|
||||
* @param data
|
||||
*/
|
||||
/** 修改用户状态 */
|
||||
async updateUserStatusByAdmin(data: any) {
|
||||
const result = await fetchUpdateUserStatusByAdmin(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -36,9 +36,7 @@ export const useDeptStore = defineStore('deptStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取部门
|
||||
*/
|
||||
/** 获取部门 */
|
||||
async getDeptList() {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -54,34 +52,26 @@ export const useDeptStore = defineStore('deptStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 获取所有部门列表
|
||||
*/
|
||||
/** 获取所有部门列表 */
|
||||
async getAllDeptList() {
|
||||
const result = await fetchGetAllDeptList();
|
||||
if (result.code !== 200) return;
|
||||
this.allDeptList = result.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加部门
|
||||
*/
|
||||
/** 添加部门 */
|
||||
async addDept(data: any) {
|
||||
const result = await fetchAddDept(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改部门
|
||||
*/
|
||||
/** 修改部门 */
|
||||
async updateDept(data: any) {
|
||||
const result = await fetchUpdateDept(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除部门
|
||||
*/
|
||||
/** 删除部门 */
|
||||
async deleteDept(data: any) {
|
||||
const result = await fetchDeleteDept(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -36,9 +36,7 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取邮件模板表
|
||||
*/
|
||||
/** 获取邮件模板表 */
|
||||
async getEmailTemplateList() {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -54,25 +52,19 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加邮件模板表
|
||||
*/
|
||||
/** 添加邮件模板表 */
|
||||
async addEmailTemplate(data: any) {
|
||||
const result = await fetchAddEmailTemplate(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改邮件模板表
|
||||
*/
|
||||
/** 修改邮件模板表 */
|
||||
async updateEmailTemplate(data: any) {
|
||||
const result = await fetchUpdateEmailTemplate(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除邮件模板表
|
||||
*/
|
||||
/** 删除邮件模板表 */
|
||||
async deleteEmailTemplate(data: any) {
|
||||
const result = await fetchDeleteEmailTemplate(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { defineStore } from 'pinia';
|
||||
import { fetchAddEmailUsers, fetchDeleteEmailUsers, fetchGetEmailUsersList, fetchUpdateEmailUsers } from '@/api/v1/emailUsers';
|
||||
import { fetchAddEmailUsers, fetchDeleteEmailUsers, fetchGetEmailUsersList, fetchUpdateEmailUsers, fetchUpdateEmailUserStatus } from '@/api/v1/emailUsers';
|
||||
import { pageSizes } from '@/enums/baseConstant';
|
||||
import { storeMessage } from '@/utils/message';
|
||||
import { storePagination } from '@/store/useStorePagination';
|
||||
|
@ -56,25 +56,25 @@ export const useEmailUsersStore = defineStore('emailUsersStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加邮箱用户发送配置
|
||||
*/
|
||||
/** 添加邮箱用户发送配置 */
|
||||
async addEmailUsers(data: any) {
|
||||
const result = await fetchAddEmailUsers(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改邮箱用户发送配置
|
||||
*/
|
||||
/** 修改邮箱用户发送配置 */
|
||||
async updateEmailUsers(data: any) {
|
||||
const result = await fetchUpdateEmailUsers(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除邮箱用户发送配置
|
||||
*/
|
||||
/** 更新邮箱用户状态 */
|
||||
async updateEmailUserStatus(data: any) {
|
||||
const result = await fetchUpdateEmailUserStatus(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/** 删除邮箱用户发送配置 */
|
||||
async deleteEmailUsers(data: any) {
|
||||
const result = await fetchDeleteEmailUsers(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -36,9 +36,7 @@ export const useFilesStore = defineStore('filesStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取系统文件表
|
||||
*/
|
||||
/** 获取系统文件表 */
|
||||
async getFilesList() {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -54,25 +52,19 @@ export const useFilesStore = defineStore('filesStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加系统文件表
|
||||
*/
|
||||
/** 添加系统文件表 */
|
||||
async addFiles(data: any) {
|
||||
const result = await fetchAddFiles(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改系统文件表
|
||||
*/
|
||||
/** 修改系统文件表 */
|
||||
async updateFiles(data: any) {
|
||||
const result = await fetchUpdateFiles(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除系统文件表
|
||||
*/
|
||||
/** 删除系统文件表 */
|
||||
async deleteFiles(data: any) {
|
||||
const result = await fetchDeleteFiles(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -15,16 +15,14 @@ export const userMenuStore = defineStore('menuStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取菜单列表
|
||||
*/
|
||||
/** 获取菜单列表 */
|
||||
async getMenuList() {
|
||||
const result = await fetchGetMenusList({ ...this.pagination });
|
||||
if (result.code !== 200) return false;
|
||||
|
||||
// 前端搜索菜单名称
|
||||
const title = this.form.title;
|
||||
let newData = result.data;
|
||||
let newData: Array<any> = result.data;
|
||||
if (!isAllEmpty(title)) {
|
||||
newData = newData.filter(item => $t(item.title).includes(title));
|
||||
}
|
||||
|
@ -32,47 +30,32 @@ export const userMenuStore = defineStore('menuStore', {
|
|||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加菜单
|
||||
* @param data
|
||||
*/
|
||||
/** 添加菜单 */
|
||||
async addMenu(data: object) {
|
||||
const result = await fetchAddMenu(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 更新菜单
|
||||
* @param data
|
||||
*/
|
||||
/** 更新菜单 */
|
||||
async updateMenu(data: object) {
|
||||
const result = await fetchUpdateMenu(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除菜单
|
||||
* @param data
|
||||
*/
|
||||
/** 删除菜单 */
|
||||
async deletedMenuByIds(data: object) {
|
||||
const result = await fetchDeletedMenuByIds(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 根据路由id获取角色列表
|
||||
* @param data
|
||||
*/
|
||||
/** 根据路由id获取角色列表 */
|
||||
async getRoleListByRouterId(data: any) {
|
||||
const result = await fetchGetRoleListByRouterId(data);
|
||||
if (result.code !== 200) return;
|
||||
return result.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 为路由分配角色
|
||||
* @param data
|
||||
*/
|
||||
/** 为路由分配角色 */
|
||||
async assignRolesToRouter(data: any) {
|
||||
const result = await fetchAssignRolesToRouter(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -36,9 +36,7 @@ export const usePowerStore = defineStore('powerStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取权限
|
||||
*/
|
||||
/** 获取权限 */
|
||||
async getPowerList() {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -54,42 +52,31 @@ export const usePowerStore = defineStore('powerStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加权限
|
||||
*/
|
||||
/** 添加权限 */
|
||||
async addPower(data: any) {
|
||||
const result = await fetchAddPower(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改权限
|
||||
*/
|
||||
/** 修改权限 */
|
||||
async updatePower(data: any) {
|
||||
const result = await fetchUpdatePower(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* 批量修改权限父级
|
||||
* @param data
|
||||
*/
|
||||
/** 批量修改权限父级 */
|
||||
async updateBatchByPowerWithParentId(data: any) {
|
||||
const result = await fetchUpdateBatchByPowerWithParentId(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除权限
|
||||
*/
|
||||
/** 删除权限 */
|
||||
async deletePower(data: any) {
|
||||
const result = await fetchDeletePower(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取所有权限
|
||||
*/
|
||||
/** 获取所有权限 */
|
||||
async getAllPowers() {
|
||||
const result = await fetchGetAllPowers();
|
||||
if (result.code !== 200) return;
|
||||
|
|
|
@ -34,9 +34,7 @@ export const useRoleStore = defineStore('roleStore', {
|
|||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
/**
|
||||
* * 获取角色
|
||||
*/
|
||||
/** 获取角色 */
|
||||
async getRoleList() {
|
||||
// 整理请求参数
|
||||
const data = { ...this.pagination, ...this.form };
|
||||
|
@ -52,9 +50,7 @@ export const useRoleStore = defineStore('roleStore', {
|
|||
return pagination(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 获取所有角色
|
||||
*/
|
||||
/** 获取所有角色 */
|
||||
async getAllRoles() {
|
||||
const result = await fetchGetAllRoles();
|
||||
if (result.code !== 200) return;
|
||||
|
@ -62,34 +58,25 @@ export const useRoleStore = defineStore('roleStore', {
|
|||
this.allRoleList = result.data.map(role => ({ key: role.id, label: role.description }));
|
||||
},
|
||||
|
||||
/**
|
||||
* * 添加角色
|
||||
*/
|
||||
/** 添加角色 */
|
||||
async addRole(data: any) {
|
||||
const result = await fetchAddRole(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 为角色分配权限
|
||||
* @param data
|
||||
*/
|
||||
/** 为角色分配权限 */
|
||||
async assignPowersToRole(data: any) {
|
||||
const result = await fetchAssignPowersToRole(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 修改角色
|
||||
*/
|
||||
/** 修改角色 */
|
||||
async updateRole(data: any) {
|
||||
const result = await fetchUpdateRole(data);
|
||||
return storeMessage(result);
|
||||
},
|
||||
|
||||
/**
|
||||
* * 删除角色
|
||||
*/
|
||||
/** 删除角色 */
|
||||
async deleteRole(data: any) {
|
||||
const result = await fetchDeleteRole(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -37,10 +37,7 @@ export const useUserStore = defineStore({
|
|||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 发送邮箱验证码
|
||||
* @param email
|
||||
*/
|
||||
/** 发送邮箱验证码 */
|
||||
async postEmailCode(email: string) {
|
||||
const response = await fetchPostEmailCode({ email });
|
||||
if (response.code === 200) {
|
||||
|
@ -52,9 +49,7 @@ export const useUserStore = defineStore({
|
|||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* 前端登出(不调用接口)
|
||||
*/
|
||||
/** 前端登出(不调用接口) */
|
||||
async logOut() {
|
||||
// 登出
|
||||
const result = await fetchLogout();
|
||||
|
@ -73,9 +68,7 @@ export const useUserStore = defineStore({
|
|||
message(result.message, { type: 'error' });
|
||||
},
|
||||
|
||||
/**
|
||||
* 刷新`token`
|
||||
*/
|
||||
/** 刷新`token` */
|
||||
async handRefreshToken(data: any) {
|
||||
const result = await refreshTokenApi({ ...data, readMeDay: this.readMeDay });
|
||||
if (result.code === 200) {
|
||||
|
@ -86,20 +79,14 @@ export const useUserStore = defineStore({
|
|||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 根据用户id获取角色列表
|
||||
* @param data
|
||||
*/
|
||||
/** 根据用户id获取角色列表 */
|
||||
async getRoleListByUserId(data: any) {
|
||||
const result = await fetchGetRoleListByUserId(data);
|
||||
if (result.code !== 200) return;
|
||||
return result.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* * 为用户分配角色
|
||||
* @param data
|
||||
*/
|
||||
/** 为用户分配角色 */
|
||||
async assignRolesToUsers(data: any) {
|
||||
const result = await fetchAssignRolesToUsers(data);
|
||||
return storeMessage(result);
|
||||
|
|
|
@ -148,7 +148,7 @@ onMounted(() => {
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<PureTableBar :columns="columns" title="用户信息" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
|
||||
<PureTableBar :columns="columns" :title="$t('userinfo')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
|
||||
<template #buttons>
|
||||
<el-button :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd"> {{ $t('add_new') }}</el-button>
|
||||
|
||||
|
@ -188,12 +188,12 @@ onMounted(() => {
|
|||
<template #status="{ row, index }">
|
||||
<el-switch
|
||||
v-model="row.status"
|
||||
:active-text="$t('enable')"
|
||||
:active-value="false"
|
||||
:inactive-text="$t('disable')"
|
||||
:inactive-value="true"
|
||||
:loading="switchLoadMap[index]?.loading"
|
||||
:style="switchStyle"
|
||||
active-text="已启用"
|
||||
inactive-text="已停用"
|
||||
inline-prompt
|
||||
@click="updateUserStatus(row, index)"
|
||||
/>
|
||||
|
@ -201,7 +201,9 @@ onMounted(() => {
|
|||
|
||||
<!-- 用户性别 -->
|
||||
<template #sex="{ row }">
|
||||
<el-tag :type="row.sex === 0 ? 'danger' : null" effect="plain"> {{ row.sex === 1 ? '男' : '女' }}</el-tag>
|
||||
<el-tag :type="row.sex === 0 ? 'danger' : null" effect="plain">
|
||||
{{ row.sex === 1 ? $t('man') : $t('female') }}
|
||||
</el-tag>
|
||||
</template>
|
||||
|
||||
<!-- 创建用户 -->
|
||||
|
@ -219,7 +221,7 @@ onMounted(() => {
|
|||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
|
||||
<!-- 删除 -->
|
||||
<el-popconfirm :title="`是否确认删除 ${row.username}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')} ${row.username}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
@ -233,16 +235,16 @@ onMounted(() => {
|
|||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Upload)" :size="size" link type="primary" @click="onUploadAvatar(row)"> 上传头像 </el-button>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Upload)" :size="size" link type="primary" @click="onUploadAvatar(row)"> {{ $t('upload_avatar') }} </el-button>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Password)" :size="size" link type="primary" @click="onResetPassword(row)"> 重置密码 </el-button>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Password)" :size="size" link type="primary" @click="onResetPassword(row)"> {{ $t('reset_passwords') }} </el-button>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Role)" :size="size" link type="primary" @click="onAssignRolesToUser(row)"> 分配角色 </el-button>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Role)" :size="size" link type="primary" @click="onAssignRolesToUser(row)"> {{ $t('assign_roles') }} </el-button>
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Airplane)" :size="size" link type="primary" @click="onForcedOffline(row)"> 强制下线 </el-button>
|
||||
<el-button :class="tableSelectButtonClass" :icon="useRenderIcon(Airplane)" :size="size" link type="primary" @click="onForcedOffline(row)"> {{ $t('forced_offline') }} </el-button>
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
|
|
|
@ -117,7 +117,7 @@ onMounted(() => {
|
|||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-button :icon="useRenderIcon(AddFill)" :size="size" class="reset-margin" link type="primary" @click="onAdd(row.id)"> {{ $t('add_new') }} </el-button>
|
||||
<el-popconfirm :title="`是否确认删除 ${row.deptName}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')} ${row.deptName}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -33,7 +33,7 @@ defineExpose({ formRef });
|
|||
<el-input v-model="form.subject" autocomplete="off" type="text" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('emailTemplate_body')" prop="body">
|
||||
<el-input v-model="form.body" autocomplete="off" type="text" />
|
||||
<el-input v-model="form.body" :autosize="{ minRows: 2 }" autocomplete="off" type="textarea" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('emailTemplate_type')" prop="type">
|
||||
<el-input v-model="form.type" autocomplete="off" type="text" />
|
||||
|
|
|
@ -105,9 +105,7 @@ onMounted(() => {
|
|||
|
||||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-button :icon="useRenderIcon(AddFill)" :size="size" class="reset-margin" link type="primary" @click="onAdd"> {{ $t('add_new') }} </el-button>
|
||||
<!-- TODO 待完成 -->
|
||||
<el-popconfirm :title="`是否确认删除 ${row.typeName}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')} ${row.templateName}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -4,6 +4,7 @@ import { FormInstance } from 'element-plus';
|
|||
import { rules } from '@/views/system/emailUsers/utils/columns';
|
||||
import { FormProps } from '@/views/system/emailUsers/utils/types';
|
||||
import { $t } from '@/plugins/i18n';
|
||||
import { usePublicHooks } from '@/views/hooks';
|
||||
|
||||
const props = withDefaults(defineProps<FormProps>(), {
|
||||
formInline: () => ({
|
||||
|
@ -26,6 +27,8 @@ const props = withDefaults(defineProps<FormProps>(), {
|
|||
|
||||
const formRef = ref<FormInstance>();
|
||||
const form = ref(props.formInline);
|
||||
// 用户是否停用样式
|
||||
const { switchStyle } = usePublicHooks();
|
||||
|
||||
defineExpose({ formRef });
|
||||
</script>
|
||||
|
@ -51,7 +54,7 @@ defineExpose({ formRef });
|
|||
<el-input v-model="form.smtpAgreement" autocomplete="off" type="text" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('emailUsers_isDefault')" prop="isDefault">
|
||||
<el-input v-model="form.isDefault" autocomplete="off" type="text" />
|
||||
<el-switch v-model="form.isDefault" :active-text="$t('default')" :active-value="true" :inactive-text="$t('no_default')" :inactive-value="false" :style="switchStyle" inline-prompt />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
|
|
@ -4,18 +4,21 @@ import { columns } from '@/views/system/emailUsers/utils/columns';
|
|||
import PureTableBar from '@/components/TableBar/src/bar';
|
||||
import AddFill from '@iconify-icons/ri/add-circle-line';
|
||||
import PureTable from '@pureadmin/table';
|
||||
import { onAdd, onDelete, onSearch, onUpdate } from '@/views/system/emailUsers/utils/hooks';
|
||||
import { onAdd, onChangeDefault, onDelete, onSearch, onUpdate, switchLoadMap } from '@/views/system/emailUsers/utils/hooks';
|
||||
import Delete from '@iconify-icons/ep/delete';
|
||||
import EditPen from '@iconify-icons/ep/edit-pen';
|
||||
import Refresh from '@iconify-icons/ep/refresh';
|
||||
import { selectUserinfo } from '@/components/Table/Userinfo/columns';
|
||||
import { $t } from '@/plugins/i18n';
|
||||
import { useEmailUsersStore } from '@/store/system/emailUsers.ts';
|
||||
import { useEmailUsersStore } from '@/store/system/emailUsers';
|
||||
import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
|
||||
import { usePublicHooks } from '@/views/hooks';
|
||||
|
||||
const tableRef = ref();
|
||||
const formRef = ref();
|
||||
const emailUsersStore = useEmailUsersStore();
|
||||
// 用户是否停用样式
|
||||
const { switchStyle } = usePublicHooks();
|
||||
|
||||
/**
|
||||
* * 当前页改变时
|
||||
|
@ -73,7 +76,7 @@ onMounted(() => {
|
|||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<PureTableBar :columns="columns" title="邮箱用户发送配置管理" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
|
||||
<PureTableBar :columns="columns" :title="$t('email_user_send_config')" @fullscreen="tableRef.setAdaptive()" @refresh="onSearch">
|
||||
<template #buttons>
|
||||
<el-button :icon="useRenderIcon(AddFill)" type="primary" @click="onAdd"> {{ $t('add_new') }}</el-button>
|
||||
</template>
|
||||
|
@ -98,6 +101,20 @@ onMounted(() => {
|
|||
@page-size-change="onPageSizeChange"
|
||||
@page-current-change="onCurrentPageChange"
|
||||
>
|
||||
<template #isDefault="{ row, index }">
|
||||
<el-switch
|
||||
v-model="row.isDefault"
|
||||
:active-text="$t('default')"
|
||||
:active-value="true"
|
||||
:inactive-text="$t('no_default')"
|
||||
:inactive-value="false"
|
||||
:loading="switchLoadMap[index]?.loading"
|
||||
:style="switchStyle"
|
||||
inline-prompt
|
||||
@click="onChangeDefault(row, index)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<template #createUser="{ row }">
|
||||
<el-button link type="primary" @click="selectUserinfo(row.createUser)">{{ $t('table.createUser') }} </el-button>
|
||||
</template>
|
||||
|
@ -108,9 +125,7 @@ onMounted(() => {
|
|||
|
||||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-button :icon="useRenderIcon(AddFill)" :size="size" class="reset-margin" link type="primary" @click="onAdd"> {{ $t('add_new') }} </el-button>
|
||||
<!-- TODO 待完成 -->
|
||||
<el-popconfirm :title="`是否确认删除 ${row.typeName}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')}${row.email}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -5,7 +5,6 @@ import { $t } from '@/plugins/i18n';
|
|||
export const columns: TableColumnList = [
|
||||
{ type: 'selection', align: 'left' },
|
||||
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
|
||||
{ label: $t('id'), prop: 'id' },
|
||||
// 邮箱
|
||||
{ label: $t('emailUsers_email'), prop: 'email' },
|
||||
// 邮件模板
|
||||
|
@ -19,7 +18,7 @@ export const columns: TableColumnList = [
|
|||
// 邮箱协议
|
||||
{ label: $t('emailUsers_smtpAgreement'), prop: 'smtpAgreement' },
|
||||
// 是否为默认邮件
|
||||
{ label: $t('emailUsers_isDefault'), prop: 'isDefault' },
|
||||
{ label: $t('emailUsers_isDefault'), prop: 'isDefault', slot: 'isDefault' },
|
||||
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },
|
||||
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 },
|
||||
{ label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 90 },
|
||||
|
@ -31,16 +30,12 @@ export const columns: TableColumnList = [
|
|||
export const rules = reactive({
|
||||
// 邮箱
|
||||
email: [{ required: true, message: `${$t('input')}${$t('emailUsers_email')}`, trigger: 'blur' }],
|
||||
// 邮件模板
|
||||
emailTemplate: [{ required: true, message: `${$t('input')}${$t('emailUsers_emailTemplate')}`, trigger: 'blur' }],
|
||||
// 密码
|
||||
password: [{ required: true, message: `${$t('input')}${$t('emailUsers_password')}`, trigger: 'blur' }],
|
||||
// Host地址
|
||||
host: [{ required: true, message: `${$t('input')}${$t('emailUsers_host')}`, trigger: 'blur' }],
|
||||
// 端口号
|
||||
port: [{ required: true, message: `${$t('input')}${$t('emailUsers_port')}`, trigger: 'blur' }],
|
||||
// 邮箱协议
|
||||
smtpAgreement: [{ required: true, message: `${$t('input')}${$t('emailUsers_smtpAgreement')}`, trigger: 'blur' }],
|
||||
// 是否为默认邮件
|
||||
isDefault: [{ required: true, message: `${$t('input')}${$t('emailUsers_isDefault')}`, trigger: 'blur' }],
|
||||
});
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
import { addDialog } from '@/components/BaseDialog/index';
|
||||
import EmailUsersDialog from '@/views/system/emailUsers/email-users-dialog.vue';
|
||||
import { useEmailUsersStore } from '@/store/system/emailUsers.ts';
|
||||
import { useEmailUsersStore } from '@/store/system/emailUsers';
|
||||
import { h, ref } from 'vue';
|
||||
import { messageBox } from '@/utils/message';
|
||||
import type { FormItemProps } from '@/views/system/emailUsers/utils/types';
|
||||
import { $t } from '@/plugins/i18n';
|
||||
|
||||
export const formRef = ref();
|
||||
// 用户是否停用加载集合
|
||||
export const switchLoadMap = ref({});
|
||||
const emailUsersStore = useEmailUsersStore();
|
||||
|
||||
/**
|
||||
|
@ -110,3 +112,47 @@ export const onDelete = async (row: any) => {
|
|||
await emailUsersStore.deleteEmailUsers([id]);
|
||||
await onSearch();
|
||||
};
|
||||
|
||||
/**
|
||||
* * 修改是否默认
|
||||
* @param row
|
||||
* @param index
|
||||
*/
|
||||
export const onChangeDefault = async (row: any, index: number) => {
|
||||
// 点击时开始loading加载
|
||||
switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], {
|
||||
loading: true,
|
||||
});
|
||||
|
||||
// 是否确认修改弹窗内容
|
||||
const confirm = await messageBox({
|
||||
title: $t('confirm_update_status'),
|
||||
showMessage: false,
|
||||
confirmMessage: undefined,
|
||||
cancelMessage: $t('cancel'),
|
||||
});
|
||||
|
||||
// 如果不修改将值恢复到之前状态
|
||||
if (!confirm) {
|
||||
row.isDefault = !row.isDefault;
|
||||
switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], {
|
||||
loading: false,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 修改用户状态
|
||||
const result = await emailUsersStore.updateEmailUserStatus({ id: row.id, isDefault: row.isDefault });
|
||||
if (!result) {
|
||||
row.isDefault = !row.isDefault;
|
||||
switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], {
|
||||
loading: false,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
await onSearch();
|
||||
switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], {
|
||||
loading: false,
|
||||
});
|
||||
};
|
||||
|
|
|
@ -12,6 +12,7 @@ import { selectUserinfo } from '@/components/Table/Userinfo/columns';
|
|||
import { $t } from '@/plugins/i18n';
|
||||
import { useFilesStore } from '@/store/system/files.ts';
|
||||
import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
|
||||
import { FormInstance } from 'element-plus';
|
||||
|
||||
const tableRef = ref();
|
||||
const formRef = ref();
|
||||
|
@ -38,7 +39,7 @@ const onPageSizeChange = async (value: number) => {
|
|||
* 重置表单
|
||||
* @param formEl
|
||||
*/
|
||||
const resetForm = async formEl => {
|
||||
const resetForm = async (formEl: FormInstance) => {
|
||||
if (!formEl) return;
|
||||
formEl.resetFields();
|
||||
await onSearch();
|
||||
|
@ -105,7 +106,7 @@ onMounted(() => {
|
|||
|
||||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-popconfirm :title="`是否确认删除 ${row.filename}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')} ${row.filename}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -74,12 +74,12 @@ onMounted(() => {
|
|||
<template #visible="{ row, index }">
|
||||
<el-switch
|
||||
v-model="row.visible"
|
||||
:active-text="$t('show')"
|
||||
:active-value="true"
|
||||
:inactive-text="$t('hidden')"
|
||||
:inactive-value="false"
|
||||
:loading="switchLoadMap[index]?.loading"
|
||||
:style="switchStyle"
|
||||
active-text="显示"
|
||||
inactive-text="隐藏"
|
||||
inline-prompt
|
||||
@click="onchangeVisible(row, index)"
|
||||
/>
|
||||
|
@ -96,7 +96,7 @@ onMounted(() => {
|
|||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-button v-show="row.menuType !== 3" :icon="useRenderIcon(AddFill)" :size="size" class="reset-margin" link type="primary" @click="onAdd(row.id)"> {{ $t('add_new') }} </el-button>
|
||||
<el-popconfirm :title="`是否确认删除菜单名称为${$t(row.title)}的这条数据${row?.children?.length > 0 ? '注意下级菜单也会一并删除,请谨慎操作' : ''}`" @confirm="handleDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')} ${$t(row.title)}的这条数据${row?.children?.length > 0 ? '注意下级菜单也会一并删除,请谨慎操作' : ''}`" @confirm="handleDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -120,7 +120,7 @@ onMounted(() => {
|
|||
|
||||
<template #operation="{ row }">
|
||||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-popconfirm :title="`是否确认删除 ${row.iconName}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')}${row.iconName}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -134,7 +134,7 @@ onMounted(() => {
|
|||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
<el-button :icon="useRenderIcon(AddFill)" :size="size" class="reset-margin" link type="primary" @click="onAdd(row.id)"> {{ $t('add_new') }} </el-button>
|
||||
<!-- 删除 -->
|
||||
<el-popconfirm :title="`是否确认删除 ${row.powerName}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')}${row.powerName}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
|
@ -125,7 +125,7 @@ onMounted(() => {
|
|||
<el-button :icon="useRenderIcon(EditPen)" :size="size" class="reset-margin" link type="primary" @click="onUpdate(row)"> {{ $t('modify') }} </el-button>
|
||||
|
||||
<!-- 删除 -->
|
||||
<el-popconfirm :title="`是否确认删除 ${row.roleCode}数据`" @confirm="onDelete(row)">
|
||||
<el-popconfirm :title="`${$t('delete')}${row.roleCode}?`" @confirm="onDelete(row)">
|
||||
<template #reference>
|
||||
<el-button :icon="useRenderIcon(Delete)" :size="size" class="reset-margin" link type="primary">
|
||||
{{ $t('delete') }}
|
||||
|
|
Loading…
Reference in New Issue