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