antd-form-document 5.0.8 → 5.0.10

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.
@@ -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/Rate/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 previewUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n previewUrl: \"/file/preview\",\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 mimeType: {[name: string]: string} = {}\r\n\r\n readonly components?: any\r\n readonly previewComponents?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, form, chunk, mimeType, components, previewComponents } = 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.mimeType = mimeType;\r\n this.components = components;\r\n this.previewComponents = previewComponents;\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 fileds = this.getFieldsValue();\r\n const { defaultHide = false, children, preview } = 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 tooltip = this.context.tooltip ?? true;\r\n if (show && tooltip) {\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\nconst DefalutPreviewText = ({ 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\nexport const PreviewText = (props: any) => (\r\n (config.previewComponents?.PreviewText ?? DefalutPreviewText)(props)\r\n)\r\n\r\n/** 富文本预览 */\r\nconst DefalutPreviewEditor = ({ value, type, style, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n return <div dangerouslySetInnerHTML={{__html: value}}></div>\r\n}\r\nexport const PreviewEditor = (props: any) => (\r\n (config.previewComponents?.PreviewEditor ?? DefalutPreviewEditor)(props)\r\n)\r\n\r\n/** 时长预览 */\r\nconst DefalutPreviewDuration = ({ 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\nexport const PreviewDuration = (props: any) => (\r\n (config.previewComponents?.PreviewDuration ?? DefalutPreviewDuration)(props)\r\n)\r\n\r\n/** 切换预览 */\r\nconst DefalutPreviewSwitch = ({ checked, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div style={style}>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\nexport const PreviewSwitch = (props: any) => (\r\n (config.previewComponents?.PreviewSwitch ?? DefalutPreviewSwitch)(props)\r\n)\r\n\r\n/** 列表预览 */\r\nconst DefalutPreviewList = ({ 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\nexport const PreviewList = (props: any) => (\r\n (config.previewComponents?.PreviewList ?? DefalutPreviewList)(props)\r\n)\r\n\r\n/** 文件预览 */\r\nconst DefalutPreviewFile = ({ fileList }: { fileList: any[]}) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n const previewUrl = config.request.prefix + config.file.previewUrl;\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 <div>\r\n <Image width={200} src={url} alt={name} />\r\n <div>{name}</div>\r\n </div>\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 <div>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <div>{name}</div>\r\n </div>\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 <div>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <div>{name}</div>\r\n </div>\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={previewUrl + \"/\" + id} 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\nexport const PreviewFile = (props: any) => (\r\n (config.previewComponents?.PreviewFile ?? DefalutPreviewFile)(props)\r\n)\r\n\r\n/** 图片预览 */\r\nconst DefalutPreviewImage = ({ 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 </>\r\nexport const PreviewImage = (props: any) => (\r\n (config.previewComponents?.PreviewImage ?? DefalutPreviewImage)(props)\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 { PreviewEditor } 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) ? <PreviewEditor 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.Timeout;\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 const fileTypes = fileTypeArray?.map((type: string) => (type.startsWith(\".\") ? config.mimeType[type]: type));\r\n if (fileTypes && fileTypes.length > 0) {\r\n const isFileType = fileTypes.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, Rate } from 'antd';\r\nimport { StarFilled } from '@ant-design/icons';\r\nimport { UIListComponent } from '@/service';\r\n\r\nexport default class RateButton extends UIListComponent<Design.Rate.Props> {\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: number) => value === 0 ? Promise.reject() : Promise.resolve();\r\n return { ...rule, validator };\r\n }\r\n return { ...rule };\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\r\n const { code, preview, allowHalf = false, count = 5, items, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n const characters = items?.split(\",\") ?? [];\r\n\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 <Rate allowHalf={allowHalf} count={count} character={({ index = 0 }) => characters.length > 0 ? characters[index] : <StarFilled/>} disabled={preview || 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, 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 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 } = 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 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 { preview, hidden, readonly, } = this.props;\r\n // 设置预览状态\r\n attributes.preview = preview ?? false;\r\n\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} {...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","previewUrl","extraData","file","fileType","labelStyle","color","documentUrl","chunkSize","Math","pow","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","form","chunk","mimeType","components","previewComponents","_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","_this","_len","_args","_key","_callSuper","concat","_assertThisInitialized","borderBottom","remote","args","context","abrupt","isArray","list","map","_Object$entries","_Object$entries$","entries","_Object$entries$2","label","reject","undefined","_inherits","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","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","_this$context$tooltip","DefalutPreviewText","useEffect","href","target","rel","PreviewText","_config$previewCompon","_config$previewCompon2","DefalutPreviewEditor","dangerouslySetInnerHTML","__html","PreviewEditor","_config$previewCompon3","_config$previewCompon4","DefalutPreviewDuration","_value$split","_value$split2","hour","minute","second","PreviewDuration","_config$previewCompon5","_config$previewCompon6","DefalutPreviewSwitch","checked","PreviewSwitch","_config$previewCompon7","_config$previewCompon8","DefalutPreviewList","_ref6","_ref7","_ref8","PreviewList","_config$previewCompon9","_config$previewCompon10","DefalutPreviewFile","_ref9","fileList","_ref10","contentType","endsWith","_jsxs","Space","paddingBottom","startsWith","Image","width","src","alt","controls","alignItems","height","paddingLeft","PreviewFile","_config$previewCompon11","_config$previewCompon12","DefalutPreviewImage","_ref11","_Fragment","_ref12","PreviewImage","_config$previewCompon13","_config$previewCompon14","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","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","call","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","fileTypes","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","RateButton","_this$props$allowHalf","allowHalf","_this$props$count","characters","Rate","character","_ref$index","StarFilled","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]}
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/Rate/index.tsx","../src/components/Audio/index.tsx","../src/components/Video/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 previewUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n previewUrl: \"/file/preview\",\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 mimeType: {[name: string]: string} = {}\r\n\r\n readonly components?: any\r\n readonly previewComponents?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, form, chunk, mimeType, components, previewComponents } = 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.mimeType = mimeType;\r\n this.components = components;\r\n this.previewComponents = previewComponents;\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)?.tokens;\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 fileds = this.getFieldsValue();\r\n const { defaultHide = false, children, preview } = 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 fields = this.getFieldsValue();\r\n return collection(fields, 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 tooltip = this.context.tooltip ?? true;\r\n if (show && tooltip) {\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\nconst DefalutPreviewText = ({ 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\nexport const PreviewText = (props: any) => (\r\n (config.previewComponents?.PreviewText ?? DefalutPreviewText)(props)\r\n)\r\n\r\n/** 富文本预览 */\r\nconst DefalutPreviewEditor = ({ value, type, style, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n return <div dangerouslySetInnerHTML={{ __html: value }}></div>\r\n}\r\nexport const PreviewEditor = (props: any) => (\r\n (config.previewComponents?.PreviewEditor ?? DefalutPreviewEditor)(props)\r\n)\r\n\r\n/** 时长预览 */\r\nconst DefalutPreviewDuration = ({ value, format, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(value);\r\n }, []);\r\n\r\n const times = format.trim().split(/\\[.*?\\]|[HMS]/);\r\n const pattern: string[] = format.trim().split(new RegExp(`[${times.join(\"\")}]`)).filter((v: any) => v);\r\n\r\n let index = -1;\r\n const values = value?.split(\":\");\r\n const result: string[] = [];\r\n times.forEach((v: string, i: number) => {\r\n if (v) result.push(v);\r\n if (i <= pattern.length - 1)\r\n result.push(pattern[i]);\r\n });\r\n return <div style={style}>{\r\n result.map((item) => {\r\n if (item.includes(\"H\")) {\r\n index++\r\n return value ? values[index] : \"000\";\r\n } else if (item.includes(\"M\") || item.includes(\"S\")) {\r\n index++\r\n return value ? values[index] : \"00\";\r\n } else {\r\n return item;\r\n }\r\n }).join(\"\")\r\n }</div>;\r\n}\r\nexport const PreviewDuration = (props: any) => (\r\n (config.previewComponents?.PreviewDuration ?? DefalutPreviewDuration)(props)\r\n)\r\n\r\n/** 切换预览 */\r\nconst DefalutPreviewSwitch = ({ checked, style, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div style={style}>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\nexport const PreviewSwitch = (props: any) => (\r\n (config.previewComponents?.PreviewSwitch ?? DefalutPreviewSwitch)(props)\r\n)\r\n\r\n/** 列表预览 */\r\nconst DefalutPreviewList = ({ 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\nexport const PreviewList = (props: any) => (\r\n (config.previewComponents?.PreviewList ?? DefalutPreviewList)(props)\r\n)\r\n\r\n/** 文件预览 */\r\nconst DefalutPreviewFile = ({ fileList }: { fileList: any[] }) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n const previewUrl = config.request.prefix + config.file.previewUrl;\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 <div>\r\n <Image width={200} src={url} alt={name} />\r\n <div>{name}</div>\r\n </div>\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 <div>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <div>{name}</div>\r\n </div>\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 <div>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <div>{name}</div>\r\n </div>\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={previewUrl + \"/\" + id} 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\nexport const PreviewFile = (props: any) => (\r\n (config.previewComponents?.PreviewFile ?? DefalutPreviewFile)(props)\r\n)\r\n\r\n/** 音频预览 */\r\nconst DefalutPreviewAudio = ({ fileList, autoplay, muted, loop, preload }: { fileList: any[], autoplay: boolean, muted: boolean, loop: boolean, preload: \"auto\" | \"metadata\" | \"none\" }) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n return <>\r\n {fileList?.map(({ id, name, url }: any) => {\r\n const uri = downloadUrl + \"/\" + id;\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <div>\r\n <audio\r\n src={url}\r\n controls={true}\r\n autoPlay={autoplay}\r\n muted={muted}\r\n loop={loop}\r\n preload={preload}\r\n style={{ width: 'calc(100% - 40px)', height: 30 }}\r\n >当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <div>{name}</div>\r\n </div>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n })}\r\n </>\r\n}\r\nexport const PreviewAudio = (props: any) => (\r\n (config.previewComponents?.PreviewAudio ?? DefalutPreviewAudio)(props)\r\n)\r\n\r\n/** 视频预览 */\r\nconst DefalutPreviewVideo = ({ fileList, controls, autoplay, muted, pip, loop, preload }: { fileList: any[], controls: boolean, autoplay: boolean, muted: boolean, pip: boolean, loop: boolean, preload: \"auto\" | \"metadata\" | \"none\" }) => {\r\n const downloadUrl = config.request.prefix + config.file.downloadUrl;\r\n return <>\r\n {fileList?.map(({ id, name, url }: any) => {\r\n const uri = downloadUrl + \"/\" + id;\r\n return <div key={id}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <div>\r\n <video\r\n src={url}\r\n controls={controls}\r\n autoPlay={autoplay}\r\n muted={muted}\r\n loop={loop}\r\n preload={preload}\r\n style={{ width: 260 }}\r\n >当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <div>{name}</div>\r\n </div>\r\n <a href={uri} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n })}\r\n </>\r\n}\r\nexport const PreviewVideo = (props: any) => (\r\n (config.previewComponents?.PreviewVideo ?? DefalutPreviewVideo)(props)\r\n)\r\n\r\n/** 图片预览 */\r\nconst DefalutPreviewImage = ({ 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 </>\r\nexport const PreviewImage = (props: any) => (\r\n (config.previewComponents?.PreviewImage ?? DefalutPreviewImage)(props)\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 { PreviewEditor } 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) ? <PreviewEditor 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, format=\"H小时M分S秒\", 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 format={format} style={styles} /> : <DurationWidget format={format} 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.WidgetDurationProps> {\r\n\r\n duration: number[] = [0, 0, 0];\r\n pattern: string[] = [\"H\", \"M\", \"S\"];\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) => (this.pattern[index].includes(\"H\") ? 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, format, readonly, style } = this.props;\r\n const times = format.trim().split(/\\[.*?\\]|[HMS]/);\r\n this.pattern = format.trim().split(new RegExp(`[${times.join(\"\")}]`)).filter(v => v);\r\n\r\n this.duration = this.pattern.map(() => 0);\r\n if (typeof value === \"string\") {\r\n this.duration = value.split(\":\").map(Number);\r\n }\r\n\r\n let index = -1;\r\n const result: string[] = [];\r\n times.forEach((v, i) => {\r\n if (v) result.push(v);\r\n if (i <= this.pattern.length - 1) \r\n result.push(this.pattern[i]);\r\n });\r\n\r\n return (\r\n <div className=\"duration\">\r\n {\r\n result.map((item, i) => {\r\n if (item.includes(\"H\")) {\r\n index ++;\r\n return <Form.Item key={i}>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={999} precision={0} value={this.duration[index]}\r\n formatter={(value: any) => value! < 100 ? (value! < 10 ? '00'+ value : '0'+ value) : value!.toString()}\r\n onChange={this.changeValue(index)} controls={false} disabled={/\\[|\\]/.test(item) ? true : readonly}\r\n />\r\n </Form.Item>\r\n } else if (item.includes(\"M\") || item.includes(\"S\")) {\r\n index ++;\r\n return <Form.Item key={i}>\r\n <InputNumber style={{width: '100%', ...style}} min={0} max={59} precision={0} value={this.duration[index]}\r\n formatter={(value: any) => value! < 10 ? '0'+ value : value!.toString()}\r\n onChange={this.changeValue(index)} controls={false} disabled={/\\[|\\]/.test(item) ? true : readonly}\r\n />\r\n </Form.Item>\r\n } else {\r\n return <span key={i}>{item}</span>\r\n }\r\n })\r\n }\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.Timeout;\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 const fileTypes = fileTypeArray?.map((type: string) => (type.startsWith(\".\") ? config.mimeType[type]: type));\r\n if (fileTypes && fileTypes.length > 0) {\r\n const isFileType = fileTypes.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, Rate } from 'antd';\r\nimport { StarFilled } from '@ant-design/icons';\r\nimport { UIListComponent } from '@/service';\r\n\r\nexport default class RateButton extends UIListComponent<Design.Rate.Props> {\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: number) => value === 0 ? Promise.reject() : Promise.resolve();\r\n return { ...rule, validator };\r\n }\r\n return { ...rule };\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\r\n const { code, preview, allowHalf = false, count = 5, items, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { styles, itemStyles } = this.getStyles();\r\n const characters = items?.split(\",\") ?? [];\r\n\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 <Rate allowHalf={allowHalf} count={count} character={({ index = 0 }) => characters.length > 0 ? characters[index] : <StarFilled/>} disabled={preview || 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, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewAudio } 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 = [\"audio/mpeg\", \"audio/wav\"];\r\n\r\nexport default class UplaodList extends UIListComponent<Design.Video.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, readonly, hidden } = this.props;\r\n const { autoplay=false, muted=false, loop=false, preload=\"auto\" } = 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 <AudioWidget \r\n code={code} \r\n maxCount={maxCount} \r\n fileSize={fileSize} \r\n readonly={readonly} \r\n preview={preview} \r\n autoplay={autoplay} \r\n muted={muted} \r\n loop={loop}\r\n preload={preload}\r\n 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\nclass AudioWidget extends WidgetComponent<Design.Video.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timeout;\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 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.fileSize;\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 { code, preview, maxCount: count, readonly, style, autoplay, muted, loop, preload } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewAudio code={code} fileList={fileList} autoplay={autoplay} muted={muted} loop={loop} preload={preload} />\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 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 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 {!readonly && (Number(maxCount) > fileList.length) && <Button type=\"link\" icon={<PlusOutlined />} style={style}/>}\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, Progress, message } from 'antd';\r\nimport { PlusOutlined } from '@ant-design/icons';\r\nimport request from '@/utils/request';\r\nimport bytes from 'bytes';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewVideo } 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 = [\"video/mp4\"];\r\n\r\nexport default class UplaodList extends UIListComponent<Design.Video.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, readonly, hidden } = this.props;\r\n const { controls=true, autoplay=false, muted=false, pip=false, loop=false, preload=\"auto\" } = 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 <VideoWidget \r\n code={code} \r\n maxCount={maxCount} \r\n fileSize={fileSize} \r\n readonly={readonly} \r\n preview={preview} \r\n controls={controls} \r\n autoplay={autoplay} \r\n muted={muted} \r\n pip={pip} \r\n loop={loop}\r\n preload={preload}\r\n 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\nclass VideoWidget extends WidgetComponent<Design.Video.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timeout;\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 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.fileSize;\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 { code, preview, maxCount: count, readonly, style, controls, autoplay, muted, pip, loop, preload } = this.props;\r\n const maxCount = count ? Number(count) : 0;\r\n if (preview) {\r\n return <PreviewVideo code={code} fileList={fileList} controls={controls} autoplay={autoplay} muted={muted} pip={pip} loop={loop} preload={preload} />\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 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 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 {!readonly && (Number(maxCount) > fileList.length) && <Button type=\"link\" icon={<PlusOutlined />} style={style}/>}\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, 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) => {\r\n let value = text;\r\n if (column.text) {\r\n value = column.text;\r\n } else if (Object.keys(item.data).length !== 0) {\r\n value = item.data[text]\r\n }\r\n if (column.type === \"url\") {\r\n return <a href={text} target=\"_blank\" rel=\"noreferrer\">{value}</a>;\r\n }\r\n return value;\r\n }\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 style={{ 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 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 } = 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 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 { preview, hidden, readonly, } = this.props;\r\n // 设置预览状态\r\n attributes.preview = preview ?? false;\r\n\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} {...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","_createClass","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","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","previewUrl","extraData","file","fileType","labelStyle","color","documentUrl","chunkSize","Math","pow","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","form","chunk","mimeType","components","previewComponents","_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","_parse","domain","urlMatch","match","_slicedToArray","slice","parse","tokens","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","_this","_len","_args","_key","concat","borderBottom","remote","args","context","abrupt","isArray","list","map","_Object$entries","_Object$entries$","entries","_Object$entries$2","label","reject","undefined","_inherits","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","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","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","Label","Tooltip","_this$context$tooltip","DefalutPreviewText","useEffect","href","target","rel","PreviewText","_config$previewCompon","_config$previewCompon2","DefalutPreviewEditor","dangerouslySetInnerHTML","__html","PreviewEditor","_config$previewCompon3","_config$previewCompon4","DefalutPreviewDuration","format","times","v","index","values","i","PreviewDuration","_config$previewCompon5","_config$previewCompon6","DefalutPreviewSwitch","checked","PreviewSwitch","_config$previewCompon7","_config$previewCompon8","DefalutPreviewList","_ref6","_ref7","_ref8","PreviewList","_config$previewCompon9","_config$previewCompon10","DefalutPreviewFile","_ref9","fileList","_ref10","contentType","endsWith","_jsxs","Space","paddingBottom","startsWith","Image","width","src","alt","controls","alignItems","height","paddingLeft","PreviewFile","_config$previewCompon11","_config$previewCompon12","DefalutPreviewAudio","_ref11","autoplay","muted","loop","preload","_Fragment","_ref12","autoPlay","PreviewAudio","_config$previewCompon13","_config$previewCompon14","DefalutPreviewVideo","_ref13","pip","_ref14","PreviewVideo","_config$previewCompon15","_config$previewCompon16","DefalutPreviewImage","_ref15","_ref16","PreviewImage","_config$previewCompon17","_config$previewCompon18","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","_callSuper","colon","EditorWidget","_React$Component","createRef","isReactWEditor","ReactWEditor","onBlur","onFocus","SelectList","optionList","setState","multiple","_this$props2$allowCle","plusRules","collectionList","getList","state","currentValue","SelectWidget","Option","Select","_this4","_len2","_key2","_this4$props$onChange","_this4$props","call","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","_this$props$format","DurationWidget","changeValue","_this$props$onChange","duration","durations","className","toString","dayjs","weekday","localeData","Datepicker","_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","fileTypes","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","RateButton","_this$props$allowHalf","allowHalf","_this$props$count","characters","Rate","character","_ref$index","StarFilled","_this$props2$autoplay","_this$props2$muted","_this$props2$loop","_this$props2$preload","AudioWidget","_this$props2$controls","_this$props2$pip","VideoWidget","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","_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]}