diff --git a/config/defaultIcon.ts b/config/defaultIcon.ts index 42ee906..b9fc3ae 100644 --- a/config/defaultIcon.ts +++ b/config/defaultIcon.ts @@ -2,7 +2,7 @@ * @Author: zhoux zhouxia@supervision.ltd * @Date: 2023-11-28 14:13:05 * @LastEditors: zhoux zhouxia@supervision.ltd - * @LastEditTime: 2023-11-28 14:16:48 + * @LastEditTime: 2023-12-22 16:17:35 * @FilePath: \general-ai-platform-web\config\defaultIcon.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A */ @@ -30,3 +30,9 @@ export const proIconSelectStyle: React.CSSProperties = { borderRadius: 4, overflowY: 'scroll', }; + +// 列表图标统一样式 + +export const proIconForTableActionStyle : React.CSSProperties = { + fontSize: 16, +} \ No newline at end of file diff --git a/src/components/RightContent/index.tsx b/src/components/RightContent/index.tsx index 4418bb9..90191d5 100644 --- a/src/components/RightContent/index.tsx +++ b/src/components/RightContent/index.tsx @@ -50,7 +50,7 @@ export const SelectRole = () => { { currentUser && ( <Select - defaultValue={currentUser.roleId} + value={currentUser.roleId} options={currentUser?.roles || []} onSelect={value => { postUserSetUserRole({roleId: value}).then((resp) => { diff --git a/src/components/TableActionCard/isDelete.tsx b/src/components/TableActionCard/isDelete.tsx index b6bde41..b200168 100644 --- a/src/components/TableActionCard/isDelete.tsx +++ b/src/components/TableActionCard/isDelete.tsx @@ -2,7 +2,7 @@ * @Author: zhoux zhouxia@supervision.ltd * @Date: 2023-11-16 14:30:15 * @LastEditors: zhoux zhouxia@supervision.ltd - * @LastEditTime: 2023-12-19 16:30:51 + * @LastEditTime: 2023-12-22 16:17:17 * @FilePath: \general-ai-platform-web\src\components\BatchOperation\isBatchDelete.tsx * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -10,6 +10,7 @@ import { DeleteOutlined } from '@ant-design/icons'; import { useIntl } from '@umijs/max'; import { Button, Popconfirm } from 'antd'; +import { proIconForTableActionStyle } from '../../../config/defaultIcon'; import { FormattedMessage } from 'react-intl'; type IsDeleteProps = { @@ -39,7 +40,8 @@ const IsDelete: React.FC<IsDeleteProps> = (props) => { {props.buttonType === 'deleteIcon' ? ( <> <DeleteOutlined style={{ - color: "rgba(232, 13, 13, 1)" + color: "rgba(232, 13, 13, 1)", + ...proIconForTableActionStyle }} /> </> ) : ( diff --git a/src/enums/status.ts b/src/enums/status.ts index d803349..ace5bad 100644 --- a/src/enums/status.ts +++ b/src/enums/status.ts @@ -2,7 +2,7 @@ * @Author: zhoux zhouxia@supervision.ltd * @Date: 2023-12-08 14:50:08 * @LastEditors: zhoux zhouxia@supervision.ltd - * @LastEditTime: 2023-12-20 13:25:59 + * @LastEditTime: 2023-12-22 16:45:22 * @FilePath: \general-ai-platform-web\src\enums\status.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -86,44 +86,44 @@ export const resourceDeviceStatusEnums: Record<string, any> = { export const alarmLevelStatusEnum: Record<string, any>[] = [ { color: 'rgba(232, 13, 13, 1)', - defaultValue: '1', - defaultLabel: '紧急', + value: '1', + label: '紧急', isDelete: false, icon: 'ArrowUpOutlined', id: '1', }, { color: 'rgba(255, 136, 0, 1)', - defaultValue: '2', - defaultLabel: '较高', + value: '2', + label: '较高', isDelete: false, id: '2', }, { color: 'rgba(68, 139, 245, 1)', - defaultValue: '3', - defaultLabel: '一般', + value: '3', + label: '一般', isDelete: false, id: '3', }, { color: 'rgba(179, 214, 0, 1)', - defaultValue: '4', - defaultLabel: '低', + value: '4', + label: '低', isDelete: true, id: '4', }, { color: 'rgba(81, 177, 6, 1)', - defaultValue: '5', - defaultLabel: '较低', + value: '5', + label: '较低', isDelete: true, id: '5', }, { color: 'rgba(43, 183, 136, 1)', - defaultValue: '6', - defaultLabel: '非常低', + value: '6', + label: '非常低', isDelete: true, id: '6', }, diff --git a/src/global.css b/src/global.css index 8d12fbc..9c37e64 100644 --- a/src/global.css +++ b/src/global.css @@ -268,12 +268,17 @@ a.ant-dropdown-trigger { padding-left: 12px; } .gn .ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap .ant-tabs-nav-list { - padding: 0 16px; margin-block-start: 0; } +.gn .ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap .ant-tabs-nav-list .ant-tabs-tab-btn { + padding: 0 16px; +} .gn .ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap .ant-tabs-nav-list .ant-tabs-tab-active { font-weight: 400; } +.gn .ant-tabs > .ant-tabs-nav .ant-tabs-nav-wrap .ant-tabs-tab + .ant-tabs-tab { + margin: 0 0 0 12px; +} .gn .ant-tabs .ant-tabs-tab .anticon { margin-right: 4px; } @@ -368,3 +373,6 @@ a.ant-dropdown-trigger { .innerFormList_box .ant-form-item { margin-bottom: 12px; } +.form_checkBox_wrap .ant-pro-form-group-container { + gap: 0 4px !important; +} diff --git a/src/global.less b/src/global.less index cf7cc7a..7f48f2b 100644 --- a/src/global.less +++ b/src/global.less @@ -330,12 +330,19 @@ a.ant-dropdown-trigger{ .ant-tabs >.ant-tabs-nav .ant-tabs-nav-wrap{ .ant-tabs-nav-list{ - padding: 0 16px; + .ant-tabs-tab-btn{ + padding: 0 16px; + + } margin-block-start: 0; .ant-tabs-tab-active{ font-weight: 400 } } + .ant-tabs-tab+.ant-tabs-tab { + margin: 0 0 0 12px; + } + } .ant-tabs .ant-tabs-tab .anticon { @@ -490,6 +497,12 @@ a.ant-dropdown-trigger{ } } +.form_checkBox_wrap{ + .ant-pro-form-group-container{ + gap: 0 4px !important; + } +} + diff --git a/src/hooks/useAlarmSettingLevel.ts b/src/hooks/useAlarmSettingLevel.ts new file mode 100644 index 0000000..2e83ed0 --- /dev/null +++ b/src/hooks/useAlarmSettingLevel.ts @@ -0,0 +1,52 @@ +import { alarmLevelStatusEnum } from '@/enums/status'; +import { localStorageKeyEnums } from '@/enums/storage'; + +/* + * @Author: zhoux zhouxia@supervision.ltd + * @Date: 2023-12-22 16:39:33 + * @LastEditors: zhoux zhouxia@supervision.ltd + * @LastEditTime: 2023-12-22 16:49:36 + * @FilePath: \general-ai-platform-web\src\hooks\useAlarmSettingLevel.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +type selectAlarmLevel = { + label: string; + value: string; +}; + +interface useAlarmSettingLevelProps { + fetchAlarmSettingLevel: () => selectAlarmLevel[]; +} + +export const useAlarmSettingLevel = (): useAlarmSettingLevelProps => { + function fetchAlarmSettingLevel() { + const finalArr: selectAlarmLevel[] = []; + const currData = localStorage.getItem( + localStorageKeyEnums.alarmSetting_model_alarmStatusSetting, + ); + if (currData) { + const currFormData = JSON.parse(currData) as Record<string, any>; + // eslint-disable-next-line guard-for-in + for (let key in currFormData) { + finalArr.push({ + label: currFormData[key], + value: key, + }); + } + } else { + // eslint-disable-next-line array-callback-return + alarmLevelStatusEnum.map((item) => { + if (['1', '2', '3'].includes(item.value)) { + finalArr.push({ + label: item.label, + value: item.value, + }); + } + }); + } + return finalArr; + } + return { + fetchAlarmSettingLevel, + }; +}; diff --git a/src/layouts/context.tsx b/src/layouts/context.tsx index 68754a7..8b2a0f8 100644 --- a/src/layouts/context.tsx +++ b/src/layouts/context.tsx @@ -8,7 +8,7 @@ interface KeepAliveTabContextType { onHidden: (cb: () => void) => void; } -const defaultValue = { +const value = { refreshTab: () => { }, closeTab: () => { }, closeOtherTab: () => { }, @@ -17,4 +17,4 @@ const defaultValue = { } -export const KeepAliveTabContext = createContext<KeepAliveTabContextType>(defaultValue); +export const KeepAliveTabContext = createContext<KeepAliveTabContextType>(value); diff --git a/src/locales/zh-CN/alarm.ts b/src/locales/zh-CN/alarm.ts index e2d0711..ba17d53 100644 --- a/src/locales/zh-CN/alarm.ts +++ b/src/locales/zh-CN/alarm.ts @@ -2,7 +2,7 @@ * @Author: zhoux zhouxia@supervision.ltd * @Date: 2023-12-18 16:36:36 * @LastEditors: zhoux zhouxia@supervision.ltd - * @LastEditTime: 2023-12-22 13:38:41 + * @LastEditTime: 2023-12-22 16:58:28 * @FilePath: \general-ai-platform-web\src\locales\zh-CN\alarm.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -14,6 +14,7 @@ export const alarm_list: { [key: string]: string } = { // 设备状态 export const alarm_setting: { [key: string]: string } = { + 'alarm.setting.table.title': '告警项', 'alarm.setting.table.list.name': '告警名称', 'alarm.setting.table.list.code': '告警代码', 'alarm.setting.table.list.category': '告警分类', @@ -26,6 +27,8 @@ export const alarm_setting: { [key: string]: string } = { 'alarm.setting.table.list.update': '编辑告警项', 'alarm.setting.table.rule.required.code': '类别代码为必填项', 'alarm.setting.table.model.alarmStatusSetting': '告警等级', + 'alarm.list.table.list.deviceGroup': '设备组', 'alarm.list.table.list.alarmTime': '告警时间', + } \ No newline at end of file diff --git a/src/pages/Alarm/AlarmList/index.tsx b/src/pages/Alarm/AlarmList/index.tsx index 1721dc4..e48fa0d 100644 --- a/src/pages/Alarm/AlarmList/index.tsx +++ b/src/pages/Alarm/AlarmList/index.tsx @@ -56,11 +56,18 @@ const DeviceCategoryList: React.FC = () => { return ( <Space> <AlarmLevelBox {...currLevel}></AlarmLevelBox> - <span style={{ color: currLevel.color }}>{currLevel.defaultLabel}</span> + <span style={{ color: currLevel.color }}>{currLevel.label}</span> </Space> ); }, }, + { + title: <FormattedMessage id="alarm.list.table.list.deviceGroup" defaultMessage="$$$" />, + dataIndex: 'deviceGroup', + sorter: true, + hideInSearch: true, + valueType: 'dateTime', + }, { title: <FormattedMessage id="alarm.list.table.list.alarmTime" defaultMessage="$$$" />, dataIndex: 'createTime', @@ -68,6 +75,7 @@ const DeviceCategoryList: React.FC = () => { hideInSearch: true, valueType: 'dateTime', }, + { title: <FormattedMessage id="pages.searchTable.titleOption" defaultMessage="Operating" />, dataIndex: 'option', @@ -96,11 +104,12 @@ const DeviceCategoryList: React.FC = () => { return ( <PageContainer> <ProTable<API.DeviceCategory> - headerTitle={intl.formatMessage({ - id: 'pages.searchTable.title', - defaultMessage: '$$$', - })} - options={{ fullScreen: true, setting: true, density: true, reload: true }} + cardProps={{ + bodyStyle: { + padding: 20 + } + }} + options={{ fullScreen: false, setting: false, density: false, reload: false }} actionRef={actionRef} rowKey="key" search={false} diff --git a/src/pages/Alarm/AlarmSetting/components/alarmStatusForm.tsx b/src/pages/Alarm/AlarmSetting/components/alarmStatusForm.tsx index 4559f98..0cf347c 100644 --- a/src/pages/Alarm/AlarmSetting/components/alarmStatusForm.tsx +++ b/src/pages/Alarm/AlarmSetting/components/alarmStatusForm.tsx @@ -61,7 +61,7 @@ const AlarmStatusForm: React.FC<CreateFormProps> = (props) => { // eslint-disable-next-line array-callback-return const finalData = alarmLevelStatusEnum.filter((item) => { if (Object.keys(currFormData).includes(item.id)) { - item.defaultLabel = currFormData[item.id]; + item.label = currFormData[item.id]; return item; } }); @@ -129,7 +129,7 @@ const AlarmStatusForm: React.FC<CreateFormProps> = (props) => { <AlarmLevelBox size={20} {...currLevel}></AlarmLevelBox> </div> <div style={{ width: '100%', flex: 1 }}> - <ProFormText name={item.id} initialValue={item.defaultLabel}></ProFormText> + <ProFormText name={item.id} initialValue={item.label}></ProFormText> </div> {index === alarmDict.length - 1 && index > 2 ? ( <div @@ -173,7 +173,7 @@ const AlarmStatusForm: React.FC<CreateFormProps> = (props) => { <div style={{ paddingRight: 12, color: '#FAAD14' }}> <ExclamationCircleOutlined /> </div> - <span> + <span style={{color: '#666666'}}> {intl.formatMessage({ id: 'alarm.setting.table.model.alarmStatusSetting', defaultMessage: '$$$', diff --git a/src/pages/Alarm/AlarmSetting/index.tsx b/src/pages/Alarm/AlarmSetting/index.tsx index a544313..50eca73 100644 --- a/src/pages/Alarm/AlarmSetting/index.tsx +++ b/src/pages/Alarm/AlarmSetting/index.tsx @@ -3,6 +3,7 @@ import AlarmLevelBox from '@/components/DictionaryBox/alarmLevel'; import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; import { alarmLevelStatusEnum } from '@/enums/status'; +import { useAlarmSettingLevel } from '@/hooks/useAlarmSettingLevel'; import { deleteDeviceCategoryDeleteDeviceCategory, deleteDeviceCategoryDeleteDeviceCategoryByIds, @@ -10,10 +11,11 @@ import { } from '@/services/device/DeviceCategory'; import { EditOutlined, PlusOutlined, SettingOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; -import { PageContainer, ProTable } from '@ant-design/pro-components'; +import { PageContainer, ProFormSelect, ProTable } from '@ant-design/pro-components'; import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; import { Button, Space, message } from 'antd'; import React, { useRef, useState } from 'react'; +import { proIconForTableActionStyle } from '../../../../config/defaultIcon'; import { proTableCommonOptions, proTablePaginationOptions } from '../../../../config/defaultTable'; import CreateForm from './components/CreateForm'; import UpdateForm from './components/UpdateForm'; @@ -43,6 +45,7 @@ const DeviceCategoryList: React.FC = () => { const [currentPageSize, setCurrentPageSize] = useState<number>(10); const [currentRow, setCurrentRow] = useState<API.DeviceCategory>(); const [selectedRowsState, setSelectedRows] = useState<API.DeviceCategory[]>([]); + const { fetchAlarmSettingLevel } = useAlarmSettingLevel(); /** 1. 告警状态设置 @@ -103,7 +106,8 @@ const DeviceCategoryList: React.FC = () => { { title: <FormattedMessage id="alarm.setting.table.list.level" defaultMessage="$$$" />, dataIndex: 'level', - hideInSearch: true, + hideInSearch: false, + render: (text, record, index) => { console.log(text, record, index, 'level_record'); const currVal = index % 6; @@ -111,17 +115,34 @@ const DeviceCategoryList: React.FC = () => { return ( <Space> <AlarmLevelBox {...currLevel}></AlarmLevelBox> - <span style={{ color: currLevel.color }}>{currLevel.defaultLabel}</span> + <span style={{ color: currLevel.color }}>{currLevel.label}</span> </Space> ); }, + renderFormItem: () => { + return ( + // TODO 需要在告警设置完成后实时改变 + <ProFormSelect + placeholder={`${intl.formatMessage({ + id: 'alarm.setting.table.list.level', + defaultMessage: '$$$', + })}`} + required={false} + showSearch + debounceTime={1000} + request={async () => { + return fetchAlarmSettingLevel(); + }} + /> + ); + }, }, { title: <FormattedMessage id="alarm.setting.table.list.createTime" defaultMessage="$$$" />, dataIndex: 'createTime', sorter: true, hideInSearch: true, - // valueType: 'ProFormDateRangePicker', + valueType: 'dateTime', }, { title: <FormattedMessage id="pages.searchTable.titleOption" defaultMessage="Operating" />, @@ -150,6 +171,7 @@ const DeviceCategoryList: React.FC = () => { key="update" style={{ color: 'rgba(21, 77, 221, 1)', + ...proIconForTableActionStyle, }} onClick={() => { setUpdateModalOpen(true); @@ -178,7 +200,7 @@ const DeviceCategoryList: React.FC = () => { <PageContainer> <ProTable<API.DeviceCategory> headerTitle={intl.formatMessage({ - id: 'pages.searchTable.title', + id: 'alarm.setting.table.title', defaultMessage: '$$$', })} options={{ fullScreen: true, setting: true, density: true, reload: true }} diff --git a/src/pages/ComputePowerAllocation/ComputePowerAllocation.tsx b/src/pages/ComputePowerAllocation/ComputePowerAllocation.tsx index 6c526f0..1e25ece 100644 --- a/src/pages/ComputePowerAllocation/ComputePowerAllocation.tsx +++ b/src/pages/ComputePowerAllocation/ComputePowerAllocation.tsx @@ -8,10 +8,9 @@ import React, { useEffect, useRef, useState } from 'react'; // type import { ComputePowerPoolItem } from './typing'; -// TODO 整个页面的字体、颜色、间距处理 +// TODO bug左侧 // state - const poolsData: ComputePowerPoolItem[] = [ { name: '玩手机监控', @@ -23,7 +22,7 @@ const poolsData: ComputePowerPoolItem[] = [ { name: '离岗监控', type: 1, - proportion: 60, + proportion: 30, PretreatmentEfficiency: 20, color: '#3879FE', }, @@ -140,7 +139,6 @@ const OccupyProportion: React.FC<{ ...poolDefault.buttonGroupOptions, buttonId: '1', left: rect1Witdh - 10, - selectable: false, }), ); // 更新Canvas以应用更改 @@ -154,8 +152,8 @@ const OccupyProportion: React.FC<{ canvasObject.add( new fabric.Group([bgRect2, img], { ...poolDefault.buttonGroupOptions, - left: rect1Witdh + 10, buttonId: '2', + left: rect1Witdh + rect2Witdh - 10, }), ); // 更新Canvas以应用更改 @@ -167,14 +165,14 @@ const OccupyProportion: React.FC<{ canvasObject.on('object:moving', (event) => { // 获取事件的目标对象 const targetObject = event.target; - console.log(targetObject, 'targetObject', canvasObject.item(0)); - // 算力按钮1 + console.log(targetObject.buttonId, 'targetObject', canvasObject.item(3)); + // 算力按钮 switch (targetObject.buttonId) { case '1': - // 算力按钮2 - if (targetObject?.left >= 960) { + // 算力按钮1 + if (targetObject?.left >= clipPathData.width - 20) { targetObject?.set({ - left: 960, + left: clipPathData.width - 20, }); } if (targetObject?.left <= 0) { @@ -182,28 +180,55 @@ const OccupyProportion: React.FC<{ left: 0, }); } + const currObject1Width = targetObject?.left + 10; canvasObject.item(1).set({ - width: targetObject?.left + 10, + width: currObject1Width, }); canvasObject.item(2).set({ - left: targetObject?.left + 10 , + left: targetObject?.left + 10, }); + canvasObject.item(4).set({ + left: canvasObject.item(2).left - 10 + canvasObject.item(2).width, + }); + if (currObject1Width + canvasObject.item(2).width >= clipPathData.width) { + canvasObject.item(2).set({ + width: clipPathData.width - currObject1Width, + }); + canvasObject.item(4).set({ + left: clipPathData.width - 20, + }); + } break; - case '2': + case '2': // 算力按钮2 - if (targetObject?.left >= 980) { + if (targetObject?.left >= clipPathData.width - 20) { targetObject?.set({ - left: 980, + left: clipPathData.width - 20, }); } - if (targetObject?.left <= rect1Witdh) { + const currObject11Width = canvasObject.item(1).width; + const currObject22Width = canvasObject.item(2).width; + if(targetObject?.left <= currObject11Width+ 10){ targetObject?.set({ - left: rect1Witdh + 10, + left: currObject11Width + 10, }); } + + // if (targetObject?.left <= rect1Witdh) { + // targetObject?.set({ + // left: currObject11Width + currObject22Width, + // }); + // } + console.log(currObject11Width, 'button2', currObject22Width) canvasObject.item(2).set({ - width: targetObject?.left -rect1Witdh + 10, + width: targetObject?.left - currObject11Width + 10, }); + // canvasObject.item(2).set({ + // left: targetObject?.left + 10, + // }); + // canvasObject.item(2).set({ + // width: targetObject?.left -rect1Witdh + 10, + // }); break; } // set_category_fk_id_open(false); @@ -226,7 +251,7 @@ const OccupyProportion: React.FC<{ className="occupy_up" style={{ marginTop: 24, marginBottom: 20, padding: 0, position: 'relative', width: '100%' }} > - <canvas ref={canvasRef} {...clipPathData} style={{ border: '1px dashed red' }}></canvas> + <canvas ref={canvasRef} {...clipPathData} ></canvas> {/* <ul className="occupy_progress" diff --git a/src/pages/Setting/AlgorithmSetting.tsx b/src/pages/Setting/AlgorithmSetting.tsx index 7da1eb4..deec20c 100644 --- a/src/pages/Setting/AlgorithmSetting.tsx +++ b/src/pages/Setting/AlgorithmSetting.tsx @@ -195,7 +195,7 @@ const AlgorithmSetting: React.FC = () => { > <div> <div>{JSON.stringify(item.configId)}</div> - <img src="/images/model.png" alt="" style={{ width: '50px' }} /> + <img src="/images/model.png" alt="" style={{ width: '64px' }} /> </div> <Button type="link" diff --git a/src/pages/Setting/components/AlarmSetForm.tsx b/src/pages/Setting/components/AlarmSetForm.tsx index 6a91477..f61a27a 100644 --- a/src/pages/Setting/components/AlarmSetForm.tsx +++ b/src/pages/Setting/components/AlarmSetForm.tsx @@ -8,7 +8,7 @@ import { ProFormSelect, } from '@ant-design/pro-components'; import { Form } from 'antd'; -import { useEffect, useState } from 'react'; +import { useEffect } from 'react'; type AlarmSetFormProps = { currentRow: Record<string, any>; }; @@ -17,7 +17,6 @@ const AlarmSetForm: React.FC<AlarmSetFormProps> = (props) => { // const [initialValues, setInitialValues] = useState<Record<string, any>>({}); - function fetchInitialValues() { // setInitialValues({ // type: '2', @@ -36,12 +35,12 @@ const AlarmSetForm: React.FC<AlarmSetFormProps> = (props) => { // }); } useEffect(() => { - fetchInitialValues() + fetchInitialValues(); }, []); return ( // TODO 模拟提交告警设置 <ProForm - style={{paddingBottom: 70}} + style={{ paddingBottom: 70 }} submitter={{ searchConfig: { submitText: '保存', // 在这里设置提交按钮文案 @@ -64,59 +63,61 @@ const AlarmSetForm: React.FC<AlarmSetFormProps> = (props) => { }} > <ProFormGroup> - <ProFormGroup title="通知方式" titleStyle={{margin: "0 0 8px"}}> + <ProFormGroup title="通知方式" titleStyle={{ margin: '0 0 8px' }}> <ProFormList - className='innerFormList_box' + className="innerFormList_box" name={['ways']} creatorButtonProps={false} copyIconProps={false} deleteIconProps={false} - style={{padding: 0, margin: 0}} + style={{ padding: 0, margin: 0 }} > {(f, index, action) => { console.log('isChecked_value', f, index, action); return ( - <ProFormGroup key="group"> - <ProFormCheckbox.Group - name="isChecked" - options={[ - { - label: form.getFieldValue('ways')[index].label, - value: '1', - }, - ]} - ></ProFormCheckbox.Group> - <ProFormDependency name={['isChecked']}> - {({ isChecked }) => { - console.log(isChecked, 'isChecked'); - return ( - <ProFormSelect - width={'lg'} - mode="multiple" - name="value" - debounceTime={1000} - disabled={!isChecked?.length} - request={async () => { - // const resp = await postCurrentIP(); - const resp = ['test001', 'test002', 'test003']; - return resp?.map((v: any) => { - return { - label: v, - value: v, - }; - }); - }} - /> - ); - }} - </ProFormDependency> - </ProFormGroup> + <div className="form_checkBox_wrap"> + <ProFormGroup key="group"> + <ProFormCheckbox.Group + name="isChecked" + options={[ + { + label: form.getFieldValue('ways')[index].label, + value: '1', + }, + ]} + ></ProFormCheckbox.Group> + <ProFormDependency name={['isChecked']}> + {({ isChecked }) => { + console.log(isChecked, 'isChecked'); + return ( + <ProFormSelect + width={'lg'} + mode="multiple" + name="value" + debounceTime={1000} + disabled={!isChecked?.length} + request={async () => { + // const resp = await postCurrentIP(); + const resp = ['test001', 'test002', 'test003']; + return resp?.map((v: any) => { + return { + label: v, + value: v, + }; + }); + }} + /> + ); + }} + </ProFormDependency> + </ProFormGroup> + </div> ); }} </ProFormList> </ProFormGroup> </ProFormGroup> - <ProFormGroup title="通知频次" titleStyle={{margin: "0 0 8px"}}> + <ProFormGroup title="通知频次" titleStyle={{ margin: '0 0 8px' }}> <ProFormRadio.Group name="type" initialValue={props.values?.type || '0'} diff --git a/src/pages/Setting/components/ProjectCard.tsx b/src/pages/Setting/components/ProjectCard.tsx index 52ee2e4..f41ee91 100644 --- a/src/pages/Setting/components/ProjectCard.tsx +++ b/src/pages/Setting/components/ProjectCard.tsx @@ -2,7 +2,7 @@ * @Author: zhoux zhouxia@supervision.ltd * @Date: 2023-11-06 16:12:17 * @LastEditors: zhoux zhouxia@supervision.ltd - * @LastEditTime: 2023-11-09 17:29:04 + * @LastEditTime: 2023-12-22 16:04:44 * @FilePath: \general-ai-platform-web\src\pages\Setting\components\ProjectCardList.tsx * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -24,7 +24,7 @@ const listItemStyle = { color: "#333333", maxWidth: '22vh', alignItems: 'center', - padding: '5px 0', + padding: '6px 0', } const listItemLabelStyle = { @@ -57,7 +57,7 @@ const ProjectCard: React.FC<UpdateProjectProps> = ({ info }: { info: Record<stri > <div style={{display: 'flex', alignItems: 'center', paddingBottom: 10}}> <span style={{fontWeight: 700, fontSize: 14, paddingRight: 10}}>苏胜天算法模型</span> - <Tag color="#44AEF5">经典算法</Tag> + <Tag color="#155BD4">经典算法</Tag> </div> <ul> <li style={listItemStyle}> diff --git a/src/utils/options.ts b/src/utils/options.ts index 79ee803..b65663f 100644 --- a/src/utils/options.ts +++ b/src/utils/options.ts @@ -1,12 +1,12 @@ import { DictValueEnumObj } from "@/components/DictTag"; import { ProSchemaValueEnumObj, ProSchemaValueEnumType } from "@ant-design/pro-components"; -export function getValueEnumLabel(options: DictValueEnumObj | ProSchemaValueEnumObj, val: string | number | undefined, defaultValue?: string) { +export function getValueEnumLabel(options: DictValueEnumObj | ProSchemaValueEnumObj, val: string | number | undefined, value?: string) { if (val !== undefined) { const data = options[val] as ProSchemaValueEnumType; if(data) { return data.text; } } - return defaultValue?defaultValue:val; + return value?value:val; }