更新
This commit is contained in:
@@ -116,105 +116,143 @@ const iconCategories = [
|
|||||||
{ key: 'commerce', label: '商务' },
|
{ key: 'commerce', label: '商务' },
|
||||||
]
|
]
|
||||||
|
|
||||||
// Ant Design 图标分类列表
|
// Ant Design 图标分类列表(经过验证存在的图标)
|
||||||
const iconCategoriesMap = {
|
const iconCategoriesMap = {
|
||||||
direction: [
|
direction: [
|
||||||
'ArrowLeftOutlined', 'ArrowRightOutlined', 'ArrowUpOutlined', 'ArrowDownOutlined',
|
'ArrowLeftOutlined', 'ArrowRightOutlined', 'ArrowUpOutlined', 'ArrowDownOutlined',
|
||||||
'LeftOutlined', 'RightOutlined', 'UpOutlined', 'DownOutlined',
|
'LeftOutlined', 'RightOutlined', 'UpOutlined', 'DownOutlined',
|
||||||
'CaretLeftOutlined', 'CaretRightOutlined', 'CaretUpOutlined', 'CaretDownOutlined',
|
'CaretLeftOutlined', 'CaretRightOutlined', 'CaretUpOutlined', 'CaretDownOutlined',
|
||||||
'BackwardOutlined', 'ForwardOutlined', 'FastBackwardOutlined', 'FastForwardOutlined',
|
|
||||||
'ShrinkOutlined', 'ArrowsAltOutlined', 'VerticalAlignTopOutlined', 'VerticalAlignBottomOutlined',
|
|
||||||
'RollbackOutlined', 'EnterOutlined', 'RetweetOutlined', 'SwapOutlined',
|
'RollbackOutlined', 'EnterOutlined', 'RetweetOutlined', 'SwapOutlined',
|
||||||
'SwapLeftOutlined', 'SwapRightOutlined', 'UpCircleOutlined', 'DownCircleOutlined',
|
'SwapLeftOutlined', 'SwapRightOutlined', 'UpCircleOutlined', 'DownCircleOutlined',
|
||||||
'LeftCircleOutlined', 'RightCircleOutlined', 'ArrowRightOutlined', 'ArrowLeftOutlined',
|
'LeftCircleOutlined', 'RightCircleOutlined', 'DoubleRightOutlined', 'DoubleLeftOutlined',
|
||||||
|
'VerticalAlignTopOutlined', 'VerticalAlignBottomOutlined', 'VerticalAlignMiddleOutlined',
|
||||||
|
'FullscreenOutlined', 'FullscreenExitOutlined', 'CompressOutlined', 'ExpandOutlined',
|
||||||
],
|
],
|
||||||
edit: [
|
edit: [
|
||||||
'EditOutlined', 'DeleteOutlined', 'PlusOutlined', 'MinusOutlined',
|
'EditOutlined', 'DeleteOutlined', 'PlusOutlined', 'MinusOutlined',
|
||||||
'CheckOutlined', 'CloseOutlined', 'FormOutlined', 'CopyOutlined',
|
'CheckOutlined', 'CloseOutlined', 'FormOutlined', 'CopyOutlined',
|
||||||
'ScissorOutlined', 'SnippetsOutlined', 'DiffOutlined', 'HighlightOutlined',
|
'ScissorOutlined', 'SnippetsOutlined', 'DiffOutlined', 'HighlightOutlined',
|
||||||
'AlignLeftOutlined', 'AlignCenterOutlined', 'AlignRightOutlined', 'AlignCenterOutlined',
|
'AlignLeftOutlined', 'AlignCenterOutlined', 'AlignRightOutlined',
|
||||||
'BoldOutlined', 'ItalicOutlined', 'UnderlineOutlined', 'StrikethroughOutlined',
|
'BoldOutlined', 'ItalicOutlined', 'UnderlineOutlined',
|
||||||
'RedoOutlined', 'UndoOutlined', 'FileAddOutlined', 'FileSyncOutlined',
|
'RedoOutlined', 'UndoOutlined', 'FileSyncOutlined', 'ExportOutlined',
|
||||||
|
'ImportOutlined', 'FileAddOutlined', 'FolderAddOutlined',
|
||||||
],
|
],
|
||||||
data: [
|
data: [
|
||||||
'DatabaseOutlined', 'CloudOutlined', 'CloudServerOutlined', 'CloudUploadOutlined',
|
'DatabaseOutlined', 'CloudOutlined', 'CloudUploadOutlined',
|
||||||
'CloudDownloadOutlined', 'DatabaseOutlined', 'HddOutlined', 'ServerOutlined',
|
'CloudDownloadOutlined', 'HddOutlined', 'ServerOutlined',
|
||||||
'ReconciliationOutlined', 'AccountBookOutlined', 'AuditOutlined', 'BarChartOutlined',
|
'ReconciliationOutlined', 'AccountBookOutlined', 'AuditOutlined',
|
||||||
'AreaChartOutlined', 'DotChartOutlined', 'LineChartOutlined', 'PieChartOutlined',
|
'BarChartOutlined', 'AreaChartOutlined', 'DotChartOutlined',
|
||||||
'FundOutlined', 'SlidersOutlined', 'ControlOutlined', 'ExperimentOutlined',
|
'LineChartOutlined', 'PieChartOutlined', 'FundOutlined',
|
||||||
'ProjectOutlined', 'NodeIndexOutlined', 'PartitionOutlined', 'ApartmentOutlined',
|
'SlidersOutlined', 'ControlOutlined', 'ExperimentOutlined',
|
||||||
|
'ProjectOutlined', 'PartitionOutlined', 'ApartmentOutlined',
|
||||||
|
'BlockOutlined', 'FunctionOutlined',
|
||||||
],
|
],
|
||||||
media: [
|
media: [
|
||||||
'PictureOutlined', 'VideoCameraOutlined', 'AudioOutlined', 'FileImageOutlined',
|
'PictureOutlined', 'VideoCameraOutlined', 'AudioOutlined',
|
||||||
'FilePdfOutlined', 'FileWordOutlined', 'FileExcelOutlined', 'FileZipOutlined',
|
'FileImageOutlined', 'FilePdfOutlined', 'FileWordOutlined',
|
||||||
|
'FileExcelOutlined', 'FileZipOutlined', 'FilePptOutlined',
|
||||||
'FolderOutlined', 'FolderOpenOutlined', 'FileTextOutlined', 'FileOutlined',
|
'FolderOutlined', 'FolderOpenOutlined', 'FileTextOutlined', 'FileOutlined',
|
||||||
'FileMarkdownOutlined', 'FileUnknownOutlined', 'FilePptOutlined', 'FileAddOutlined',
|
'FileMarkdownOutlined', 'FileUnknownOutlined',
|
||||||
'CameraOutlined', 'QrcodeOutlined', 'BarcodeOutlined', 'ScanOutlined',
|
'CameraOutlined', 'QrcodeOutlined', 'BarcodeOutlined',
|
||||||
'MusicOutlined', 'SoundOutlined', 'CustomerServiceOutlined', 'MessageOutlined',
|
'SoundOutlined', 'CustomerServiceOutlined',
|
||||||
],
|
],
|
||||||
user: [
|
user: [
|
||||||
'UserOutlined', 'UsergroupAddOutlined', 'UsergroupDeleteOutlined', 'TeamOutlined',
|
'UserOutlined', 'UsergroupAddOutlined', 'UsergroupDeleteOutlined', 'TeamOutlined',
|
||||||
'SolutionOutlined', 'ContactsOutlined', 'IdcardOutlined', 'ProfileOutlined',
|
'SolutionOutlined', 'ContactsOutlined', 'IdcardOutlined', 'ProfileOutlined',
|
||||||
'AliwangwangOutlined', 'SmileOutlined', 'MehOutlined', 'FrownOutlined',
|
'SmileOutlined', 'MehOutlined', 'FrownOutlined',
|
||||||
'HeartOutlined', 'StarOutlined', 'LikeOutlined', 'DislikeOutlined',
|
'HeartOutlined', 'StarOutlined', 'LikeOutlined', 'DislikeOutlined',
|
||||||
'ThumbUpOutlined', 'SkypeOutlined', 'GithubOutlined', 'WechatOutlined',
|
'ThumbUpOutlined', 'MessageOutlined', 'MailOutlined', 'PhoneOutlined',
|
||||||
'TwitterOutlined', 'WeiboOutlined', 'FacebookOutlined', 'GoogleOutlined',
|
|
||||||
],
|
],
|
||||||
system: [
|
system: [
|
||||||
'SettingOutlined', 'HomeOutlined', 'DashboardOutlined', 'AppstoreOutlined',
|
'SettingOutlined', 'HomeOutlined', 'DashboardOutlined', 'AppstoreOutlined',
|
||||||
'MenuFoldOutlined', 'MenuUnfoldOutlined', 'BarsOutlined', 'MoreOutlined',
|
'MenuFoldOutlined', 'MenuUnfoldOutlined', 'BarsOutlined', 'MoreOutlined',
|
||||||
'BellOutlined', 'NotificationOutlined', 'AlertOutlined', 'WarningOutlined',
|
'BellOutlined', 'AlertOutlined', 'WarningOutlined',
|
||||||
'CheckCircleOutlined', 'CloseCircleOutlined', 'ExclamationCircleOutlined', 'InfoCircleOutlined',
|
'CheckCircleOutlined', 'CloseCircleOutlined', 'ExclamationCircleOutlined',
|
||||||
'QuestionCircleOutlined', 'SafetyOutlined', 'SecurityScanOutlined', 'ShieldCheckOutlined',
|
'InfoCircleOutlined', 'QuestionCircleOutlined', 'StopOutlined',
|
||||||
'LockOutlined', 'UnlockOutlined', 'KeyOutlined', 'EyeOutlined', 'EyeInvisibleOutlined',
|
'SafetyOutlined', 'LockOutlined', 'UnlockOutlined', 'KeyOutlined',
|
||||||
'LogoutOutlined', 'LoginOutlined', 'MobileOutlined', 'LaptopOutlined', 'DesktopOutlined',
|
'EyeOutlined', 'EyeInvisibleOutlined',
|
||||||
'ThunderboltOutlined', 'WifiOutlined', 'BluetoothOutlined', 'ApiOutlined',
|
'LogoutOutlined', 'LoginOutlined', 'MobileOutlined',
|
||||||
'BugOutlined', 'BuildOutlined', 'CodeOutlined', 'CodeSandboxOutlined',
|
'ThunderboltOutlined', 'WifiOutlined', 'ApiOutlined',
|
||||||
'FunctionOutlined', 'ConsoleSqlOutlined', 'ApiOutlined',
|
'BugOutlined', 'BuildOutlined', 'CodeOutlined',
|
||||||
|
'PoweroffOutlined', 'HourglassOutlined', 'SyncOutlined',
|
||||||
],
|
],
|
||||||
commerce: [
|
commerce: [
|
||||||
'ShoppingCartOutlined', 'ShoppingOutlined', 'GiftOutlined', 'GoldOutlined',
|
'ShoppingCartOutlined', 'ShoppingOutlined', 'GiftOutlined', 'GoldOutlined',
|
||||||
'CrownOutlined', 'MedalOutlined', 'TrophyOutlined', 'DiamondOutlined',
|
'CrownOutlined', 'MedalOutlined', 'TrophyOutlined', 'DiamondOutlined',
|
||||||
'BankOutlined', 'CreditCardOutlined', 'PayCircleOutlined', 'WalletOutlined',
|
'BankOutlined', 'CreditCardOutlined', 'PayCircleOutlined', 'WalletOutlined',
|
||||||
'MoneyCollectOutlined', 'TransactionOutlined', 'DollarOutlined', 'EuroOutlined',
|
'MoneyCollectOutlined', 'DollarOutlined', 'EuroOutlined', 'PoundOutlined',
|
||||||
'PoundOutlined', 'YenOutlined', 'GiftFilledOutlined', 'RocketOutlined',
|
'YenOutlined', 'GiftFilledOutlined', 'RocketOutlined',
|
||||||
'FireOutlined', 'ThunderboltTwoTone', 'BulbOutlined', 'SafetyCertificateOutlined',
|
'FireOutlined', 'BulbOutlined', 'SafetyCertificateOutlined',
|
||||||
|
'ShopOutlined', 'ShoppingBagOutlined', 'InsuranceOutlined',
|
||||||
],
|
],
|
||||||
all: [
|
all: [
|
||||||
|
// 导航和布局
|
||||||
'HomeOutlined', 'DashboardOutlined', 'AppstoreOutlined', 'BarsOutlined',
|
'HomeOutlined', 'DashboardOutlined', 'AppstoreOutlined', 'BarsOutlined',
|
||||||
'MenuFoldOutlined', 'MenuUnfoldOutlined', 'MoreOutlined', 'EllipsisOutlined',
|
'MenuFoldOutlined', 'MenuUnfoldOutlined', 'MoreOutlined', 'EllipsisOutlined',
|
||||||
|
// 用户
|
||||||
'UserOutlined', 'TeamOutlined', 'UsergroupAddOutlined', 'UsergroupDeleteOutlined',
|
'UserOutlined', 'TeamOutlined', 'UsergroupAddOutlined', 'UsergroupDeleteOutlined',
|
||||||
'SettingOutlined', 'ControlOutlined', 'ToolOutlined', 'BuildOutlined',
|
'SolutionOutlined', 'ContactsOutlined', 'IdcardOutlined', 'ProfileOutlined',
|
||||||
|
// 设置
|
||||||
|
'SettingOutlined', 'ControlOutlined', 'BuildOutlined', 'ToolOutlined',
|
||||||
|
// 搜索和过滤
|
||||||
'SearchOutlined', 'FilterOutlined', 'SortAscendingOutlined', 'SortDescendingOutlined',
|
'SearchOutlined', 'FilterOutlined', 'SortAscendingOutlined', 'SortDescendingOutlined',
|
||||||
'ReloadOutlined', 'SyncOutlined', 'RedoOutlined', 'UndoOutlined',
|
'ReloadOutlined', 'SyncOutlined', 'RedoOutlined', 'UndoOutlined',
|
||||||
|
// 编辑
|
||||||
'EditOutlined', 'DeleteOutlined', 'PlusOutlined', 'MinusOutlined',
|
'EditOutlined', 'DeleteOutlined', 'PlusOutlined', 'MinusOutlined',
|
||||||
'CheckOutlined', 'CloseOutlined', 'CheckCircleOutlined', 'CloseCircleOutlined',
|
'CheckOutlined', 'CloseOutlined', 'CheckCircleOutlined', 'CloseCircleOutlined',
|
||||||
|
'FormOutlined', 'CopyOutlined', 'ScissorOutlined',
|
||||||
|
// 方向
|
||||||
'ArrowLeftOutlined', 'ArrowRightOutlined', 'ArrowUpOutlined', 'ArrowDownOutlined',
|
'ArrowLeftOutlined', 'ArrowRightOutlined', 'ArrowUpOutlined', 'ArrowDownOutlined',
|
||||||
'LeftOutlined', 'RightOutlined', 'UpOutlined', 'DownOutlined',
|
'LeftOutlined', 'RightOutlined', 'UpOutlined', 'DownOutlined',
|
||||||
'FileTextOutlined', 'FileOutlined', 'FolderOutlined', 'FolderOpenOutlined',
|
'CaretLeftOutlined', 'CaretRightOutlined', 'CaretUpOutlined', 'CaretDownOutlined',
|
||||||
|
'RollbackOutlined', 'EnterOutlined', 'SwapOutlined',
|
||||||
|
'UpCircleOutlined', 'DownCircleOutlined', 'LeftCircleOutlined', 'RightCircleOutlined',
|
||||||
|
// 文件
|
||||||
|
'FileTextOutlined', 'FileOutlined', 'FileAddOutlined', 'FileExcelOutlined',
|
||||||
|
'FilePdfOutlined', 'FileWordOutlined', 'FilePptOutlined', 'FileImageOutlined',
|
||||||
|
'FileUnknownOutlined', 'FileMarkdownOutlined', 'FileZipOutlined',
|
||||||
|
'FolderOutlined', 'FolderAddOutlined', 'FolderOpenOutlined',
|
||||||
|
// 媒体
|
||||||
'PictureOutlined', 'VideoCameraOutlined', 'AudioOutlined', 'CameraOutlined',
|
'PictureOutlined', 'VideoCameraOutlined', 'AudioOutlined', 'CameraOutlined',
|
||||||
|
'SoundOutlined', 'QrcodeOutlined', 'BarcodeOutlined',
|
||||||
|
// 时间
|
||||||
'CalendarOutlined', 'ClockCircleOutlined', 'HistoryOutlined', 'FieldTimeOutlined',
|
'CalendarOutlined', 'ClockCircleOutlined', 'HistoryOutlined', 'FieldTimeOutlined',
|
||||||
|
'HourglassOutlined', 'CarryOutOutlined',
|
||||||
|
// 社交
|
||||||
'HeartOutlined', 'StarOutlined', 'LikeOutlined', 'DislikeOutlined',
|
'HeartOutlined', 'StarOutlined', 'LikeOutlined', 'DislikeOutlined',
|
||||||
'MessageOutlined', 'MailOutlined', 'PhoneOutlined', 'WechatOutlined',
|
'ThumbUpOutlined', 'MessageOutlined', 'MailOutlined', 'PhoneOutlined',
|
||||||
|
'SmileOutlined', 'MehOutlined', 'FrownOutlined',
|
||||||
|
// 位置
|
||||||
'EnvironmentOutlined', 'GlobalOutlined', 'CompassOutlined', 'MapOutlined',
|
'EnvironmentOutlined', 'GlobalOutlined', 'CompassOutlined', 'MapOutlined',
|
||||||
|
// 安全
|
||||||
'LockOutlined', 'UnlockOutlined', 'KeyOutlined', 'SafetyOutlined',
|
'LockOutlined', 'UnlockOutlined', 'KeyOutlined', 'SafetyOutlined',
|
||||||
'EyeOutlined', 'EyeInvisibleOutlined', 'VisibilityOutlined', 'EyeFilled',
|
'EyeOutlined', 'EyeInvisibleOutlined', 'SafetyCertificateOutlined',
|
||||||
'BellOutlined', 'NotificationOutlined', 'AlertOutlined', 'WarningOutlined',
|
// 通知
|
||||||
|
'BellOutlined', 'AlertOutlined', 'WarningOutlined',
|
||||||
'InfoCircleOutlined', 'QuestionCircleOutlined', 'ExclamationCircleOutlined', 'StopOutlined',
|
'InfoCircleOutlined', 'QuestionCircleOutlined', 'ExclamationCircleOutlined', 'StopOutlined',
|
||||||
|
// 云和数据
|
||||||
'DatabaseOutlined', 'CloudOutlined', 'HddOutlined', 'ServerOutlined',
|
'DatabaseOutlined', 'CloudOutlined', 'HddOutlined', 'ServerOutlined',
|
||||||
'WifiOutlined', 'BluetoothOutlined', 'ApiOutlined', 'CodeOutlined',
|
'CloudUploadOutlined', 'CloudDownloadOutlined',
|
||||||
'LaptopOutlined', 'MobileOutlined', 'TabletOutlined', 'DesktopOutlined',
|
// 设备
|
||||||
|
'WifiOutlined', 'ApiOutlined', 'CodeOutlined', 'LaptopOutlined',
|
||||||
|
'MobileOutlined', 'TabletOutlined', 'DesktopOutlined',
|
||||||
|
// 状态
|
||||||
'ThunderboltOutlined', 'BulbOutlined', 'FireOutlined', 'ExperimentOutlined',
|
'ThunderboltOutlined', 'BulbOutlined', 'FireOutlined', 'ExperimentOutlined',
|
||||||
'ShoppingCartOutlined', 'ShoppingOutlined', 'GiftOutlined', 'WalletOutlined',
|
'CheckSquareOutlined', 'MinusSquareOutlined', 'CloseSquareOutlined',
|
||||||
'CreditCardOutlined', 'BankOutlined', 'PayCircleOutlined', 'MoneyCollectOutlined',
|
// 商务
|
||||||
'MedalOutlined', 'TrophyOutlined', 'CrownOutlined', 'GoldOutlined',
|
'ShoppingCartOutlined', 'ShoppingOutlined', 'ShoppingBagOutlined', 'ShopOutlined',
|
||||||
|
'GiftOutlined', 'GiftFilledOutlined', 'WalletOutlined',
|
||||||
|
'CreditCardOutlined', 'BankOutlined', 'PayCircleOutlined',
|
||||||
|
'MoneyCollectOutlined', 'DollarOutlined', 'EuroOutlined', 'PoundOutlined', 'YenOutlined',
|
||||||
|
// 奖项
|
||||||
|
'MedalOutlined', 'TrophyOutlined', 'CrownOutlined', 'GoldOutlined', 'DiamondOutlined',
|
||||||
|
// 其他
|
||||||
'RocketOutlined', 'FundOutlined', 'PieChartOutlined', 'BarChartOutlined',
|
'RocketOutlined', 'FundOutlined', 'PieChartOutlined', 'BarChartOutlined',
|
||||||
'AreaChartOutlined', 'LineChartOutlined', 'DotChartOutlined',
|
'AreaChartOutlined', 'LineChartOutlined', 'DotChartOutlined',
|
||||||
'FileAddOutlined', 'FileExcelOutlined', 'FilePdfOutlined', 'FileWordOutlined',
|
|
||||||
'UploadOutlined', 'DownloadOutlined', 'ImportOutlined', 'ExportOutlined',
|
'UploadOutlined', 'DownloadOutlined', 'ImportOutlined', 'ExportOutlined',
|
||||||
'CopyOutlined', 'ScanOutlined', 'QrcodeOutlined', 'BarcodeOutlined',
|
'ScanOutlined', 'PrinterOutlined', 'RetweetOutlined', 'SwapOutlined',
|
||||||
'PrinterOutlined', 'RetweetOutlined', 'SwapOutlined', 'ShareAltOutlined',
|
'ShareAltOutlined', 'PoweroffOutlined', 'LoginOutlined', 'LogoutOutlined',
|
||||||
'ApiOutlined', 'CodeSandboxOutlined', 'ConsoleSqlOutlined', 'FunctionOutlined',
|
'BugOutlined', 'HourglassOutlined',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:open="visible"
|
:open="visible"
|
||||||
:title="isEdit ? '编辑配置' : '新增配置'"
|
:title="isEdit ? '编辑配置' : '新增配置'"
|
||||||
:width="600"
|
:width="600"
|
||||||
:confirm-loading="loading"
|
:confirm-loading="loading"
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, computed, watch } from 'vue'
|
import { ref, reactive, computed, watch } from 'vue'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import { systemApi } from '@/api/system'
|
import systemApi from '@/api/system'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
visible: Boolean,
|
visible: Boolean,
|
||||||
@@ -211,44 +211,6 @@ const parsedOptions = computed(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// 监听record变化,初始化表单
|
|
||||||
watch(
|
|
||||||
() => props.record,
|
|
||||||
(newRecord) => {
|
|
||||||
if (newRecord) {
|
|
||||||
// 编辑模式
|
|
||||||
Object.assign(formData, {
|
|
||||||
group: newRecord.group || 'system',
|
|
||||||
key: newRecord.key || '',
|
|
||||||
name: newRecord.name || '',
|
|
||||||
type: newRecord.type || 'string',
|
|
||||||
value: parseValueByType(newRecord.value, newRecord.type),
|
|
||||||
options: newRecord.options,
|
|
||||||
sort: newRecord.sort || 0,
|
|
||||||
status: newRecord.status ?? 1,
|
|
||||||
description: newRecord.description || '',
|
|
||||||
is_system: newRecord.is_system || false
|
|
||||||
})
|
|
||||||
|
|
||||||
// 解析选项
|
|
||||||
if (newRecord.options && typeof newRecord.options === 'object') {
|
|
||||||
optionsText.value = newRecord.options
|
|
||||||
.map((opt) => {
|
|
||||||
if (typeof opt === 'object') {
|
|
||||||
return `${opt.label}:${opt.value}`
|
|
||||||
}
|
|
||||||
return opt
|
|
||||||
})
|
|
||||||
.join('\n')
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 新增模式,重置表单
|
|
||||||
resetForm()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ immediate: true }
|
|
||||||
)
|
|
||||||
|
|
||||||
// 根据类型解析值
|
// 根据类型解析值
|
||||||
const parseValueByType = (value, type) => {
|
const parseValueByType = (value, type) => {
|
||||||
if (!value) return value
|
if (!value) return value
|
||||||
@@ -289,6 +251,44 @@ const resetForm = () => {
|
|||||||
formRef.value?.clearValidate()
|
formRef.value?.clearValidate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 监听record变化,初始化表单
|
||||||
|
watch(
|
||||||
|
() => props.record,
|
||||||
|
(newRecord) => {
|
||||||
|
if (newRecord) {
|
||||||
|
// 编辑模式
|
||||||
|
Object.assign(formData, {
|
||||||
|
group: newRecord.group || 'system',
|
||||||
|
key: newRecord.key || '',
|
||||||
|
name: newRecord.name || '',
|
||||||
|
type: newRecord.type || 'string',
|
||||||
|
value: parseValueByType(newRecord.value, newRecord.type),
|
||||||
|
options: newRecord.options,
|
||||||
|
sort: newRecord.sort || 0,
|
||||||
|
status: newRecord.status ?? 1,
|
||||||
|
description: newRecord.description || '',
|
||||||
|
is_system: newRecord.is_system || false
|
||||||
|
})
|
||||||
|
|
||||||
|
// 解析选项
|
||||||
|
if (newRecord.options && typeof newRecord.options === 'object') {
|
||||||
|
optionsText.value = newRecord.options
|
||||||
|
.map((opt) => {
|
||||||
|
if (typeof opt === 'object') {
|
||||||
|
return `${opt.label}:${opt.value}`
|
||||||
|
}
|
||||||
|
return opt
|
||||||
|
})
|
||||||
|
.join('\n')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 新增模式,重置表单
|
||||||
|
resetForm()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true }
|
||||||
|
)
|
||||||
|
|
||||||
// 添加自定义分组
|
// 添加自定义分组
|
||||||
const handleAddCustomGroup = () => {
|
const handleAddCustomGroup = () => {
|
||||||
if (!customGroup.value) {
|
if (!customGroup.value) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="pages system-configs-page">
|
<div class="pages-base-layout system-configs-page">
|
||||||
<div class="tool-bar">
|
<div class="tool-bar">
|
||||||
<div class="left-panel">
|
<div class="left-panel">
|
||||||
<a-space>
|
<a-space>
|
||||||
@@ -129,8 +129,9 @@ import {
|
|||||||
EditOutlined,
|
EditOutlined,
|
||||||
FileOutlined
|
FileOutlined
|
||||||
} from '@ant-design/icons-vue'
|
} from '@ant-design/icons-vue'
|
||||||
|
import scTable from '@/components/scTable/index.vue'
|
||||||
import { useTable } from '@/hooks/useTable'
|
import { useTable } from '@/hooks/useTable'
|
||||||
import { systemApi } from '@/api/system'
|
import systemApi from '@/api/system'
|
||||||
import SaveDialog from './components/SaveDialog.vue'
|
import SaveDialog from './components/SaveDialog.vue'
|
||||||
|
|
||||||
// 表格引用
|
// 表格引用
|
||||||
@@ -380,8 +381,6 @@ onMounted(() => {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.system-configs-page {
|
.system-configs-page {
|
||||||
@extend .pages-base-layout;
|
|
||||||
|
|
||||||
.value-text {
|
.value-text {
|
||||||
color: #666;
|
color: #666;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
|
|||||||
Reference in New Issue
Block a user