tachybase_todo/packages/plugins/excel-formula-field/src/client/excel-formula.ts
chenos 883f1e6fd1
fix: eslint (#1759)
* fix: eslint

* fix: eslint --fix

* fix: changelog
2023-04-25 13:12:14 +08:00

83 lines
2.2 KiB
TypeScript

import { IField, interfacesProperties } from '@nocobase/client';
const { defaultProps, operators } = interfacesProperties;
export const excelFormula: IField = {
name: 'excelFormula',
type: 'object',
group: 'advanced',
order: 2,
title: '{{t("Excel formula")}}',
description: '{{t("Compute a value based on the other fields using excel formula functions")}}',
sortable: true,
default: {
type: 'excelFormula',
// name,
uiSchema: {
type: 'string',
// title,
'x-disabled': true,
'x-component': 'ExcelFormula.Result',
'x-component-props': {
stringMode: true,
step: '1',
},
},
},
properties: {
...defaultProps,
dataType: {
type: 'string',
title: '{{t("Data type")}}',
'x-component': 'Select',
'x-decorator': 'FormItem',
default: 'number',
'x-disabled': '{{ !createOnly }}',
'x-reactions': [
{
target: 'uiSchema.x-component-props.step',
fulfill: {
state: {
display: '{{$self.value !== "string" ? "visible" : "none"}}',
},
},
},
],
enum: [
{ value: 'string', label: '{{t("String")}}' },
{ value: 'number', label: '{{t("Number")}}' },
],
},
'uiSchema.x-component-props.step': {
type: 'string',
title: '{{t("Precision")}}',
'x-component': 'Select',
'x-decorator': 'FormItem',
required: true,
default: '0',
enum: [
{ value: '0', label: '1' },
{ value: '0.1', label: '1.0' },
{ value: '0.01', label: '1.00' },
{ value: '0.001', label: '1.000' },
{ value: '0.0001', label: '1.0000' },
{ value: '0.00001', label: '1.00000' },
],
},
expression: {
type: 'string',
title: '{{t("Expression")}}',
required: true,
description: '{{excelExpressionDescription}}',
'x-component': 'ExcelFormula.Expression',
'x-decorator': 'FormItem',
'x-component-props': {
supports: ['number', 'percent', 'integer', 'string'],
useCurrentFields: '{{ useCurrentFields }}',
},
},
},
filterable: {
operators: operators.string,
},
};