antd-form-document 5.0.4 → 5.0.6
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/README.md +21 -4
- package/dist/index.tsx +1 -1
- package/dist/index.tsx.map +1 -1
- package/dist/src/components/Checkbox/index.d.ts.map +1 -1
- package/dist/src/components/DatePicker/index.d.ts.map +1 -1
- package/dist/src/components/Duration/index.d.ts.map +1 -1
- package/dist/src/components/Editor/index.d.ts.map +1 -1
- package/dist/src/components/FormList/index.d.ts.map +1 -1
- package/dist/src/components/InputNumber/index.d.ts.map +1 -1
- package/dist/src/components/Photo/index.d.ts.map +1 -1
- package/dist/src/components/Radio/index.d.ts.map +1 -1
- package/dist/src/components/Select/index.d.ts.map +1 -1
- package/dist/src/components/SuperUpload/index.d.ts.map +1 -1
- package/dist/src/components/Switch/index.d.ts.map +1 -1
- package/dist/src/components/Table/index.d.ts.map +1 -1
- package/dist/src/components/Text/index.d.ts.map +1 -1
- package/dist/src/components/TextArea/index.d.ts.map +1 -1
- package/dist/src/components/TimePicker/index.d.ts.map +1 -1
- package/dist/src/components/Upload/index.d.ts.map +1 -1
- package/dist/src/form/index.d.ts +1 -0
- package/dist/src/form/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.tsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.tsx","sources":["../src/entity/XML.ts","../src/utils/document.ts","../src/applets/index.ts","../src/context.ts","../src/config.ts","../src/utils/loading.ts","../src/utils/request.ts","../src/utils/style.ts","../src/service/UIComponent.tsx","../src/service/ProComponent.tsx","../src/service/UIListComponent.tsx","../src/service/WidgetComponent.ts","../src/components/Label/index.tsx","../src/components/Tooltip/index.tsx","../src/preview/index.tsx","../src/components/Text/index.tsx","../src/components/TextArea/index.tsx","../src/components/InputNumber/index.tsx","../src/components/Editor/index.tsx","../src/components/Select/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Radio/index.tsx","../src/components/Switch/index.tsx","../node_modules/style-inject/dist/style-inject.es.js","../src/components/Duration/index.tsx","../src/components/DatePicker/index.tsx","../src/components/TimePicker/index.tsx","../src/components/Upload/index.tsx","../src/components/Photo/index.tsx","../src/components/SuperUpload/index.tsx","../src/components/Table/index.tsx","../src/components/FormList/index.tsx","../src/containers/Row/index.tsx","../src/containers/Col/index.tsx","../src/containers/Steps/index.tsx","../src/containers/Content/index.tsx","../src/containers/Divider/index.tsx","../src/containers/Collapse/index.tsx","../src/form/index.tsx"],"sourcesContent":["import { parseInt, uniqueId } from \"lodash\";\r\n\r\nexport default class XML {\r\n readonly id: string;\r\n readonly tag: string;\r\n readonly text?: string;\r\n readonly attributes: { [name: string]: string | boolean } = {};\r\n readonly cdata?: string;\r\n readonly children?: XML[];\r\n\r\n constructor(element: Element) {\r\n // this.id = Math.floor(Math.random() * 1000000000).toString();\r\n this.id = uniqueId();\r\n /** 获得属性 */\r\n for (const item of element.attributes) {\r\n let value: string | boolean = item.value.trim();\r\n if (this.isBoolean(value)) {\r\n value = this.toBoolean(value);\r\n }\r\n this.attributes[item.name] = value;\r\n }\r\n\r\n /** 获得子元素 */\r\n this.children = new Array();\r\n for (const node of element.childNodes) {\r\n if (node instanceof Element) {\r\n this.children?.push(new XML(node));\r\n }\r\n /** 获得文本 */\r\n if (node.nodeType === 3 && node.textContent) {\r\n this.text = node.textContent;\r\n }\r\n /** 获得CDATA */\r\n if (node.nodeType === 4) {\r\n this.cdata = node.nodeValue?.replace(/\\ +/g, \" \").replace(/[\\t\\r\\n]/g, \"\");\r\n }\r\n }\r\n this.tag = element.nodeName;\r\n }\r\n\r\n /**\r\n * 判断是否为boolean型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private isBoolean(value: string) {\r\n return value === \"true\" || value === \"false\";\r\n }\r\n\r\n /**\r\n * 转换boolean型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private toBoolean(value: string) {\r\n return value === \"true\";\r\n }\r\n\r\n /**\r\n * 判断是否为number型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private isNumber(value: string) {\r\n return /^\\d+$/.test(value);\r\n }\r\n\r\n /**\r\n * 转换number型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private toNumber(value: string) {\r\n return parseInt(value, 10);\r\n }\r\n}","import XML from \"@/entity/XML\";\r\n\r\n/**\r\n * xml 解析类\r\n */\r\nexport default class XMLDocument {\r\n\r\n /**\r\n * document 解析 xml对象\r\n * \r\n * @param document \r\n * @returns \r\n */\r\n static parser(document: Document) {\r\n const element: Element = <Element>document.childNodes[0];\r\n return new XML(element);\r\n }\r\n\r\n /**\r\n * document字符串 转换 document对象\r\n * \r\n * @param documentString \r\n * @returns \r\n */\r\n static toDocument(documentString: string): Document {\r\n return new DOMParser().parseFromString(documentString, \"text/xml\");\r\n }\r\n\r\n /**\r\n * document字符串 转换 xml对象\r\n * \r\n * @param documentString \r\n * @returns \r\n */\r\n static getRoot(documentString: string): XML {\r\n const doc: Document = XMLDocument.toDocument(documentString);\r\n return XMLDocument.parser(doc);\r\n }\r\n\r\n /**\r\n * 选择单个元素\r\n * \r\n * @param document \r\n * @param selectors \r\n * @returns \r\n */\r\n static selector(document: Document | Element, selectors: string): Element | null {\r\n return document.querySelector(selectors);\r\n }\r\n\r\n /**\r\n * 选择多个元素\r\n * \r\n * @param document \r\n * @param selectors \r\n * @returns \r\n */\r\n static selectors(document: Document | Element, selectors: string): NodeListOf<Element> {\r\n return document.querySelectorAll(selectors);\r\n }\r\n}","import moment from 'moment';\r\n\r\n/**\r\n * validate 验证\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const validate = ({ type = 'string', required, minlength, maxlength, min, max, pattern, message }: any): Design.Rule => {\r\n if (required) {\r\n return { type, required, message };\r\n }\r\n if (minlength && maxlength) {\r\n return { type, min: Number(minlength), max: Number(maxlength), message };\r\n }\r\n if (min && max) {\r\n return { type: 'number', min: Number(min), max: Number(max), message };\r\n }\r\n if (type === 'phone') {\r\n return { type: 'string', pattern: new RegExp('^[1][3,5,6,7,8][0-9]\\\\d{8}$'), message };\r\n }\r\n if (type === 'regexp' && typeof pattern === 'string') {\r\n return { type: 'string', pattern: new RegExp(pattern), message };\r\n }\r\n return { type, message };\r\n}\r\n\r\n/**\r\n * condition 条件\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const condition = (fields: object | undefined, preview: boolean) => ({ test }: { test: string }): boolean | undefined => {\r\n try {\r\n if (fields) {\r\n fields = { ...fields, preview }\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, `return ${test}`);\r\n return actuator(fields);\r\n }\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * collection 集合\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const collection = (fields: object | undefined, { cdata }: { cdata: string }): Array<string> => {\r\n try {\r\n if (fields) {\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, `${cdata}`);\r\n return actuator(fields);\r\n }\r\n const actuator: Function = new Function(`${cdata}`);\r\n return actuator();\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * compute 计算\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const compute = (fields: object | undefined, { cdata }: { cdata: string }): Array<string> | string | undefined => {\r\n try {\r\n if (fields) {\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, 'moment', `${cdata}`);\r\n return actuator(fields, moment);\r\n }\r\n const actuator: Function = new Function('moment', `${cdata}`);\r\n return actuator(moment);\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return undefined;\r\n}\r\n","import React from \"react\";\r\n\r\nexport const DesignContext = React.createContext<Design.Context>({});","class DesignConfig {\r\n readonly request: {\r\n prefix: string;\r\n headers: {};\r\n params: {};\r\n route: string;\r\n } = {\r\n prefix: \"api\",\r\n headers: {},\r\n params: {},\r\n route: '/design'\r\n }\r\n readonly file: {\r\n listUrl: string,\r\n downloadUrl: string,\r\n uploadUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n extraData: (file: Design.File.FileInfo, fileType: string) => {},\r\n }\r\n readonly style: {\r\n labelStyle: {}\r\n } = {\r\n labelStyle: {color: '#055ab5'}\r\n }\r\n readonly form: {\r\n documentUrl: string\r\n } = {\r\n documentUrl: \"/form/:formId\"\r\n }\r\n readonly chunk : {\r\n checkFile: string,\r\n checkChunk: string,\r\n chunkUpload: string,\r\n doMerge: string,\r\n mergeProgress: string,\r\n onComplete: string,\r\n completeProgress: string,\r\n chunkSize: number,\r\n } = {\r\n chunkSize: 10 * 1024 ** 2,\r\n checkFile: \"/chunk/checkFile\",\r\n checkChunk: \"/chunk/checkChunk\",\r\n chunkUpload: \"/chunk/chunkUpload\",\r\n doMerge: \"/chunk/doMerge\",\r\n mergeProgress: \"/chunk/mergeProgress\",\r\n onComplete: \"/chunk/onComplete\",\r\n completeProgress: \"/chunk/completeProgress\"\r\n }\r\n\r\n readonly components?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, form, chunk, components } = conf;\r\n this.request = { ...this.request, ...request };\r\n this.file = { ...this.file, ...file };\r\n this.form = { ...this.form, ...form };\r\n this.chunk = { ...this.chunk, ...chunk };\r\n this.components = components;\r\n }\r\n }\r\n\r\n static init(conf?: Design.Config) {\r\n return new DesignConfig(conf);\r\n }\r\n}\r\n\r\nlet config: DesignConfig = DesignConfig.init();\r\nconst defineConfig = (conf: Design.Config) => {\r\n config = DesignConfig.init(conf)\r\n}\r\n\r\nexport { defineConfig, config }","let num = 0;\r\nconst listeners: ((loading: boolean) => void)[] = [];\r\n\r\n/**\r\n * wait\r\n * \r\n * @param millisecond \r\n * @returns \r\n */\r\nconst wait = (millisecond: number) => (\r\n new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(millisecond);\r\n }, millisecond)\r\n}));\r\n\r\n/**\r\n * 注册loading\r\n * \r\n * @param payload \r\n */\r\nexport const regrister = (payload: (loading: boolean) => void) => {\r\n if (typeof payload === 'function') {\r\n listeners.push(payload);\r\n }\r\n}\r\n\r\n/**\r\n * 触发\r\n * \r\n * @param loading \r\n */\r\nconst trigger = async (loading: boolean) => {\r\n if (num === 0) {\r\n for (const callback of listeners) {\r\n callback(loading);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 开始加载loading\r\n */\r\nexport const begin = async () => {\r\n if (num ++ === 0) {\r\n trigger(true);\r\n }\r\n}\r\n\r\n/**\r\n * 结束加载loading\r\n * \r\n */\r\nexport const end = async () => {\r\n if (-- num === 0) {\r\n trigger(false);\r\n }\r\n}\r\n\r\n/**\r\n * 自动关闭\r\n * \r\n */\r\nexport const autoClose = async () => {\r\n await wait(1000);\r\n if (num === 0) {\r\n trigger(false);\r\n } else {\r\n autoClose()\r\n }\r\n}\r\n\r\n/**\r\n * 错误loading\r\n */\r\nexport const error = async () => {\r\n num = 0;\r\n trigger(false);\r\n}","import { cloneDeep } from 'lodash';\r\nimport { extend } from 'umi-request';\r\nimport { parse, compile } from 'path-to-regexp';\r\nimport { config } from '@/config';\r\nimport { begin, end, error } from './loading';\r\n\r\nconst umiRequest = extend({\r\n prefix: config.request.prefix,\r\n headers: config.request.headers,\r\n timeout: 10000,\r\n});\r\n\r\n/** loading全局中间件 */\r\numiRequest.use(async (ctx, next) => {\r\n try {\r\n begin();\r\n await next();\r\n end();\r\n } catch (e) {\r\n error();\r\n throw e;\r\n }\r\n}, { global: true });\r\n\r\n/** 请求访问 **/\r\nconst request = (targetUrl: string, options: any) => {\r\n const cloneData = cloneDeep(options.data);\r\n let url = targetUrl;\r\n try {\r\n // 过滤protocol、domain、host\r\n let domain = '';\r\n const urlMatch = url.match(/[a-zA-z]+:\\/\\/[^/]*/);\r\n if (urlMatch) {\r\n [domain] = urlMatch;\r\n url = url.slice(domain.length);\r\n }\r\n // 编译url参数\r\n const match = parse(url);\r\n url = compile(url)(options.data);\r\n match.forEach((item: any) => {\r\n if (item instanceof Object && item.name in cloneData) {\r\n delete cloneData[item.name];\r\n }\r\n });\r\n url = domain + url;\r\n } catch (e: any) {\r\n console.error(e.message);\r\n }\r\n if (options.method.toLocaleUpperCase() === 'GET') {\r\n options.params = cloneData;\r\n } else if (options.type){\r\n options.requestType = options.type\r\n }\r\n options.prefix = config.request.prefix; \r\n // 调用umi-request\r\n return umiRequest(url, options)\r\n .then(({ status, ...rest }: any) => {\r\n const success = status === 200;\r\n return Promise.resolve({\r\n success,\r\n ...rest,\r\n });\r\n })\r\n .catch(({ response, data }: any) => {\r\n const message = data?.message ?? '访问超时';\r\n console.error(url, response, data);\r\n return Promise.resolve({\r\n success: false,\r\n message,\r\n });\r\n });\r\n};\r\n\r\n/** request **/\r\nexport default (uri: string) => {\r\n let [method, type, url] = ['GET', 'json', uri];\r\n const uriArray = uri.split(' ')\r\n if (uriArray.length === 2) {\r\n [method, url] = uriArray;\r\n } else if (uriArray.length === 3) {\r\n [method, type, url] = uriArray;\r\n }\r\n return (data?: any) => request(url, { method, type, data });\r\n}\r\n","import { camelCase } from 'lodash';\r\n\r\n/**\r\n * 转换样式对象\r\n * \r\n * @param style string\r\n * @returns styles\r\n */\r\nexport const toStyles = (style: string | undefined) => {\r\n const styles: {} = {};\r\n if (style) {\r\n const styleArray: string[] = style.replace(/\\ +/g, \"\").split(\";\");\r\n styleArray.forEach(items => {\r\n if (items) {\r\n const [key, value] = items.split(\":\");\r\n Object.assign(styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n return styles;\r\n}","import React from \"react\";\r\nimport { every, some, find } from \"lodash\";\r\nimport { collection, compute, condition, validate } from \"@/applets\";\r\nimport { DesignContext } from \"@/context\";\r\nimport request from \"@/utils/request\";\r\nimport { config } from \"@/config\";\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nexport default class UIComponent<P extends Design.ComponentProps, S = {}> extends React.PureComponent<P, S> {\r\n declare context: React.ContextType<typeof DesignContext>\r\n\r\n styleWrapper = { style: { borderBottom: '1px solid #d9d9d9' } };\r\n\r\n /**\r\n * 设置字段默认值\r\n * \r\n * @param defaultValue \r\n */\r\n setDefaultValue<T>(defaultValue: T): void {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n const value = form.current?.getFieldValue(code);\r\n if (!value) {\r\n form.current?.setFieldValue(code, defaultValue);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 设置当前字段值\r\n * \r\n * @param value \r\n */\r\n setFieldValue<T>(value: T | undefined): void {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n form.current?.setFieldValue(code, value);\r\n }\r\n }\r\n\r\n /**\r\n * 清楚当前值\r\n * \r\n */\r\n cleanFieldValue(): void {\r\n setTimeout(() => {\r\n this.setFieldValue(undefined);\r\n }, 1);\r\n }\r\n\r\n /**\r\n * 获得当前值\r\n * \r\n * @returns \r\n */\r\n getFieldValue<T>(): T | undefined {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n return form.current?.getFieldValue(code);\r\n }\r\n }\r\n\r\n /**\r\n * 获得所有form对象值\r\n * \r\n * @returns \r\n */\r\n getFieldsValue(): object | undefined {\r\n const form = this.context.form;\r\n if (form) {\r\n return form.current?.getFieldsValue();\r\n }\r\n }\r\n\r\n /**\r\n * 获得标签\r\n * \r\n * @returns \r\n */\r\n getLabel() {\r\n const isShowTitle = this.context.showTitle\r\n if (isShowTitle) {\r\n const { title, labelStyle } = this.props;\r\n const labelStyles = toStyles(labelStyle);\r\n return <span style={{ ...config.style.labelStyle, ...labelStyles }}>{title}</span>;\r\n }\r\n }\r\n\r\n /**\r\n * 获得item信息\r\n * \r\n * @returns \r\n */\r\n getItem(): { itemProps: {}, itemLayouts: {} } {\r\n const { preview, labelCol, wrapperCol, tips } = this.props;\r\n const itemLayouts = labelCol && wrapperCol ? { labelCol: { span: labelCol }, wrapperCol: { span: wrapperCol } } : {};\r\n let itemProps: {};\r\n if (preview) {\r\n itemProps = { required: false };\r\n Object.assign(itemLayouts.wrapperCol ?? {}, this.styleWrapper);\r\n } else {\r\n itemProps = { tooltip: tips };\r\n }\r\n return { itemProps, itemLayouts };\r\n }\r\n\r\n /**\r\n * 样式\r\n * \r\n * @returns \r\n */\r\n getStyles(): { styles: {}, itemStyles: {} } {\r\n const { style, itemStyle } = this.props;\r\n const styles = toStyles(style);\r\n const itemStyles = toStyles(itemStyle);\r\n return { styles, itemStyles };\r\n }\r\n\r\n /**\r\n * 条件\r\n * \r\n * @param defaultHide \r\n * @param children \r\n * @returns \r\n */\r\n display(): boolean {\r\n const preview = this.context.preview ?? false;\r\n const fileds = this.getFieldsValue();\r\n const { defaultHide = false, children } = this.props;\r\n const show: boolean = !defaultHide;\r\n const conditions: Design.Modal.ConditionXML | undefined = find(children, { tag: \"Conditions\" });\r\n if (conditions) {\r\n const { type, action } = conditions;\r\n const list = conditions.children?.map(condition(fileds, preview));\r\n if (list?.length > 0 && list?.[0] !== undefined) {\r\n let result: boolean = false;\r\n if (type === 'and') {\r\n result = every(list);\r\n } else {\r\n result = some(list);\r\n }\r\n if ((result && action === 'hide') || (!result && action === 'show')) {\r\n return false;\r\n } else if ((!result && action === 'hide') || (result && action === 'show')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return show;\r\n }\r\n\r\n /**\r\n * 规则\r\n * \r\n * @param preview \r\n * @param children \r\n * @returns \r\n */\r\n rules(): Design.Rule[] {\r\n const { preview, children } = this.props;\r\n if (!preview) {\r\n const validates = find(children, { tag: \"Validates\" });\r\n return validates?.children?.map(validate) ?? [];\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * 可选内容列表\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n collectionList(): string[] | undefined {\r\n const content = find(this.props.children, { tag: \"Collection\" });\r\n if (content) {\r\n const fileds = this.getFieldsValue();\r\n return collection(fileds, content);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * 计算值\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n onComputeValue(): void {\r\n const content = find(this.props.children, { tag: \"Compute\" });\r\n if (content) {\r\n const fileds = this.getFieldsValue();\r\n const computeValue = compute(fileds, content);\r\n if (computeValue) {\r\n setTimeout(() => {\r\n this.setFieldValue(computeValue);\r\n }, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 初始化值\r\n * \r\n * @param value \r\n */\r\n initValue(value?: string): void {\r\n const { defaultValue = value } = this.props;\r\n if (defaultValue) {\r\n this.setDefaultValue(defaultValue);\r\n }\r\n }\r\n\r\n /**\r\n * 请求网络\r\n * \r\n * @param remote \r\n * @returns \r\n */\r\n request = async (remote: string, args?: object) => {\r\n const params = args ?? this.context.params;\r\n return request(remote)({ ...params }).then(response => {\r\n const { success, data }: Design.Result = response;\r\n if (success) {\r\n if (Array.isArray(data)) {\r\n const list = data.map(item => {\r\n const [key, label] = Object.entries<string>(item)?.[0];\r\n return { key, label };\r\n });\r\n return Promise.resolve(list);\r\n } else {\r\n return Promise.resolve(data);\r\n }\r\n }\r\n return Promise.reject(undefined);\r\n }).catch(error => {\r\n console.error(\"remote\", remote, error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n}\r\n\r\nUIComponent.contextType = DesignContext;","import React from \"react\";\r\nimport { Form } from \"antd\";\r\nimport UIComponent from \"./UIComponent\";\r\n\r\ninterface ProComponentProps extends Design.ComponentProps {\r\n Component: any;\r\n}\r\n\r\nexport default class ProComponent extends UIComponent<ProComponentProps> {\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n initValue = () => {\r\n const { defaultValue } = this.props;\r\n if (defaultValue) {\r\n this.forceUpdate(() => {\r\n this.setDefaultValue(defaultValue);\r\n });\r\n }\r\n };\r\n\r\n onChange = (value: string) => {\r\n this.setFieldValue(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, hidden } = this.props;\r\n const { Component, defaultValue, style, ...props } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {<Component {...props} style={styles} onChange={this.onChange}/>}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import { find } from \"lodash\";\r\nimport UIComponent from \"./UIComponent\";\r\n\r\nexport default class UIListComponent<P extends Design.ComponentProps, S = {}> extends UIComponent<P, S> {\r\n\r\n /**\r\n * 选项列表\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n optionList(): Design.ItemOption[] | undefined {\r\n const options = find(this.props.children, { tag: \"Options\" })\r\n return options?.children as [];\r\n }\r\n\r\n /**\r\n * 添加校验规则\r\n * \r\n * @returns \r\n */\r\n plusRules(): Design.Rule[] {\r\n const rules = this.rules();\r\n return rules?.map(rule => {\r\n if (rule.required) {\r\n const validator = (_: unknown, value: string) => value?.length > 0 ? Promise.resolve() : Promise.reject();\r\n return { ...rule, validator };\r\n }\r\n if (rule.min && rule.max) {\r\n const validator = (_: unknown, list: any[]) => list.length >= rule.min! && list.length <= rule.max! ? Promise.resolve() : Promise.reject();\r\n return { ...rule, validator };\r\n }\r\n return { ...rule };\r\n });\r\n }\r\n\r\n /**\r\n * 获得资源列表\r\n * \r\n * @param list \r\n * @param itemList \r\n * @param reset \r\n * @returns \r\n */\r\n getList = (list: Design.ItemOption[], itemList: string[] | undefined, reset: (plist: Design.ItemOption[]) => void) => {\r\n if (itemList) {\r\n const plist = list.filter(({ key }) => itemList.includes(key));\r\n reset(plist);\r\n return plist;\r\n }\r\n return list;\r\n }\r\n}","import React, { PureComponent } from \"react\";\r\n\r\nexport default class WidgetComponent<P = {}, S = {}> extends PureComponent<P, S> {\r\n\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Label extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.rules();\r\n const { title, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n wrapperCol={{ span: 24 }}\r\n >\r\n <div style={styles}>{title}</div>\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Tooltip extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n const { preview, } = this.props;\r\n if (show && !preview) {\r\n const { title, hidden, children } = this.props; \r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item style={itemStyles} hidden={hidden} wrapperCol={{ span: 24 }}>\r\n <div style={styles}>{title ?? children}</div>\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { Space, Image } from 'antd';\r\nimport { config } from '@/config';\r\n\r\n/** 文本预览 */\r\nexport const PreviewText = ({ value, type, style, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n if (value && type === \"url\") {\r\n const urls = value.split(/[,;\\s]/);\r\n return urls.map((url: string) => <div style={style}><a href={url} target=\"_blank\" rel=\"noreferrer\">{url}</a></div>)\r\n }\r\n return <div style={style}>{value}</div>\r\n}\r\n\r\n/** 时长预览 */\r\nexport const PreviewDuration = ({ value, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(value);\r\n }, []);\r\n if (value) {\r\n const [hour, minute, second] = value?.split(\":\");\r\n return <div style={style}>{`${hour}小时${minute}分${second}秒`}</div>\r\n } else {\r\n return <div style={style}>000时00分00秒</div>\r\n }\r\n}\r\n\r\n/** 切换预览 */\r\nexport const PreviewSwitch = ({ checked, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div style={style}>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\n\r\n/** 列表预览 */\r\nexport const PreviewList = ({ value, list, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(value);\r\n }, []);\r\n\r\n if (Array.isArray(value)) {\r\n const items = list.filter(({ key }: any) => value.includes(key)).map(({ label }: any) => label);\r\n return <div style={style}>{items?.join()}</div>\r\n } else {\r\n const item = list?.find(({ key }: any) => key === value);\r\n return <div style={style}>{item?.label}</div>\r\n }\r\n}\r\n\r\n/** 文件预览 */\r\nexport const PreviewFile = ({ fileList }: { fileList: any[]}) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n return <>\r\n {fileList?.map(({ id, name, url, contentType }: any) => {\r\n const uri = downloadUrl + \"/\" + id;\r\n /** pdf文本预览 */\r\n if (contentType?.endsWith(\"pdf\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 图片文本预览 */\r\n if (contentType?.startsWith(\"image\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={200} src={url} alt={name} />\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 视频文本预览 */\r\n if (contentType?.startsWith(\"video\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 音频文本预览 */\r\n if (contentType?.startsWith(\"audio\")) {\r\n return <div key={id}>\r\n <div style={{ paddingBottom: 10, display: 'flex', alignItems: 'center' }}>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <a style={{ paddingLeft: 10 }} href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </div>\r\n </div>\r\n }\r\n /** office文本预览 */\r\n if (name?.endsWith(\".doc\") || name?.endsWith(\".docx\") || name?.endsWith(\".xls\") || name?.endsWith(\".xlsx\") || name?.endsWith(\".ppt\") || name?.endsWith(\".pptx\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={'http://view.officeapps.live.com/op/view.aspx?src=' + url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 默认文本预览 */\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n })}\r\n </>\r\n}\r\n\r\nexport const PreviewImage = ({ fileList, width, height, style } : { fileList: any[], width: number, height: number, style?: object }) =>\r\n <>\r\n {fileList?.map(({ id, name, url }) => (\r\n <div key={id} style={style}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={width} height={height} src={url} alt={name} />\r\n <a href={config.request.prefix + config.file.downloadUrl + \"/\" + id} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n ))}\r\n </>","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class Text extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, type, preview, placeholder, maxLength, allowClear, showCount, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText type={type} style={styles} /> : <Input maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class TextArea extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue(); \r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, placeholder, maxLength, allowClear, showCount, minRow=\"0\", maxRow=\"0\", readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles} = this.getStyles();\r\n const minRows = Number(minRow);\r\n const maxRows = Number(maxRow);\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText style={styles} /> : <Input.TextArea maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} autoSize={ minRows + maxRows < 1 ? false : { minRows, maxRows} } disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, InputNumber as Numerial } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class InputNumber extends UIComponent<Design.NumberProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const { type = \"number\", precision } = this.props;\r\n let numberProps: {} = {};\r\n if (type === \"digits\") {\r\n if (precision) {\r\n numberProps = {\r\n precision: Number(precision),\r\n };\r\n } else {\r\n numberProps = {\r\n precision: 2,\r\n };\r\n }\r\n } else if (type === \"money\") {\r\n numberProps = {\r\n formatter: (value: string) =>\r\n `¥ ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"),\r\n parser: (value: string) => value!.replace(/\\$\\s?|(,*)/g, \"\"),\r\n };\r\n } else if (type === \"percentage\") {\r\n numberProps = {\r\n formatter: (value: string) => `${value}%`,\r\n parser: (value: string) => value!.replace(\"%\", \"\"),\r\n };\r\n }\r\n this.onComputeValue();\r\n const rules = this.rules().map(rule => rule.required ? { ...rule, type: \"number\" } : rule);\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, min, max, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? (<PreviewText style={styles} />) : (<Numerial min={min} max={max} disabled={readonly} {...numberProps} style={styles} />)}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport ReactWEditor from 'wangeditor-for-react';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Editor extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, placeholder, hidden, readonly } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n colon={!!title}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {(preview || readonly) ? <PreviewText style={styles} /> : <EditorWidget placeholder={placeholder} style={styles} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass EditorWidget extends React.Component<Design.WidgetProps> {\r\n isReactWEditor = false\r\n editorRef: React.RefObject<any> = React.createRef();\r\n \r\n shouldComponentUpdate() {\r\n return !this.isReactWEditor\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, placeholder, style, onChange } = this.props;\r\n return (\r\n <ReactWEditor\r\n placeholder={placeholder} \r\n value={value}\r\n style={style}\r\n onBlur={() => {\r\n this.isReactWEditor = false\r\n }}\r\n onFocus={() => {\r\n this.isReactWEditor = true\r\n }}\r\n onChange={(value: string) => {\r\n onChange?.(value);\r\n }}\r\n />\r\n );\r\n } \r\n}\r\n","import React from 'react';\r\nimport { Form, Select } from 'antd';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewList } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nexport default class SelectList extends UIListComponent<Design.RemoteProps, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void { \r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({ \r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n initValue() {\r\n const { defaultValue, multiple } = this.props;\r\n if (defaultValue) {\r\n if (multiple) {\r\n this.setDefaultValue([defaultValue]);\r\n } else {\r\n this.setDefaultValue(defaultValue);\r\n }\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const { code, preview, multiple, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const rules = multiple ? this.plusRules() : this.rules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string | string[]>();\r\n if (currentValue && (\r\n (!multiple && !plist.some(item => item.key === currentValue)) ||\r\n (multiple && !plist.some(item => currentValue.includes(item.key)))\r\n )) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={this.state.list} style={styles} /> :\r\n <SelectWidget list={list} multiple={multiple} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} />\r\n }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nconst { Option } = Select;\r\nclass SelectWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n handleItemValue = (value: string) => {\r\n this.props.onChange?.(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { list, value, multiple, placeholder, allowClear, readonly, style } = this.props;\r\n return (<Select\r\n showSearch\r\n placeholder={placeholder}\r\n mode={multiple ? \"multiple\" : undefined}\r\n disabled={readonly}\r\n value={value as string}\r\n allowClear={allowClear}\r\n style={style}\r\n onChange={this.handleItemValue}\r\n filterOption={(inputValue: string, option: any) =>\r\n (option!.children as unknown as string).toLowerCase().includes(inputValue.toLowerCase())\r\n }\r\n >\r\n {list && (list.map(({ key, label }) => <Option key={key} value={key}>{label}</Option>))}\r\n </Select>);\r\n }\r\n}","import React from 'react';\r\nimport { Form, Checkbox } from 'antd';\r\nimport { PreviewList } from '@/preview';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { config } from '@/config';\r\n\r\nexport default class CheckBox extends UIListComponent<Design.RemoteProps, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void {\r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({\r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string[]>();\r\n if (currentValue && !plist.some(item => currentValue.includes(item.key))) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewList list={this.state.list} style={styles} /> : <CheckboxWidget list={list} readonly={readonly} style={styles}/> }\r\n </Form.Item>\r\n )\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nclass CheckboxWidget extends WidgetComponent<Design.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, readonly, style, onChange } = this.props;\r\n return (\r\n <Checkbox.Group\r\n style={style}\r\n value={value as string[]}\r\n onChange={(value: any) => {\r\n onChange?.(value);\r\n }}\r\n >\r\n {list && (list.map(({ key, label }) => <Checkbox key={key} value={key} disabled={readonly}>{label}</Checkbox>))}\r\n </Checkbox.Group>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form, Radio } from 'antd';\r\nimport { PreviewList } from '@/preview';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { config } from '@/config';\r\n\r\nexport default class RadioButton extends UIListComponent<Design.Radio.Props, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void {\r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({ \r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string>();\r\n if (currentValue && !plist.some(item => currentValue.includes(item.key))) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { code, preview, optionType, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={list} style={styles} /> : <RadioWidget list={this.state.list} optionType={optionType} readonly={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n } \r\n}\r\n\r\nclass RadioWidget extends WidgetComponent<Design.Radio.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, optionType, readonly, style, onChange } = this.props;\r\n return (\r\n <Radio.Group\r\n value={value}\r\n optionType={optionType}\r\n style={style}\r\n onChange={(e: any) => {\r\n onChange?.(e.target.value);\r\n }}\r\n >\r\n {list && (list.map(({ key, label }) => <Radio key={key} value={key} disabled={readonly}>{label}</Radio>))}\r\n </Radio.Group>\r\n );\r\n } \r\n}\r\n","import React from 'react';\r\nimport { Form, Switch } from 'antd';\r\nimport { PreviewSwitch } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class SwitchButton extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"checked\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewSwitch style={styles} /> : <Switch disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from 'react';\r\nimport { Form, InputNumber } from 'antd';\r\nimport format from 'number-format.js';\r\nimport { PreviewDuration } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport './index.css';\r\n\r\nexport default class Duration extends UIComponent<Design.ComponentProps> {\r\n\r\n componentDidMount(): void {\r\n this.initValue(\"000:00:00\");\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewDuration style={styles} /> : <DurationWidget readonly={readonly} style={styles}/> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DurationWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n duration: number[] = [0, 0, 0];\r\n \r\n changeValue = (index: number) => (changeValue: number | null) => {\r\n if (typeof changeValue === \"number\") {\r\n this.duration[index] = changeValue;\r\n const durations = this.duration.map((value: number, index: number) => (index === 0 ? format(\"000\", value) : format(\"00\", value)));\r\n this.props.onChange?.(durations.join(\":\"));\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, readonly, style } = this.props;\r\n if (typeof value === \"string\") {\r\n this.duration = value.split(\":\").map(Number);\r\n }\r\n return (\r\n <div className=\"duration\">\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={999} precision={0} value={this.duration[0]}\r\n formatter={(value: any) => value! < 100 ? (value! < 10 ? '00'+ value : '0'+ value) : value!.toString()}\r\n onChange={this.changeValue(0)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>小时</span>\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={59} precision={0} value={this.duration[1]}\r\n formatter={(value: any) => value! < 10 ? '0'+ value : value!.toString()}\r\n onChange={this.changeValue(1)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>分</span>\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={59} precision={0} value={this.duration[2]}\r\n formatter={(value: any) => value! < 10 ? '0'+ value : value!.toString()}\r\n onChange={this.changeValue(2)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>秒</span>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { Form, DatePicker } from 'antd';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport weekday from \"dayjs/plugin/weekday\";\r\nimport localeData from \"dayjs/plugin/localeData\";\r\n \r\ndayjs.extend(weekday);\r\ndayjs.extend(localeData);\r\n\r\nexport default class Datepicker extends UIComponent<Design.Picker.Props> {\r\n\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, type = \"date\", format = \"YYYY-MM-DD\", showTime = false, preview, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewText style={styles}/> : <DateWidget type={type} format={format} showTime={showTime} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DateWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, type, format, showTime, placeholder, allowClear, readonly, style, onChange } = this.props;\r\n return (\r\n <DatePicker\r\n value={value ? dayjs(value, format) : undefined}\r\n picker={type}\r\n format={format}\r\n showTime={showTime ? { format: 'HH:mm' } : undefined}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n style={style}\r\n onChange={(value: any) => {\r\n onChange?.(value?.format(format));\r\n }}\r\n />\r\n )\r\n }\r\n}","import React from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { Form, TimePicker } from 'antd';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport { PreviewText } from '@/preview';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\n\r\ndayjs.extend(customParseFormat);\r\n\r\nexport default class Timepicker extends UIComponent<Design.Picker.Props> {\r\n\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, format = \"HH:mm:ss\", preview, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText style={styles} /> : <TimeWidget format={format} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TimeWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, format, placeholder, allowClear, readonly, style, onChange } = this.props;\r\n return (\r\n <TimePicker \r\n value={value ? dayjs(value, format) : undefined}\r\n format={format}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly}\r\n style={style}\r\n onChange={(value: any) => {\r\n onChange?.(value?.format(format))\r\n }} />\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileType, fileTypeMessage, fileSize, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileType={fileType} fileTypeMessage={fileTypeMessage} fileSize={fileSize} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list?.length > 0 && list[0]) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done'}));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ id, status }) => (id && status === 'done')).map(({ id }) => id));\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onStart = (): void => {\r\n clearInterval(this.timer);\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: 0\r\n }\r\n })\r\n this.uploading = true;\r\n }\r\n\r\n onProgress = (step: { percent: number}) => {\r\n if (!this.uploading) {\r\n return\r\n }\r\n clearInterval(this.timer);\r\n const percent = Math.round(step.percent / 2);\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: percent\r\n }\r\n });\r\n if (percent === 50) {\r\n let progress = percent;\r\n this.timer = setInterval(() => {\r\n if (this.uploading) {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: ++progress\r\n }\r\n });\r\n } else {\r\n clearInterval(this.timer);\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n });\r\n }\r\n if (progress === 99) {\r\n clearInterval(this.timer);\r\n }\r\n }, 1000);\r\n }\r\n }\r\n\r\n onSuccess = (response: any, file: any) => {\r\n clearInterval(this.timer);\r\n const { id, url } = response.data;\r\n file.status = \"done\";\r\n file.response = response;\r\n file.id = id;\r\n file.url = url;\r\n const fileList = [...this.state.fileList, file];\r\n this.setState({\r\n fileList,\r\n modal: {\r\n open: true,\r\n progress: 100\r\n }\r\n }, () => {\r\n this.onChange(fileList);\r\n setTimeout(()=> {\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n })\r\n }, 500);\r\n });\r\n this.uploading = false;\r\n }\r\n\r\n onError = (error: any, response: any, file: any) => {\r\n clearInterval(this.timer);\r\n const fileList = [...this.state.fileList, file];\r\n file.status = \"error\";\r\n file.response = response?.message ?? \"上传失败\";\r\n this.setState({\r\n fileList,\r\n modal: {\r\n open: false,\r\n progress: 100\r\n }\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n this.uploading = false;\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList } = this.state;\r\n const list = fileList.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList: list\r\n }, () => {\r\n this.onChange(list);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, modal } = this.state;\r\n const { preview, maxCount: count, readonly, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewFile fileList={fileList} />\r\n }\r\n const { onStart, onSuccess, onProgress, onError } = this;\r\n const itemProps = { onStart, onSuccess, onProgress, onError }\r\n return (\r\n <>\r\n <Upload\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n onRemove={this.onRemove}\r\n // data={file => {\r\n // const mime = this.fileExtraData(fileType);\r\n // return { mime, uid: file.uid };\r\n // }}\r\n { ...itemProps }\r\n >\r\n <Button disabled={readonly ? readonly : maxCount <= fileList.length} icon={<UploadOutlined />} style={style} >上传</Button>\r\n </Upload>\r\n <Modal open={modal.open} closable={false} footer={null}>\r\n <div>上传文件进度</div>\r\n <Progress percent={modal.progress} />\r\n </Modal>\r\n </>\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, Upload, Button, Modal, message } from 'antd';\r\nimport type { UploadProps } from 'antd/es/upload';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport ImgCrop from 'antd-img-crop';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewImage } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\nconst fileType = [\"image/jpeg\", \"image/png\"];\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileSize, fileWidth = \"100\", fileHeight = \"100\", readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileSize={fileSize} fileWidth={Number(fileWidth)} fileHeight={Number(fileHeight)} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n fileView: undefined,\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list?.length > 0 && list[0]) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done'}));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ id, status }) => (id && status === 'done')).map(({ id }) => id));\r\n }\r\n\r\n onChangeValue: UploadProps['onChange'] = ({ fileList: list }) => {\r\n const fileList: Design.File.FileInfo[] = list.map((file: any) => {\r\n if (file.response?.status === 200) {\r\n const { id, name, url } = file.response.data;\r\n file.id = id;\r\n // file.name = name;\r\n file.url = url;\r\n file.status = 'done';\r\n } else if (file.response?.status === 500) {\r\n file.status = 'error';\r\n file.response = file.response.message;\r\n }\r\n return file;\r\n });\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const isFileType = fileType.includes(file.type);\r\n if (!isFileType) {\r\n message.error(\"上传文件类型,仅支持图片类型!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n const { fileSize } = this.props;\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList: list } = this.state;\r\n const fileList = list.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, fileView } = this.state;\r\n const { preview, maxCount: count, readonly, fileWidth = 100, fileHeight = 100, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewImage fileList={fileList} width={fileWidth} height={fileHeight} style={style}/>\r\n }\r\n return (<>\r\n <ImgCrop\r\n rotationSlider\r\n modalTitle=\"图片编辑\"\r\n modalOk=\"确认\"\r\n modalCancel=\"取消\"\r\n aspect={fileWidth / fileHeight}\r\n >\r\n <Upload\r\n listType=\"picture-card\"\r\n accept={fileType.join(\",\")}\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n onChange={this.onChangeValue}\r\n onRemove={this.onRemove}\r\n onPreview={(file: any) => this.setState({ fileView: file })}\r\n >\r\n {!readonly && (Number(maxCount) > fileList.length) && <Button type=\"link\" icon={<PlusOutlined />} style={style}/>}\r\n </Upload>\r\n </ImgCrop>\r\n {fileView?.[\"id\"] && <Modal title={fileView[\"name\"]} open={true} footer={null} onCancel={() => this.setState({ fileView: undefined})}>\r\n <img alt={fileView[\"name\"]} style={{ width: '100%' }} src={fileView[\"url\"]} />\r\n </Modal>}\r\n </>)\r\n }\r\n}","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport FileUpload from 'file-block-upload';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileType, fileTypeMessage, fileSize, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileType={fileType} fileTypeMessage={fileTypeMessage} fileSize={fileSize} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list.length > 0) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done' }));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n customRequest = (info: any) => {\r\n const options = {\r\n blockSize: config.chunk.chunkSize,\r\n checkFile: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.checkFile)({ fileName, fileMd5, fileSize })\r\n ),\r\n checkBlock: async ({fileName, fileMd5, blockMd5, blockIndex}: any) => (\r\n await request(\"post form \" + config.chunk.checkChunk)({ fileName, fileMd5, blockMd5, blockIndex })\r\n ),\r\n\r\n uploadBlock: async ({fileName, fileMd5, blockMd5, blockIndex, file}: any) => {\r\n const formData = new FormData();\r\n formData.append(\"blockIndex\", String(blockIndex));\r\n formData.append(\"blockMd5\", blockMd5);\r\n formData.append(\"fileName\", fileName);\r\n formData.append(\"fileMd5\", fileMd5);\r\n formData.append(\"file\", file as Blob);\r\n return await request(\"post form \" + config.chunk.chunkUpload)(formData);\r\n },\r\n\r\n mergeBlock: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.doMerge)({fileName, fileMd5, fileSize})\r\n ),\r\n mergeProgress: async () => {\r\n const result = await request(config.chunk.mergeProgress)();\r\n return result?.data;\r\n },\r\n\r\n verifyFile: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.onComplete)({fileName, fileMd5, fileSize})\r\n ),\r\n verifyProgress: async () => {\r\n const result = await request(config.chunk.completeProgress)();\r\n return result?.data;\r\n },\r\n };\r\n\r\n const upload = FileUpload.create(options);\r\n upload.progress((file: any, progress: number) => {\r\n file.status = \"uploading\";\r\n this.setState({ modal: { open: true, progress }});\r\n });\r\n upload.complete((file: any) => {\r\n const { id, url } = file.response;\r\n file.id = id;\r\n file.url = url;\r\n file.status = \"done\";\r\n const fileList = [...this.state.fileList, file];\r\n this.setState({\r\n fileList,\r\n modal: { open: false, progress: 0 }\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n });\r\n upload.error((file: any, error: string) => {\r\n file.status = 'error';\r\n file.response = error;\r\n let fileList: any[] = this.state.fileList;\r\n const index = fileList.findIndex(({ uid }) => uid === file.uid);\r\n if (index === -1) {\r\n fileList.push(file);\r\n } else {\r\n fileList[index] = file;\r\n }\r\n this.setState({\r\n fileList,\r\n modal: { open: false, progress: 0 }\r\n });\r\n });\r\n upload.start(info.file);\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ status }) => status === 'done').map(({ id }) => id));\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList } = this.state;\r\n const list = fileList.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList: list\r\n }, () => {\r\n this.onChange(list);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, modal } = this.state;\r\n const { preview, maxCount: count, readonly, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewFile fileList={fileList} />\r\n }\r\n return (\r\n <>\r\n <Upload\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n customRequest={this.customRequest}\r\n onRemove={this.onRemove}\r\n // data={file => {\r\n // const mime = this.fileExtraData(fileType);\r\n // return { mime, uid: file.uid };\r\n // }}\r\n >\r\n <Button disabled={readonly ? readonly : maxCount <= fileList.length} icon={<UploadOutlined />} style={style} >上传</Button>\r\n </Upload>\r\n <Modal open={modal.open} closable={false} footer={null}>\r\n <div>上传文件进度</div>\r\n <Progress percent={modal.progress} />\r\n </Modal>\r\n </>\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, Card, Table, Modal, Input, Space, Row, Col } from 'antd';\r\nimport { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { concat, find, uniqueId } from 'lodash';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { validate } from \"@/applets\";\r\n\r\nexport default class TableList extends UIListComponent<Design.ComponentProps> {\r\n \r\n getColumns() {\r\n const columnList = find(this.props.children, { tag: \"Columns\" })\r\n if (columnList) {\r\n return columnList.children?.map((column: Design.Table.ColumnData) => ({\r\n ...column,\r\n rules: column.rules?.map(validate)\r\n }));\r\n }\r\n return [];\r\n }\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <TableWidget preview={preview || readonly} title={title} columns={this.getColumns()} style={styles} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TableWidget extends WidgetComponent<Design.Table.WidgetProps, Design.Table.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const { list, onChange } = this.props;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ worksId, worksExtraId, ...items }, index) => {\r\n return { id: worksExtraId, index: index + 1, ...items }\r\n });\r\n this.setState({ dataSource }, () => {\r\n onChange?.(dataSource);\r\n })\r\n }\r\n }\r\n\r\n getColumns() {\r\n const { title, preview, columns, onChange } = this.props;\r\n const { dataSource } = this.state;\r\n if (preview) {\r\n return columns;\r\n }\r\n return concat(columns, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `修改${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >\r\n 修改\r\n </a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Table.Item[] = dataSource.filter(({ id, uid }) => !((id && record.id === id) || (uid && record.uid === uid)));\r\n this.setState({ dataSource: list }, () => {\r\n onChange?.(list);\r\n })\r\n },\r\n });\r\n }}\r\n >\r\n 删除\r\n </a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Table.Item) => {\r\n const { dataSource } = this.state;\r\n let list: Design.Table.Item[] = [];\r\n if (entity.id || entity.uid) {\r\n list = dataSource.map((item: Design.Table.Item) => {\r\n if (entity.id && item.id === entity.id) {\r\n return { ...item, ...entity }\r\n } else if (entity.uid && item.uid === entity.uid) {\r\n return { ...item, ...entity }\r\n }\r\n return item;\r\n });\r\n } else {\r\n entity.index = dataSource.length + 1;\r\n entity.uid = uniqueId();\r\n list = [...dataSource, entity];\r\n }\r\n\r\n this.setState({\r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list);\r\n })\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { title, preview, style } = this.props;\r\n const { dataSource, modal } = this.state;\r\n const columns = this.getColumns();\r\n return (\r\n <Card\r\n title={title}\r\n bodyStyle={{ padding: '0px 12px' }}\r\n extra={\r\n preview ? null :\r\n <a key=\"new\" onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: undefined, show: true }\r\n })\r\n }}>添加</a>\r\n }\r\n >\r\n <Table rowKey=\"index\" size=\"small\" style={style} columns={columns} dataSource={dataSource} />\r\n {modal.show && <ModalForm title={modal.title} entity={modal.entity} columns={columns} onFinish={this.onFinish} onCancel={this.onCancel} />}\r\n </Card>\r\n )\r\n }\r\n}\r\n\r\nconst ModalForm = ({ title, entity, columns, onFinish, onCancel }: Design.Table.ModalProps) => {\r\n const [form] = Form.useForm();\r\n return (\r\n <Modal \r\n title={title}\r\n width={740}\r\n open={true}\r\n destroyOnClose={true}\r\n onCancel={onCancel}\r\n onOk={async () => {\r\n const valid = form.validateFields()\r\n valid.then((data: Design.Table.Item)=> {\r\n onFinish({...entity, ...data});\r\n }).catch((e: any)=> {\r\n console.warn(e);\r\n });\r\n }} \r\n >\r\n <Form\r\n form={form} \r\n name=\"modalTable\"\r\n initialValues={entity}\r\n wrapperCol={{ span: 22 }}\r\n autoComplete=\"off\"\r\n layout='vertical'\r\n >\r\n <Row>\r\n {columns.length > 0 && columns.map(({ title, dataIndex, placeholder, rules }) => {\r\n if (dataIndex !== 'index' && dataIndex !== 'option') {\r\n return (\r\n <Col span={12} key={dataIndex}>\r\n <Form.Item label={title} name={dataIndex} rules={rules as []}>\r\n <Input placeholder={placeholder} />\r\n </Form.Item>\r\n </Col>\r\n )\r\n }\r\n })}\r\n </Row>\r\n </Form>\r\n </Modal>\r\n )\r\n}\r\n","import React, { useRef } from 'react';\r\nimport { Form, FormInstance, Card, Table, Modal, Space } from 'antd';\r\nimport { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { concat, find, uniqueId } from 'lodash';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport XMLDocument from \"@/utils/document\";\r\nimport { config } from '@/config';\r\nimport FormDocument from '@/form';\r\n\r\nexport default class FormList extends UIListComponent<Design.Form.Props, Design.Form.States> {\r\n\r\n itemList:{ code: string; title: string, type: string; data: {}; }[] = []\r\n columnList: any[] = []\r\n state = {\r\n doc: undefined,\r\n loading: true\r\n };\r\n\r\n componentDidMount(): void {\r\n const formId = this.props.formId!;\r\n this.setState({ loading: true });\r\n this.request(config.form.documentUrl, { formId }).then((xml: string) => {\r\n const doc = XMLDocument.toDocument(xml);\r\n this.setState({ doc });\r\n this.initItems(doc);\r\n });\r\n }\r\n\r\n initItems = async(doc: Document) => {\r\n this.columnList = find(this.props.children, { tag: \"Columns\" }).children;\r\n const codes: any[] = this.columnList.map((column: any) => column.dataIndex);\r\n const elements = XMLDocument.selectors(doc, \"[code]\");\r\n for (const element of elements) {\r\n const code = element.getAttribute(\"code\");\r\n const title = element.getAttribute(\"title\")!;\r\n const type = element.tagName.toLowerCase();\r\n if (code && codes.includes(code)) {\r\n const data: any = {};\r\n const remote = element.getAttribute(\"remote\");\r\n const options = XMLDocument.selectors(element, \"Option\");\r\n if (options.length > 0) {\r\n for (const option of options) {\r\n const key = option.getAttribute(\"value\");\r\n const value = option.textContent;\r\n if (key && value) {\r\n data[key] = value;\r\n }\r\n }\r\n } else if (remote) {\r\n const list: Design.ItemOption[] = await this.request(remote);\r\n for(const item of list) {\r\n data[item.key] = item.label;\r\n }\r\n }\r\n this.itemList.push({ code, title, type, data });\r\n }\r\n }\r\n this.setState({ loading: false });\r\n }\r\n \r\n render(): React.ReactNode { \r\n const show = this.display();\r\n if (show && !this.state.loading) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, witdh, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n const { doc } = this.state;\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <FormWidget preview={preview || readonly} title={title} witdh={witdh} columns={this.columnList} items={this.itemList} document={doc} style={styles} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass FormWidget extends WidgetComponent<Design.Form.WidgetProps, Design.Form.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const list = this.props.list;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ ...data }, index) => ({ id: uniqueId(), index: index + 1, ...data }));\r\n this.onChange(dataSource);\r\n }\r\n }\r\n\r\n onChange(list: any[]) {\r\n this.setState({ \r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list.map(({ id, index, ...data}) => data));\r\n })\r\n }\r\n\r\n getColumns() {\r\n const { preview, title, columns, items } = this.props;\r\n const { dataSource } = this.state;\r\n\r\n const columnList = columns.map((column: Design.Form.ColumnItem) => {\r\n const code = column.dataIndex\r\n const item: any = items.find((item: any) => item.code === code);\r\n if (item) {\r\n if (!column.title) {\r\n column.title = item.title;\r\n }\r\n column.render = (text: string) => Object.keys(item.data).length === 0 ? text: item.data[text]\r\n }\r\n return column;\r\n });\r\n \r\n if (preview) {\r\n return columnList;\r\n }\r\n return concat(columnList, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `修改${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >修改</a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Form.Data[] = dataSource.filter(({ id }) => !(id && record.id === id));\r\n this.onChange(list);\r\n },\r\n });\r\n }}\r\n >删除</a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Form.Data) => {\r\n const dataSource = this.state.dataSource;\r\n let list: Design.Form.Data[] = [];\r\n if (entity.id) {\r\n list = dataSource.map((data: Design.Form.Data) => data.id === entity.id ? { ...data, ...entity } : data);\r\n } else {\r\n entity.id = uniqueId();\r\n entity.index = dataSource.length + 1;\r\n list = [...dataSource, entity];\r\n }\r\n this.onChange(list);\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { preview, title, witdh, document, style } = this.props;\r\n const { dataSource, modal } = this.state;\r\n const columns = this.getColumns();\r\n return (\r\n <Card\r\n title={title}\r\n bodyStyle={{ padding: '0px 12px' }}\r\n extra={\r\n preview ? null :\r\n <a key=\"new\" onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: undefined, show: true }\r\n })\r\n }}>添加</a>\r\n }\r\n >\r\n <Table rowKey=\"id\" size=\"small\" style={style} columns={columns} dataSource={dataSource} />\r\n {modal.show && <ModalForm title={modal.title} witdh={witdh} entity={modal.entity} document={document} onFinish={this.onFinish} onCancel={this.onCancel} />}\r\n </Card>\r\n )\r\n }\r\n}\r\n\r\nconst ModalForm = ({ title, witdh=\"740\", entity, document, onFinish, onCancel }: Design.Form.ModalProps) => {\r\n const form: React.MutableRefObject<FormInstance | undefined> = useRef();\r\n \r\n return (\r\n <Modal \r\n title={title}\r\n width={Number(witdh)}\r\n open={true}\r\n destroyOnClose={true}\r\n onCancel={onCancel}\r\n onOk={async () => {\r\n try {\r\n await form.current?.validateFields();\r\n const data = form.current?.getFieldsValue();\r\n onFinish({...entity, ...data});\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }} \r\n >\r\n {document && <FormDocument form={form} document={document} initialValues={entity}/>}\r\n </Modal>\r\n )\r\n}\r\n","import { Row } from 'antd';\r\nimport React from 'react';\r\n\r\nexport default ({ children, gutter }: any) => (\r\n <Row gutter={Number(gutter)} style={{ margin: 0 }}>\r\n {children}\r\n </Row>\r\n)","import React from 'react';\r\nimport { Col } from 'antd';\r\n\r\nexport default ({ span, children }: any) => {\r\n return (\r\n <Col span={span}>\r\n {children}\r\n </Col>\r\n )\r\n}","import React, { useMemo } from 'react';\r\nimport { Steps } from 'antd';\r\n\r\nexport default ({ direction, stepIndex, onChangeSetp, children }: any) => {\r\n const items = useMemo(() => (\r\n children?.map(({ id, attributes }: any) => {\r\n const { title, description } = attributes;\r\n return { key: id, title, description };\r\n })\r\n ), [children]);\r\n \r\n return (\r\n <Steps\r\n current={stepIndex}\r\n direction={direction}\r\n onChange={onChangeSetp}\r\n items={items}\r\n style={{ padding: 16, backgroundColor: \"white\" }}\r\n />\r\n )\r\n}","import React, { useMemo, memo } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nconst { Content } = Layout;\r\n\r\nexport default memo(({ currentStepIndex, stepIndex, style, children }: any) => {\r\n const itemStyle = useMemo(() => {\r\n const styles = style ? toStyles(style) : { padding: 16, backgroundColor: \"white\" };\r\n if (currentStepIndex !== Number(stepIndex)) {\r\n Object.assign(styles, { \"display\": \"none\" });\r\n }\r\n return styles;\r\n }, [currentStepIndex]);\r\n \r\n return (\r\n <Content style={itemStyle} >\r\n {children}\r\n </Content>\r\n )\r\n});","import React from 'react';\r\nimport { Divider } from 'antd';\r\n\r\nexport default ({ dashed = false, orientation = \"center\", children }: any) => (\r\n <Divider dashed={dashed} orientation={orientation} style={{ color: \"#055ab5\", fontWeight: \"bold\" }}>{children}</Divider>\r\n)","import React, { useState, useMemo, memo } from 'react';\r\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\r\nimport { Button } from 'antd';\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nconst hide = {\r\n display: 'none'\r\n}\r\nconst show = {\r\n display: 'block'\r\n}\r\n\r\nexport default memo(({ defaultExpanded = true, on, off, style, collapse, children }: any) => {\r\n const [isExpanded, onExpanded] = useState(defaultExpanded);\r\n const styles = toStyles(style);\r\n if (collapse) {\r\n return (\r\n <>\r\n <div style={styles}>\r\n <Button\r\n type='link'\r\n onClick={() => {\r\n onExpanded(!isExpanded);\r\n }}\r\n >{isExpanded ? off : on}{isExpanded ? <UpOutlined /> : <DownOutlined />} </Button>\r\n </div>\r\n <div style={isExpanded ? show : hide}>\r\n {children}\r\n </div>\r\n </>\r\n )\r\n }\r\n return <>{children}</>;\r\n});","import React, { PureComponent, ReactNode } from \"react\";\r\nimport { Form as BaseForm, FormInstance, Skeleton } from \"antd\";\r\nimport { find, mapValues, camelCase, isBoolean, isObject, isArray } from \"lodash\";\r\nimport XMLDocument from \"@/utils/document\";\r\nimport XML from \"@/entity/XML\";\r\nimport { ProComponent } from \"@/service\";\r\nimport * as BaseComponents from \"@/components\"\r\nimport { Row, Col, Collapse, Content, Divider, Steps } from \"@/containers\";\r\nimport { DesignContext } from \"@/context\";\r\nimport { config } from \"@/config\";\r\nimport { regrister, autoClose } from \"@/utils/loading\";\r\n\r\nconst Components: {[name: string]: {}} = BaseComponents;\r\nconst Containers: {[name: string]: {}} = { Row, Col, Collapse, Content, Divider, Steps };\r\n\r\nexport default class FormDocument extends PureComponent<Design.HomeProps, Design.HomeState> {\r\n\r\n state = {\r\n stepIndex: 0,\r\n root: undefined,\r\n loading: true\r\n };\r\n\r\n form: React.RefObject<FormInstance>;\r\n preview?: boolean;\r\n layouts?: {};\r\n styles: {};\r\n showTitle?: boolean;\r\n customComponents?: {[name:string]: {}};\r\n\r\n constructor(props: Design.HomeProps) {\r\n super(props);\r\n this.styles = props.style ?? {};\r\n this.form = props.form ?? React.createRef()\r\n }\r\n\r\n componentDidMount(): void { \r\n const { document, preview } = this.props;\r\n let root;\r\n if (typeof document === \"string\") {\r\n root = XMLDocument.getRoot(document);\r\n } else {\r\n root = XMLDocument.parser(document);\r\n }\r\n \r\n const { style: styleValue, labelCol, wrapperCol, showTitle } = root.attributes;\r\n this.showTitle = !!showTitle;\r\n if (typeof styleValue === \"string\") {\r\n const styleList: string[] = styleValue?.replace(/\\ +/g, \"\").split(\";\");\r\n styleList?.forEach(style => {\r\n if (style) {\r\n const [key, value] = style.split(\":\");\r\n Object.assign(this.styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n if (labelCol && wrapperCol) {\r\n this.layouts = {\r\n labelCol: { span: labelCol },\r\n wrapperCol: { span: wrapperCol },\r\n };\r\n }\r\n this.preview = preview ?? false; \r\n if (config.components) {\r\n this.customComponents = mapValues(config.components, (component: any) => (props: any) => <ProComponent Component={component} { ...props} />)\r\n }\r\n this.setState({ root, loading: true });\r\n\r\n /** 注册loading插件 */\r\n regrister(loading => {\r\n this.setState({ loading });\r\n });\r\n /** 自动关闭 Skeleton */\r\n autoClose();\r\n }\r\n\r\n /**\r\n * 销毁form时,重置数据\r\n */\r\n componentWillUnmount(): void {\r\n this.form.current?.resetFields();\r\n this.setState({ root: undefined, loading: true });\r\n }\r\n\r\n /**\r\n * 值发生变化时,变更state\r\n */\r\n onValuesChange = (changedValues: any) => {\r\n this.setState({\r\n values: changedValues\r\n })\r\n };\r\n\r\n /**\r\n * 切换步骤\r\n * \r\n * @param stepIndex \r\n */\r\n onStepIndex = (stepIndex: number) => { \r\n this.setState({\r\n stepIndex\r\n })\r\n }\r\n\r\n /**\r\n * 设置组件状态\r\n * \r\n * @param attributes \r\n */\r\n setComponentStatus(attributes: { [name: string]: string | boolean }) {\r\n const { hidden, readonly } = this.props;\r\n // 控件是否隐藏\r\n if (isBoolean(hidden)) {\r\n attributes.hidden = hidden;\r\n } else if (isArray(hidden)) {\r\n attributes.hidden = hidden.includes(attributes.code as string);\r\n } else if (isObject(hidden)) {\r\n attributes.hidden = !!hidden[attributes.code as string];\r\n } else {\r\n attributes.hidden = attributes.hidden ?? false;\r\n }\r\n // 控件是否只读\r\n if (isBoolean(readonly)) {\r\n attributes.readonly = readonly;\r\n } else if (isArray(readonly)) {\r\n attributes.readonly = readonly.includes(attributes.code as string);\r\n } else if (isObject(readonly)) {\r\n attributes.readonly = !!readonly[attributes.code as string];\r\n } else {\r\n attributes.readonly = attributes.readonly ?? false;\r\n }\r\n }\r\n\r\n /**\r\n * 加载组件\r\n * \r\n * @param xml \r\n * @param Component \r\n * @returns \r\n */\r\n component(xml: XML, Component: any) {\r\n const { id, attributes, children } = xml;\r\n this.setComponentStatus(attributes);\r\n return <Component key={id} preview={this.preview} {...attributes}>{children?.map(this.children)}</Component>\r\n }\r\n\r\n /**\r\n * 加载容器\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n container({ id, tag, attributes, text, children }: XML) {\r\n if (tag === \"Row\") {\r\n return <Row key={id} {...attributes}>{children?.map(this.children)}</Row>\r\n }\r\n if (tag === \"Col\") {\r\n return <Col key={id} span={Number(attributes.span)}>{children?.map(this.children)}</Col>\r\n }\r\n if (tag === \"Collapse\") {\r\n return <Collapse key={id} collapse={this.props.collapse} {...attributes}>{children?.map(this.children)}</Collapse>\r\n }\r\n if (tag === \"Content\") {\r\n return <Content key={id} currentStepIndex={this.state.stepIndex} {...attributes}>{children?.map(this.children)}</Content>\r\n }\r\n if (tag === \"Steps\") {\r\n return <Steps key={id} stepIndex={this.state.stepIndex} onChangeSetp={this.onStepIndex} {...attributes}>{children}</Steps>\r\n }\r\n if (tag === \"Divider\") {\r\n return <Divider key={id} {...attributes}>{text}</Divider>\r\n }\r\n }\r\n\r\n /**\r\n * 加载控件\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n applet({ tag, attributes, cdata, children }: XML) {\r\n if (tag === \"Columns\") {\r\n const child = children?.map(({ attributes, children }) => {\r\n if (children) {\r\n const rules: any = find(children.map(this.children), { tag: \"Validates\" });\r\n return { ...attributes, rules: rules?.children ?? [] };\r\n }\r\n return attributes;\r\n });\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Options\") {\r\n const child = children?.map(({ attributes: { value }, text }) => ({ key: value, label: text }));\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Validates\") {\r\n const child = children?.map(({ attributes }) => attributes);\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Conditions\") {\r\n const { type, action } = attributes;\r\n const child = children?.map(({ attributes }) => attributes);\r\n return { tag, type, action, children: child };\r\n }\r\n if (tag === \"Collection\" || tag === \"Compute\") {\r\n return { tag, cdata };\r\n }\r\n }\r\n\r\n /**\r\n * 加载子项\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n children = (xml: XML) => {\r\n const Component = this.customComponents?.[xml.tag] ?? Components[xml.tag];\r\n if (Component) {\r\n return this.component(xml, Component);\r\n }\r\n const Container = Containers[xml.tag];\r\n if (Container) {\r\n return this.container(xml);\r\n }\r\n return this.applet(xml);\r\n }\r\n\r\n render(): ReactNode {\r\n const { root , loading } = this.state;\r\n const { initialValues } = this.props;\r\n return <>\r\n { root && \r\n <DesignContext.Provider value={{ ...this.props, form: this.form, showTitle: this.showTitle}}>\r\n <Form\r\n form={this.form}\r\n style={loading ? { ...this.styles, display: \"none\"} : this.styles }\r\n initialValues={initialValues}\r\n onValuesChange={this.onValuesChange}\r\n {...this.layouts}\r\n >\r\n {(root as XML).children?.map(this.children)}\r\n </Form>\r\n </DesignContext.Provider>\r\n }\r\n { loading && <Skeleton active />}\r\n </>\r\n }\r\n}\r\n\r\n/**\r\n * 表单组件\r\n */\r\nclass Form extends React.PureComponent<Design.FormProps> {\r\n\r\n onFinish = (values: object) => {\r\n console.log(\"Success:\", values);\r\n };\r\n\r\n render(): React.ReactNode {\r\n const { form, style, labelCol, wrapperCol, initialValues, children, onValuesChange } = this.props;\r\n return (\r\n <BaseForm\r\n ref={form}\r\n style={style}\r\n labelCol={labelCol}\r\n wrapperCol={wrapperCol}\r\n initialValues={initialValues}\r\n onFinish={this.onFinish}\r\n autoComplete=\"off\"\r\n onValuesChange={changedValues => {\r\n onValuesChange(changedValues);\r\n }}\r\n >\r\n {children}\r\n </BaseForm>\r\n );\r\n }\r\n}\r\n"],"names":["XML","element","_classCallCheck","_defineProperty","this","id","uniqueId","_step","_iterator","_createForOfIteratorHelper","attributes","s","n","done","item","value","trim","isBoolean","toBoolean","name","err","e","f","children","Array","_step2","_iterator2","childNodes","_this$children","_node$nodeValue","node","Element","push","nodeType","textContent","text","cdata","nodeValue","replace","tag","nodeName","_createClass","key","test","parseInt","XMLDocument","document","documentString","DOMParser","parseFromString","doc","toDocument","parser","selectors","querySelector","querySelectorAll","validate","_ref","_ref$type","type","required","minlength","maxlength","min","max","pattern","message","Number","RegExp","DesignContext","React","createContext","DesignConfig","conf","prefix","headers","params","route","listUrl","downloadUrl","uploadUrl","extraData","file","fileType","labelStyle","color","documentUrl","chunkSize","Math","pow","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","form","chunk","components","_objectSpread","config","init","defineConfig","num","listeners","wait","millisecond","Promise","resolve","setTimeout","trigger","_asyncToGenerator","_regeneratorRuntime","mark","_callee","loading","_i","_listeners","wrap","_context","prev","next","length","callback","stop","_x","apply","arguments","begin","_ref2","_callee2","_context2","end","_ref3","_callee3","_context3","autoClose","_ref4","_callee4","_context4","error","_ref5","_callee5","_context5","umiRequest","extend","timeout","use","ctx","t0","_x2","global","targetUrl","options","cloneData","cloneDeep","data","url","domain","urlMatch","match","_slicedToArray","slice","parse","compile","forEach","Object","console","method","toLocaleUpperCase","requestType","then","status","rest","_objectWithoutProperties","_excluded","success","_data$message","response","request$1","uri","uriArray","split","_uriArray","_uriArray2","toStyles","style","styles","items","_items$split","_items$split2","assign","camelCase","UIComponent","_React$PureComponent","_inherits","_super","_createSuper","_this","_len","_args","_key","call","concat","_assertThisInitialized","borderBottom","remote","args","context","abrupt","isArray","list","map","_Object$entries","_Object$entries$","entries","_Object$entries$2","label","reject","undefined","defaultValue","_form$current","_form$current2","code","props","current","getFieldValue","setFieldValue","_form$current3","_this2","_form$current4","_form$current5","getFieldsValue","showTitle","_this$props","title","labelStyles","_jsx","itemProps","_itemLayouts$wrapperC","_this$props2","preview","labelCol","wrapperCol","tips","itemLayouts","span","styleWrapper","tooltip","_this$props3","itemStyle","itemStyles","_this$context$preview","fileds","_this$props4","_this$props4$defaultH","defaultHide","show","conditions","find","_conditions$children","action","fields","keys","join","Function","actuator","condition","result","every","some","_this$props5","_validates$children$m","_validates$children","validates","content","collection","_this3","computeValue","moment","compute","_this$props$defaultVa","setDefaultValue","PureComponent","contextType","ProComponent","_UIComponent","forceUpdate","initValue","display","onComputeValue","rules","_this$getItem","getItem","hidden","Component","_this$getStyles","getStyles","Form","Item","getLabel","onChange","UIListComponent","itemList","reset","plist","filter","includes","rule","validator","_","WidgetComponent","_PureComponent","Label","Tooltip","PreviewText","useEffect","href","target","rel","PreviewDuration","_value$split","_value$split2","hour","minute","second","PreviewSwitch","checked","PreviewList","_ref6","_ref7","PreviewFile","_ref8","fileList","_ref9","contentType","endsWith","_jsxs","Space","paddingBottom","startsWith","Image","width","src","alt","controls","alignItems","height","paddingLeft","PreviewImage","_ref10","_Fragment","_ref11","Text","placeholder","maxLength","allowClear","showCount","readonly","Input","disabled","TextArea","_this$props$minRow","minRow","_this$props$maxRow","maxRow","minRows","maxRows","autoSize","InputNumber","_this$props$type","precision","numberProps","formatter","Numerial","Editor","colon","EditorWidget","_React$Component","_super2","createRef","isReactWEditor","ReactWEditor","onBlur","onFocus","SelectList","_UIListComponent","optionList","setState","multiple","_this$props2$allowCle","plusRules","collectionList","getList","state","currentValue","cleanFieldValue","SelectWidget","Option","Select","_WidgetComponent","_this4","_len2","_key2","_this4$props$onChange","_this4$props","showSearch","mode","handleItemValue","filterOption","inputValue","option","toLowerCase","CheckBox","CheckboxWidget","Checkbox","Group","RadioButton","optionType","RadioWidget","Radio","SwitchButton","valuePropName","Switch","css","ref","insertAt","head","getElementsByTagName","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Duration","DurationWidget","index","changeValue","_this$props$onChange","duration","durations","format","className","toString","dayjs","weekday","localeData","Datepicker","_this$props$format","_this$props$showTime","showTime","_this$props$allowClea","DateWidget","DatePicker","picker","customParseFormat","Timepicker","TimeWidget","TimePicker","normFile","UplaodList","maxCount","fileTypeMessage","fileSize","getValueFromEvent","UploadWidget","modal","open","progress","fileTypeArray","Upload","LIST_IGNORE","bytes","size","clearInterval","timer","uploading","step","percent","round","setInterval","_response$data","_toConsumableArray","_response$message","ids","warn","_this$state","count","onStart","onSuccess","onProgress","onError","beforeUpload","onBeforeUpload","onRemove","Button","icon","UploadOutlined","Modal","closable","footer","Progress","_this$props$fileWidth","fileWidth","_this$props$fileHeigh","fileHeight","fileView","_file$response","_file$response2","_file$response$data","_this$props3$fileWidt","_this$props3$fileHeig","ImgCrop","rotationSlider","modalTitle","modalOk","modalCancel","aspect","listType","accept","onChangeValue","onPreview","PlusOutlined","onCancel","info","_verifyProgress","_verifyFile","_mergeProgress","_mergeBlock","_uploadBlock","_checkBlock","_checkFile","blockSize","fileName","fileMd5","sent","checkBlock","blockMd5","blockIndex","uploadBlock","formData","FormData","append","String","_x3","mergeBlock","_x4","verifyFile","_callee6","_context6","_x5","verifyProgress","_callee7","_context7","upload","FileUpload","create","complete","findIndex","uid","start","customRequest","TableList","_columnList$children","columnList","column","_column$rules","TableWidget","columns","getColumns","dataSource","entity","worksId","worksExtraId","dataIndex","valueType","render","record","onClick","confirm","QuestionCircleOutlined","okText","cancelText","onOk","Card","bodyStyle","padding","extra","Table","rowKey","ModalForm","onFinish","_onOk","_Form$useForm","useForm","destroyOnClose","validateFields","initialValues","autoComplete","layout","Row","Col","FormList","codes","elements","_iterator3","_step3","getAttribute","tagName","finish","formId","xml","initItems","witdh","FormWidget","_extends","_objectDestructuringEmpty","_this5","_this6","_ref5$witdh","useRef","log","FormDocument","gutter","margin","Steps","direction","stepIndex","onChangeSetp","useMemo","description","backgroundColor","Content","Layout","Content$1","memo","currentStepIndex","Divider","_ref$dashed","dashed","_ref$orientation","orientation","fontWeight","hide","Collapse","_ref$defaultExpanded","defaultExpanded","on","off","collapse","_useState","useState","_useState2","isExpanded","onExpanded","UpOutlined","DownOutlined","Components","BaseComponents","Containers","_props$style","_props$form","root","changedValues","values","_this$customComponent","_this$customComponent2","customComponents","component","container","applet","payload","_root$attributes","getRoot","styleValue","styleList","_style$split","_style$split2","layouts","mapValues","_this$form$current","resetFields","isObject","_attributes$hidden","_attributes$readonly","setComponentStatus","onStepIndex","child","_rules$children","_root$children","Provider","onValuesChange","Skeleton","active","BaseForm"],"mappings":"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","x_google_ignoreList":[23]}
|
|
1
|
+
{"version":3,"file":"index.tsx","sources":["../src/entity/XML.ts","../src/utils/document.ts","../src/applets/index.ts","../src/context.ts","../src/config.ts","../src/utils/loading.ts","../src/utils/request.ts","../src/utils/style.ts","../src/service/UIComponent.tsx","../src/service/ProComponent.tsx","../src/service/UIListComponent.tsx","../src/service/WidgetComponent.ts","../src/components/Label/index.tsx","../src/components/Tooltip/index.tsx","../src/preview/index.tsx","../src/components/Text/index.tsx","../src/components/TextArea/index.tsx","../src/components/InputNumber/index.tsx","../src/components/Editor/index.tsx","../src/components/Select/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Radio/index.tsx","../src/components/Switch/index.tsx","../node_modules/style-inject/dist/style-inject.es.js","../src/components/Duration/index.tsx","../src/components/DatePicker/index.tsx","../src/components/TimePicker/index.tsx","../src/components/Upload/index.tsx","../src/components/Photo/index.tsx","../src/components/SuperUpload/index.tsx","../src/components/Table/index.tsx","../src/components/FormList/index.tsx","../src/containers/Row/index.tsx","../src/containers/Col/index.tsx","../src/containers/Steps/index.tsx","../src/containers/Content/index.tsx","../src/containers/Divider/index.tsx","../src/containers/Collapse/index.tsx","../src/form/index.tsx"],"sourcesContent":["import { parseInt, uniqueId } from \"lodash\";\r\n\r\nexport default class XML {\r\n readonly id: string;\r\n readonly tag: string;\r\n readonly text?: string;\r\n readonly attributes: { [name: string]: string | boolean } = {};\r\n readonly cdata?: string;\r\n readonly children?: XML[];\r\n\r\n constructor(element: Element) {\r\n // this.id = Math.floor(Math.random() * 1000000000).toString();\r\n this.id = uniqueId();\r\n /** 获得属性 */\r\n for (const item of element.attributes) {\r\n let value: string | boolean = item.value.trim();\r\n if (this.isBoolean(value)) {\r\n value = this.toBoolean(value);\r\n }\r\n this.attributes[item.name] = value;\r\n }\r\n\r\n /** 获得子元素 */\r\n this.children = new Array();\r\n for (const node of element.childNodes) {\r\n if (node instanceof Element) {\r\n this.children?.push(new XML(node));\r\n }\r\n /** 获得文本 */\r\n if (node.nodeType === 3 && node.textContent) {\r\n this.text = node.textContent;\r\n }\r\n /** 获得CDATA */\r\n if (node.nodeType === 4) {\r\n this.cdata = node.nodeValue?.replace(/\\ +/g, \" \").replace(/[\\t\\r\\n]/g, \"\");\r\n }\r\n }\r\n this.tag = element.nodeName;\r\n }\r\n\r\n /**\r\n * 判断是否为boolean型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private isBoolean(value: string) {\r\n return value === \"true\" || value === \"false\";\r\n }\r\n\r\n /**\r\n * 转换boolean型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private toBoolean(value: string) {\r\n return value === \"true\";\r\n }\r\n\r\n /**\r\n * 判断是否为number型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private isNumber(value: string) {\r\n return /^\\d+$/.test(value);\r\n }\r\n\r\n /**\r\n * 转换number型\r\n * \r\n * @param value \r\n * @returns \r\n */\r\n private toNumber(value: string) {\r\n return parseInt(value, 10);\r\n }\r\n}","import XML from \"@/entity/XML\";\r\n\r\n/**\r\n * xml 解析类\r\n */\r\nexport default class XMLDocument {\r\n\r\n /**\r\n * document 解析 xml对象\r\n * \r\n * @param document \r\n * @returns \r\n */\r\n static parser(document: Document) {\r\n const element: Element = <Element>document.childNodes[0];\r\n return new XML(element);\r\n }\r\n\r\n /**\r\n * document字符串 转换 document对象\r\n * \r\n * @param documentString \r\n * @returns \r\n */\r\n static toDocument(documentString: string): Document {\r\n return new DOMParser().parseFromString(documentString, \"text/xml\");\r\n }\r\n\r\n /**\r\n * document字符串 转换 xml对象\r\n * \r\n * @param documentString \r\n * @returns \r\n */\r\n static getRoot(documentString: string): XML {\r\n const doc: Document = XMLDocument.toDocument(documentString);\r\n return XMLDocument.parser(doc);\r\n }\r\n\r\n /**\r\n * 选择单个元素\r\n * \r\n * @param document \r\n * @param selectors \r\n * @returns \r\n */\r\n static selector(document: Document | Element, selectors: string): Element | null {\r\n return document.querySelector(selectors);\r\n }\r\n\r\n /**\r\n * 选择多个元素\r\n * \r\n * @param document \r\n * @param selectors \r\n * @returns \r\n */\r\n static selectors(document: Document | Element, selectors: string): NodeListOf<Element> {\r\n return document.querySelectorAll(selectors);\r\n }\r\n}","import moment from 'moment';\r\n\r\n/**\r\n * validate 验证\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const validate = ({ type = 'string', required, minlength, maxlength, min, max, pattern, message }: any): Design.Rule => {\r\n if (required) {\r\n return { type, required, message };\r\n }\r\n if (minlength && maxlength) {\r\n return { type, min: Number(minlength), max: Number(maxlength), message };\r\n }\r\n if (min && max) {\r\n return { type: 'number', min: Number(min), max: Number(max), message };\r\n }\r\n if (type === 'phone') {\r\n return { type: 'string', pattern: new RegExp('^[1][3,5,6,7,8][0-9]\\\\d{8}$'), message };\r\n }\r\n if (type === 'regexp' && typeof pattern === 'string') {\r\n return { type: 'string', pattern: new RegExp(pattern), message };\r\n }\r\n return { type, message };\r\n}\r\n\r\n/**\r\n * condition 条件\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const condition = (fields: object | undefined, preview: boolean) => ({ test }: { test: string }): boolean | undefined => {\r\n try {\r\n if (fields) {\r\n fields = { ...fields, preview }\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, `return ${test}`);\r\n return actuator(fields);\r\n }\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * collection 集合\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const collection = (fields: object | undefined, { cdata }: { cdata: string }): Array<string> => {\r\n try {\r\n if (fields) {\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, `${cdata}`);\r\n return actuator(fields);\r\n }\r\n const actuator: Function = new Function(`${cdata}`);\r\n return actuator();\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * compute 计算\r\n * \r\n * @param param0 \r\n * @returns \r\n */\r\nexport const compute = (fields: object | undefined, { cdata }: { cdata: string }): Array<string> | string | undefined => {\r\n try {\r\n if (fields) {\r\n const keys: string = Object.keys(fields).join(\",\");\r\n const actuator: Function = new Function(`{${keys}}`, 'moment', `${cdata}`);\r\n return actuator(fields, moment);\r\n }\r\n const actuator: Function = new Function('moment', `${cdata}`);\r\n return actuator(moment);\r\n } catch (e: any) {\r\n // console.warn(e.message);\r\n }\r\n return undefined;\r\n}\r\n","import React from \"react\";\r\n\r\nexport const DesignContext = React.createContext<Design.Context>({});","class DesignConfig {\r\n readonly request: {\r\n prefix: string;\r\n headers: {};\r\n params: {};\r\n route: string;\r\n } = {\r\n prefix: \"api\",\r\n headers: {},\r\n params: {},\r\n route: \"/design\"\r\n }\r\n readonly file: {\r\n listUrl: string,\r\n downloadUrl: string,\r\n uploadUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n extraData: (file: Design.File.FileInfo, fileType: string) => {},\r\n }\r\n readonly style: {\r\n labelStyle: {}\r\n } = {\r\n labelStyle: {color: \"#055ab5\"}\r\n }\r\n readonly form: {\r\n documentUrl: string\r\n } = {\r\n documentUrl: \"/form/:formId\"\r\n }\r\n readonly chunk : {\r\n checkFile: string,\r\n checkChunk: string,\r\n chunkUpload: string,\r\n doMerge: string,\r\n mergeProgress: string,\r\n onComplete: string,\r\n completeProgress: string,\r\n chunkSize: number,\r\n } = {\r\n chunkSize: 10 * 1024 ** 2,\r\n checkFile: \"/chunk/checkFile\",\r\n checkChunk: \"/chunk/checkChunk\",\r\n chunkUpload: \"/chunk/chunkUpload\",\r\n doMerge: \"/chunk/doMerge\",\r\n mergeProgress: \"/chunk/mergeProgress\",\r\n onComplete: \"/chunk/onComplete\",\r\n completeProgress: \"/chunk/completeProgress\"\r\n }\r\n\r\n readonly components?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, form, chunk, components } = conf;\r\n this.request = { ...this.request, ...request };\r\n this.file = { ...this.file, ...file };\r\n this.form = { ...this.form, ...form };\r\n this.chunk = { ...this.chunk, ...chunk };\r\n this.components = components;\r\n }\r\n }\r\n\r\n static init(conf?: Design.Config) {\r\n return new DesignConfig(conf);\r\n }\r\n}\r\n\r\nlet config: DesignConfig = DesignConfig.init();\r\nconst defineConfig = (conf: Design.Config) => {\r\n config = DesignConfig.init(conf)\r\n}\r\n\r\nexport { defineConfig, config }","let num = 0;\r\nconst listeners: ((loading: boolean) => void)[] = [];\r\n\r\n/**\r\n * wait\r\n * \r\n * @param millisecond \r\n * @returns \r\n */\r\nconst wait = (millisecond: number) => (\r\n new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(millisecond);\r\n }, millisecond)\r\n}));\r\n\r\n/**\r\n * 注册loading\r\n * \r\n * @param payload \r\n */\r\nexport const regrister = (payload: (loading: boolean) => void) => {\r\n if (typeof payload === 'function') {\r\n listeners.push(payload);\r\n }\r\n}\r\n\r\n/**\r\n * 触发\r\n * \r\n * @param loading \r\n */\r\nconst trigger = async (loading: boolean) => {\r\n if (num === 0) {\r\n for (const callback of listeners) {\r\n callback(loading);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 开始加载loading\r\n */\r\nexport const begin = async () => {\r\n if (num ++ === 0) {\r\n trigger(true);\r\n }\r\n}\r\n\r\n/**\r\n * 结束加载loading\r\n * \r\n */\r\nexport const end = async () => {\r\n if (-- num === 0) {\r\n trigger(false);\r\n }\r\n}\r\n\r\n/**\r\n * 自动关闭\r\n * \r\n */\r\nexport const autoClose = async () => {\r\n await wait(1000);\r\n if (num === 0) {\r\n trigger(false);\r\n } else {\r\n autoClose()\r\n }\r\n}\r\n\r\n/**\r\n * 错误loading\r\n */\r\nexport const error = async () => {\r\n num = 0;\r\n trigger(false);\r\n}","import { cloneDeep } from 'lodash';\r\nimport { extend } from 'umi-request';\r\nimport { parse, compile } from 'path-to-regexp';\r\nimport { config } from '@/config';\r\nimport { begin, end, error } from './loading';\r\n\r\nconst umiRequest = extend({\r\n prefix: config.request.prefix,\r\n headers: config.request.headers,\r\n timeout: 10000,\r\n});\r\n\r\n/** loading全局中间件 */\r\numiRequest.use(async (ctx, next) => {\r\n try {\r\n begin();\r\n await next();\r\n end();\r\n } catch (e) {\r\n error();\r\n throw e;\r\n }\r\n}, { global: true });\r\n\r\n/** 请求访问 **/\r\nconst request = (targetUrl: string, options: any) => {\r\n const cloneData = cloneDeep(options.data);\r\n let url = targetUrl;\r\n try {\r\n // 过滤protocol、domain、host\r\n let domain = '';\r\n const urlMatch = url.match(/[a-zA-z]+:\\/\\/[^/]*/);\r\n if (urlMatch) {\r\n [domain] = urlMatch;\r\n url = url.slice(domain.length);\r\n }\r\n // 编译url参数\r\n const match = parse(url);\r\n url = compile(url)(options.data);\r\n match.forEach((item: any) => {\r\n if (item instanceof Object && item.name in cloneData) {\r\n delete cloneData[item.name];\r\n }\r\n });\r\n url = domain + url;\r\n } catch (e: any) {\r\n console.error(e.message);\r\n }\r\n if (options.method.toLocaleUpperCase() === 'GET') {\r\n options.params = cloneData;\r\n } else if (options.type){\r\n options.requestType = options.type\r\n }\r\n options.prefix = config.request.prefix; \r\n // 调用umi-request\r\n return umiRequest(url, options)\r\n .then(({ status, ...rest }: any) => {\r\n const success = status === 200;\r\n return Promise.resolve({\r\n success,\r\n ...rest,\r\n });\r\n })\r\n .catch(({ response, data }: any) => {\r\n const message = data?.message ?? '访问超时';\r\n console.error(url, response, data);\r\n return Promise.resolve({\r\n success: false,\r\n message,\r\n });\r\n });\r\n};\r\n\r\n/** request **/\r\nexport default (uri: string) => {\r\n let [method, type, url] = ['GET', 'json', uri];\r\n const uriArray = uri.split(' ')\r\n if (uriArray.length === 2) {\r\n [method, url] = uriArray;\r\n } else if (uriArray.length === 3) {\r\n [method, type, url] = uriArray;\r\n }\r\n return (data?: any) => request(url, { method, type, data });\r\n}\r\n","import { camelCase } from 'lodash';\r\n\r\n/**\r\n * 转换样式对象\r\n * \r\n * @param style string\r\n * @returns styles\r\n */\r\nexport const toStyles = (style: string | undefined) => {\r\n const styles: {} = {};\r\n if (style) {\r\n const styleArray: string[] = style.replace(/\\ +/g, \"\").split(\";\");\r\n styleArray.forEach(items => {\r\n if (items) {\r\n const [key, value] = items.split(\":\");\r\n Object.assign(styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n return styles;\r\n}","import React from \"react\";\r\nimport { every, some, find } from \"lodash\";\r\nimport { collection, compute, condition, validate } from \"@/applets\";\r\nimport { DesignContext } from \"@/context\";\r\nimport request from \"@/utils/request\";\r\nimport { config } from \"@/config\";\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nexport default class UIComponent<P extends Design.ComponentProps, S = {}> extends React.PureComponent<P, S> {\r\n declare context: React.ContextType<typeof DesignContext>\r\n\r\n styleWrapper = { style: { borderBottom: '1px solid #d9d9d9' } };\r\n\r\n /**\r\n * 设置字段默认值\r\n * \r\n * @param defaultValue \r\n */\r\n setDefaultValue<T>(defaultValue: T): void {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n const value = form.current?.getFieldValue(code);\r\n if (!value) {\r\n form.current?.setFieldValue(code, defaultValue);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 设置当前字段值\r\n * \r\n * @param value \r\n */\r\n setFieldValue<T>(value: T | undefined): void {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n form.current?.setFieldValue(code, value);\r\n }\r\n }\r\n\r\n /**\r\n * 清楚当前值\r\n * \r\n */\r\n cleanFieldValue(): void {\r\n setTimeout(() => {\r\n this.setFieldValue(undefined);\r\n }, 1);\r\n }\r\n\r\n /**\r\n * 获得当前值\r\n * \r\n * @returns \r\n */\r\n getFieldValue<T>(): T | undefined {\r\n const form = this.context.form;\r\n if (form) {\r\n const code = this.props.code;\r\n return form.current?.getFieldValue(code);\r\n }\r\n }\r\n\r\n /**\r\n * 获得所有form对象值\r\n * \r\n * @returns \r\n */\r\n getFieldsValue(): object | undefined {\r\n const form = this.context.form;\r\n if (form) {\r\n return form.current?.getFieldsValue();\r\n }\r\n }\r\n\r\n /**\r\n * 获得标签\r\n * \r\n * @returns \r\n */\r\n getLabel() {\r\n const isShowTitle = this.context.showTitle\r\n if (isShowTitle) {\r\n const { title, labelStyle } = this.props;\r\n const labelStyles = toStyles(labelStyle);\r\n return <span style={{ ...config.style.labelStyle, ...labelStyles }}>{title}</span>;\r\n }\r\n }\r\n\r\n /**\r\n * 获得item信息\r\n * \r\n * @returns \r\n */\r\n getItem(): { itemProps: {}, itemLayouts: {} } {\r\n const { preview, labelCol, wrapperCol, tips } = this.props;\r\n const itemLayouts = labelCol && wrapperCol ? { labelCol: { span: labelCol }, wrapperCol: { span: wrapperCol } } : {};\r\n let itemProps: {};\r\n if (preview) {\r\n itemProps = { required: false };\r\n Object.assign(itemLayouts.wrapperCol ?? {}, this.styleWrapper);\r\n } else {\r\n itemProps = { tooltip: tips };\r\n }\r\n return { itemProps, itemLayouts };\r\n }\r\n\r\n /**\r\n * 样式\r\n * \r\n * @returns \r\n */\r\n getStyles(): { styles: {}, itemStyles: {} } {\r\n const { style, itemStyle } = this.props;\r\n const styles = toStyles(style);\r\n const itemStyles = toStyles(itemStyle);\r\n return { styles, itemStyles };\r\n }\r\n\r\n /**\r\n * 条件\r\n * \r\n * @param defaultHide \r\n * @param children \r\n * @returns \r\n */\r\n display(): boolean {\r\n const preview = this.context.preview ?? false;\r\n const fileds = this.getFieldsValue();\r\n const { defaultHide = false, children } = this.props;\r\n const show: boolean = !defaultHide;\r\n const conditions: Design.Modal.ConditionXML | undefined = find(children, { tag: \"Conditions\" });\r\n if (conditions) {\r\n const { type, action } = conditions;\r\n const list = conditions.children?.map(condition(fileds, preview));\r\n if (list?.length > 0 && list?.[0] !== undefined) {\r\n let result: boolean = false;\r\n if (type === 'and') {\r\n result = every(list);\r\n } else {\r\n result = some(list);\r\n }\r\n if ((result && action === 'hide') || (!result && action === 'show')) {\r\n return false;\r\n } else if ((!result && action === 'hide') || (result && action === 'show')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return show;\r\n }\r\n\r\n /**\r\n * 规则\r\n * \r\n * @param preview \r\n * @param children \r\n * @returns \r\n */\r\n rules(): Design.Rule[] {\r\n const { preview, children } = this.props;\r\n if (!preview) {\r\n const validates = find(children, { tag: \"Validates\" });\r\n return validates?.children?.map(validate) ?? [];\r\n }\r\n return [];\r\n }\r\n\r\n /**\r\n * 可选内容列表\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n collectionList(): string[] | undefined {\r\n const content = find(this.props.children, { tag: \"Collection\" });\r\n if (content) {\r\n const fileds = this.getFieldsValue();\r\n return collection(fileds, content);\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * 计算值\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n onComputeValue(): void {\r\n const content = find(this.props.children, { tag: \"Compute\" });\r\n if (content) {\r\n const fileds = this.getFieldsValue();\r\n const computeValue = compute(fileds, content);\r\n if (computeValue) {\r\n setTimeout(() => {\r\n this.setFieldValue(computeValue);\r\n }, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 初始化值\r\n * \r\n * @param value \r\n */\r\n initValue(value?: string): void {\r\n const { defaultValue = value } = this.props;\r\n if (defaultValue) {\r\n this.setDefaultValue(defaultValue);\r\n }\r\n }\r\n\r\n /**\r\n * 请求网络\r\n * \r\n * @param remote \r\n * @returns \r\n */\r\n request = async (remote: string, args?: object) => {\r\n const params = args ?? this.context.params;\r\n return request(remote)({ ...params }).then(response => {\r\n const { success, data }: Design.Result = response;\r\n if (success) {\r\n if (Array.isArray(data)) {\r\n const list = data.map(item => {\r\n const [key, label] = Object.entries<string>(item)?.[0];\r\n return { key, label };\r\n });\r\n return Promise.resolve(list);\r\n } else {\r\n return Promise.resolve(data);\r\n }\r\n }\r\n return Promise.reject(undefined);\r\n }).catch(error => {\r\n console.error(\"remote\", remote, error);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n}\r\n\r\nUIComponent.contextType = DesignContext;","import React from \"react\";\r\nimport { Form } from \"antd\";\r\nimport UIComponent from \"./UIComponent\";\r\n\r\ninterface ProComponentProps extends Design.ComponentProps {\r\n Component: any;\r\n}\r\n\r\nexport default class ProComponent extends UIComponent<ProComponentProps> {\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n initValue = () => {\r\n const { defaultValue } = this.props;\r\n if (defaultValue) {\r\n this.forceUpdate(() => {\r\n this.setDefaultValue(defaultValue);\r\n });\r\n }\r\n };\r\n\r\n onChange = (value: string) => {\r\n this.setFieldValue(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, hidden } = this.props;\r\n const { Component, defaultValue, style, ...props } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {<Component {...props} style={styles} onChange={this.onChange}/>}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import { find } from \"lodash\";\r\nimport UIComponent from \"./UIComponent\";\r\n\r\nexport default class UIListComponent<P extends Design.ComponentProps, S = {}> extends UIComponent<P, S> {\r\n\r\n /**\r\n * 选项列表\r\n * \r\n * @param children \r\n * @returns \r\n */\r\n optionList(): Design.ItemOption[] | undefined {\r\n const options = find(this.props.children, { tag: \"Options\" })\r\n return options?.children as [];\r\n }\r\n\r\n /**\r\n * 添加校验规则\r\n * \r\n * @returns \r\n */\r\n plusRules(): Design.Rule[] {\r\n const rules = this.rules();\r\n return rules?.map(rule => {\r\n if (rule.required) {\r\n const validator = (_: unknown, value: string) => value?.length > 0 ? Promise.resolve() : Promise.reject();\r\n return { ...rule, validator };\r\n }\r\n if (rule.min && rule.max) {\r\n const validator = (_: unknown, list: any[]) => list.length >= rule.min! && list.length <= rule.max! ? Promise.resolve() : Promise.reject();\r\n return { ...rule, validator };\r\n }\r\n return { ...rule };\r\n });\r\n }\r\n\r\n /**\r\n * 获得资源列表\r\n * \r\n * @param list \r\n * @param itemList \r\n * @param reset \r\n * @returns \r\n */\r\n getList = (list: Design.ItemOption[], itemList: string[] | undefined, reset: (plist: Design.ItemOption[]) => void) => {\r\n if (itemList) {\r\n const plist = list.filter(({ key }) => itemList.includes(key));\r\n reset(plist);\r\n return plist;\r\n }\r\n return list;\r\n }\r\n}","import React, { PureComponent } from \"react\";\r\n\r\nexport default class WidgetComponent<P = {}, S = {}> extends PureComponent<P, S> {\r\n\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Label extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.rules();\r\n const { title, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n wrapperCol={{ span: 24 }}\r\n >\r\n <div style={styles}>{title}</div>\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Tooltip extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n const { preview, } = this.props;\r\n if (show && !preview) {\r\n const { title, hidden, children } = this.props; \r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item style={itemStyles} hidden={hidden} wrapperCol={{ span: 24 }}>\r\n <div style={styles}>{title ?? children}</div>\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { Space, Image } from 'antd';\r\nimport { config } from '@/config';\r\n\r\n/** 文本预览 */\r\nexport const PreviewText = ({ value, type, style, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n if (value && type === \"url\") {\r\n const urls = value.split(/[,;\\s]/);\r\n return urls.map((url: string) => <div style={style}><a href={url} target=\"_blank\" rel=\"noreferrer\">{url}</a></div>)\r\n }\r\n return <div style={style}>{value}</div>\r\n}\r\n\r\n/** 时长预览 */\r\nexport const PreviewDuration = ({ value, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(value);\r\n }, []);\r\n if (value) {\r\n const [hour, minute, second] = value?.split(\":\");\r\n return <div style={style}>{`${hour}小时${minute}分${second}秒`}</div>\r\n } else {\r\n return <div style={style}>000时00分00秒</div>\r\n }\r\n}\r\n\r\n/** 切换预览 */\r\nexport const PreviewSwitch = ({ checked, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div style={style}>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\n\r\n/** 列表预览 */\r\nexport const PreviewList = ({ value, list, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(value);\r\n }, []);\r\n\r\n if (Array.isArray(value)) {\r\n const items = list.filter(({ key }: any) => value.includes(key)).map(({ label }: any) => label);\r\n return <div style={style}>{items?.join()}</div>\r\n } else {\r\n const item = list?.find(({ key }: any) => key === value);\r\n return <div style={style}>{item?.label}</div>\r\n }\r\n}\r\n\r\n/** 文件预览 */\r\nexport const PreviewFile = ({ fileList }: { fileList: any[]}) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n return <>\r\n {fileList?.map(({ id, name, url, contentType }: any) => {\r\n const uri = downloadUrl + \"/\" + id;\r\n /** pdf文本预览 */\r\n if (contentType?.endsWith(\"pdf\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 图片文本预览 */\r\n if (contentType?.startsWith(\"image\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={200} src={url} alt={name} />\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 视频文本预览 */\r\n if (contentType?.startsWith(\"video\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 音频文本预览 */\r\n if (contentType?.startsWith(\"audio\")) {\r\n return <div key={id}>\r\n <div style={{ paddingBottom: 10, display: 'flex', alignItems: 'center' }}>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <a style={{ paddingLeft: 10 }} href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </div>\r\n </div>\r\n }\r\n /** office文本预览 */\r\n if (name?.endsWith(\".doc\") || name?.endsWith(\".docx\") || name?.endsWith(\".xls\") || name?.endsWith(\".xlsx\") || name?.endsWith(\".ppt\") || name?.endsWith(\".pptx\")) {\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={'http://view.officeapps.live.com/op/view.aspx?src=' + url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n /** 默认文本预览 */\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{name}</a>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n })}\r\n </>\r\n}\r\n\r\nexport const PreviewImage = ({ fileList, width, height, style } : { fileList: any[], width: number, height: number, style?: object }) =>\r\n <>\r\n {fileList?.map(({ id, name, url }) => (\r\n <div key={id} style={style}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={width} height={height} src={url} alt={name} />\r\n <a href={config.request.prefix + config.file.downloadUrl + \"/\" + id} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n ))}\r\n </>","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class Text extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, type, preview, placeholder, maxLength, allowClear, showCount, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText type={type} style={styles} /> : <Input maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n );\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class TextArea extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue(); \r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, placeholder, maxLength, allowClear, showCount, minRow=\"0\", maxRow=\"0\", readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles} = this.getStyles();\r\n const minRows = Number(minRow);\r\n const maxRows = Number(maxRow);\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText style={styles} /> : <Input.TextArea maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} autoSize={ minRows + maxRows < 1 ? false : { minRows, maxRows} } disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n );\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, InputNumber as Numerial } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class InputNumber extends UIComponent<Design.NumberProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const { type = \"number\", precision } = this.props;\r\n let numberProps: {} = {};\r\n if (type === \"digits\") {\r\n if (precision) {\r\n numberProps = {\r\n precision: Number(precision),\r\n };\r\n } else {\r\n numberProps = {\r\n precision: 2,\r\n };\r\n }\r\n } else if (type === \"money\") {\r\n numberProps = {\r\n formatter: (value: string) =>\r\n `¥ ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"),\r\n parser: (value: string) => value!.replace(/\\$\\s?|(,*)/g, \"\"),\r\n };\r\n } else if (type === \"percentage\") {\r\n numberProps = {\r\n formatter: (value: string) => `${value}%`,\r\n parser: (value: string) => value!.replace(\"%\", \"\"),\r\n };\r\n }\r\n this.onComputeValue();\r\n const rules = this.rules().map(rule => rule.required ? { ...rule, type: \"number\" } : rule);\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, min, max, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? (<PreviewText style={styles} />) : (<Numerial min={min} max={max} disabled={readonly} {...numberProps} style={styles} />)}\r\n </Form.Item>\r\n );\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport ReactWEditor from 'wangeditor-for-react';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Editor extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, placeholder, hidden, readonly } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n colon={!!title}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {(preview || readonly) ? <PreviewText style={styles} /> : <EditorWidget placeholder={placeholder} style={styles} />}\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass EditorWidget extends React.Component<Design.WidgetProps> {\r\n isReactWEditor = false\r\n editorRef: React.RefObject<any> = React.createRef();\r\n \r\n shouldComponentUpdate() {\r\n return !this.isReactWEditor\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, placeholder, style, onChange } = this.props;\r\n return (\r\n <ReactWEditor\r\n placeholder={placeholder} \r\n value={value}\r\n style={style}\r\n onBlur={() => {\r\n this.isReactWEditor = false\r\n }}\r\n onFocus={() => {\r\n this.isReactWEditor = true\r\n }}\r\n onChange={(value: string) => {\r\n onChange?.(value);\r\n }}\r\n />\r\n );\r\n } \r\n}\r\n","import React from 'react';\r\nimport { Form, Select } from 'antd';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewList } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nexport default class SelectList extends UIListComponent<Design.RemoteProps, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void { \r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({ \r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n initValue() {\r\n const { defaultValue, multiple } = this.props;\r\n if (defaultValue) {\r\n if (multiple) {\r\n this.setDefaultValue([defaultValue]);\r\n } else {\r\n this.setDefaultValue(defaultValue);\r\n }\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const { code, preview, multiple, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const rules = multiple ? this.plusRules() : this.rules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string | string[]>();\r\n if (currentValue && (\r\n (!multiple && !plist.some(item => item.key === currentValue)) ||\r\n (multiple && !plist.some(item => currentValue.includes(item.key)))\r\n )) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={this.state.list} style={styles} /> :\r\n <SelectWidget list={list} multiple={multiple} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} />\r\n }\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nconst { Option } = Select;\r\nclass SelectWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n handleItemValue = (value: string) => {\r\n this.props.onChange?.(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { list, value, multiple, placeholder, allowClear, readonly, style } = this.props;\r\n return (<Select\r\n showSearch\r\n placeholder={placeholder}\r\n mode={multiple ? \"multiple\" : undefined}\r\n disabled={readonly}\r\n value={value as string}\r\n allowClear={allowClear}\r\n style={style}\r\n onChange={this.handleItemValue}\r\n filterOption={(inputValue: string, option: any) =>\r\n (option!.children as unknown as string).toLowerCase().includes(inputValue.toLowerCase())\r\n }\r\n >\r\n {list && (list.map(({ key, label }) => <Option key={key} value={key}>{label}</Option>))}\r\n </Select>);\r\n }\r\n}","import React from 'react';\r\nimport { Form, Checkbox } from 'antd';\r\nimport { PreviewList } from '@/preview';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { config } from '@/config';\r\n\r\nexport default class CheckBox extends UIListComponent<Design.RemoteProps, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void {\r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({\r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string[]>();\r\n if (currentValue && !plist.some(item => currentValue.includes(item.key))) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewList list={this.state.list} style={styles} /> : <CheckboxWidget list={list} readonly={readonly} style={styles}/> }\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nclass CheckboxWidget extends WidgetComponent<Design.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, readonly, style, onChange } = this.props;\r\n return (\r\n <Checkbox.Group\r\n style={style}\r\n value={value as string[]}\r\n onChange={(value: any) => {\r\n onChange?.(value);\r\n }}\r\n >\r\n {list && (list.map(({ key, label }) => <Checkbox key={key} value={key} disabled={readonly}>{label}</Checkbox>))}\r\n </Checkbox.Group>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form, Radio } from 'antd';\r\nimport { PreviewList } from '@/preview';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { config } from '@/config';\r\n\r\nexport default class RadioButton extends UIListComponent<Design.Radio.Props, Design.ListState> {\r\n state = {\r\n list: [],\r\n }\r\n \r\n componentDidMount(): void {\r\n const { remote } = this.props;\r\n const optionList = this.optionList();\r\n if (optionList) {\r\n this.setState({ \r\n list: optionList\r\n }, this.initValue);\r\n } else if (remote && remote.trim().length > 0) {\r\n const url = config.request.route + remote;\r\n this.request(url).then((list: Design.ItemOption[]) => {\r\n this.setState({ list }, this.initValue);\r\n });\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const itemList = this.collectionList();\r\n const list = this.getList(this.state.list, itemList, (plist) => {\r\n if (plist.length > 0) {\r\n const currentValue = this.getFieldValue<string>();\r\n if (currentValue && !plist.some(item => currentValue.includes(item.key))) {\r\n this.cleanFieldValue();\r\n }\r\n }\r\n });\r\n const { code, preview, optionType, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={list} style={styles} /> : <RadioWidget list={this.state.list} optionType={optionType} readonly={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n } \r\n}\r\n\r\nclass RadioWidget extends WidgetComponent<Design.Radio.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, optionType, readonly, style, onChange } = this.props;\r\n return (\r\n <Radio.Group\r\n value={value}\r\n optionType={optionType}\r\n style={style}\r\n onChange={(e: any) => {\r\n onChange?.(e.target.value);\r\n }}\r\n >\r\n {list && (list.map(({ key, label }) => <Radio key={key} value={key} disabled={readonly}>{label}</Radio>))}\r\n </Radio.Group>\r\n );\r\n } \r\n}\r\n","import React from 'react';\r\nimport { Form, Switch } from 'antd';\r\nimport { PreviewSwitch } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class SwitchButton extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"checked\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewSwitch style={styles} /> : <Switch disabled={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from 'react';\r\nimport { Form, InputNumber } from 'antd';\r\nimport format from 'number-format.js';\r\nimport { PreviewDuration } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport './index.css';\r\n\r\nexport default class Duration extends UIComponent<Design.ComponentProps> {\r\n\r\n componentDidMount(): void {\r\n this.initValue(\"000:00:00\");\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewDuration style={styles} /> : <DurationWidget readonly={readonly} style={styles}/> }\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DurationWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n duration: number[] = [0, 0, 0];\r\n \r\n changeValue = (index: number) => (changeValue: number | null) => {\r\n if (typeof changeValue === \"number\") {\r\n this.duration[index] = changeValue;\r\n const durations = this.duration.map((value: number, index: number) => (index === 0 ? format(\"000\", value) : format(\"00\", value)));\r\n this.props.onChange?.(durations.join(\":\"));\r\n }\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, readonly, style } = this.props;\r\n if (typeof value === \"string\") {\r\n this.duration = value.split(\":\").map(Number);\r\n }\r\n return (\r\n <div className=\"duration\">\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={999} precision={0} value={this.duration[0]}\r\n formatter={(value: any) => value! < 100 ? (value! < 10 ? '00'+ value : '0'+ value) : value!.toString()}\r\n onChange={this.changeValue(0)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>小时</span>\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={59} precision={0} value={this.duration[1]}\r\n formatter={(value: any) => value! < 10 ? '0'+ value : value!.toString()}\r\n onChange={this.changeValue(1)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>分</span>\r\n <Form.Item>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={59} precision={0} value={this.duration[2]}\r\n formatter={(value: any) => value! < 10 ? '0'+ value : value!.toString()}\r\n onChange={this.changeValue(2)} controls={false} disabled={readonly}\r\n />\r\n </Form.Item><span>秒</span>\r\n </div>\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { Form, DatePicker } from 'antd';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport weekday from \"dayjs/plugin/weekday\";\r\nimport localeData from \"dayjs/plugin/localeData\";\r\n \r\ndayjs.extend(weekday);\r\ndayjs.extend(localeData);\r\n\r\nexport default class Datepicker extends UIComponent<Design.Picker.Props> {\r\n\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, type = \"date\", format = \"YYYY-MM-DD\", showTime = false, preview, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewText style={styles}/> : <DateWidget type={type} format={format} showTime={showTime} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} /> }\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DateWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, type, format, showTime, placeholder, allowClear, readonly, style, onChange } = this.props;\r\n return (\r\n <DatePicker\r\n value={value ? dayjs(value, format) : undefined}\r\n picker={type}\r\n format={format}\r\n showTime={showTime ? { format: 'HH:mm' } : undefined}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n style={style}\r\n onChange={(value: any) => {\r\n onChange?.(value?.format(format));\r\n }}\r\n />\r\n )\r\n }\r\n}","import React from 'react';\r\nimport dayjs from 'dayjs';\r\nimport { Form, TimePicker } from 'antd';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport { PreviewText } from '@/preview';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\n\r\ndayjs.extend(customParseFormat);\r\n\r\nexport default class Timepicker extends UIComponent<Design.Picker.Props> {\r\n\r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, format = \"HH:mm:ss\", preview, placeholder, allowClear = true, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText style={styles} /> : <TimeWidget format={format} placeholder={placeholder} allowClear={allowClear} readonly={readonly} style={styles} />}\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TimeWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, format, placeholder, allowClear, readonly, style, onChange } = this.props;\r\n return (\r\n <TimePicker \r\n value={value ? dayjs(value, format) : undefined}\r\n format={format}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly}\r\n style={style}\r\n onChange={(value: any) => {\r\n onChange?.(value?.format(format))\r\n }} />\r\n )\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileType, fileTypeMessage, fileSize, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileType={fileType} fileTypeMessage={fileTypeMessage} fileSize={fileSize} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list?.length > 0 && list[0]) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done'}));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ id, status }) => (id && status === 'done')).map(({ id }) => id));\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onStart = (): void => {\r\n clearInterval(this.timer);\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: 0\r\n }\r\n })\r\n this.uploading = true;\r\n }\r\n\r\n onProgress = (step: { percent: number}) => {\r\n if (!this.uploading) {\r\n return\r\n }\r\n clearInterval(this.timer);\r\n const percent = Math.round(step.percent / 2);\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: percent\r\n }\r\n });\r\n if (percent === 50) {\r\n let progress = percent;\r\n this.timer = setInterval(() => {\r\n if (this.uploading) {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: ++progress\r\n }\r\n });\r\n } else {\r\n clearInterval(this.timer);\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n });\r\n }\r\n if (progress === 99) {\r\n clearInterval(this.timer);\r\n }\r\n }, 1000);\r\n }\r\n }\r\n\r\n onSuccess = (response: any, file: any) => {\r\n clearInterval(this.timer);\r\n const { id, url } = response.data;\r\n file.status = \"done\";\r\n file.response = response;\r\n file.id = id;\r\n file.url = url;\r\n const fileList = [...this.state.fileList, file];\r\n this.setState({\r\n fileList,\r\n modal: {\r\n open: true,\r\n progress: 100\r\n }\r\n }, () => {\r\n this.onChange(fileList);\r\n setTimeout(()=> {\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n })\r\n }, 500);\r\n });\r\n this.uploading = false;\r\n }\r\n\r\n onError = (error: any, response: any, file: any) => {\r\n clearInterval(this.timer);\r\n const fileList = [...this.state.fileList, file];\r\n file.status = \"error\";\r\n file.response = response?.message ?? \"上传失败\";\r\n this.setState({\r\n fileList,\r\n modal: {\r\n open: false,\r\n progress: 100\r\n }\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n this.uploading = false;\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList } = this.state;\r\n const list = fileList.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList: list\r\n }, () => {\r\n this.onChange(list);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, modal } = this.state;\r\n const { preview, maxCount: count, readonly, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewFile fileList={fileList} />\r\n }\r\n const { onStart, onSuccess, onProgress, onError } = this;\r\n const itemProps = { onStart, onSuccess, onProgress, onError }\r\n return (\r\n <>\r\n <Upload\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n onRemove={this.onRemove}\r\n // data={file => {\r\n // const mime = this.fileExtraData(fileType);\r\n // return { mime, uid: file.uid };\r\n // }}\r\n { ...itemProps }\r\n >\r\n <Button disabled={readonly ? readonly : maxCount <= fileList.length} icon={<UploadOutlined />} style={style} >上传</Button>\r\n </Upload>\r\n <Modal open={modal.open} closable={false} footer={null}>\r\n <div>上传文件进度</div>\r\n <Progress percent={modal.progress} />\r\n </Modal>\r\n </>\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, Upload, Button, Modal, message } from 'antd';\r\nimport type { UploadProps } from 'antd/es/upload';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport ImgCrop from 'antd-img-crop';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewImage } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\nconst fileType = [\"image/jpeg\", \"image/png\"];\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileSize, fileWidth = \"100\", fileHeight = \"100\", readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileSize={fileSize} fileWidth={Number(fileWidth)} fileHeight={Number(fileHeight)} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n fileView: undefined,\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list?.length > 0 && list[0]) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done'}));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ id, status }) => (id && status === 'done')).map(({ id }) => id));\r\n }\r\n\r\n onChangeValue: UploadProps['onChange'] = ({ fileList: list }) => {\r\n const fileList: Design.File.FileInfo[] = list.map((file: any) => {\r\n if (file.response?.status === 200) {\r\n const { id, name, url } = file.response.data;\r\n file.id = id;\r\n // file.name = name;\r\n file.url = url;\r\n file.status = 'done';\r\n } else if (file.response?.status === 500) {\r\n file.status = 'error';\r\n file.response = file.response.message;\r\n }\r\n return file;\r\n });\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const isFileType = fileType.includes(file.type);\r\n if (!isFileType) {\r\n message.error(\"上传文件类型,仅支持图片类型!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n const { fileSize } = this.props;\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList: list } = this.state;\r\n const fileList = list.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, fileView } = this.state;\r\n const { preview, maxCount: count, readonly, fileWidth = 100, fileHeight = 100, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewImage fileList={fileList} width={fileWidth} height={fileHeight} style={style}/>\r\n }\r\n return (<>\r\n <ImgCrop\r\n rotationSlider\r\n modalTitle=\"图片编辑\"\r\n modalOk=\"确认\"\r\n modalCancel=\"取消\"\r\n aspect={fileWidth / fileHeight}\r\n >\r\n <Upload\r\n listType=\"picture-card\"\r\n accept={fileType.join(\",\")}\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n onChange={this.onChangeValue}\r\n onRemove={this.onRemove}\r\n onPreview={(file: any) => this.setState({ fileView: file })}\r\n >\r\n {!readonly && (Number(maxCount) > fileList.length) && <Button type=\"link\" icon={<PlusOutlined />} style={style}/>}\r\n </Upload>\r\n </ImgCrop>\r\n {fileView?.[\"id\"] && <Modal title={fileView[\"name\"]} open={true} footer={null} onCancel={() => this.setState({ fileView: undefined})}>\r\n <img alt={fileView[\"name\"]} style={{ width: '100%' }} src={fileView[\"url\"]} />\r\n </Modal>}\r\n </>)\r\n }\r\n}","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport FileUpload from 'file-block-upload';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\n\r\nconst normFile = (e: any) => {\r\n if (Array.isArray(e)) {\r\n return e;\r\n }\r\n return e && e.list;\r\n};\r\n\r\nexport default class UplaodList extends UIListComponent<Design.File.Props> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const rules = this.plusRules();\r\n const { code, preview, maxCount, fileType, fileTypeMessage, fileSize, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n getValueFromEvent={normFile}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <UploadWidget maxCount={maxCount} fileType={fileType} fileTypeMessage={fileTypeMessage} fileSize={fileSize} readonly={readonly} preview={preview} style={styles} />\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const url = config.file.listUrl;\r\n if (list && list.length > 0) {\r\n request(url)({ ids: list }).then((response: Design.Result) => {\r\n const fileList = response.data.map((file: Design.File.FileInfo) => ({ ...file, status: 'done' }));\r\n this.setState({\r\n fileList\r\n }, () => {\r\n this.onChange(fileList);\r\n })\r\n }).catch((error: Error) => {\r\n console.warn(\"url\", url, error);\r\n });\r\n }\r\n }\r\n\r\n onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n customRequest = (info: any) => {\r\n const options = {\r\n blockSize: config.chunk.chunkSize,\r\n checkFile: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.checkFile)({ fileName, fileMd5, fileSize })\r\n ),\r\n checkBlock: async ({fileName, fileMd5, blockMd5, blockIndex}: any) => (\r\n await request(\"post form \" + config.chunk.checkChunk)({ fileName, fileMd5, blockMd5, blockIndex })\r\n ),\r\n\r\n uploadBlock: async ({fileName, fileMd5, blockMd5, blockIndex, file}: any) => {\r\n const formData = new FormData();\r\n formData.append(\"blockIndex\", String(blockIndex));\r\n formData.append(\"blockMd5\", blockMd5);\r\n formData.append(\"fileName\", fileName);\r\n formData.append(\"fileMd5\", fileMd5);\r\n formData.append(\"file\", file as Blob);\r\n return await request(\"post form \" + config.chunk.chunkUpload)(formData);\r\n },\r\n\r\n mergeBlock: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.doMerge)({fileName, fileMd5, fileSize})\r\n ),\r\n mergeProgress: async () => {\r\n const result = await request(config.chunk.mergeProgress)();\r\n return result?.data;\r\n },\r\n\r\n verifyFile: async ({fileName, fileMd5, fileSize}: any) => (\r\n await request(\"post form \" + config.chunk.onComplete)({fileName, fileMd5, fileSize})\r\n ),\r\n verifyProgress: async () => {\r\n const result = await request(config.chunk.completeProgress)();\r\n return result?.data;\r\n },\r\n };\r\n\r\n const upload = FileUpload.create(options);\r\n upload.progress((file: any, progress: number) => {\r\n file.status = \"uploading\";\r\n this.setState({ modal: { open: true, progress }});\r\n });\r\n upload.complete((file: any) => {\r\n const { id, url } = file.response;\r\n file.id = id;\r\n file.url = url;\r\n file.status = \"done\";\r\n const fileList = [...this.state.fileList, file];\r\n this.setState({\r\n fileList,\r\n modal: { open: false, progress: 0 }\r\n }, () => {\r\n this.onChange(fileList);\r\n });\r\n });\r\n upload.error((file: any, error: string) => {\r\n file.status = 'error';\r\n file.response = error;\r\n let fileList: any[] = this.state.fileList;\r\n const index = fileList.findIndex(({ uid }) => uid === file.uid);\r\n if (index === -1) {\r\n fileList.push(file);\r\n } else {\r\n fileList[index] = file;\r\n }\r\n this.setState({\r\n fileList,\r\n modal: { open: false, progress: 0 }\r\n });\r\n });\r\n upload.start(info.file);\r\n }\r\n\r\n onChange(fileList: Design.File.FileInfo[]) {\r\n this.props.onChange?.(fileList.filter(({ status }) => status === 'done').map(({ id }) => id));\r\n }\r\n\r\n onRemove = (file: any) => {\r\n const { fileList } = this.state;\r\n const list = fileList.filter(({ id }) => id !== file.id);\r\n this.setState({\r\n fileList: list\r\n }, () => {\r\n this.onChange(list);\r\n });\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { fileList, modal } = this.state;\r\n const { preview, maxCount: count, readonly, style } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewFile fileList={fileList} />\r\n }\r\n return (\r\n <>\r\n <Upload\r\n action={config.request.prefix + config.file.uploadUrl}\r\n fileList={fileList}\r\n maxCount={maxCount}\r\n disabled={readonly}\r\n beforeUpload={this.onBeforeUpload}\r\n customRequest={this.customRequest}\r\n onRemove={this.onRemove}\r\n // data={file => {\r\n // const mime = this.fileExtraData(fileType);\r\n // return { mime, uid: file.uid };\r\n // }}\r\n >\r\n <Button disabled={readonly ? readonly : maxCount <= fileList.length} icon={<UploadOutlined />} style={style} >上传</Button>\r\n </Upload>\r\n <Modal open={modal.open} closable={false} footer={null}>\r\n <div>上传文件进度</div>\r\n <Progress percent={modal.progress} />\r\n </Modal>\r\n </>\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, Card, Table, Modal, Input, Space, Row, Col } from 'antd';\r\nimport { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { concat, find, uniqueId } from 'lodash';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { validate } from \"@/applets\";\r\n\r\nexport default class TableList extends UIListComponent<Design.ComponentProps> {\r\n \r\n getColumns() {\r\n const columnList = find(this.props.children, { tag: \"Columns\" })\r\n if (columnList) {\r\n return columnList.children?.map((column: Design.Table.ColumnData) => ({\r\n ...column,\r\n rules: column.rules?.map(validate)\r\n }));\r\n }\r\n return [];\r\n }\r\n \r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <TableWidget preview={preview || readonly} title={title} columns={this.getColumns()} style={styles} />\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TableWidget extends WidgetComponent<Design.Table.WidgetProps, Design.Table.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const { list, onChange } = this.props;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ worksId, worksExtraId, ...items }, index) => {\r\n return { id: worksExtraId, index: index + 1, ...items }\r\n });\r\n this.setState({ dataSource }, () => {\r\n onChange?.(dataSource);\r\n })\r\n }\r\n }\r\n\r\n getColumns() {\r\n const { title, preview, columns, onChange } = this.props;\r\n const { dataSource } = this.state;\r\n if (preview) {\r\n return columns;\r\n }\r\n return concat(columns, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `修改${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >\r\n 修改\r\n </a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Table.Item[] = dataSource.filter(({ id, uid }) => !((id && record.id === id) || (uid && record.uid === uid)));\r\n this.setState({ dataSource: list }, () => {\r\n onChange?.(list);\r\n })\r\n },\r\n });\r\n }}\r\n >\r\n 删除\r\n </a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Table.Item) => {\r\n const { dataSource } = this.state;\r\n let list: Design.Table.Item[] = [];\r\n if (entity.id || entity.uid) {\r\n list = dataSource.map((item: Design.Table.Item) => {\r\n if (entity.id && item.id === entity.id) {\r\n return { ...item, ...entity }\r\n } else if (entity.uid && item.uid === entity.uid) {\r\n return { ...item, ...entity }\r\n }\r\n return item;\r\n });\r\n } else {\r\n entity.index = dataSource.length + 1;\r\n entity.uid = uniqueId();\r\n list = [...dataSource, entity];\r\n }\r\n\r\n this.setState({\r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list);\r\n })\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { title, preview, style } = this.props;\r\n const { dataSource, modal } = this.state;\r\n const columns = this.getColumns();\r\n return (\r\n <Card\r\n title={title}\r\n bodyStyle={{ padding: '0px 12px' }}\r\n extra={\r\n preview ? null :\r\n <a key=\"new\" onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: undefined, show: true }\r\n })\r\n }}>添加</a>\r\n }\r\n >\r\n <Table rowKey=\"index\" size=\"small\" style={style} columns={columns} dataSource={dataSource} />\r\n {modal.show && <ModalForm title={modal.title} entity={modal.entity} columns={columns} onFinish={this.onFinish} onCancel={this.onCancel} />}\r\n </Card>\r\n )\r\n }\r\n}\r\n\r\nconst ModalForm = ({ title, entity, columns, onFinish, onCancel }: Design.Table.ModalProps) => {\r\n const [form] = Form.useForm();\r\n return (\r\n <Modal \r\n title={title}\r\n width={740}\r\n open={true}\r\n destroyOnClose={true}\r\n onCancel={onCancel}\r\n onOk={async () => {\r\n const valid = form.validateFields()\r\n valid.then((data: Design.Table.Item)=> {\r\n onFinish({...entity, ...data});\r\n }).catch((e: any)=> {\r\n console.warn(e);\r\n });\r\n }} \r\n >\r\n <Form\r\n form={form} \r\n name=\"modalTable\"\r\n initialValues={entity}\r\n wrapperCol={{ span: 22 }}\r\n autoComplete=\"off\"\r\n layout='vertical'\r\n >\r\n <Row>\r\n {columns.length > 0 && columns.map(({ title, dataIndex, placeholder, rules }) => {\r\n if (dataIndex !== 'index' && dataIndex !== 'option') {\r\n return (\r\n <Col span={12} key={dataIndex}>\r\n <Form.Item label={title} name={dataIndex} rules={rules as []}>\r\n <Input placeholder={placeholder} />\r\n </Form.Item>\r\n </Col>\r\n )\r\n }\r\n })}\r\n </Row>\r\n </Form>\r\n </Modal>\r\n )\r\n}\r\n","import React, { useRef } from 'react';\r\nimport { Form, FormInstance, Card, Table, Modal, Space } from 'antd';\r\nimport { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { concat, find, uniqueId } from 'lodash';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport XMLDocument from \"@/utils/document\";\r\nimport { config } from '@/config';\r\nimport FormDocument from '@/form';\r\n\r\nexport default class FormList extends UIListComponent<Design.Form.Props, Design.Form.States> {\r\n\r\n itemList:{ code: string; title: string, type: string; data: {}; }[] = []\r\n columnList: any[] = []\r\n state = {\r\n doc: undefined,\r\n loading: true\r\n };\r\n\r\n componentDidMount(): void {\r\n const formId = this.props.formId!;\r\n this.setState({ loading: true });\r\n this.request(config.form.documentUrl, { formId }).then((xml: string) => {\r\n const doc = XMLDocument.toDocument(xml);\r\n this.setState({ doc });\r\n this.initItems(doc);\r\n });\r\n }\r\n\r\n initItems = async(doc: Document) => {\r\n this.columnList = find(this.props.children, { tag: \"Columns\" }).children;\r\n const codes: any[] = this.columnList.map((column: any) => column.dataIndex);\r\n const elements = XMLDocument.selectors(doc, \"[code]\");\r\n for (const element of elements) {\r\n const code = element.getAttribute(\"code\");\r\n const title = element.getAttribute(\"title\")!;\r\n const type = element.tagName.toLowerCase();\r\n if (code && codes.includes(code)) {\r\n const data: any = {};\r\n const remote = element.getAttribute(\"remote\");\r\n const options = XMLDocument.selectors(element, \"Option\");\r\n if (options.length > 0) {\r\n for (const option of options) {\r\n const key = option.getAttribute(\"value\");\r\n const value = option.textContent;\r\n if (key && value) {\r\n data[key] = value;\r\n }\r\n }\r\n } else if (remote) {\r\n const list: Design.ItemOption[] = await this.request(config.request.route + remote);\r\n for(const item of list) {\r\n data[item.key] = item.label;\r\n }\r\n }\r\n this.itemList.push({ code, title, type, data });\r\n }\r\n }\r\n this.setState({ loading: false });\r\n }\r\n \r\n render(): React.ReactNode { \r\n const show = this.display();\r\n if (show && !this.state.loading) {\r\n this.onComputeValue();\r\n const rules = this.plusRules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, witdh, preview, readonly, hidden } = this.props;\r\n const { styles, itemStyles } = this.getStyles();\r\n const { doc } = this.state;\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={itemStyles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n valuePropName=\"list\"\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n <FormWidget preview={preview || readonly} title={title} witdh={witdh} columns={this.columnList} items={this.itemList} document={doc} style={styles} />\r\n </Form.Item>\r\n )\r\n } else if (this.props.hideClear) {\r\n this.cleanFieldValue();\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass FormWidget extends WidgetComponent<Design.Form.WidgetProps, Design.Form.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const list = this.props.list;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ ...data }, index) => ({ id: uniqueId(), index: index + 1, ...data }));\r\n this.onChange(dataSource);\r\n }\r\n }\r\n\r\n onChange(list: any[]) {\r\n this.setState({ \r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list.map(({ id, index, ...data}) => data));\r\n })\r\n }\r\n\r\n getColumns() {\r\n const { preview, title, columns, items } = this.props;\r\n const { dataSource } = this.state;\r\n\r\n const columnList = columns.map((column: Design.Form.ColumnItem) => {\r\n const code = column.dataIndex\r\n const item: any = items.find((item: any) => item.code === code);\r\n if (item) {\r\n if (!column.title) {\r\n column.title = item.title;\r\n }\r\n column.render = (text: string) => Object.keys(item.data).length === 0 ? text: item.data[text]\r\n }\r\n return column;\r\n });\r\n \r\n if (preview) {\r\n return columnList;\r\n }\r\n return concat(columnList, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `修改${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >修改</a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Form.Data[] = dataSource.filter(({ id }) => !(id && record.id === id));\r\n this.onChange(list);\r\n },\r\n });\r\n }}\r\n >删除</a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Form.Data) => {\r\n const dataSource = this.state.dataSource;\r\n let list: Design.Form.Data[] = [];\r\n if (entity.id) {\r\n list = dataSource.map((data: Design.Form.Data) => data.id === entity.id ? { ...data, ...entity } : data);\r\n } else {\r\n entity.id = uniqueId();\r\n entity.index = dataSource.length + 1;\r\n list = [...dataSource, entity];\r\n }\r\n this.onChange(list);\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { preview, title, witdh, document, style } = this.props;\r\n const { dataSource, modal } = this.state;\r\n const columns = this.getColumns();\r\n return (\r\n <Card\r\n title={title}\r\n bodyStyle={{ padding: '0px 12px' }}\r\n extra={\r\n preview ? null :\r\n <a key=\"new\" onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: undefined, show: true }\r\n })\r\n }}>添加</a>\r\n }\r\n >\r\n <Table rowKey=\"id\" size=\"small\" style={style} columns={columns} dataSource={dataSource} />\r\n {modal.show && <ModalForm title={modal.title} witdh={witdh} entity={modal.entity} document={document} onFinish={this.onFinish} onCancel={this.onCancel} />}\r\n </Card>\r\n )\r\n }\r\n}\r\n\r\nconst ModalForm = ({ title, witdh=\"740\", entity, document, onFinish, onCancel }: Design.Form.ModalProps) => {\r\n const form: React.MutableRefObject<FormInstance | undefined> = useRef();\r\n \r\n return (\r\n <Modal \r\n title={title}\r\n width={Number(witdh)}\r\n open={true}\r\n destroyOnClose={true}\r\n onCancel={onCancel}\r\n onOk={async () => {\r\n try {\r\n await form.current?.validateFields();\r\n const data = form.current?.getFieldsValue();\r\n onFinish({...entity, ...data});\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }} \r\n >\r\n {document && <FormDocument form={form} document={document} initialValues={entity}/>}\r\n </Modal>\r\n )\r\n}\r\n","import { Row } from 'antd';\r\nimport React from 'react';\r\n\r\nexport default ({ children, gutter }: any) => (\r\n <Row gutter={Number(gutter)} style={{ margin: 0 }}>\r\n {children}\r\n </Row>\r\n)","import React from 'react';\r\nimport { Col } from 'antd';\r\n\r\nexport default ({ span, children }: any) => {\r\n return (\r\n <Col span={span}>\r\n {children}\r\n </Col>\r\n )\r\n}","import React, { useMemo } from 'react';\r\nimport { Steps } from 'antd';\r\n\r\nexport default ({ direction, stepIndex, onChangeSetp, children }: any) => {\r\n const items = useMemo(() => (\r\n children?.map(({ id, attributes }: any) => {\r\n const { title, description } = attributes;\r\n return { key: id, title, description };\r\n })\r\n ), [children]);\r\n \r\n return (\r\n <Steps\r\n current={stepIndex}\r\n direction={direction}\r\n onChange={onChangeSetp}\r\n items={items}\r\n style={{ padding: 16, backgroundColor: \"white\" }}\r\n />\r\n )\r\n}","import React, { useMemo, memo } from 'react';\r\nimport { Layout } from 'antd';\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nconst { Content } = Layout;\r\n\r\nexport default memo(({ currentStepIndex, stepIndex, style, children }: any) => {\r\n const itemStyle = useMemo(() => {\r\n const styles = style ? toStyles(style) : { padding: 16, backgroundColor: \"white\" };\r\n if (currentStepIndex !== Number(stepIndex)) {\r\n Object.assign(styles, { \"display\": \"none\" });\r\n }\r\n return styles;\r\n }, [currentStepIndex]);\r\n \r\n return (\r\n <Content style={itemStyle} >\r\n {children}\r\n </Content>\r\n )\r\n});","import React from 'react';\r\nimport { Divider } from 'antd';\r\n\r\nexport default ({ dashed = false, orientation = \"center\", children }: any) => (\r\n <Divider dashed={dashed} orientation={orientation} style={{ color: \"#055ab5\", fontWeight: \"bold\" }}>{children}</Divider>\r\n)","import React, { useState, useMemo, memo } from 'react';\r\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\r\nimport { Button } from 'antd';\r\nimport { toStyles } from \"@/utils/style\";\r\n\r\nconst hide = {\r\n display: 'none'\r\n}\r\nconst show = {\r\n display: 'block'\r\n}\r\n\r\nexport default memo(({ defaultExpanded = true, on, off, style, collapse, children }: any) => {\r\n const [isExpanded, onExpanded] = useState(defaultExpanded);\r\n const styles = toStyles(style);\r\n if (collapse) {\r\n return (\r\n <>\r\n <div style={styles}>\r\n <Button\r\n type='link'\r\n onClick={() => {\r\n onExpanded(!isExpanded);\r\n }}\r\n >{isExpanded ? off : on}{isExpanded ? <UpOutlined /> : <DownOutlined />} </Button>\r\n </div>\r\n <div style={isExpanded ? show : hide}>\r\n {children}\r\n </div>\r\n </>\r\n )\r\n }\r\n return <>{children}</>;\r\n});","import React, { PureComponent, ReactNode } from \"react\";\r\nimport { Form as BaseForm, FormInstance, Skeleton } from \"antd\";\r\nimport { find, mapValues, camelCase, isBoolean, isObject, isArray, isUndefined } from \"lodash\";\r\nimport XMLDocument from \"@/utils/document\";\r\nimport XML from \"@/entity/XML\";\r\nimport { ProComponent } from \"@/service\";\r\nimport * as BaseComponents from \"@/components\"\r\nimport { Row, Col, Collapse, Content, Divider, Steps } from \"@/containers\";\r\nimport { DesignContext } from \"@/context\";\r\nimport { config } from \"@/config\";\r\nimport { regrister, autoClose } from \"@/utils/loading\";\r\n\r\nconst Components: {[name: string]: {}} = BaseComponents;\r\nconst Containers: {[name: string]: {}} = { Row, Col, Collapse, Content, Divider, Steps };\r\n\r\nexport default class FormDocument extends PureComponent<Design.HomeProps, Design.HomeState> {\r\n\r\n state = {\r\n stepIndex: 0,\r\n root: undefined,\r\n loading: true\r\n };\r\n\r\n form: React.RefObject<FormInstance>;\r\n preview?: boolean;\r\n layouts?: {};\r\n styles: {};\r\n showTitle?: boolean;\r\n hideClear: boolean = false;\r\n customComponents?: {[name:string]: {}};\r\n\r\n constructor(props: Design.HomeProps) {\r\n super(props);\r\n this.styles = props.style ?? {};\r\n this.form = props.form ?? React.createRef()\r\n }\r\n\r\n componentDidMount(): void { \r\n const { document, preview } = this.props;\r\n let root;\r\n if (typeof document === \"string\") {\r\n root = XMLDocument.getRoot(document);\r\n } else {\r\n root = XMLDocument.parser(document);\r\n }\r\n \r\n const { style: styleValue, labelCol, wrapperCol, showTitle, hideClear } = root.attributes;\r\n this.showTitle = !!showTitle;\r\n this.hideClear = !!hideClear;\r\n if (typeof styleValue === \"string\") {\r\n const styleList: string[] = styleValue?.replace(/\\ +/g, \"\").split(\";\");\r\n styleList?.forEach(style => {\r\n if (style) {\r\n const [key, value] = style.split(\":\");\r\n Object.assign(this.styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n if (labelCol && wrapperCol) {\r\n this.layouts = {\r\n labelCol: { span: labelCol },\r\n wrapperCol: { span: wrapperCol },\r\n };\r\n }\r\n this.preview = preview ?? false; \r\n if (config.components) {\r\n this.customComponents = mapValues(config.components, (component: any) => (props: any) => <ProComponent Component={component} { ...props} />)\r\n }\r\n this.setState({ root, loading: true });\r\n\r\n /** 注册loading插件 */\r\n regrister(loading => {\r\n this.setState({ loading });\r\n });\r\n /** 自动关闭 Skeleton */\r\n autoClose();\r\n }\r\n\r\n /**\r\n * 销毁form时,重置数据\r\n */\r\n componentWillUnmount(): void {\r\n this.form.current?.resetFields();\r\n this.setState({ root: undefined, loading: true });\r\n }\r\n\r\n /**\r\n * 值发生变化时,变更state\r\n */\r\n onValuesChange = (changedValues: any) => {\r\n this.setState({\r\n values: changedValues\r\n })\r\n };\r\n\r\n /**\r\n * 切换步骤\r\n * \r\n * @param stepIndex \r\n */\r\n onStepIndex = (stepIndex: number) => { \r\n this.setState({\r\n stepIndex\r\n })\r\n }\r\n\r\n /**\r\n * 设置组件状态\r\n * \r\n * @param attributes \r\n */\r\n setComponentStatus(attributes: { [name: string]: string | boolean }) {\r\n const { hidden, readonly } = this.props;\r\n // 控件是否隐藏\r\n if (isBoolean(hidden)) {\r\n attributes.hidden = hidden;\r\n } else if (isArray(hidden)) {\r\n attributes.hidden = hidden.includes(attributes.code as string);\r\n } else if (isObject(hidden)) {\r\n attributes.hidden = !!hidden[attributes.code as string];\r\n } else {\r\n attributes.hidden = attributes.hidden ?? false;\r\n }\r\n // 控件是否只读\r\n if (isBoolean(readonly)) {\r\n attributes.readonly = readonly;\r\n } else if (isArray(readonly)) {\r\n attributes.readonly = readonly.includes(attributes.code as string);\r\n } else if (isObject(readonly)) {\r\n attributes.readonly = !!readonly[attributes.code as string];\r\n } else {\r\n attributes.readonly = attributes.readonly ?? false;\r\n }\r\n // 控件是否隐藏清除数据\r\n if (isUndefined(attributes.hideClear)) {\r\n attributes.hideClear = this.hideClear;\r\n }\r\n }\r\n\r\n /**\r\n * 加载组件\r\n * \r\n * @param xml \r\n * @param Component \r\n * @returns \r\n */\r\n component(xml: XML, Component: any) {\r\n const { id, attributes, children } = xml;\r\n this.setComponentStatus(attributes);\r\n return <Component key={id} preview={this.preview} {...attributes}>{children?.map(this.children)}</Component>\r\n }\r\n\r\n /**\r\n * 加载容器\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n container({ id, tag, attributes, text, children }: XML) {\r\n if (tag === \"Row\") {\r\n return <Row key={id} {...attributes}>{children?.map(this.children)}</Row>\r\n }\r\n if (tag === \"Col\") {\r\n return <Col key={id} span={Number(attributes.span)}>{children?.map(this.children)}</Col>\r\n }\r\n if (tag === \"Collapse\") {\r\n return <Collapse key={id} collapse={this.props.collapse} {...attributes}>{children?.map(this.children)}</Collapse>\r\n }\r\n if (tag === \"Content\") {\r\n return <Content key={id} currentStepIndex={this.state.stepIndex} {...attributes}>{children?.map(this.children)}</Content>\r\n }\r\n if (tag === \"Steps\") {\r\n return <Steps key={id} stepIndex={this.state.stepIndex} onChangeSetp={this.onStepIndex} {...attributes}>{children}</Steps>\r\n }\r\n if (tag === \"Divider\") {\r\n return <Divider key={id} {...attributes}>{text}</Divider>\r\n }\r\n }\r\n\r\n /**\r\n * 加载控件\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n applet({ tag, attributes, cdata, children }: XML) {\r\n if (tag === \"Columns\") {\r\n const child = children?.map(({ attributes, children }) => {\r\n if (children) {\r\n const rules: any = find(children.map(this.children), { tag: \"Validates\" });\r\n return { ...attributes, rules: rules?.children ?? [] };\r\n }\r\n return attributes;\r\n });\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Options\") {\r\n const child = children?.map(({ attributes: { value }, text }) => ({ key: value, label: text }));\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Validates\") {\r\n const child = children?.map(({ attributes }) => attributes);\r\n return { tag, children: child };\r\n }\r\n if (tag === \"Conditions\") {\r\n const { type, action } = attributes;\r\n const child = children?.map(({ attributes }) => attributes);\r\n return { tag, type, action, children: child };\r\n }\r\n if (tag === \"Collection\" || tag === \"Compute\") {\r\n return { tag, cdata };\r\n }\r\n }\r\n\r\n /**\r\n * 加载子项\r\n * \r\n * @param xml \r\n * @returns \r\n */\r\n children = (xml: XML) => {\r\n const Component = this.customComponents?.[xml.tag] ?? Components[xml.tag];\r\n if (Component) {\r\n return this.component(xml, Component);\r\n }\r\n const Container = Containers[xml.tag];\r\n if (Container) {\r\n return this.container(xml);\r\n }\r\n return this.applet(xml);\r\n }\r\n\r\n render(): ReactNode {\r\n const { root , loading } = this.state;\r\n const { initialValues } = this.props;\r\n return <>\r\n { root && \r\n <DesignContext.Provider value={{ ...this.props, form: this.form, showTitle: this.showTitle}}>\r\n <Form\r\n form={this.form}\r\n style={loading ? { ...this.styles, display: \"none\"} : this.styles }\r\n initialValues={initialValues}\r\n onValuesChange={this.onValuesChange}\r\n {...this.layouts}\r\n >\r\n {(root as XML).children?.map(this.children)}\r\n </Form>\r\n </DesignContext.Provider>\r\n }\r\n { loading && <Skeleton active />}\r\n </>\r\n }\r\n}\r\n\r\n/**\r\n * 表单组件\r\n */\r\nclass Form extends React.PureComponent<Design.FormProps> {\r\n\r\n onFinish = (values: object) => {\r\n console.log(\"Success:\", values);\r\n };\r\n\r\n render(): React.ReactNode {\r\n const { form, style, labelCol, wrapperCol, initialValues, children, onValuesChange } = this.props;\r\n return (\r\n <BaseForm\r\n ref={form}\r\n style={style}\r\n labelCol={labelCol}\r\n wrapperCol={wrapperCol}\r\n initialValues={initialValues}\r\n onFinish={this.onFinish}\r\n autoComplete=\"off\"\r\n onValuesChange={changedValues => {\r\n onValuesChange(changedValues);\r\n }}\r\n >\r\n {children}\r\n </BaseForm>\r\n );\r\n }\r\n}\r\n"],"names":["XML","element","_classCallCheck","_defineProperty","this","id","uniqueId","_step","_iterator","_createForOfIteratorHelper","attributes","s","n","done","item","value","trim","isBoolean","toBoolean","name","err","e","f","children","Array","_step2","_iterator2","childNodes","_this$children","_node$nodeValue","node","Element","push","nodeType","textContent","text","cdata","nodeValue","replace","tag","nodeName","_createClass","key","test","parseInt","XMLDocument","document","documentString","DOMParser","parseFromString","doc","toDocument","parser","selectors","querySelector","querySelectorAll","validate","_ref","_ref$type","type","required","minlength","maxlength","min","max","pattern","message","Number","RegExp","DesignContext","React","createContext","DesignConfig","conf","prefix","headers","params","route","listUrl","downloadUrl","uploadUrl","extraData","file","fileType","labelStyle","color","documentUrl","chunkSize","Math","pow","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","form","chunk","components","_objectSpread","config","init","defineConfig","num","listeners","wait","millisecond","Promise","resolve","setTimeout","trigger","_asyncToGenerator","_regeneratorRuntime","mark","_callee","loading","_i","_listeners","wrap","_context","prev","next","length","callback","stop","_x","apply","arguments","begin","_ref2","_callee2","_context2","end","_ref3","_callee3","_context3","autoClose","_ref4","_callee4","_context4","error","_ref5","_callee5","_context5","umiRequest","extend","timeout","use","ctx","t0","_x2","global","targetUrl","options","cloneData","cloneDeep","data","url","domain","urlMatch","match","_slicedToArray","slice","parse","compile","forEach","Object","console","method","toLocaleUpperCase","requestType","then","status","rest","_objectWithoutProperties","_excluded","success","_data$message","response","request$1","uri","uriArray","split","_uriArray","_uriArray2","toStyles","style","styles","items","_items$split","_items$split2","assign","camelCase","UIComponent","_React$PureComponent","_inherits","_super","_createSuper","_this","_len","_args","_key","call","concat","_assertThisInitialized","borderBottom","remote","args","context","abrupt","isArray","list","map","_Object$entries","_Object$entries$","entries","_Object$entries$2","label","reject","undefined","defaultValue","_form$current","_form$current2","code","props","current","getFieldValue","setFieldValue","_form$current3","_this2","_form$current4","_form$current5","getFieldsValue","showTitle","_this$props","title","labelStyles","_jsx","itemProps","_itemLayouts$wrapperC","_this$props2","preview","labelCol","wrapperCol","tips","itemLayouts","span","styleWrapper","tooltip","_this$props3","itemStyle","itemStyles","_this$context$preview","fileds","_this$props4","_this$props4$defaultH","defaultHide","show","conditions","find","_conditions$children","action","fields","keys","join","Function","actuator","condition","result","every","some","_this$props5","_validates$children$m","_validates$children","validates","content","collection","_this3","computeValue","moment","compute","_this$props$defaultVa","setDefaultValue","PureComponent","contextType","ProComponent","_UIComponent","forceUpdate","initValue","display","onComputeValue","rules","_this$getItem","getItem","hidden","Component","_this$getStyles","getStyles","Form","Item","getLabel","onChange","UIListComponent","itemList","reset","plist","filter","includes","rule","validator","_","WidgetComponent","_PureComponent","Label","Tooltip","PreviewText","useEffect","href","target","rel","PreviewDuration","_value$split","_value$split2","hour","minute","second","PreviewSwitch","checked","PreviewList","_ref6","_ref7","PreviewFile","_ref8","fileList","_ref9","contentType","endsWith","_jsxs","Space","paddingBottom","startsWith","Image","width","src","alt","controls","alignItems","height","paddingLeft","PreviewImage","_ref10","_Fragment","_ref11","Text","placeholder","maxLength","allowClear","showCount","readonly","Input","disabled","hideClear","cleanFieldValue","TextArea","_this$props$minRow","minRow","_this$props$maxRow","maxRow","minRows","maxRows","autoSize","InputNumber","_this$props$type","precision","numberProps","formatter","Numerial","Editor","colon","EditorWidget","_React$Component","_super2","createRef","isReactWEditor","ReactWEditor","onBlur","onFocus","SelectList","_UIListComponent","optionList","setState","multiple","_this$props2$allowCle","plusRules","collectionList","getList","state","currentValue","SelectWidget","Option","Select","_WidgetComponent","_this4","_len2","_key2","_this4$props$onChange","_this4$props","showSearch","mode","handleItemValue","filterOption","inputValue","option","toLowerCase","CheckBox","CheckboxWidget","Checkbox","Group","RadioButton","optionType","RadioWidget","Radio","SwitchButton","valuePropName","Switch","css","ref","insertAt","head","getElementsByTagName","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Duration","DurationWidget","index","changeValue","_this$props$onChange","duration","durations","format","className","toString","dayjs","weekday","localeData","Datepicker","_this$props$format","_this$props$showTime","showTime","_this$props$allowClea","DateWidget","DatePicker","picker","customParseFormat","Timepicker","TimeWidget","TimePicker","normFile","UplaodList","maxCount","fileTypeMessage","fileSize","getValueFromEvent","UploadWidget","modal","open","progress","fileTypeArray","Upload","LIST_IGNORE","bytes","size","clearInterval","timer","uploading","step","percent","round","setInterval","_response$data","_toConsumableArray","_response$message","ids","warn","_this$state","count","onStart","onSuccess","onProgress","onError","beforeUpload","onBeforeUpload","onRemove","Button","icon","UploadOutlined","Modal","closable","footer","Progress","_this$props$fileWidth","fileWidth","_this$props$fileHeigh","fileHeight","fileView","_file$response","_file$response2","_file$response$data","_this$props3$fileWidt","_this$props3$fileHeig","ImgCrop","rotationSlider","modalTitle","modalOk","modalCancel","aspect","listType","accept","onChangeValue","onPreview","PlusOutlined","onCancel","info","_verifyProgress","_verifyFile","_mergeProgress","_mergeBlock","_uploadBlock","_checkBlock","_checkFile","blockSize","fileName","fileMd5","sent","checkBlock","blockMd5","blockIndex","uploadBlock","formData","FormData","append","String","_x3","mergeBlock","_x4","verifyFile","_callee6","_context6","_x5","verifyProgress","_callee7","_context7","upload","FileUpload","create","complete","findIndex","uid","start","customRequest","TableList","_columnList$children","columnList","column","_column$rules","TableWidget","columns","getColumns","dataSource","entity","worksId","worksExtraId","dataIndex","valueType","render","record","onClick","confirm","QuestionCircleOutlined","okText","cancelText","onOk","Card","bodyStyle","padding","extra","Table","rowKey","ModalForm","onFinish","_onOk","_Form$useForm","useForm","destroyOnClose","validateFields","initialValues","autoComplete","layout","Row","Col","FormList","codes","elements","_iterator3","_step3","getAttribute","tagName","finish","formId","xml","initItems","witdh","FormWidget","_extends","_objectDestructuringEmpty","_this5","_this6","_ref5$witdh","useRef","log","FormDocument","gutter","margin","Steps","direction","stepIndex","onChangeSetp","useMemo","description","backgroundColor","Content","Layout","Content$1","memo","currentStepIndex","Divider","_ref$dashed","dashed","_ref$orientation","orientation","fontWeight","hide","Collapse","_ref$defaultExpanded","defaultExpanded","on","off","collapse","_useState","useState","_useState2","isExpanded","onExpanded","UpOutlined","DownOutlined","Components","BaseComponents","Containers","_props$style","_props$form","root","changedValues","values","_this$customComponent","_this$customComponent2","customComponents","component","container","applet","payload","_root$attributes","getRoot","styleValue","styleList","_style$split","_style$split2","layouts","mapValues","_this$form$current","resetFields","isObject","_attributes$hidden","_attributes$readonly","isUndefined","setComponentStatus","onStepIndex","child","_rules$children","_root$children","Provider","onValuesChange","Skeleton","active","BaseForm"],"mappings":"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","x_google_ignoreList":[23]}
|