@platox/pivot-table 0.0.74 → 0.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js +8 -1
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map +1 -1
- package/es/dashboard-workbench/components/module-header/index.js +7 -3
- package/es/dashboard-workbench/components/module-header/index.js.map +1 -1
- package/package.json +2 -2
- package/umd/pivot-table.umd.cjs +19 -19
|
@@ -287,7 +287,14 @@ const CustomData = ({
|
|
|
287
287
|
justifyContent: "space-between"
|
|
288
288
|
},
|
|
289
289
|
children: /* @__PURE__ */ jsxs(Space.Compact, { children: [
|
|
290
|
-
/* @__PURE__ */ jsx(Form.Item, { noStyle: true, name: "yAxisField", children: /* @__PURE__ */ jsx(
|
|
290
|
+
/* @__PURE__ */ jsx(Form.Item, { noStyle: true, name: "yAxisField", children: /* @__PURE__ */ jsx(
|
|
291
|
+
Select,
|
|
292
|
+
{
|
|
293
|
+
style: { width: "100px" },
|
|
294
|
+
options: yAxisFieldOption,
|
|
295
|
+
dropdownStyle: { width: 250 }
|
|
296
|
+
}
|
|
297
|
+
) }),
|
|
291
298
|
/* @__PURE__ */ jsx(Form.Item, { name: "yAxisFieldType", noStyle: true, children: /* @__PURE__ */ jsx(
|
|
292
299
|
Select,
|
|
293
300
|
{
|
package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custome-data.js","sources":["../../../../../packages/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { Button, Checkbox, Divider, Flex, Form, message, Radio, Select, Space, Spin } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { useDebounceFn, useMemoizedFn, useRequest } from 'ahooks'\nimport { getTransformValue } from '@platox/pivot-table/utils'\nimport { useAppContext } from '../../../context'\nimport { EnumDataApi } from '../../../types'\nimport { ModuleData } from '../../module-content'\nimport {\n filterConditionBlockByDisabledField,\n mapConditionsToPostgrest,\n} from '../../module-content/utils'\nimport ConditionModal from '../components/condition-modal'\nimport CombinationChartOptionPicker from './components/CombinationChartOptionPicker'\nimport GroupFieldConfigPicker from './components/GroupFieldConfigPicker'\nimport { useChartTypeOption, useDisplayRangeOption, useTimeGroupIntervalOption } from './config'\nimport styles from './index.module.less'\nimport { ChartCustomDataType, ChartType } from './interface'\n\nconst componentName = 'chart-modal'\n\ninterface CustomDataProps {\n selectModuleData?: ModuleData\n onAllValuesChange?: ((values: any) => void) | undefined\n enumDataApi?: EnumDataApi\n}\nconst CustomData: React.FC<CustomDataProps> = ({\n selectModuleData,\n onAllValuesChange,\n enumDataApi,\n}) => {\n const { globalData } = useAppContext()\n const { t } = useTranslation()\n const containerRef = useRef<HTMLDivElement>(null)\n\n const ChartTypeOption = useChartTypeOption()\n const TimeGroupIntervalOption = useTimeGroupIntervalOption()\n const DisplayRangeOption = useDisplayRangeOption()\n\n /* ============================== split =============================== */\n const initialValues = {\n dataSourceId: '',\n yAxis: 'recordTotal',\n chartOptions: ['legend', 'label', 'axis', 'splitLine'],\n sortField: 'xAxis',\n sortOrder: 'asc',\n timeGroupInterval: 'day',\n displayRange: 'ALL',\n yAxisFieldConfig: {\n chartType: ChartType.ChartBar,\n yAxisPos: 'left',\n },\n }\n const [form] = Form.useForm()\n\n const type = Form.useWatch('type', form)\n const dataSourceId = Form.useWatch('dataSourceId', form)\n const isGroup = Form.useWatch('isGroup', form)\n const xAxis = Form.useWatch('xAxis', form)\n const yAxisField = Form.useWatch('yAxisField', form)\n const groupField = Form.useWatch('groupField', form)\n\n /* ============================== split =============================== */\n const getFieldOptions = useMemoizedFn((dataSourceId?: string) => {\n const list = globalData?.sourceData?.find(item => item.value === dataSourceId)?.fields ?? []\n return list\n })\n\n const { fieldOptions, xAxisFieldOption, yAxisFieldOption, groupFieldOption } = useMemo(() => {\n const fieldOptions = getFieldOptions(dataSourceId)\n\n const xAxisFieldOption = fieldOptions.filter(item => {\n let hasPicked = [yAxisField, groupField].includes(item.value)\n return !hasPicked\n })\n\n const yAxisFieldOption = fieldOptions.filter(item => {\n let isNumberField = item.type === 'int' || item.type === 'float'\n let hasPicked = [xAxis, groupField].includes(item.value)\n return isNumberField && !hasPicked\n })\n\n const groupFieldOption = fieldOptions.filter(item => {\n let hasPicked = [xAxis, yAxisField].includes(item.value)\n return !hasPicked\n })\n\n return {\n fieldOptions,\n xAxisFieldOption,\n yAxisFieldOption,\n groupFieldOption,\n }\n }, [dataSourceId, xAxis, yAxisField, groupField])\n\n const isTimeField = useMemoizedFn(fieldName => {\n return fieldOptions.find(item => item.value === fieldName)?.type === 'timestamp'\n })\n\n /* ============================== split =============================== */\n const [isModalOpen, setIsModalOpen] = useState(false)\n const conditionDataRef = useRef()\n const [conditionData, setConditionData] = useState<any>({\n conditionList: [],\n conditionType: 'all',\n })\n const [conditionDataNum, setConditionDataNum] = useState(0)\n\n const setCondition = (val: any) => {\n setConditionData(val)\n conditionDataRef.current = val\n setConditionDataNum(val?.conditionList?.length || 0)\n }\n\n /* ============================== 获取分组聚合的字段数据 =============================== */\n const { service } = useAppContext()\n const { data: CombinationGroupOptions, loading: isGetCombinationGroupOptionsLoading } =\n useRequest(\n async () => {\n if (isGroup && type === ChartType['chartCombination'] && !!groupField) {\n const newGroupField = groupField === 'tags' ? 'tag' : groupField\n let queryString = `select=${newGroupField}`\n if (conditionData?.conditionList?.length > 0) {\n let DSLStr = mapConditionsToPostgrest(conditionData)\n queryString += !!DSLStr ? `&${DSLStr}` : ''\n }\n let res = await service?.moduleDataApi?.({\n id: dataSourceId,\n query: queryString,\n })\n\n //获取分组聚合的字段数据\n let options = res?.data?.map((item: any) => {\n return getTransformValue({\n fieldOptions,\n val: item[newGroupField],\n field: newGroupField,\n fieldMap: globalData?.fieldMap,\n })\n })\n return [...new Set(options)]\n } else {\n return []\n }\n },\n {\n refreshDeps: [type, isGroup, groupField, conditionData, dataSourceId],\n }\n )\n\n /* ============================== split =============================== */\n // debounce 2个作用 一个默认值的设置会延后,另一个是防止多次请求\n const { run: debounceSubmit } = useDebounceFn(\n useMemoizedFn(() => {\n onAllValuesChange?.({\n ...initialValues,\n ...form.getFieldsValue(),\n conditionData: conditionDataRef.current,\n })\n }),\n {\n wait: 100,\n }\n )\n const handleValuesChange = useMemoizedFn((changedValues, allValues) => {\n if (changedValues.dataSourceId) {\n const newFieldOptions = getFieldOptions(changedValues.dataSourceId)\n form.setFieldsValue({\n xAxis: newFieldOptions?.[0]?.value,\n yAxis: 'recordTotal',\n isGroup: false,\n })\n setCondition({\n conditionList: [],\n conditionType: 'all',\n })\n }\n if (changedValues.xAxis) {\n form.setFieldsValue(\n isTimeField(changedValues.xAxis)\n ? {\n timeGroupInterval: initialValues?.timeGroupInterval,\n }\n : {\n displayRange: initialValues?.displayRange,\n }\n )\n }\n\n if (changedValues.yAxis) {\n let value = changedValues.yAxis\n form.setFieldsValue({\n yAxisField: value === 'fieldValue' ? yAxisFieldOption?.[0]?.value : '',\n yAxisFieldType: 'sum',\n })\n }\n\n if (changedValues.isGroup) {\n form.setFieldsValue({\n groupField: groupFieldOption?.[0]?.value,\n })\n }\n\n debounceSubmit()\n })\n\n useEffect(() => {\n if (selectModuleData?.customData) {\n const customData = selectModuleData.customData\n form.setFieldsValue(customData)\n } else {\n const currSourceData = globalData?.sourceData?.[0]\n const list = getFieldOptions(currSourceData?.value) || []\n form.setFieldsValue({\n ...initialValues,\n dataSourceId: currSourceData?.value,\n type: selectModuleData?.type,\n xAxis: list?.[0]?.value,\n })\n }\n setCondition(selectModuleData?.customData?.conditionData)\n debounceSubmit()\n }, [selectModuleData, globalData])\n\n return (\n <div\n style={{ height: '50vh', overflowX: 'auto' }}\n className={clsx(styles[`${componentName}`])}\n ref={containerRef}\n >\n <Form\n form={form}\n name=\"customData\"\n layout=\"vertical\"\n onValuesChange={handleValuesChange}\n initialValues={initialValues}\n >\n <Form.Item<ChartCustomDataType> label={t('dataSource')} name=\"dataSourceId\">\n <Select options={globalData?.sourceData ?? []} />\n </Form.Item>\n\n <Form.Item<ChartCustomDataType> label={t('dataRange')}>\n <Button\n style={{ marginLeft: '-15px' }}\n onClick={() => {\n setIsModalOpen(true)\n }}\n type=\"link\"\n >\n {t('filterData')}\n </Button>\n {conditionDataNum > 0 ? `${t('selectNcondition', { n: conditionDataNum })}` : null}\n </Form.Item>\n\n <Form.Item<ChartCustomDataType> label={t('chart.t1')} name=\"type\">\n <Select\n options={ChartTypeOption}\n optionRender={option => (\n <Flex align=\"center\">\n <span role=\"img\" style={{ marginTop: '5px' }} aria-label={option.data.label}>\n {option.data.icon}\n </span>\n {option.data.label}\n </Flex>\n )}\n />\n </Form.Item>\n\n <Form.Item name=\"chartOptions\" label={t('chart.t12')}>\n <Checkbox.Group>\n <Checkbox value=\"legend\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t13')}\n </Checkbox>\n\n <Checkbox value=\"label\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t14')}\n </Checkbox>\n\n {!['chart-pie', 'chart-pie-circular'].includes(type) ? (\n <>\n <Checkbox value=\"axis\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t15')}\n </Checkbox>\n <Checkbox value=\"splitLine\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t16')}\n </Checkbox>\n </>\n ) : null}\n </Checkbox.Group>\n </Form.Item>\n\n <Divider style={{ borderColor: '#e2e2e2', marginTop: 0 }} />\n\n <Form.Item<ChartCustomDataType>\n label={type?.includes('pie') ? t('chart.t17') : t('chart.t18')}\n name=\"xAxis\"\n >\n <Select options={xAxisFieldOption} />\n </Form.Item>\n\n {/* 时间分组 */}\n <Form.Item noStyle dependencies={['type', 'xAxis']}>\n {({ getFieldValue }) =>\n isTimeField(getFieldValue('xAxis')) ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"timeGroupInterval\" label={t('chart.t39')}>\n <Select options={TimeGroupIntervalOption} />\n </Form.Item>\n </>\n ) : (\n <>\n <Form.Item<ChartCustomDataType> name=\"displayRange\" label={t('displayRange.title')}>\n <Select options={DisplayRangeOption} />\n </Form.Item>\n </>\n )\n }\n </Form.Item>\n\n <Form.Item dependencies={['type']} noStyle>\n {({ getFieldValue }) =>\n !getFieldValue('type')?.includes('pie') ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"sortField\" label={t('chart.t31')}>\n <Radio.Group>\n <Radio value=\"xAxis\">{t('chart.t32')}</Radio>\n <Radio value=\"yAxisField\">{t('chart.t33')}</Radio>\n <Radio value=\"recordValue\">{t('chart.t34')}</Radio>\n </Radio.Group>\n </Form.Item>\n <Form.Item<ChartCustomDataType> name=\"sortOrder\" label={t('chart.t35')}>\n <Radio.Group>\n <Radio value=\"asc\">{t('chart.t36')}</Radio>\n <Radio value=\"desc\">{t('chart.t37')}</Radio>\n </Radio.Group>\n </Form.Item>\n </>\n ) : null\n }\n </Form.Item>\n\n <Form.Item<ChartCustomDataType>\n label={type?.includes('pie') ? t('chart.t19') : t('chart.t20')}\n name=\"yAxis\"\n >\n <Select\n options={[\n {\n value: 'recordTotal',\n label: t('statisticstRecordNum'),\n },\n { value: 'fieldValue', label: t('statisticstFieldVal') },\n ]}\n />\n </Form.Item>\n\n <Form.Item dependencies={['yAxis', 'type', 'isGroup']} noStyle>\n {({ getFieldValue }) =>\n getFieldValue('yAxis') === 'fieldValue' ? (\n <Form.Item label={t('selectField')}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Space.Compact>\n <Form.Item noStyle name=\"yAxisField\">\n <Select style={{ width: '100px' }} options={yAxisFieldOption} />\n </Form.Item>\n <Form.Item name=\"yAxisFieldType\" noStyle>\n <Select\n style={{ width: '100px' }}\n options={[\n {\n value: 'sum',\n label: t('sumVal'),\n },\n {\n value: 'max',\n label: t('maxVal'),\n },\n {\n value: 'min',\n label: t('minVal'),\n },\n {\n value: 'avg',\n label: t('averageVal'),\n },\n ]}\n />\n </Form.Item>\n </Space.Compact>\n\n {/* <Form.Item\n noStyle\n name=\"yAxisFieldConfig\"\n dependencies={['type', 'isGroup']}\n hidden={\n !(\n getFieldValue('type') === ChartType['chartCombination'] &&\n !getFieldValue('isGroup')\n )\n }\n >\n <CombinationChartOptionPicker />\n </Form.Item> */}\n </div>\n </Form.Item>\n ) : null\n }\n </Form.Item>\n\n <Form.Item dependencies={['type', 'isGroup']} noStyle>\n {({ getFieldValue }) =>\n !getFieldValue('type')?.includes('pie') ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"isGroup\" valuePropName=\"checked\" noStyle>\n <Checkbox style={{ marginBottom: '5px' }}>{t('chart.t38')}</Checkbox>\n </Form.Item>\n <Form.Item dependencies={['isGroup']} noStyle>\n {({ getFieldValue }) =>\n getFieldValue('isGroup') ? (\n <Form.Item<ChartCustomDataType> name=\"groupField\">\n <Select options={groupFieldOption} />\n </Form.Item>\n ) : null\n }\n </Form.Item>\n\n <Spin spinning={isGetCombinationGroupOptionsLoading}>\n <Form.Item<ChartCustomDataType>\n name=\"groupFieldConfig\"\n label={t('chart.groupFieldConfig')}\n hidden={\n !(\n getFieldValue('type') === ChartType['chartCombination'] &&\n getFieldValue('isGroup')\n )\n }\n >\n <GroupFieldConfigPicker options={CombinationGroupOptions} />\n </Form.Item>\n </Spin>\n </>\n ) : null\n }\n </Form.Item>\n </Form>\n <ConditionModal\n open={isModalOpen}\n value={conditionData}\n fieldOptions={fieldOptions}\n enumDataApi={enumDataApi}\n onClose={() => {\n setIsModalOpen(false)\n }}\n onOk={val => {\n setCondition(val)\n debounceSubmit()\n }}\n />\n </div>\n )\n}\nexport default CustomData\n"],"names":["dataSourceId","fieldOptions","xAxisFieldOption","yAxisFieldOption","groupFieldOption","getFieldValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"custome-data.js","sources":["../../../../../packages/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport { Button, Checkbox, Divider, Flex, Form, message, Radio, Select, Space, Spin } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { useDebounceFn, useMemoizedFn, useRequest } from 'ahooks'\nimport { getTransformValue } from '@platox/pivot-table/utils'\nimport { useAppContext } from '../../../context'\nimport { EnumDataApi } from '../../../types'\nimport { ModuleData } from '../../module-content'\nimport {\n filterConditionBlockByDisabledField,\n mapConditionsToPostgrest,\n} from '../../module-content/utils'\nimport ConditionModal from '../components/condition-modal'\nimport CombinationChartOptionPicker from './components/CombinationChartOptionPicker'\nimport GroupFieldConfigPicker from './components/GroupFieldConfigPicker'\nimport { useChartTypeOption, useDisplayRangeOption, useTimeGroupIntervalOption } from './config'\nimport styles from './index.module.less'\nimport { ChartCustomDataType, ChartType } from './interface'\n\nconst componentName = 'chart-modal'\n\ninterface CustomDataProps {\n selectModuleData?: ModuleData\n onAllValuesChange?: ((values: any) => void) | undefined\n enumDataApi?: EnumDataApi\n}\nconst CustomData: React.FC<CustomDataProps> = ({\n selectModuleData,\n onAllValuesChange,\n enumDataApi,\n}) => {\n const { globalData } = useAppContext()\n const { t } = useTranslation()\n const containerRef = useRef<HTMLDivElement>(null)\n\n const ChartTypeOption = useChartTypeOption()\n const TimeGroupIntervalOption = useTimeGroupIntervalOption()\n const DisplayRangeOption = useDisplayRangeOption()\n\n /* ============================== split =============================== */\n const initialValues = {\n dataSourceId: '',\n yAxis: 'recordTotal',\n chartOptions: ['legend', 'label', 'axis', 'splitLine'],\n sortField: 'xAxis',\n sortOrder: 'asc',\n timeGroupInterval: 'day',\n displayRange: 'ALL',\n yAxisFieldConfig: {\n chartType: ChartType.ChartBar,\n yAxisPos: 'left',\n },\n }\n const [form] = Form.useForm()\n\n const type = Form.useWatch('type', form)\n const dataSourceId = Form.useWatch('dataSourceId', form)\n const isGroup = Form.useWatch('isGroup', form)\n const xAxis = Form.useWatch('xAxis', form)\n const yAxisField = Form.useWatch('yAxisField', form)\n const groupField = Form.useWatch('groupField', form)\n\n /* ============================== split =============================== */\n const getFieldOptions = useMemoizedFn((dataSourceId?: string) => {\n const list = globalData?.sourceData?.find(item => item.value === dataSourceId)?.fields ?? []\n return list\n })\n\n const { fieldOptions, xAxisFieldOption, yAxisFieldOption, groupFieldOption } = useMemo(() => {\n const fieldOptions = getFieldOptions(dataSourceId)\n\n const xAxisFieldOption = fieldOptions.filter(item => {\n let hasPicked = [yAxisField, groupField].includes(item.value)\n return !hasPicked\n })\n\n const yAxisFieldOption = fieldOptions.filter(item => {\n let isNumberField = item.type === 'int' || item.type === 'float'\n let hasPicked = [xAxis, groupField].includes(item.value)\n return isNumberField && !hasPicked\n })\n\n const groupFieldOption = fieldOptions.filter(item => {\n let hasPicked = [xAxis, yAxisField].includes(item.value)\n return !hasPicked\n })\n\n return {\n fieldOptions,\n xAxisFieldOption,\n yAxisFieldOption,\n groupFieldOption,\n }\n }, [dataSourceId, xAxis, yAxisField, groupField])\n\n const isTimeField = useMemoizedFn(fieldName => {\n return fieldOptions.find(item => item.value === fieldName)?.type === 'timestamp'\n })\n\n /* ============================== split =============================== */\n const [isModalOpen, setIsModalOpen] = useState(false)\n const conditionDataRef = useRef()\n const [conditionData, setConditionData] = useState<any>({\n conditionList: [],\n conditionType: 'all',\n })\n const [conditionDataNum, setConditionDataNum] = useState(0)\n\n const setCondition = (val: any) => {\n setConditionData(val)\n conditionDataRef.current = val\n setConditionDataNum(val?.conditionList?.length || 0)\n }\n\n /* ============================== 获取分组聚合的字段数据 =============================== */\n const { service } = useAppContext()\n const { data: CombinationGroupOptions, loading: isGetCombinationGroupOptionsLoading } =\n useRequest(\n async () => {\n if (isGroup && type === ChartType['chartCombination'] && !!groupField) {\n const newGroupField = groupField === 'tags' ? 'tag' : groupField\n let queryString = `select=${newGroupField}`\n if (conditionData?.conditionList?.length > 0) {\n let DSLStr = mapConditionsToPostgrest(conditionData)\n queryString += !!DSLStr ? `&${DSLStr}` : ''\n }\n let res = await service?.moduleDataApi?.({\n id: dataSourceId,\n query: queryString,\n })\n\n //获取分组聚合的字段数据\n let options = res?.data?.map((item: any) => {\n return getTransformValue({\n fieldOptions,\n val: item[newGroupField],\n field: newGroupField,\n fieldMap: globalData?.fieldMap,\n })\n })\n return [...new Set(options)]\n } else {\n return []\n }\n },\n {\n refreshDeps: [type, isGroup, groupField, conditionData, dataSourceId],\n }\n )\n\n /* ============================== split =============================== */\n // debounce 2个作用 一个默认值的设置会延后,另一个是防止多次请求\n const { run: debounceSubmit } = useDebounceFn(\n useMemoizedFn(() => {\n onAllValuesChange?.({\n ...initialValues,\n ...form.getFieldsValue(),\n conditionData: conditionDataRef.current,\n })\n }),\n {\n wait: 100,\n }\n )\n const handleValuesChange = useMemoizedFn((changedValues, allValues) => {\n if (changedValues.dataSourceId) {\n const newFieldOptions = getFieldOptions(changedValues.dataSourceId)\n form.setFieldsValue({\n xAxis: newFieldOptions?.[0]?.value,\n yAxis: 'recordTotal',\n isGroup: false,\n })\n setCondition({\n conditionList: [],\n conditionType: 'all',\n })\n }\n if (changedValues.xAxis) {\n form.setFieldsValue(\n isTimeField(changedValues.xAxis)\n ? {\n timeGroupInterval: initialValues?.timeGroupInterval,\n }\n : {\n displayRange: initialValues?.displayRange,\n }\n )\n }\n\n if (changedValues.yAxis) {\n let value = changedValues.yAxis\n form.setFieldsValue({\n yAxisField: value === 'fieldValue' ? yAxisFieldOption?.[0]?.value : '',\n yAxisFieldType: 'sum',\n })\n }\n\n if (changedValues.isGroup) {\n form.setFieldsValue({\n groupField: groupFieldOption?.[0]?.value,\n })\n }\n\n debounceSubmit()\n })\n\n useEffect(() => {\n if (selectModuleData?.customData) {\n const customData = selectModuleData.customData\n form.setFieldsValue(customData)\n } else {\n const currSourceData = globalData?.sourceData?.[0]\n const list = getFieldOptions(currSourceData?.value) || []\n form.setFieldsValue({\n ...initialValues,\n dataSourceId: currSourceData?.value,\n type: selectModuleData?.type,\n xAxis: list?.[0]?.value,\n })\n }\n setCondition(selectModuleData?.customData?.conditionData)\n debounceSubmit()\n }, [selectModuleData, globalData])\n\n return (\n <div\n style={{ height: '50vh', overflowX: 'auto' }}\n className={clsx(styles[`${componentName}`])}\n ref={containerRef}\n >\n <Form\n form={form}\n name=\"customData\"\n layout=\"vertical\"\n onValuesChange={handleValuesChange}\n initialValues={initialValues}\n >\n <Form.Item<ChartCustomDataType> label={t('dataSource')} name=\"dataSourceId\">\n <Select options={globalData?.sourceData ?? []} />\n </Form.Item>\n\n <Form.Item<ChartCustomDataType> label={t('dataRange')}>\n <Button\n style={{ marginLeft: '-15px' }}\n onClick={() => {\n setIsModalOpen(true)\n }}\n type=\"link\"\n >\n {t('filterData')}\n </Button>\n {conditionDataNum > 0 ? `${t('selectNcondition', { n: conditionDataNum })}` : null}\n </Form.Item>\n\n <Form.Item<ChartCustomDataType> label={t('chart.t1')} name=\"type\">\n <Select\n options={ChartTypeOption}\n optionRender={option => (\n <Flex align=\"center\">\n <span role=\"img\" style={{ marginTop: '5px' }} aria-label={option.data.label}>\n {option.data.icon}\n </span>\n {option.data.label}\n </Flex>\n )}\n />\n </Form.Item>\n\n <Form.Item name=\"chartOptions\" label={t('chart.t12')}>\n <Checkbox.Group>\n <Checkbox value=\"legend\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t13')}\n </Checkbox>\n\n <Checkbox value=\"label\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t14')}\n </Checkbox>\n\n {!['chart-pie', 'chart-pie-circular'].includes(type) ? (\n <>\n <Checkbox value=\"axis\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t15')}\n </Checkbox>\n <Checkbox value=\"splitLine\" className=\"ow-checkbox\" style={{ lineHeight: '32px' }}>\n {t('chart.t16')}\n </Checkbox>\n </>\n ) : null}\n </Checkbox.Group>\n </Form.Item>\n\n <Divider style={{ borderColor: '#e2e2e2', marginTop: 0 }} />\n\n <Form.Item<ChartCustomDataType>\n label={type?.includes('pie') ? t('chart.t17') : t('chart.t18')}\n name=\"xAxis\"\n >\n <Select options={xAxisFieldOption} />\n </Form.Item>\n\n {/* 时间分组 */}\n <Form.Item noStyle dependencies={['type', 'xAxis']}>\n {({ getFieldValue }) =>\n isTimeField(getFieldValue('xAxis')) ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"timeGroupInterval\" label={t('chart.t39')}>\n <Select options={TimeGroupIntervalOption} />\n </Form.Item>\n </>\n ) : (\n <>\n <Form.Item<ChartCustomDataType> name=\"displayRange\" label={t('displayRange.title')}>\n <Select options={DisplayRangeOption} />\n </Form.Item>\n </>\n )\n }\n </Form.Item>\n\n <Form.Item dependencies={['type']} noStyle>\n {({ getFieldValue }) =>\n !getFieldValue('type')?.includes('pie') ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"sortField\" label={t('chart.t31')}>\n <Radio.Group>\n <Radio value=\"xAxis\">{t('chart.t32')}</Radio>\n <Radio value=\"yAxisField\">{t('chart.t33')}</Radio>\n <Radio value=\"recordValue\">{t('chart.t34')}</Radio>\n </Radio.Group>\n </Form.Item>\n <Form.Item<ChartCustomDataType> name=\"sortOrder\" label={t('chart.t35')}>\n <Radio.Group>\n <Radio value=\"asc\">{t('chart.t36')}</Radio>\n <Radio value=\"desc\">{t('chart.t37')}</Radio>\n </Radio.Group>\n </Form.Item>\n </>\n ) : null\n }\n </Form.Item>\n\n <Form.Item<ChartCustomDataType>\n label={type?.includes('pie') ? t('chart.t19') : t('chart.t20')}\n name=\"yAxis\"\n >\n <Select\n options={[\n {\n value: 'recordTotal',\n label: t('statisticstRecordNum'),\n },\n { value: 'fieldValue', label: t('statisticstFieldVal') },\n ]}\n />\n </Form.Item>\n\n <Form.Item dependencies={['yAxis', 'type', 'isGroup']} noStyle>\n {({ getFieldValue }) =>\n getFieldValue('yAxis') === 'fieldValue' ? (\n <Form.Item label={t('selectField')}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <Space.Compact>\n <Form.Item noStyle name=\"yAxisField\">\n <Select\n style={{ width: '100px' }}\n options={yAxisFieldOption}\n dropdownStyle={{ width: 250 }}\n />\n </Form.Item>\n <Form.Item name=\"yAxisFieldType\" noStyle>\n <Select\n style={{ width: '100px' }}\n options={[\n {\n value: 'sum',\n label: t('sumVal'),\n },\n {\n value: 'max',\n label: t('maxVal'),\n },\n {\n value: 'min',\n label: t('minVal'),\n },\n {\n value: 'avg',\n label: t('averageVal'),\n },\n ]}\n />\n </Form.Item>\n </Space.Compact>\n\n {/* <Form.Item\n noStyle\n name=\"yAxisFieldConfig\"\n dependencies={['type', 'isGroup']}\n hidden={\n !(\n getFieldValue('type') === ChartType['chartCombination'] &&\n !getFieldValue('isGroup')\n )\n }\n >\n <CombinationChartOptionPicker />\n </Form.Item> */}\n </div>\n </Form.Item>\n ) : null\n }\n </Form.Item>\n\n <Form.Item dependencies={['type', 'isGroup']} noStyle>\n {({ getFieldValue }) =>\n !getFieldValue('type')?.includes('pie') ? (\n <>\n <Form.Item<ChartCustomDataType> name=\"isGroup\" valuePropName=\"checked\" noStyle>\n <Checkbox style={{ marginBottom: '5px' }}>{t('chart.t38')}</Checkbox>\n </Form.Item>\n <Form.Item dependencies={['isGroup']} noStyle>\n {({ getFieldValue }) =>\n getFieldValue('isGroup') ? (\n <Form.Item<ChartCustomDataType> name=\"groupField\">\n <Select options={groupFieldOption} />\n </Form.Item>\n ) : null\n }\n </Form.Item>\n\n <Spin spinning={isGetCombinationGroupOptionsLoading}>\n <Form.Item<ChartCustomDataType>\n name=\"groupFieldConfig\"\n label={t('chart.groupFieldConfig')}\n hidden={\n !(\n getFieldValue('type') === ChartType['chartCombination'] &&\n getFieldValue('isGroup')\n )\n }\n >\n <GroupFieldConfigPicker options={CombinationGroupOptions} />\n </Form.Item>\n </Spin>\n </>\n ) : null\n }\n </Form.Item>\n </Form>\n <ConditionModal\n open={isModalOpen}\n value={conditionData}\n fieldOptions={fieldOptions}\n enumDataApi={enumDataApi}\n onClose={() => {\n setIsModalOpen(false)\n }}\n onOk={val => {\n setCondition(val)\n debounceSubmit()\n }}\n />\n </div>\n )\n}\nexport default CustomData\n"],"names":["dataSourceId","fieldOptions","xAxisFieldOption","yAxisFieldOption","groupFieldOption","getFieldValue"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useState, useRef, useEffect } from "react";
|
|
3
|
-
import { Dropdown } from "antd";
|
|
3
|
+
import { Input, Dropdown } from "antd";
|
|
4
4
|
import { useTranslation } from "react-i18next";
|
|
5
5
|
import IconDrag from "../../icon/icon-drag.js";
|
|
6
6
|
import IconMove from "../../icon/icon-move.js";
|
|
7
|
-
import { InputWrapper } from "../InputWrapper/index.js";
|
|
8
7
|
import useDebounce from "../module-content/text-module/editor/useDebounce.js";
|
|
9
8
|
const ModuleHeader = ({
|
|
10
9
|
defaultValue,
|
|
@@ -34,6 +33,11 @@ const ModuleHeader = ({
|
|
|
34
33
|
setIsEdit(false);
|
|
35
34
|
}
|
|
36
35
|
};
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!isEdit) {
|
|
38
|
+
setTitle((prev) => prev.trim());
|
|
39
|
+
}
|
|
40
|
+
}, [isEdit]);
|
|
37
41
|
return /* @__PURE__ */ jsxs(
|
|
38
42
|
"div",
|
|
39
43
|
{
|
|
@@ -59,7 +63,7 @@ const ModuleHeader = ({
|
|
|
59
63
|
}, 100);
|
|
60
64
|
},
|
|
61
65
|
children: isEdit ? /* @__PURE__ */ jsx(
|
|
62
|
-
|
|
66
|
+
Input,
|
|
63
67
|
{
|
|
64
68
|
defaultValue,
|
|
65
69
|
onBlur: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/module-header/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useEffect, useRef, useState } from 'react'\nimport { Dropdown, Input } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport IconDrag from '../../icon/icon-drag'\nimport IconMove from '../../icon/icon-move'\nimport InputWrapper from '../InputWrapper'\nimport { ModuleData } from '../module-content'\nimport useDebounce from '../module-content/text-module/editor/useDebounce'\n\ninterface ModuleHeaderProps {\n defaultValue: string\n onChange?: (val: string) => void\n module: ModuleData\n onDropdownItem?: (key: string) => void\n onMouseDown?: () => void\n onMouseUp?: () => void\n}\n\nconst ModuleHeader: FC<ModuleHeaderProps> = ({\n defaultValue,\n onChange,\n module,\n onDropdownItem,\n onMouseDown,\n onMouseUp,\n}) => {\n const [isEdit, setIsEdit] = useState<boolean>(false)\n const [title, setTitle] = useState<string>('')\n const inputRef = useRef<any>(null)\n const debouncedOnChange = useDebounce(val => {\n onChange?.(val)\n }, 300) // 300 毫秒的延迟\n const { t } = useTranslation()\n\n useEffect(() => {\n setTitle(title)\n }, [defaultValue])\n\n const handleDblClick = () => {\n // 获取input DOM元素\n const inputElement = inputRef.current?.input\n // 双击事件发生在input元素上时,触发全选\n inputElement.select()\n }\n\n const handleEnterPress = (event: { key: string }) => {\n if (event.key === 'Enter') {\n setIsEdit(false)\n }\n }\n\n return (\n <div\n className={`layout-item-head isCanDrag`}\n onMouseDown={() => {\n onMouseDown?.()\n }}\n onMouseUp={() => {\n onMouseUp?.()\n }}\n >\n <div className=\"head-inner\">\n <span className=\"title\">\n <span\n className=\"title-child\"\n onDoubleClick={e => {\n e.stopPropagation()\n setIsEdit(true)\n setTimeout(() => {\n inputRef.current?.focus()\n }, 100)\n }}\n >\n {isEdit ? (\n <
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/module-header/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useEffect, useRef, useState } from 'react'\nimport { Dropdown, Input } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport IconDrag from '../../icon/icon-drag'\nimport IconMove from '../../icon/icon-move'\nimport InputWrapper from '../InputWrapper'\nimport { ModuleData } from '../module-content'\nimport useDebounce from '../module-content/text-module/editor/useDebounce'\n\ninterface ModuleHeaderProps {\n defaultValue: string\n onChange?: (val: string) => void\n module: ModuleData\n onDropdownItem?: (key: string) => void\n onMouseDown?: () => void\n onMouseUp?: () => void\n}\n\nconst ModuleHeader: FC<ModuleHeaderProps> = ({\n defaultValue,\n onChange,\n module,\n onDropdownItem,\n onMouseDown,\n onMouseUp,\n}) => {\n const [isEdit, setIsEdit] = useState<boolean>(false)\n const [title, setTitle] = useState<string>('')\n const inputRef = useRef<any>(null)\n const debouncedOnChange = useDebounce(val => {\n onChange?.(val)\n }, 300) // 300 毫秒的延迟\n const { t } = useTranslation()\n\n useEffect(() => {\n setTitle(title)\n }, [defaultValue])\n\n const handleDblClick = () => {\n // 获取input DOM元素\n const inputElement = inputRef.current?.input\n // 双击事件发生在input元素上时,触发全选\n inputElement.select()\n }\n\n const handleEnterPress = (event: { key: string }) => {\n if (event.key === 'Enter') {\n setIsEdit(false)\n }\n }\n\n useEffect(() => {\n if (!isEdit) {\n setTitle(prev => prev.trim())\n }\n }, [isEdit])\n\n return (\n <div\n className={`layout-item-head isCanDrag`}\n onMouseDown={() => {\n onMouseDown?.()\n }}\n onMouseUp={() => {\n onMouseUp?.()\n }}\n >\n <div className=\"head-inner\">\n <span className=\"title\">\n <span\n className=\"title-child\"\n onDoubleClick={e => {\n e.stopPropagation()\n setIsEdit(true)\n setTimeout(() => {\n inputRef.current?.focus()\n }, 100)\n }}\n >\n {isEdit ? (\n <Input\n defaultValue={defaultValue}\n onBlur={() => {\n setIsEdit(false)\n }}\n ref={inputRef}\n onKeyDown={handleEnterPress}\n onDoubleClick={handleDblClick}\n onChange={e => {\n setTitle(e.target.value)\n debouncedOnChange(e.target.value)\n }}\n />\n ) : (\n defaultValue\n )}\n </span>\n </span>\n\n <div className=\"menu-slot isNoCanDrag\">\n <Dropdown\n trigger={['click']}\n menu={{\n items: [\n module.type !== 'text'\n ? {\n label: t('configuration'),\n key: 'edit',\n }\n : null,\n {\n label: t('copy'),\n key: 'copy',\n },\n {\n key: 'delete',\n danger: true,\n label: t('delete'),\n },\n ],\n onClick: ({ key }) => {\n onDropdownItem?.(key)\n },\n }}\n >\n <button type=\"button\" className=\"dashboard-grid-menu-button\">\n <span className=\"universe-icon\">\n <IconMove />\n </span>\n </button>\n </Dropdown>\n </div>\n </div>\n <div className={`drag isCanDrag`}>\n <span className=\"universe-icon drag-icon\">\n <IconDrag />\n </span>\n </div>\n </div>\n )\n}\n\nexport default React.memo(ModuleHeader)\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED