10 Commits

19 changed files with 101 additions and 75 deletions

View File

@@ -5,14 +5,14 @@ ENV = 'development'
# 后端服务地址配置 # 后端服务地址配置
# 切换环境时,修改下面两个地址的 IP 即可 # 切换环境时,修改下面两个地址的 IP 即可
# 当前环境: 192.168.3.11(本地开发地址) # 当前环境: 192.168.3.11(本地开发地址)
# 当前环境: 192.168.3.94(本地开发地址)王楠
# 备用环境: 192.168.3.200(服务器地址) # 备用环境: 192.168.3.200(服务器地址)
# 备用环境: 116.204.74.41(公网开发地址) # 备用环境: 116.204.74.41(公网开发地址)
# 备用环境: 172.20.10.7(张哥)
# ============================================================ # ============================================================
# 主服务地址端口8808 # 主服务地址端口8808
# 用途: 系统管理、用户认证、权限控制、模块开通等原有功能 # 用途: 系统管理、用户认证、权限控制、模块开通等原有功能
VITE_API_URL = 'http://192.168.3.94:8808/' VITE_API_URL = 'http://192.168.3.11:8808/'
# 新功能服务地址端口8000 # 新功能服务地址端口8000
# 用途: 资产管理、分类、SKU、订单等新业务模块 # 用途: 资产管理、分类、SKU、订单等新业务模块
VITE_NEW_API_URL = 'http://192.168.3.94:8000/' VITE_NEW_API_URL = 'http://192.168.3.11:8000/'

View File

@@ -12,11 +12,11 @@ export function getCategoryTree(query?: Object) {
} }
// 获取分类详情 // 获取分类详情
export function getCategory(id: string) { export function getCategory(id: number | string) {
return newService({ return newService({
url: '/assets/category/getCategory', url: '/assets/category/getCategory',
method: 'get', method: 'get',
params: { id }, params: { id: id.toString() },
}); });
} }
@@ -56,19 +56,19 @@ export function updateCategory(data: object) {
} }
// 删除分类 // 删除分类
export function deleteCategory(id: string) { export function deleteCategory(id: number | string) {
return newService({ return newService({
url: '/assets/category/deleteCategory', url: '/assets/category/deleteCategory',
method: 'delete', method: 'delete',
params: { id }, params: { id: id.toString() },
}); });
} }
// 更新分类状态 // 更新分类状态
export function updateCategoryStatus(id: string, status: number) { export function updateCategoryStatus(id: number | string, status: number) {
return newService({ return newService({
url: '/assets/category/updateCategoryStatus', url: '/assets/category/updateCategoryStatus',
method: 'put', method: 'put',
data: { id, status }, data: { id: id.toString(), status },
}); });
} }

View File

@@ -3,7 +3,7 @@ import request, { newService } from '/@/utils/request';
//获取账号列表 //获取账号列表
export function getaccountList(data: object) { export function getaccountList(data: object) {
return newService({ return newService({
url: '/customerService/customer/service/account/list', url: '/customer-server/customer/service/account/list',
method: 'get', method: 'get',
params: data, params: data,
}); });
@@ -12,7 +12,7 @@ export function getaccountList(data: object) {
//添加客服账号 //添加客服账号
export function addAccount(data: object) { export function addAccount(data: object) {
return newService({ return newService({
url: '/customerService/customer/service/account/add', url: '/customer-server/customer/service/account/add',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -21,7 +21,7 @@ export function addAccount(data: object) {
//禁用账号 //禁用账号
export function updatestate(data: object) { export function updatestate(data: object) {
return newService({ return newService({
url: '/customerService/customer/service/account/toggleStatus', url: '/customer-server/customer/service/account/toggleStatus',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -30,7 +30,7 @@ export function updatestate(data: object) {
//更新账号 //更新账号
export function updateAccount(data: object) { export function updateAccount(data: object) {
return newService({ return newService({
url: '/customerService/customer/service/account/update', url: '/customer-server/customer/service/account/update',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -39,7 +39,7 @@ export function updateAccount(data: object) {
//获取RAGFlow配置提示词 //获取RAGFlow配置提示词
export function getRAGFlowConfig(params: object) { export function getRAGFlowConfig(params: object) {
return newService({ return newService({
url: '/customerService/ragflow/config/get', url: '/customer-server/ragflow/config/get',
method: 'get', method: 'get',
params: params, params: params,
}); });
@@ -48,7 +48,7 @@ export function getRAGFlowConfig(params: object) {
//更新提示词 //更新提示词
export function updatePrompt(data: object) { export function updatePrompt(data: object) {
return newService({ return newService({
url: '/customerService/ragflow/config/updatePrompt', url: '/customer-server/ragflow/config/updatePrompt',
method: 'post', method: 'post',
data: data, data: data,
}); });

View File

@@ -3,7 +3,7 @@ import request, { newService } from '/@/utils/request';
//添加产品 //添加产品
export function addProduct(data: object) { export function addProduct(data: object) {
return newService({ return newService({
url: '/customerService/product/add', url: '/customer-server/product/add',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -12,7 +12,7 @@ export function addProduct(data: object) {
//删除产品 //删除产品
export function deleteProduct(data: object) { export function deleteProduct(data: object) {
return newService({ return newService({
url: '/customerService/product/delete', url: '/customer-server/product/delete',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -21,7 +21,7 @@ export function deleteProduct(data: object) {
//获取产品列表 //获取产品列表
export function getList(data: object) { export function getList(data: object) {
return newService({ return newService({
url: '/customerService/product/list', url: '/customer-server/product/list',
method: 'get', method: 'get',
params: data, params: data,
}); });
@@ -30,7 +30,7 @@ export function getList(data: object) {
//更新产品 //更新产品
export function updateProduct(data: object) { export function updateProduct(data: object) {
return newService({ return newService({
url: '/customerService/product/update', url: '/customer-server/product/update',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -39,7 +39,7 @@ export function updateProduct(data: object) {
// 导出产品 // 导出产品
export function exportProduct(data: object) { export function exportProduct(data: object) {
return newService({ return newService({
url: '/customerService/product/export', url: '/customer-server/product/export',
responseType: 'blob', responseType: 'blob',
method: 'get', method: 'get',
params: data, params: data,
@@ -49,7 +49,7 @@ export function exportProduct(data: object) {
//导入产品 //导入产品
export function importProduct(data: FormData) { export function importProduct(data: FormData) {
return newService({ return newService({
url: '/customerService/product/import', url: '/customer-server/product/import',
method: 'post', method: 'post',
data: data, data: data,
headers: { headers: {

View File

@@ -3,7 +3,7 @@ import request, { newService } from '/@/utils/request';
//获取数据列表 //获取数据列表
export function getDataList(data: object) { export function getDataList(data: object) {
return newService({ return newService({
url: '/customerService/data/statistics/list', url: '/customer-server/data/statistics/list',
method: 'get', method: 'get',
params: data, params: data,
}); });
@@ -12,7 +12,7 @@ export function getDataList(data: object) {
// 导出报表 // 导出报表
export function exportReport(data: object) { export function exportReport(data: object) {
return newService({ return newService({
url: '/customerService/data/statistics/export', url: '/customer-server/data/statistics/export',
responseType: 'blob', responseType: 'blob',
method: 'get', method: 'get',
params: data, params: data,

View File

@@ -3,7 +3,7 @@ import request, { newService } from '/@/utils/request';
//获取话术列表 //获取话术列表
export function getscriptList(data: object) { export function getscriptList(data: object) {
return newService({ return newService({
url: '/customerService/speechcraft/list', url: '/customer-server/speechcraft/list',
method: 'get', method: 'get',
params: data, params: data,
}); });
@@ -12,7 +12,7 @@ export function getscriptList(data: object) {
//增加话术 //增加话术
export function addScript(data: object) { export function addScript(data: object) {
return newService({ return newService({
url: '/customerService/speechcraft/add', url: '/customer-server/speechcraft/add',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -21,7 +21,7 @@ export function addScript(data: object) {
//删除话术列表 //删除话术列表
export function deleteScript(data: object) { export function deleteScript(data: object) {
return newService({ return newService({
url: '/customerService/speechcraft/delete', url: '/customer-server/speechcraft/delete',
method: 'post', method: 'post',
data: data, data: data,
}); });
@@ -30,7 +30,7 @@ export function deleteScript(data: object) {
//更新话术列表 //更新话术列表
export function updateScript(data: object) { export function updateScript(data: object) {
return newService({ return newService({
url: '/customerService/speechcraft/update', url: '/customer-server/speechcraft/update',
method: 'post', method: 'post',
data: data, data: data,
}); });

View File

@@ -9,7 +9,7 @@ export function getConfigList(query:Object) {
}) })
} }
export function getConfig(id:number) { export function getConfig(id:string) {
return request({ return request({
url: '/api/v1/system/config/get', url: '/api/v1/system/config/get',
method: 'get', method: 'get',
@@ -33,7 +33,7 @@ export function editConfig(data:any) {
}) })
} }
export function deleteConfig(ids:number[]) { export function deleteConfig(ids:string[]) {
return request({ return request({
url: '/api/v1/system/config/delete', url: '/api/v1/system/config/delete',
method: 'delete', method: 'delete',

View File

@@ -9,7 +9,7 @@ export function listSysUserOnline(query:object) {
}) })
} }
export function forceLogout(ids:number[]) { export function forceLogout(ids:string[]) {
return request({ return request({
url: '/api/v1/system/online/forceLogout', url: '/api/v1/system/online/forceLogout',
method: 'delete', method: 'delete',

View File

@@ -23,7 +23,7 @@ export function addRole(data:object) {
}) })
} }
export function getRole(id:number) { export function getRole(id:string) {
return request({ return request({
url: '/api/v1/system/role/get', url: '/api/v1/system/role/get',
method: 'get', method: 'get',
@@ -41,7 +41,7 @@ export function editRole(data:object) {
} }
export function deleteRole(id:number) { export function deleteRole(id:string) {
return request({ return request({
url: '/api/v1/system/role/delete', url: '/api/v1/system/role/delete',
method: 'delete', method: 'delete',
@@ -59,7 +59,7 @@ export function dataScope(data:any) {
// 根据角色ID查询部门树结构 // 根据角色ID查询部门树结构
export function roleDeptTreeSelect(roleId:number) { export function roleDeptTreeSelect(roleId:string) {
return request({ return request({
url: '/api/v1/system/role/deptTreeSelect', url: '/api/v1/system/role/deptTreeSelect',
method: 'get', method: 'get',

View File

@@ -163,7 +163,7 @@ interface DictValue {
} }
interface RuleForm { interface RuleForm {
id: string; id: string | '';
parentId: string; parentId: string;
name: string; name: string;
sort: number; sort: number;
@@ -186,7 +186,7 @@ const dictLoading = ref(false);
const categoryFormDiff = createFormDiff<Record<string, any>>(); const categoryFormDiff = createFormDiff<Record<string, any>>();
const ruleForm = reactive<RuleForm>({ const ruleForm = reactive<RuleForm>({
id: '', id: '',
parentId: '', parentId: '',
name: '', name: '',
sort: 0, sort: 0,
@@ -324,7 +324,18 @@ const openDialog = (row?: CategoryRow | string, edit?: boolean) => {
// 获取分类树数据 // 获取分类树数据
getCategoryTree().then((res: any) => { getCategoryTree().then((res: any) => {
categoryData.value = res.data?.tree ?? []; const tree = res.data?.tree ?? [];
// 递归函数将所有id字段转换为字符串
const convertIdsToString = (items: any[]): any[] => {
return items.map(item => ({
...item,
id: item.id?.toString(),
children: item.children && item.children.length > 0 ? convertIdsToString(item.children) : []
}));
};
categoryData.value = convertIdsToString(tree);
}); });
if (row && typeof row === 'object' && edit) { if (row && typeof row === 'object' && edit) {
@@ -439,7 +450,10 @@ const buildSubmitData = () => {
}); });
return { return {
...ruleForm, id: ruleForm.id,
parentId: ruleForm.parentId ?? '',
name: ruleForm.name,
sort: ruleForm.sort,
attrs: processedAttrs, attrs: processedAttrs,
}; };
}; };
@@ -469,8 +483,9 @@ const onSubmit = () => {
submitLoading.value = false; submitLoading.value = false;
}); });
} else { } else {
// 新增模式:传递所有字段 // 新增模式:不传id
addCategory(submitData) const { id, ...rest } = submitData;
addCategory(rest)
.then(() => { .then(() => {
ElMessage.success('添加成功'); ElMessage.success('添加成功');
closeDialog(); closeDialog();

View File

@@ -102,7 +102,18 @@ const getCategoryList = () => {
.then((res: any) => { .then((res: any) => {
// 主类目不做展示直接取主类目的children // 主类目不做展示直接取主类目的children
const tree = res.data?.tree ?? []; const tree = res.data?.tree ?? [];
tableData.data = tree.length > 0 && tree[0].children ? tree[0].children : [];
// 递归函数将所有id字段转换为字符串
const convertIdsToString = (items: any[]): any[] => {
return items.map(item => ({
...item,
id: item.id?.toString(),
children: item.children && item.children.length > 0 ? convertIdsToString(item.children) : []
}));
};
const processedTree = convertIdsToString(tree);
tableData.data = processedTree.length > 0 && processedTree[0].children ? processedTree[0].children : [];
}) })
.catch(() => { .catch(() => {
tableData.data = []; tableData.data = [];

View File

@@ -321,4 +321,4 @@ onMounted(() => {
.inventory-count-page { .inventory-count-page {
padding: 15px; padding: 15px;
} }
</style> </style>

View File

@@ -111,7 +111,7 @@ import { ref, reactive, onMounted } from 'vue';
import { ElMessage, ElMessageBox } from 'element-plus'; import { ElMessage, ElMessageBox } from 'element-plus';
interface VideoItem { interface VideoItem {
id: number; id: string;
name: string; name: string;
thumbnail: string; thumbnail: string;
videoType: string; videoType: string;
@@ -141,7 +141,7 @@ const previewVideo = ref<VideoItem | null>(null);
// 模拟数据 // 模拟数据
const mockData: VideoItem[] = [ const mockData: VideoItem[] = [
{ {
id: 1, id: '1',
name: '商务男性数字人-产品介绍', name: '商务男性数字人-产品介绍',
thumbnail: 'https://picsum.photos/400/225?random=10', thumbnail: 'https://picsum.photos/400/225?random=10',
videoType: 'avatar', videoType: 'avatar',
@@ -154,7 +154,7 @@ const mockData: VideoItem[] = [
createdAt: '2024-01-15 10:30:00', createdAt: '2024-01-15 10:30:00',
}, },
{ {
id: 2, id: '2',
name: '甜美女性数字人-直播带货', name: '甜美女性数字人-直播带货',
thumbnail: 'https://picsum.photos/400/225?random=11', thumbnail: 'https://picsum.photos/400/225?random=11',
videoType: 'avatar', videoType: 'avatar',
@@ -167,7 +167,7 @@ const mockData: VideoItem[] = [
createdAt: '2024-01-14 14:20:00', createdAt: '2024-01-14 14:20:00',
}, },
{ {
id: 3, id: '3',
name: '科技感背景-蓝色粒子', name: '科技感背景-蓝色粒子',
thumbnail: 'https://picsum.photos/400/225?random=12', thumbnail: 'https://picsum.photos/400/225?random=12',
videoType: 'background', videoType: 'background',
@@ -180,7 +180,7 @@ const mockData: VideoItem[] = [
createdAt: '2024-01-13 09:15:00', createdAt: '2024-01-13 09:15:00',
}, },
{ {
id: 4, id: '4',
name: '办公室场景背景', name: '办公室场景背景',
thumbnail: 'https://picsum.photos/400/225?random=13', thumbnail: 'https://picsum.photos/400/225?random=13',
videoType: 'background', videoType: 'background',
@@ -193,7 +193,7 @@ const mockData: VideoItem[] = [
createdAt: '2024-01-12 16:45:00', createdAt: '2024-01-12 16:45:00',
}, },
{ {
id: 5, id: '5',
name: '转场特效-渐变', name: '转场特效-渐变',
thumbnail: 'https://picsum.photos/400/225?random=14', thumbnail: 'https://picsum.photos/400/225?random=14',
videoType: 'material', videoType: 'material',
@@ -206,7 +206,7 @@ const mockData: VideoItem[] = [
createdAt: '2024-01-11 11:00:00', createdAt: '2024-01-11 11:00:00',
}, },
{ {
id: 6, id: '6',
name: '知性女性数字人-新闻播报', name: '知性女性数字人-新闻播报',
thumbnail: 'https://picsum.photos/400/225?random=15', thumbnail: 'https://picsum.photos/400/225?random=15',
videoType: 'avatar', videoType: 'avatar',

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="system-edit-dic-container"> <div class="system-edit-dic-container">
<el-dialog :title="(ruleForm.configId!==0?'修改':'添加')+'参数'" v-model="isShowDialog" width="769px"> <el-dialog :title="(ruleForm.configId!==''?'修改':'添加')+'参数'" v-model="isShowDialog" width="769px">
<el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="90px"> <el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="90px">
<el-form-item label="参数名称" prop="configName"> <el-form-item label="参数名称" prop="configName">
<el-input v-model="ruleForm.configName" placeholder="请输入参数名称" /> <el-input v-model="ruleForm.configName" placeholder="请输入参数名称" />
@@ -27,7 +27,7 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="onCancel" size="default"> </el-button> <el-button @click="onCancel" size="default"> </el-button>
<el-button type="primary" @click="onSubmit" size="default">{{ruleForm.configId!==0?'修 改':'添 加'}}</el-button> <el-button type="primary" @click="onSubmit" size="default">{{ruleForm.configId!==''?'修 改':'添 加'}}</el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@@ -39,7 +39,7 @@ import { reactive, toRefs, defineComponent,ref, unref } from 'vue';
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
import {addConfig, editConfig, getConfig} from "/@/api/system/config"; import {addConfig, editConfig, getConfig} from "/@/api/system/config";
interface RuleFormState { interface RuleFormState {
configId: number; configId: string;
configName: string; configName: string;
configKey: string; configKey: string;
configValue: string; configValue: string;
@@ -65,7 +65,7 @@ export default defineComponent({
const state = reactive<DicState>({ const state = reactive<DicState>({
isShowDialog: false, isShowDialog: false,
ruleForm: { ruleForm: {
configId: 0, configId: '',
configName: '', configName: '',
configKey: '', configKey: '',
configValue: '', configValue: '',
@@ -99,7 +99,7 @@ export default defineComponent({
}; };
const resetForm = ()=>{ const resetForm = ()=>{
state.ruleForm = { state.ruleForm = {
configId: 0, configId: '',
configName: '', configName: '',
configKey: '', configKey: '',
configValue: '', configValue: '',
@@ -121,7 +121,7 @@ export default defineComponent({
if (!formWrap) return; if (!formWrap) return;
formWrap.validate((valid: boolean) => { formWrap.validate((valid: boolean) => {
if (valid) { if (valid) {
if(state.ruleForm.configId!==0){ if(state.ruleForm.configId!==''){
//修改 //修改
editConfig(state.ruleForm).then(()=>{ editConfig(state.ruleForm).then(()=>{
ElMessage.success('参数修改成功'); ElMessage.success('参数修改成功');

View File

@@ -111,7 +111,7 @@ import {deleteConfig, getConfigList} from "/@/api/system/config";
// 定义接口来定义对象的类型 // 定义接口来定义对象的类型
interface TableDataRow { interface TableDataRow {
configId: number; configId: string;
configName: string; configName: string;
configKey: string; configKey: string;
configValue: string, configValue: string,
@@ -120,7 +120,7 @@ interface TableDataRow {
createdAt: string, createdAt: string,
} }
interface TableDataState { interface TableDataState {
ids:number[]; ids:string[];
tableData: { tableData: {
data: Array<TableDataRow>; data: Array<TableDataRow>;
total: number; total: number;
@@ -182,9 +182,9 @@ export default defineComponent({
// 删除参数row 为空表示批量删除) // 删除参数row 为空表示批量删除)
const onRowDel = (row?: TableDataRow | null) => { const onRowDel = (row?: TableDataRow | null) => {
let msg = '你确定要删除所选数据?'; let msg = '你确定要删除所选数据?';
let ids:number[] = [] ; let ids:string[] = [] ;
if(row){ if(row){
msg = `此操作将永久删除用户:${row.configName},是否继续?` msg = `此操作将永久删除用户:"${row.configName}",是否继续?`
ids = [row.configId] ids = [row.configId]
}else{ }else{
ids = state.ids ids = state.ids

View File

@@ -70,13 +70,13 @@ import {ElMessage} from "element-plus";
// 定义接口来定义对象的类型 // 定义接口来定义对象的类型
interface TableDataRow { interface TableDataRow {
deptName: string; deptName: string;
id: number; id: string;
parentId:number; parentId:string;
children?: TableDataRow[]; children?: TableDataRow[];
} }
interface RuleFormState { interface RuleFormState {
deptId:number; deptId:string;
parentId: number; parentId: string;
deptName: string; deptName: string;
orderNum: number; orderNum: number;
leader: string; leader: string;

View File

@@ -63,7 +63,7 @@ import {ElMessageBox, ElMessage, FormInstance} from 'element-plus';
import { forceLogout, listSysUserOnline} from "/@/api/system/monitor/userOnline"; import { forceLogout, listSysUserOnline} from "/@/api/system/monitor/userOnline";
// 定义接口来定义对象的类型 // 定义接口来定义对象的类型
interface TableData { interface TableData {
id: number; id: string;
uuid: string; uuid: string;
token: string; token: string;
createTime: string; createTime: string;
@@ -73,7 +73,7 @@ interface TableData {
os: string; os: string;
} }
interface TableDataState { interface TableDataState {
ids:number[]; ids:string[];
tableData: { tableData: {
data: Array<TableData>; data: Array<TableData>;
total: number; total: number;
@@ -124,7 +124,7 @@ export default defineComponent({
// 删除岗位 // 删除岗位
const onRowDel = (row?: TableData | null) => { const onRowDel = (row?: TableData | null) => {
let msg = '你确定要强制退出用户登录?'; let msg = '你确定要强制退出用户登录?';
let ids:number[] = [] ; let ids:string[] = [] ;
if(row){ if(row){
msg = `将强制用户下线,是否继续?` msg = `将强制用户下线,是否继续?`
ids = [row.id] ids = [row.id]

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="system-edit-role-container"> <div class="system-edit-role-container">
<el-dialog :title="(formData.id === 0 ? '添加' : '修改') + '角色'" v-model="isShowDialog" width="769px"> <el-dialog :title="(formData.id === '' ? '添加' : '修改') + '角色'" v-model="isShowDialog" width="769px">
<el-form ref="formRef" :model="formData" :rules="rules" size="default" label-width="90px"> <el-form ref="formRef" :model="formData" :rules="rules" size="default" label-width="90px">
<el-row :gutter="35"> <el-row :gutter="35">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
@@ -58,7 +58,7 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="onCancel" size="default"> </el-button> <el-button @click="onCancel" size="default"> </el-button>
<el-button type="primary" @click="onSubmit" size="default" :loading="loading">{{ formData.id === 0 ? '新 增' : '修 改' }}</el-button> <el-button type="primary" @click="onSubmit" size="default" :loading="loading">{{ formData.id === '' ? '新 增' : '修 改' }}</el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@@ -73,18 +73,18 @@ import { refreshBackEndControlRoutes } from '/@/router/backEnd';
// 定义接口来定义对象的类型 // 定义接口来定义对象的类型
interface MenuDataTree { interface MenuDataTree {
id: number; id: string;
pid: number; pid: string;
title: string; title: string;
children?: MenuDataTree[]; children?: MenuDataTree[];
} }
interface DialogRow { interface DialogRow {
id: number; id: string;
name: string; name: string;
status: number; status: number;
listOrder: number; listOrder: number;
remark: string; remark: string;
menuIds: Array<number>; menuIds: Array<string>;
} }
interface RoleState { interface RoleState {
loading: boolean; loading: boolean;
@@ -111,7 +111,7 @@ export default defineComponent({
loading: false, loading: false,
isShowDialog: false, isShowDialog: false,
formData: { formData: {
id: 0, id: '',
name: '', name: '',
status: 1, status: 1,
listOrder: 0, listOrder: 0,
@@ -161,7 +161,7 @@ export default defineComponent({
if (valid) { if (valid) {
state.loading = true; state.loading = true;
state.formData.menuIds = getMenuAllCheckedKeys(); state.formData.menuIds = getMenuAllCheckedKeys();
if (state.formData.id === 0) { if (state.formData.id === '') {
//添加 //添加
addRole(state.formData) addRole(state.formData)
.then(() => { .then(() => {
@@ -200,7 +200,7 @@ export default defineComponent({
state.menuExpand = false; state.menuExpand = false;
state.menuNodeAll = false; state.menuNodeAll = false;
state.formData = { state.formData = {
id: 0, id: '',
name: '', name: '',
status: 1, status: 1,
listOrder: 0, listOrder: 0,

View File

@@ -70,7 +70,7 @@ import EditRole from '/@/views/system/role/component/editRole.vue';
import { deleteRole, getRoleList } from '/@/api/system/role'; import { deleteRole, getRoleList } from '/@/api/system/role';
// 定义接口来定义对象的类型 // 定义接口来定义对象的类型
interface TableData { interface TableData {
id: number; id: string;
status: number; status: number;
listOrder: number; listOrder: number;
name: string; name: string;