antd-form-document 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -203
- package/dist/components/Upload/index.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/entity/{Meta.d.ts → XML.d.ts} +3 -3
- package/dist/entity/XML.d.ts.map +1 -0
- package/dist/form/index.d.ts +6 -6
- package/dist/form/index.d.ts.map +1 -1
- package/dist/index.tsx +1 -1
- package/dist/index.tsx.map +1 -1
- package/dist/service/UIComponent.d.ts +1 -1
- package/dist/service/UIComponent.d.ts.map +1 -1
- package/dist/service/UIListComponent.d.ts +1 -1
- package/dist/service/UIListComponent.d.ts.map +1 -1
- package/dist/utils/doc.d.ts +7 -0
- package/dist/utils/doc.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/entity/Meta.d.ts.map +0 -1
- package/dist/utils/xml.d.ts +0 -7
- package/dist/utils/xml.d.ts.map +0 -1
package/dist/index.tsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.tsx","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../src/entity/Meta.ts","../src/utils/xml.ts","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../src/applets/index.ts","../src/context.ts","../src/service/UIComponent.tsx","../src/service/ProComponent.tsx","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../src/config.ts","../src/utils/request.ts","../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","../src/components/Duration/index.tsx","../src/components/DatePicker/index.tsx","../src/components/TimePicker/index.tsx","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../src/components/Upload/index.tsx","../node_modules/spark-md5/spark-md5.js","../src/components/SuperUpload/ChunkUpload.ts","../src/components/SuperUpload/index.tsx","../src/components/Table/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":["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","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { parseInt, uniqueId } from \"lodash\";\r\n\r\nexport default class Meta {\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?: Meta[];\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 Meta(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 Meta from \"@/entity/Meta\";\r\n\r\nexport default class XMLDocument {\r\n static parser(document: Document) {\r\n const element: Element = <Element>document.childNodes[0];\r\n return new Meta(element);\r\n }\r\n\r\n static toDocument(documentString: string): Document {\r\n return new DOMParser().parseFromString(documentString, \"text/xml\");\r\n }\r\n\r\n static getRoot(documentString: string): Meta {\r\n const doc: Document = XMLDocument.toDocument(documentString);\r\n return XMLDocument.parser(doc);\r\n }\r\n}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, min: Number(min), max: Number(max), message };\r\n }\r\n if (type === \"phone\") {\r\n return { type: 'regexp', pattern: new RegExp('^[1][3,5,7,8][0-9]\\\\d{8}$'), message };\r\n }\r\n if (type === 'regexp' && typeof pattern === 'string') {\r\n return { type, 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 => {\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 return false;\r\n } catch (e: any) {\r\n console.warn(e.message);\r\n return false;\r\n }\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 return [];\r\n }\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 return undefined;\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nexport const DesignContext = React.createContext<Design.Context>({});","import React from \"react\";\r\nimport { camelCase, every, some, find } from 'lodash';\r\nimport { collection, compute, condition, validate } from \"@/applets\";\r\nimport { DesignContext } from \"@/context\";\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 styleLabel = { style: { color: '#055ab5' } };\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 * @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 return <span {...this.styleLabel}>{this.props.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(): {} {\r\n const { style } = this.props;\r\n const styleList: string[] | undefined = style?.replace(/\\ +/g, \"\").split(\";\");\r\n const styles: {} = {};\r\n styleList?.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 return styles;\r\n }\r\n\r\n /**\r\n * 条件\r\n * \r\n * @param defaultHide \r\n * @param children \r\n * @returns \r\n */\r\n display(): boolean {\r\n const preview = this.context.preview ?? false;\r\n const fileds = this.getFieldsValue();\r\n const { defaultHide = false, children } = this.props;\r\n const show: boolean = !defaultHide;\r\n const conditions: Design.Modal.ConditionMeta | 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) {\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[] {\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 [];\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\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, title, hidden } = this.props;\r\n const { Component, defaultValue, ...props } = this.props;\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {<Component {...props} onChange={this.onChange}/>}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","class DesignConfig {\r\n readonly request: {\r\n prefix: string;\r\n headers: {};\r\n params: {};\r\n } = {\r\n prefix: \"api\",\r\n headers: {},\r\n params: {},\r\n }\r\n readonly file: {\r\n listUrl: string,\r\n downloadUrl: string,\r\n uploadUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n extraData: (file: Design.File.FileInfo, fileType: string) => {},\r\n }\r\n\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 } = {\r\n checkFile: \"/chunk/checkFile\",\r\n checkChunk: \"/chunk/checkChunk\",\r\n chunkUpload: \"/chunk/chunkUpload\",\r\n doMerge: \"/chunk/doMerge\",\r\n mergeProgress: \"/chunk/mergeProgress\",\r\n onComplete: \"/chunk/onComplete\",\r\n completeProgress: \"/chunk/completeProgress\"\r\n }\r\n\r\n readonly components?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, components } = conf;\r\n this.request = { ...this.request, ...request };\r\n this.file = { ...this.file, ...file };\r\n this.components = components;\r\n }\r\n }\r\n\r\n static init(conf?: Design.Config) {\r\n return new DesignConfig(conf);\r\n }\r\n}\r\n\r\nlet config: DesignConfig = DesignConfig.init();\r\nconst defineConfig = (conf: Design.Config) => {\r\n config = DesignConfig.init(conf)\r\n}\r\n\r\nexport { defineConfig, config }","import { cloneDeep } from 'lodash';\r\nimport { message } from 'antd';\r\nimport { extend } from 'umi-request';\r\nimport { parse, compile } from 'path-to-regexp';\r\nimport { config } from '@/config';\r\n\r\nconst umiRequest = extend({\r\n prefix: config.request.prefix,\r\n timeout: 10000,\r\n});\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 message.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 msg = '访问超时';\r\n if (data || response?.status !== 403) {\r\n message.error(data?.message ?? msg);\r\n }\r\n return Promise.resolve({\r\n success: false,\r\n message: msg,\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 { find } from \"lodash\";\r\nimport UIComponent from \"./UIComponent\";\r\nimport request from \"@/utils/request\";\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 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 && 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 }\r\n return Promise.reject(undefined);\r\n }).catch(error => {\r\n console.log(\"remote\", remote, error);\r\n return Promise.reject(error);\r\n });\r\n }\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[], reset: (plist: Design.ItemOption[]) => void) => {\r\n if (itemList.length > 0) {\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\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 styles = this.getStyles();\r\n const rules = this.rules();\r\n const { title, hidden } = this.props;\r\n return (\r\n <Form.Item\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n wrapperCol={{ span: 24 }}\r\n >\r\n <div>{title}</div>\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Tooltip extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n const { preview, } = this.props;\r\n if (show && !preview) {\r\n const { title, hidden, children } = this.props; \r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item style={styles} hidden={hidden} wrapperCol={{ span: 24 }}>\r\n <div>{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\nconst downloadUrl = config.file.downloadUrl;\r\n\r\nexport const PreviewText = ({ value, type, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n if (value && type === \"url\") {\r\n return <div><a href={value} target=\"_blank\" rel=\"noreferrer\">{value}</a></div>\r\n }\r\n return <div>{value}</div>\r\n}\r\n\r\nexport const PreviewDuration = ({ value, 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>{`${hour}小时${minute}分${second}秒`}</div>\r\n } else {\r\n return <div>000时00分00秒</div>\r\n }\r\n}\r\n\r\nexport const PreviewSwitch = ({ checked, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\n\r\nexport const PreviewList = ({ value, list, 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>{items?.join()}</div>\r\n } else {\r\n const item = list?.find(({ key }: any) => key === value);\r\n return <div>{item?.label}</div>\r\n }\r\n}\r\n\r\nexport const PreviewFile = ({ fileList }: any) => {\r\n return <>\r\n {fileList?.map(({ worksAnnexId, contentType, url, fileName, fileTitle }: any) => {\r\n if (contentType?.endsWith(\"pdf\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"image\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={200} src={url} alt={fileTitle} />\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"video\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"audio\")) {\r\n return <div key={worksAnnexId}>\r\n <div style={{ paddingBottom: 10, display: 'flex', alignItems: 'center' }}>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <a style={{ paddingLeft: 10 }} href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </div>\r\n </div>\r\n }\r\n if (fileName?.endsWith(\".doc\") || fileName?.endsWith(\".docx\") || fileName?.endsWith(\".xls\") || fileName?.endsWith(\".xlsx\") || fileName?.endsWith(\".ppt\") || fileName?.endsWith(\".pptx\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={'http://view.officeapps.live.com/op/view.aspx?src=' + url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\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 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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText type={type} /> : <Input maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class TextArea extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue(); \r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, placeholder, maxLength, allowClear, showCount, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText /> : <Input.TextArea maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, InputNumber as Numerial } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class InputNumber extends UIComponent<Design.NumberProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const { type = \"number\", precision } = this.props;\r\n let numberProps: {} = {};\r\n if (type === \"digits\") {\r\n if (precision) {\r\n numberProps = {\r\n precision: Number(precision),\r\n };\r\n } else {\r\n numberProps = {\r\n precision: 2,\r\n };\r\n }\r\n } else if (type === \"money\") {\r\n numberProps = {\r\n formatter: (value: string) =>\r\n `¥ ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"),\r\n parser: (value: string) => value!.replace(/\\$\\s?|(,*)/g, \"\"),\r\n };\r\n } else if (type === \"percentage\") {\r\n numberProps = {\r\n formatter: (value: string) => `${value}%`,\r\n parser: (value: string) => value!.replace(\"%\", \"\"),\r\n };\r\n }\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, min, max, readonly, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? (<PreviewText />) : (<Numerial min={min} max={max} disabled={readonly} {...numberProps} />)}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport ReactWEditor from 'wangeditor-for-react';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Editor extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, placeholder, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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 ? <PreviewText /> : <EditorWidget placeholder={placeholder} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass EditorWidget extends React.Component<Design.WidgetProps> {\r\n isReactWEditor = false\r\n editorRef: React.RefObject<any> = React.createRef();\r\n \r\n shouldComponentUpdate() {\r\n return !this.isReactWEditor\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, placeholder, onChange } = this.props;\r\n return (\r\n <ReactWEditor\r\n placeholder={placeholder} \r\n value={value}\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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} /> :\r\n <SelectWidget list={list} multiple={multiple} placeholder={placeholder} allowClear={allowClear} readonly={readonly} />\r\n }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nconst { Option } = Select;\r\nclass SelectWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n handleItemValue = (value: string) => {\r\n this.props.onChange?.(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { list, value, multiple, placeholder, allowClear, readonly } = 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 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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} /> : <CheckboxWidget list={list} readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nclass CheckboxWidget extends WidgetComponent<Design.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, readonly, onChange } = this.props;\r\n return (\r\n <Checkbox.Group\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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={list} /> : <RadioWidget list={this.state.list} optionType={optionType} readonly={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n } \r\n}\r\n\r\nclass RadioWidget extends WidgetComponent<Design.Radio.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, optionType, readonly, onChange } = this.props;\r\n return (\r\n <Radio.Group\r\n value={value}\r\n optionType={optionType}\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n style={styles}\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 /> : <Switch disabled={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewDuration /> : <DurationWidget readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DurationWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n duration: number[] = [0, 0, 0];\r\n \r\n changeValue = (index: number) => (changeValue: number | null) => {\r\n if (changeValue) {\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 } = 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%'}} 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%'}} 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%'}} 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 { Form, DatePicker } from 'antd';\r\nimport moment from 'moment';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewText /> : <DateWidget type={type} format={format} showTime={showTime} placeholder={placeholder} allowClear={allowClear} readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DateWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, type, format, showTime, placeholder, allowClear, readonly, onChange } = this.props;\r\n return (\r\n <DatePicker \r\n value={value ? moment(value) : undefined}\r\n picker={type}\r\n format={format}\r\n showTime={showTime}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n onChange={(value: any) => {\r\n onChange?.(value?.format(\"YYYY-MM-DD\"));\r\n }}\r\n />\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, TimePicker } from 'antd';\r\nimport moment from 'moment';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport { PreviewText } from '@/preview';\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText /> : <TimeWidget format={format} placeholder={placeholder} allowClear={allowClear} readonly={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TimeWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, format, placeholder, allowClear, readonly, onChange } = this.props;\r\n return (\r\n <TimePicker \r\n value={value ? moment(value, \"HH:mm:ss\") : undefined}\r\n format={format}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n onChange={(value: any) => {\r\n onChange?.(value?.format(\"HH:mm:ss\"))\r\n }} />\r\n )\r\n }\r\n}\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 { uploadUrl, listUrl } = config.file;\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n if (list && list.length > 0) {\r\n request(listUrl)({params: { 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.log(\"url\", listUrl, error);\r\n });\r\n }\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 onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onStart = (): void => {\r\n 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 let 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 this.timer = setInterval(() => {\r\n if (this.uploading) {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: ++percent\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 (percent === 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 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 clearInterval(this.timer);\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 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 clearInterval(this.timer);\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 } = 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={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={maxCount <= fileList.length} icon={<UploadOutlined />}>上传</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}","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import SparkMD5 from 'spark-md5';\r\nimport request from '@/utils/request';\r\nimport { config } from '@/config';\r\n\r\nconst filePrototype = File.prototype as any;\r\nconst fileBlobSlice = filePrototype.slice || filePrototype.mozSlice || filePrototype.webkitSlice;\r\nconst defaultBlockSize = 10 * 1024 ** 2;\r\n\r\n/**\r\n * 等待\r\n * \r\n * @param millisecond \r\n * @returns \r\n */\r\nconst wait = (millisecond: number) => {\r\n return new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(millisecond)\r\n }, millisecond)\r\n })\r\n}\r\n\r\n/**\r\n * 上传 Upload.js\r\n */\r\nclass ChunkUpload {\r\n spark = new SparkMD5.ArrayBuffer();\r\n percents: number[] = [0, 0, 0, 0, 0];\r\n progress?: (percent: number) => void;\r\n file?: Design.File.FileInfo;\r\n\r\n listeners: { [name: string]: (payload: any) => void } = {};\r\n \r\n threads;\r\n chunkSize;\r\n chunkRetry;\r\n\r\n uploading: boolean = false;\r\n uploadList: Design.File.FileChunk [] = [];\r\n uploadPosition: number = 0;\r\n\r\n constructor({ chunkSize = defaultBlockSize, threads = 5, chunkRetry = 3 }: Design.File.FileOption) {\r\n this.chunkSize = chunkSize;\r\n this.threads = threads;\r\n this.chunkRetry = chunkRetry;\r\n }\r\n\r\n /**\r\n * 事件绑定\r\n * \r\n * @param method \r\n * @param callback \r\n */\r\n on(method: string, callback: (payload: any) => void) {\r\n this.listeners[method] = callback;\r\n }\r\n\r\n /**\r\n * 事件解除\r\n * \r\n * @param method \r\n */\r\n off(method: string) {\r\n delete this.listeners[method];\r\n }\r\n\r\n /**\r\n * 事件触发\r\n * \r\n * @param method \r\n */\r\n trigger(method: string, payload: any = null) {\r\n const callback = this.listeners[method];\r\n if(typeof callback === 'function'){\r\n callback(payload);\r\n }\r\n }\r\n\r\n /**\r\n * Buffer md5 加密\r\n * \r\n * @param content \r\n * @returns \r\n */\r\n md5hex(content: ArrayBuffer): string {\r\n return new SparkMD5.ArrayBuffer().append(content).end()\r\n }\r\n\r\n /**\r\n * 获得文件md5 hex\r\n * \r\n * @param file \r\n * @returns \r\n */\r\n fileMd5(file: File) {\r\n const num = Math.floor(file.size / defaultBlockSize); \r\n const blob: Blob = fileBlobSlice.call(file, num * defaultBlockSize);\r\n return new Promise<string>((resolve, reject) => { \r\n const fileReader = new FileReader();\r\n fileReader.onerror = reject\r\n fileReader.onload = (e: ProgressEvent<FileReader>) => {\r\n const buffer = e.target?.result ?? new ArrayBuffer(0);\r\n resolve(this.md5hex(buffer as ArrayBuffer)); \r\n }\r\n fileReader.readAsArrayBuffer(blob);\r\n })\r\n\r\n }\r\n\r\n /**\r\n * 计算上传步骤进度\r\n * \r\n * @param percent \r\n * @param index \r\n * @param ratio \r\n */\r\n stepProgress(percent: number, index: number, ratio: number) {\r\n this.percents[index] = percent * ratio;\r\n const progress = this.percents.reduce((v1: number, v2: number) => v1 + v2);\r\n this.trigger(\"progress\", progress);\r\n }\r\n\r\n /**\r\n * 计算上传进度\r\n * \r\n * @param percent \r\n */\r\n setProgress(percent: number) {\r\n this.trigger(\"progress\", percent);\r\n }\r\n\r\n /**\r\n * 文件上传\r\n * \r\n * @param file\r\n */\r\n async start(file: Design.File.FileInfo) {\r\n this.file = file;\r\n const fileName = file.name;\r\n const fileSize = file.size;\r\n const fileMd5 = await this.fileMd5(file);\r\n file.md5 = fileMd5;\r\n const result = await request(\"post form \" + config.chunk.checkFile)({ fileName, fileMd5, fileSize }); \r\n if (result?.data?.exist) {\r\n this.onComplete(false);\r\n } else {\r\n this.stepProgress(100, 0, 0.02);\r\n this.beforeUpload();\r\n }\r\n }\r\n\r\n /**\r\n * 文件上传前\r\n * \r\n * @param file \r\n * @param fileName \r\n * @param fileMd5 \r\n */\r\n beforeUpload() {\r\n this.uploading = true;\r\n this.uploadPosition = 0;\r\n let chunkIndex = 0;\r\n const fileSize = this.file?.size ?? 0;\r\n const chunkCount = Math.ceil(fileSize / this.chunkSize);\r\n const fileReader = new FileReader()\r\n const readFile = () => {\r\n const start = chunkIndex * this.chunkSize,\r\n end = ((start + this.chunkSize) >= fileSize) ? fileSize : start + this.chunkSize; \r\n fileReader.readAsArrayBuffer(fileBlobSlice.call(this.file, start, end));\r\n }\r\n fileReader.onload = (e: ProgressEvent<FileReader>) => {\r\n chunkIndex ++;\r\n const buffer = e.target?.result ?? new ArrayBuffer(0);\r\n const chunkMd5 = this.md5hex(buffer as ArrayBuffer);\r\n const blob = new Blob([buffer]); \r\n this.uploadList.unshift({ chunkMd5, chunkIndex, blob });\r\n if (chunkIndex < chunkCount) {\r\n readFile();\r\n } else {\r\n this.uploading = false;\r\n }\r\n this.stepProgress(Math.round((chunkIndex / chunkCount) * 100), 1, 0.2);\r\n }\r\n readFile();\r\n this.startUpload(chunkCount);\r\n }\r\n\r\n /**\r\n * 分片上传\r\n * \r\n * @param fileName\r\n * @param fileMd5\r\n * @param chunkCount\r\n */\r\n async startUpload(chunkCount: number) { \r\n let index = 0;\r\n const timer = setInterval(() => {\r\n const size = this.uploadList.length;\r\n if (size === 0 && !this.uploading) {\r\n clearInterval(timer);\r\n } else {\r\n for (let i = 0; size - i > 0 && this.uploadPosition + i < this.threads; i ++, this.uploadPosition ++) {\r\n const chunk = this.uploadList.pop();\r\n if (chunk) {\r\n this.onUpload(chunk).then(()=> {\r\n index ++;\r\n this.stepProgress(Math.round((index / chunkCount) * 100), 2, 0.4);\r\n if (chunkCount === index) {\r\n this.doMerge();\r\n }\r\n });\r\n }\r\n } \r\n } \r\n }, 500);\r\n }\r\n\r\n /**\r\n * 开始上传\r\n * \r\n * @param fileName\r\n * @param fileMd5\r\n * @param chunk\r\n */\r\n async onUpload(chunk: Design.File.FileChunk) {\r\n const { chunkMd5, chunkIndex, blob } = chunk;\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n const result = await request(\"post form \" + config.chunk.checkChunk)({ fileName, fileMd5, chunkMd5, chunkIndex });\r\n if (result?.data?.exist === false) {\r\n for (let i = 0; i < this.chunkRetry; i ++) {\r\n const formData = new FormData();\r\n formData.append(\"chunkIndex\", String(chunkIndex));\r\n formData.append(\"fileName\", fileName);\r\n formData.append(\"fileMd5\", fileMd5);\r\n formData.append(\"file\", blob);\r\n await request(\"post form \" + config.chunk.chunkUpload)(formData);\r\n break;\r\n }\r\n }\r\n this.uploadPosition --;\r\n }\r\n\r\n /**\r\n * 合并\r\n * \r\n */\r\n async doMerge() {\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n await request(\"post form \" + config.chunk.doMerge)({fileName, fileMd5});\r\n this.mergeProgress();\r\n }\r\n\r\n /**\r\n * 合并进程\r\n */\r\n async mergeProgress() {\r\n const result = await request(config.chunk.mergeProgress)();\r\n const percent = result?.data?.percent;\r\n if (Number.isFinite(percent)) {\r\n this.stepProgress(percent, 3, 0.18);\r\n if (percent < 100) {\r\n await wait(1000);\r\n this.mergeProgress();\r\n } else {\r\n this.onComplete(true);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 上传完成\r\n * \r\n */\r\n async onComplete(step?: boolean) {\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n const result = await request(\"post form \" + config.chunk.onComplete)({fileName, fileMd5});\r\n if (this.file && result) {\r\n this.file.response = result;\r\n }\r\n this.completeProgress(step);\r\n }\r\n\r\n /**\r\n * 其他进程\r\n */\r\n async completeProgress(step?: boolean) {\r\n const result = await request(config.chunk.completeProgress)();\r\n const percent = result?.data?.percent;\r\n if (Number.isFinite(percent)) {\r\n if (step) {\r\n this.stepProgress(percent, 4, 0.2);\r\n } else {\r\n this.setProgress(percent);\r\n }\r\n if (percent < 100) {\r\n await wait(1000);\r\n this.completeProgress(step);\r\n } else {\r\n this.trigger(\"complete\", this.file);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ChunkUpload;","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport bytes from 'bytes';\r\nimport request from '@/utils/request';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\nimport ChunkUpload from './ChunkUpload';\r\n\r\nconst { uploadUrl, listUrl } = config.file;\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n if (list && list.length > 0) {\r\n request(listUrl)({params: { 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.log(\"url\", listUrl, 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 file = info.file;\r\n const upload = new ChunkUpload({ chunkSize: 1024 * 1024 * 10, threads: 5 });\r\n upload.start(file);\r\n upload.on(\"progress\", (percent: number) => {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: Math.round(percent)\r\n }\r\n });\r\n file.status = \"uploading\";\r\n });\r\n upload.on(\"complete\", (file: Design.File.FileInfo) => { \r\n const { id, url } = file.response.data;\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 }, () => {\r\n this.onChange(fileList);\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n })\r\n });\r\n });\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 } = 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={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={maxCount <= fileList.length} icon={<UploadOutlined />}>上传</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, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={styles}\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} title={title} columns={this.getColumns()} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TableWidget extends WidgetComponent<Design.Table.WidgetProps, Design.Table.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const { list, onChange } = this.props;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ worksId, worksExtraId, ...items }, index) => {\r\n return { id: worksExtraId, index: index + 1, ...items }\r\n });\r\n this.setState({ dataSource }, () => {\r\n onChange?.(dataSource);\r\n })\r\n }\r\n }\r\n\r\n getColumns() {\r\n const { title, preview, columns, onChange } = this.props;\r\n const { dataSource } = this.state;\r\n if (preview) {\r\n return columns;\r\n }\r\n return concat(columns, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >\r\n 修改\r\n </a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Table.Item[] = dataSource.filter(({ id, uid }) => !((id && record.id === id) || (uid && record.uid === uid)));\r\n this.setState({ dataSource: list }, () => {\r\n onChange?.(list);\r\n })\r\n },\r\n });\r\n }}\r\n >\r\n 删除\r\n </a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Table.Item) => {\r\n const { dataSource } = this.state;\r\n let list: Design.Table.Item[] = [];\r\n if (entity.id || entity.uid) {\r\n list = dataSource.map((item: Design.Table.Item) => {\r\n if (entity.id && item.id === entity.id) {\r\n return { ...item, ...entity }\r\n } else if (entity.uid && item.uid === entity.uid) {\r\n return { ...item, ...entity }\r\n }\r\n return item;\r\n });\r\n } else {\r\n entity.index = dataSource.length + 1;\r\n entity.uid = uniqueId();\r\n list = [...dataSource, entity];\r\n }\r\n\r\n this.setState({\r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list);\r\n })\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { title, preview } = 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\" 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 labelCol={{ span: 4 }}\r\n wrapperCol={{ span: 16 }}\r\n initialValues={entity}\r\n autoComplete=\"off\"\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 { Row } from 'antd';\r\nimport React from 'react';\r\n\r\nexport default ({ children, gutter }: any) => {\r\n return (\r\n <Row gutter={Number(gutter)} style={{ margin: 0 }}>\r\n {children}\r\n </Row>\r\n )\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\nconst { Step } = Steps;\r\n\r\nexport default ({ direction, stepIndex, onChangeSetp, children }: any) => {\r\n const items = useMemo(() => {\r\n const list: any[] = [];\r\n children?.map(({ id, attributes }: any) => {\r\n const { title, description } = attributes;\r\n list.push({ key: id, title, description });\r\n });\r\n return list;\r\n }, [children]);\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 { camelCase } from 'lodash';\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 styleList = style?.replace(/\\ +/g, '').split(';');\r\n const styles = style ?? { padding: 16, backgroundColor: \"white\" };\r\n styleList?.forEach((items: any) => {\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 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 return (\r\n <Divider dashed={dashed} orientation={orientation} style={{ color: \"#055ab5\", fontWeight: \"bold\" }}>{children}</Divider>\r\n )\r\n}","import React, { useState, useMemo, memo } from 'react';\r\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\r\nimport { Button } from 'antd';\r\nimport { camelCase } from 'lodash';\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\r\n const itemStyle = useMemo(() => {\r\n const styles = {};\r\n const styleList = style?.replace(/\\ +/g, '').split(';');\r\n styleList?.forEach((items: any) => {\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 return styles;\r\n }, [style]);\r\n\r\n if (collapse) {\r\n return (\r\n <>\r\n <div style={itemStyle}>\r\n <Button\r\n type='link'\r\n onClick={() => {\r\n onExpanded(!isExpanded);\r\n }}\r\n >{isExpanded ? off : on}{isExpanded ? <UpOutlined /> : <DownOutlined />} </Button>\r\n </div>\r\n <div style={isExpanded ? show : hide}>\r\n {children}\r\n </div>\r\n </>\r\n )\r\n }\r\n return <>{children}</>;\r\n});","import React, { PureComponent, ReactNode } from \"react\";\r\nimport { Form as BaseForm, FormInstance, Skeleton } from \"antd\";\r\nimport { find, mapValues, camelCase, isBoolean, isObject, isArray } from \"lodash\";\r\nimport XMLDocument from \"@/utils/xml\";\r\nimport Meta from \"@/entity/Meta\";\r\nimport { ProComponent } from \"@/service\";\r\nimport * as BaseComponents from \"@/components\"\r\nimport { Col, Collapse, Content, Divider, Row, Steps } from \"@/containers\";\r\nimport { DesignContext } from \"@/context\";\r\nimport { config } from \"@/config\";\r\n\r\nconst Components: {[name: string]: {}} = BaseComponents;\r\nconst Containers: {[name: string]: {}} = { Col, Collapse, Content, Divider, Row, Steps };\r\n\r\nexport default class FormDesign extends PureComponent<Design.HomeProps, Design.HomeState> {\r\n\r\n state = {\r\n stepIndex: 0\r\n };\r\n\r\n form: React.RefObject<FormInstance>;\r\n root: Meta;\r\n preview: boolean;\r\n layouts?: {};\r\n styles: {};\r\n showTitle: boolean;\r\n customComponents?: {[name:string]: {}};\r\n\r\n constructor(props: Design.HomeProps) {\r\n super(props);\r\n const { document, form, preview } = this.props;\r\n this.root = XMLDocument.getRoot(document);\r\n\r\n const { style: styleValue, labelCol, wrapperCol, showTitle } = this.root.attributes;\r\n this.showTitle = !!showTitle;\r\n this.styles = this.props.style ?? {};\r\n if (typeof styleValue === \"string\") {\r\n const styleList: string[] = styleValue?.replace(/\\ +/g, \"\").split(\";\");\r\n styleList?.forEach(style => {\r\n if (style) {\r\n const [key, value] = style.split(\":\");\r\n Object.assign(this.styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n if (labelCol && wrapperCol) {\r\n this.layouts = {\r\n labelCol: { span: labelCol },\r\n wrapperCol: { span: wrapperCol },\r\n };\r\n }\r\n this.form = form ?? React.createRef()\r\n this.preview = preview ?? false; \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 }\r\n\r\n onValuesChange = (changedValues: any) => {\r\n this.setState({\r\n values: changedValues\r\n })\r\n };\r\n\r\n onStepIndex = (stepIndex: number) => {\r\n this.setState({\r\n stepIndex\r\n })\r\n }\r\n\r\n setComponentStatus(attributes: { [name: string]: string | boolean }) {\r\n const { hidden, readonly } = this.props;\r\n // 控件是否隐藏\r\n if (isBoolean(hidden)) {\r\n attributes.hidden = hidden;\r\n } else if (isArray(hidden)) {\r\n attributes.hidden = hidden.includes(attributes.code as string);\r\n } else if (isObject(hidden)) {\r\n attributes.hidden = !!hidden[attributes.code as string];\r\n } else {\r\n attributes.hidden = attributes.hidden ?? false;\r\n }\r\n // 控件是否只读\r\n if (isBoolean(readonly)) {\r\n attributes.readonly = readonly;\r\n } else if (isArray(readonly)) {\r\n attributes.readonly = readonly.includes(attributes.code as string);\r\n } else if (isObject(readonly)) {\r\n attributes.readonly = !!readonly[attributes.code as string];\r\n } else {\r\n attributes.readonly = attributes.readonly ?? false;\r\n }\r\n }\r\n\r\n component(meta: Meta, Component: any) {\r\n const { id, attributes, children } = meta;\r\n this.setComponentStatus(attributes);\r\n return <Component key={id} preview={this.preview} {...attributes}>{children?.map(this.children)}</Component>\r\n }\r\n\r\n container({ id, tag, attributes, text, children }: Meta) {\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 applet({ tag, attributes, cdata, children }: Meta) {\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 children = (meta: Meta) => {\r\n const Component = this.customComponents?.[meta.tag] ?? Components[meta.tag];\r\n if (Component) {\r\n return this.component(meta, Component);\r\n }\r\n const Container = Containers[meta.tag];\r\n if (Container) {\r\n return this.container(meta);\r\n }\r\n return this.applet(meta);\r\n }\r\n\r\n render(): ReactNode {\r\n if (this.root.children) {\r\n const { initialValues } = this.props; \r\n return (\r\n <DesignContext.Provider value={{ ...this.props, form: this.form, showTitle: this.showTitle}}>\r\n <Form\r\n form={this.form}\r\n style={this.styles}\r\n initialValues={initialValues}\r\n onValuesChange={this.onValuesChange}\r\n {...this.layouts}\r\n >\r\n {this.root.children.map(this.children)}\r\n </Form>\r\n </DesignContext.Provider>\r\n );\r\n }\r\n return <Skeleton active />;\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":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","exports","arr","Array","isArray","module","__esModule","i","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","Object","done","push","value","length","err","len","arr2","arrayLikeToArray","require$$0","o","minLen","n","prototype","toString","slice","constructor","name","from","test","TypeError","arrayWithHoles","iterableToArrayLimit","require$$1","unsupportedIterableToArray","require$$2","nonIterableRest","require$$3","instance","Constructor","_typeof","obj","input","hint","prim","toPrimitive","undefined","res","String","Number","arg","key","toPropertyKey","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","self","ReferenceError","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","subClass","superClass","create","assertThisInitialized","_getPrototypeOf","getPrototypeOf","Meta","element","_classCallCheck","this","_defineProperty","id","uniqueId","_step","attributes","_iterator","s","item","trim","isBoolean","toBoolean","e","f","children","_step2","childNodes","_iterator2","_this$children","_node$nodeValue","node","Element","nodeType","textContent","text","cdata","nodeValue","replace","tag","nodeName","_createClass","parseInt","XMLDocument","documentString","DOMParser","parseFromString","doc","toDocument","parser","source","excluded","sourceKeys","keys","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","validate","_ref","_ref$type","required","minlength","maxlength","min","max","pattern","message","RegExp","DesignContext","React","createContext","UIComponent","_React$PureComponent","_inherits","_super","_createSuper","_this","_len","arguments","args","_key","apply","concat","_assertThisInitialized","color","borderBottom","defaultValue","form","context","_form$current","_form$current2","code","current","getFieldValue","setFieldValue","_form$current3","_this2","setTimeout","_form$current4","_form$current5","getFieldsValue","showTitle","_jsx","_objectSpread","styleLabel","title","itemProps","_itemLayouts$wrapperC","_this$props","preview","labelCol","wrapperCol","tips","itemLayouts","span","assign","styleWrapper","tooltip","styleList","split","styles","forEach","items","_items$split","_items$split2","_slicedToArray","camelCase","_this$context$preview","fileds","_this$props2","_this$props2$defaultH","defaultHide","show","conditions","find","_conditions$children","action","list","map","fields","_ref2","join","Function","actuator","console","warn","condition","result","every","some","_this$props3","_validates$children$m","_validates$children","validates","_collection","content","_ref3","collection","_this3","computeValue","_ref4","moment","compute","_this$props$defaultVa","setDefaultValue","PureComponent","contextType","ProComponent","_UIComponent","forceUpdate","initValue","display","onComputeValue","rules","_this$getItem","getItem","hidden","Component","_objectWithoutProperties","_excluded","_Form","Item","label","getLabel","onChange","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","Promise","then","fn","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","val","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","DesignConfig","conf","prefix","headers","params","listUrl","downloadUrl","uploadUrl","extraData","file","fileType","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","components","config","init","defineConfig","umiRequest","extend","timeout","targetUrl","options","cloneData","cloneDeep","data","url","domain","urlMatch","match","parse","compile","_message","toLocaleUpperCase","requestType","status","rest","success","_data$message","response","msg","request$1","uri","uriArray","_uriArray","_uriArray2","UIListComponent","_args","_asyncToGenerator","_callee","remote","_context","_Object$entries","entries","_Object$entries$2","_Object$entries$","log","_x2","itemList","plist","filter","includes","rule","validator","_","WidgetComponent","_PureComponent","Label","getStyles","Tooltip","PreviewText","useEffect","href","rel","PreviewDuration","_value$split2","_value$split","hour","minute","second","PreviewSwitch","checked","PreviewList","_ref5","_ref6","_ref7","PreviewFile","_ref8","fileList","_ref9","worksAnnexId","contentType","fileName","fileTitle","endsWith","_jsxs","_Space","paddingBottom","startsWith","width","src","alt","controls","alignItems","height","paddingLeft","Text","placeholder","maxLength","allowClear","showCount","readonly","_Input","disabled","TextArea","InputNumber","_this$props$type","precision","numberProps","formatter","_InputNumber","Editor","colon","EditorWidget","_React$Component","_super2","createRef","isReactWEditor","ReactWEditor","onBlur","onFocus","SelectList","_UIListComponent","optionList","setState","multiple","_this$props2$allowCle","plusRules","collectionList","getList","currentValue","cleanFieldValue","SelectWidget","Option","_WidgetComponent","_this4","_len2","_key2","_this4$props$onChange","_this4$props","_Select","showSearch","mode","handleItemValue","filterOption","inputValue","option","toLowerCase","CheckBox","CheckboxWidget","_Checkbox","Group","RadioButton","optionType","RadioWidget","_Radio","SwitchButton","valuePropName","_Switch","Duration","DurationWidget","index","changeValue","_this$props$onChange","duration","durations","format","className","Datepicker","_this$props$format","_this$props$showTime","showTime","_this$props$allowClea","DateWidget","_DatePicker","picker","Timepicker","TimeWidget","arrayWithoutHoles","iterableToArray","nonIterableSpread","normFile","UplaodList","maxCount","fileTypeMessage","fileSize","getValueFromEvent","UploadWidget","modal","open","progress","fileTypeArray","_Upload","LIST_IGNORE","bytes","size","uploading","step","percent","Math","round","timer","setInterval","clearInterval","_response$message","ids","_this$state","_this$props4","count","onStart","onSuccess","onProgress","onError","_Fragment","beforeUpload","onBeforeUpload","onRemove","_Button","icon","UploadOutlined","_Modal","closable","footer","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","byteLength","set","buffer","hexToBinaryString","substr","SparkMD5","clamp","to","num","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","destroy","hashBinary","factory","filePrototype","File","fileBlobSlice","mozSlice","webkitSlice","defaultBlockSize","pow","wait","millisecond","ChunkUpload","_ref$chunkSize","chunkSize","_ref$threads","threads","_ref$chunkRetry","chunkRetry","_completeProgress","_onComplete","_mergeProgress","_doMerge","_onUpload","_startUpload","_start","callback","listeners","payload","floor","blob","fileReader","FileReader","onerror","onload","_e$target$result","_e$target","md5hex","readAsArrayBuffer","ratio","percents","reduce","v1","v2","trigger","_result$data","fileMd5","md5","chunk","exist","stepProgress","_this$file$size","_this$file","uploadPosition","chunkIndex","chunkCount","ceil","readFile","start","_e$target$result2","_e$target2","chunkMd5","Blob","uploadList","unshift","startUpload","_context2","onUpload","_callee2","_this$file$name","_this$file2","_this$file$md","_this$file3","_result$data2","formData","_context3","FormData","_callee3","_x3","_callee4","_this$file$name2","_this$file4","_this$file$md2","_this$file5","_context4","_callee5","_result$data3","_context5","isFinite","_this$file$name3","_this$file6","_this$file$md3","_this$file7","_context6","_callee6","_x4","_result$data4","_context7","setProgress","_callee7","_x5","upload","on","_file$response$data","customRequest","TableList","_columnList$children","columnList","column","_column$rules","TableWidget","columns","getColumns","dataSource","entity","uid","worksId","worksExtraId","dataIndex","valueType","render","onClick","confirm","QuestionCircleOutlined","okText","cancelText","onOk","_this$props5","_Card","bodyStyle","padding","extra","_Table","rowKey","ModalForm","onFinish","onCancel","_onOk","_Form$useForm","useForm","destroyOnClose","validateFields","initialValues","autoComplete","_Row","_Col","Row","gutter","margin","Col","Step","Steps","direction","stepIndex","onChangeSetp","useMemo","description","_Steps","backgroundColor","Content","Content$1","memo","currentStepIndex","itemStyle","Divider","_ref$dashed","dashed","_ref$orientation","orientation","_Divider","fontWeight","hide","Collapse","_ref$defaultExpanded","defaultExpanded","off","collapse","useState","_useState2","_useState","isExpanded","onExpanded","UpOutlined","DownOutlined","Components","BaseComponents","Containers","FormDesign","_this$props$style","changedValues","meta","_this$customComponent","_this$customComponent2","customComponents","component","container","applet","root","getRoot","_this$root$attributes","styleValue","_style$split","_style$split2","layouts","mapValues","isObject","_attributes$hidden","_attributes$readonly","setComponentStatus","onStepIndex","child","_rules$children","Provider","Form","onValuesChange","_Skeleton","active"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.tsx","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../src/entity/XML.ts","../src/utils/doc.ts","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../src/applets/index.ts","../src/context.ts","../src/service/UIComponent.tsx","../src/service/ProComponent.tsx","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../src/config.ts","../src/utils/request.ts","../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","../src/components/Duration/index.tsx","../src/components/DatePicker/index.tsx","../src/components/TimePicker/index.tsx","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../src/components/Upload/index.tsx","../node_modules/spark-md5/spark-md5.js","../src/components/SuperUpload/ChunkUpload.ts","../src/components/SuperUpload/index.tsx","../src/components/Table/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":["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","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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\nexport default class XMLDocument {\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 static toDocument(documentString: string): Document {\r\n return new DOMParser().parseFromString(documentString, \"text/xml\");\r\n }\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}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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, min: Number(min), max: Number(max), message };\r\n }\r\n if (type === \"phone\") {\r\n return { type: 'regexp', pattern: new RegExp('^[1][3,5,7,8][0-9]\\\\d{8}$'), message };\r\n }\r\n if (type === 'regexp' && typeof pattern === 'string') {\r\n return { type, 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 => {\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 return false;\r\n } catch (e: any) {\r\n console.warn(e.message);\r\n return false;\r\n }\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 return [];\r\n }\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 return undefined;\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nexport const DesignContext = React.createContext<Design.Context>({});","import React from \"react\";\r\nimport { camelCase, every, some, find } from 'lodash';\r\nimport { collection, compute, condition, validate } from \"@/applets\";\r\nimport { DesignContext } from \"@/context\";\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 styleLabel = { style: { color: '#055ab5' } };\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 * @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 return <span {...this.styleLabel}>{this.props.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(): {} {\r\n const { style } = this.props;\r\n const styleList: string[] | undefined = style?.replace(/\\ +/g, \"\").split(\";\");\r\n const styles: {} = {};\r\n styleList?.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 return styles;\r\n }\r\n\r\n /**\r\n * 条件\r\n * \r\n * @param defaultHide \r\n * @param children \r\n * @returns \r\n */\r\n display(): boolean {\r\n const preview = this.context.preview ?? false;\r\n const fileds = this.getFieldsValue();\r\n const { defaultHide = false, children } = this.props;\r\n const show: boolean = !defaultHide;\r\n const conditions: Design.Modal.ConditionXML | undefined = find(children, { tag: \"Conditions\" });\r\n if (conditions) {\r\n const { type, action } = conditions;\r\n const list = conditions.children?.map(condition(fileds, preview));\r\n if (list?.length > 0) {\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\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, title, hidden } = this.props;\r\n const { Component, defaultValue, ...props } = this.props;\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {<Component {...props} onChange={this.onChange}/>}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","class DesignConfig {\r\n readonly request: {\r\n prefix: string;\r\n headers: {};\r\n params: {};\r\n } = {\r\n prefix: \"api\",\r\n headers: {},\r\n params: {},\r\n }\r\n readonly file: {\r\n listUrl: string,\r\n downloadUrl: string,\r\n uploadUrl: string,\r\n extraData?: {}\r\n } = {\r\n listUrl: \"/file/list\",\r\n downloadUrl: \"/file/download\",\r\n uploadUrl: \"/file/upload\",\r\n extraData: (file: Design.File.FileInfo, fileType: string) => {},\r\n }\r\n\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 } = {\r\n checkFile: \"/chunk/checkFile\",\r\n checkChunk: \"/chunk/checkChunk\",\r\n chunkUpload: \"/chunk/chunkUpload\",\r\n doMerge: \"/chunk/doMerge\",\r\n mergeProgress: \"/chunk/mergeProgress\",\r\n onComplete: \"/chunk/onComplete\",\r\n completeProgress: \"/chunk/completeProgress\"\r\n }\r\n\r\n readonly components?: any\r\n \r\n private constructor(conf?: Design.Config) {\r\n if (conf) {\r\n const { request, file, chunk, components } = conf;\r\n this.request = { ...this.request, ...request };\r\n this.file = { ...this.file, ...file };\r\n this.chunk = { ...this.chunk, ...chunk };\r\n this.components = components;\r\n }\r\n }\r\n\r\n static init(conf?: Design.Config) {\r\n return new DesignConfig(conf);\r\n }\r\n}\r\n\r\nlet config: DesignConfig = DesignConfig.init();\r\nconst defineConfig = (conf: Design.Config) => {\r\n config = DesignConfig.init(conf)\r\n}\r\n\r\nexport { defineConfig, config }","import { cloneDeep } from 'lodash';\r\nimport { message } from 'antd';\r\nimport { extend } from 'umi-request';\r\nimport { parse, compile } from 'path-to-regexp';\r\nimport { config } from '@/config';\r\n\r\nconst umiRequest = extend({\r\n prefix: config.request.prefix,\r\n timeout: 10000,\r\n});\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 message.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 msg = '访问超时';\r\n if (data || response?.status !== 403) {\r\n message.error(data?.message ?? msg);\r\n }\r\n return Promise.resolve({\r\n success: false,\r\n message: msg,\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 { find } from \"lodash\";\r\nimport UIComponent from \"./UIComponent\";\r\nimport request from \"@/utils/request\";\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 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 && 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 }\r\n return Promise.reject(undefined);\r\n }).catch(error => {\r\n console.log(\"remote\", remote, error);\r\n return Promise.reject(error);\r\n });\r\n }\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\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 styles = this.getStyles();\r\n const rules = this.rules();\r\n const { title, hidden } = this.props;\r\n return (\r\n <Form.Item\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n wrapperCol={{ span: 24 }}\r\n >\r\n <div>{title}</div>\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Tooltip extends UIComponent<Design.ComponentProps> {\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n const { preview, } = this.props;\r\n if (show && !preview) {\r\n const { title, hidden, children } = this.props; \r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item style={styles} hidden={hidden} wrapperCol={{ span: 24 }}>\r\n <div>{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\nconst downloadUrl = config.file.downloadUrl;\r\n\r\nexport const PreviewText = ({ value, type, onChange }: Design.PreviewProps) => {\r\n useEffect(() => {\r\n onChange?.(value);\r\n }, []);\r\n if (value && type === \"url\") {\r\n return <div><a href={value} target=\"_blank\" rel=\"noreferrer\">{value}</a></div>\r\n }\r\n return <div>{value}</div>\r\n}\r\n\r\nexport const PreviewDuration = ({ value, 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>{`${hour}小时${minute}分${second}秒`}</div>\r\n } else {\r\n return <div>000时00分00秒</div>\r\n }\r\n}\r\n\r\nexport const PreviewSwitch = ({ checked, onChange }: any) => {\r\n useEffect(() => {\r\n onChange(checked);\r\n }, []);\r\n return <div>{checked ? \"开启\" : \"关闭\"}</div>\r\n}\r\n\r\nexport const PreviewList = ({ value, list, 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>{items?.join()}</div>\r\n } else {\r\n const item = list?.find(({ key }: any) => key === value);\r\n return <div>{item?.label}</div>\r\n }\r\n}\r\n\r\nexport const PreviewFile = ({ fileList }: any) => {\r\n return <>\r\n {fileList?.map(({ worksAnnexId, contentType, url, fileName, fileTitle }: any) => {\r\n if (contentType?.endsWith(\"pdf\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"image\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <Image width={200} src={url} alt={fileTitle} />\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"video\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <video src={url} controls style={{ width: 260 }}>当前浏览器不支持视频播放,请使用最新版谷歌浏览器!</video>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n if (contentType?.startsWith(\"audio\")) {\r\n return <div key={worksAnnexId}>\r\n <div style={{ paddingBottom: 10, display: 'flex', alignItems: 'center' }}>\r\n <audio src={url} controls style={{ width: 'calc(100% - 40px)', height: 30 }}>当前浏览器不支持音频播放,请使用最新版谷歌浏览器!</audio>\r\n <a style={{ paddingLeft: 10 }} href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </div>\r\n </div>\r\n }\r\n if (fileName?.endsWith(\".doc\") || fileName?.endsWith(\".docx\") || fileName?.endsWith(\".xls\") || fileName?.endsWith(\".xlsx\") || fileName?.endsWith(\".ppt\") || fileName?.endsWith(\".pptx\")) {\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={'http://view.officeapps.live.com/op/view.aspx?src=' + url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\r\n }\r\n return <div key={worksAnnexId}>\r\n <Space style={{ paddingBottom: 10 }}>\r\n <a href={url} target=\"_blank\" rel=\"noreferrer\">{fileTitle}</a>\r\n <a href={`${downloadUrl}/${worksAnnexId}`} target=\"_blank\" rel=\"noreferrer\">下载</a>\r\n </Space>\r\n </div>\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 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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText type={type} /> : <Input maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, Input } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class TextArea extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue(); \r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { code, preview, placeholder, maxLength, allowClear, showCount, readonly, hidden } = this.props;\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText /> : <Input.TextArea maxLength={maxLength} placeholder={placeholder} allowClear={allowClear} showCount={showCount} disabled={readonly} />}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Form, InputNumber as Numerial } from \"antd\";\r\nimport { UIComponent } from '@/service';\r\nimport { PreviewText } from \"@/preview\";\r\n\r\nexport default class InputNumber extends UIComponent<Design.NumberProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n const { type = \"number\", precision } = this.props;\r\n let numberProps: {} = {};\r\n if (type === \"digits\") {\r\n if (precision) {\r\n numberProps = {\r\n precision: Number(precision),\r\n };\r\n } else {\r\n numberProps = {\r\n precision: 2,\r\n };\r\n }\r\n } else if (type === \"money\") {\r\n numberProps = {\r\n formatter: (value: string) =>\r\n `¥ ${value}`.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"),\r\n parser: (value: string) => value!.replace(/\\$\\s?|(,*)/g, \"\"),\r\n };\r\n } else if (type === \"percentage\") {\r\n numberProps = {\r\n formatter: (value: string) => `${value}%`,\r\n parser: (value: string) => value!.replace(\"%\", \"\"),\r\n };\r\n }\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, preview, min, max, readonly, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : (rules as [])}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? (<PreviewText />) : (<Numerial min={min} max={max} disabled={readonly} {...numberProps} />)}\r\n </Form.Item>\r\n );\r\n }\r\n return <></>;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { Form } from 'antd';\r\nimport ReactWEditor from 'wangeditor-for-react';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent } from '@/service';\r\n\r\nexport default class Editor extends UIComponent<Design.ComponentProps> {\r\n \r\n componentDidMount(): void {\r\n this.initValue();\r\n }\r\n\r\n render(): React.ReactNode {\r\n const show = this.display();\r\n if (show) {\r\n this.onComputeValue();\r\n const rules = this.rules();\r\n const { itemProps, itemLayouts } = this.getItem();\r\n const { code, title, preview, placeholder, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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 ? <PreviewText /> : <EditorWidget placeholder={placeholder} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass EditorWidget extends React.Component<Design.WidgetProps> {\r\n isReactWEditor = false\r\n editorRef: React.RefObject<any> = React.createRef();\r\n \r\n shouldComponentUpdate() {\r\n return !this.isReactWEditor\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { value, placeholder, onChange } = this.props;\r\n return (\r\n <ReactWEditor\r\n placeholder={placeholder} \r\n value={value}\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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} /> :\r\n <SelectWidget list={list} multiple={multiple} placeholder={placeholder} allowClear={allowClear} readonly={readonly} />\r\n }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nconst { Option } = Select;\r\nclass SelectWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n handleItemValue = (value: string) => {\r\n this.props.onChange?.(value);\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { list, value, multiple, placeholder, allowClear, readonly } = 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 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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} /> : <CheckboxWidget list={list} readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nclass CheckboxWidget extends WidgetComponent<Design.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, readonly, onChange } = this.props;\r\n return (\r\n <Checkbox.Group\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\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 this.request(remote).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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewList list={list} /> : <RadioWidget list={this.state.list} optionType={optionType} readonly={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n } \r\n}\r\n\r\nclass RadioWidget extends WidgetComponent<Design.Radio.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, list, optionType, readonly, onChange } = this.props;\r\n return (\r\n <Radio.Group\r\n value={value}\r\n optionType={optionType}\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n label={this.getLabel()}\r\n name={code}\r\n style={styles}\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 /> : <Switch disabled={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewDuration /> : <DurationWidget readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DurationWidget extends WidgetComponent<Design.WidgetProps> {\r\n\r\n duration: number[] = [0, 0, 0];\r\n \r\n changeValue = (index: number) => (changeValue: number | null) => {\r\n if (changeValue) {\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 } = 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%'}} 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%'}} 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%'}} 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 { Form, DatePicker } from 'antd';\r\nimport moment from 'moment';\r\nimport { PreviewText } from '@/preview';\r\nimport { UIComponent, WidgetComponent } from '@/service';\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n { preview ? <PreviewText /> : <DateWidget type={type} format={format} showTime={showTime} placeholder={placeholder} allowClear={allowClear} readonly={readonly} /> }\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass DateWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, type, format, showTime, placeholder, allowClear, readonly, onChange } = this.props; \r\n return (\r\n <DatePicker \r\n value={value ? moment(value) : undefined}\r\n picker={type}\r\n format={format}\r\n showTime={showTime}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n onChange={(value: any) => {\r\n onChange?.(value?.format(\"YYYY-MM-DD\"));\r\n }}\r\n />\r\n )\r\n }\r\n}","import React from 'react';\r\nimport { Form, TimePicker } from 'antd';\r\nimport moment from 'moment';\r\nimport { UIComponent, WidgetComponent } from '@/service';\r\nimport { PreviewText } from '@/preview';\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\r\n hidden={hidden}\r\n rules={hidden ? [] : rules as []}\r\n {...itemProps}\r\n {...itemLayouts}\r\n >\r\n {preview ? <PreviewText /> : <TimeWidget format={format} placeholder={placeholder} allowClear={allowClear} readonly={readonly} />}\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TimeWidget extends WidgetComponent<Design.Picker.WidgetProps> {\r\n render(): React.ReactNode {\r\n const { value, format, placeholder, allowClear, readonly, onChange } = this.props;\r\n return (\r\n <TimePicker \r\n value={value ? moment(value, \"HH:mm:ss\") : undefined}\r\n format={format}\r\n placeholder={placeholder}\r\n allowClear={allowClear}\r\n disabled={readonly} \r\n onChange={(value: any) => {\r\n onChange?.(value?.format(\"HH:mm:ss\"))\r\n }} />\r\n )\r\n }\r\n}\r\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n const { listUrl } = config.file;\r\n if (list && list.length > 0) {\r\n request(listUrl)({params: { 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.log(\"url\", listUrl, error);\r\n });\r\n }\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 onBeforeUpload = (file: any) => {\r\n const { fileSize, fileType, fileTypeMessage } = this.props;\r\n const fileTypeArray = fileType?.replace(/\\ +/g, \"\").split(\",\");\r\n if (fileTypeArray && fileTypeArray.length > 0) {\r\n const isFileType = fileTypeArray.includes(file.type);\r\n if (!isFileType) {\r\n message.error(fileTypeMessage);\r\n return Upload.LIST_IGNORE;\r\n }\r\n } else {\r\n message.error(\"文件类型不匹配!\");\r\n return Upload.LIST_IGNORE;\r\n }\r\n if (fileSize) {\r\n const fileSizeValue = bytes.parse(fileSize);\r\n if (fileSizeValue < file.size) {\r\n message.error(`上传的文件大小,不能超过 ${fileSize}!`);\r\n return Upload.LIST_IGNORE;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n onStart = (): void => {\r\n 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 let 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 this.timer = setInterval(() => {\r\n if (this.uploading) {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: ++percent\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 (percent === 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 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 clearInterval(this.timer);\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 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 clearInterval(this.timer);\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 } = 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.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={maxCount <= fileList.length} icon={<UploadOutlined />}>上传</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}","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","import SparkMD5 from 'spark-md5';\r\nimport request from '@/utils/request';\r\nimport { config } from '@/config';\r\n\r\nconst filePrototype = File.prototype as any;\r\nconst fileBlobSlice = filePrototype.slice || filePrototype.mozSlice || filePrototype.webkitSlice;\r\nconst defaultBlockSize = 10 * 1024 ** 2;\r\n\r\n/**\r\n * 等待\r\n * \r\n * @param millisecond \r\n * @returns \r\n */\r\nconst wait = (millisecond: number) => {\r\n return new Promise(resolve => {\r\n setTimeout(() => {\r\n resolve(millisecond)\r\n }, millisecond)\r\n })\r\n}\r\n\r\n/**\r\n * 上传 Upload.js\r\n */\r\nclass ChunkUpload {\r\n spark = new SparkMD5.ArrayBuffer();\r\n percents: number[] = [0, 0, 0, 0, 0];\r\n progress?: (percent: number) => void;\r\n file?: Design.File.FileInfo;\r\n\r\n listeners: { [name: string]: (payload: any) => void } = {};\r\n \r\n threads;\r\n chunkSize;\r\n chunkRetry;\r\n\r\n uploading: boolean = false;\r\n uploadList: Design.File.FileChunk [] = [];\r\n uploadPosition: number = 0;\r\n\r\n constructor({ chunkSize = defaultBlockSize, threads = 5, chunkRetry = 3 }: Design.File.FileOption) {\r\n this.chunkSize = chunkSize;\r\n this.threads = threads;\r\n this.chunkRetry = chunkRetry;\r\n }\r\n\r\n /**\r\n * 事件绑定\r\n * \r\n * @param method \r\n * @param callback \r\n */\r\n on(method: string, callback: (payload: any) => void) {\r\n this.listeners[method] = callback;\r\n }\r\n\r\n /**\r\n * 事件解除\r\n * \r\n * @param method \r\n */\r\n off(method: string) {\r\n delete this.listeners[method];\r\n }\r\n\r\n /**\r\n * 事件触发\r\n * \r\n * @param method \r\n */\r\n trigger(method: string, payload: any = null) {\r\n const callback = this.listeners[method];\r\n if(typeof callback === 'function'){\r\n callback(payload);\r\n }\r\n }\r\n\r\n /**\r\n * Buffer md5 加密\r\n * \r\n * @param content \r\n * @returns \r\n */\r\n md5hex(content: ArrayBuffer): string {\r\n return new SparkMD5.ArrayBuffer().append(content).end()\r\n }\r\n\r\n /**\r\n * 获得文件md5 hex\r\n * \r\n * @param file \r\n * @returns \r\n */\r\n fileMd5(file: File) {\r\n const num = Math.floor(file.size / defaultBlockSize); \r\n const blob: Blob = fileBlobSlice.call(file, num * defaultBlockSize);\r\n return new Promise<string>((resolve, reject) => { \r\n const fileReader = new FileReader();\r\n fileReader.onerror = reject\r\n fileReader.onload = (e: ProgressEvent<FileReader>) => {\r\n const buffer = e.target?.result ?? new ArrayBuffer(0);\r\n resolve(this.md5hex(buffer as ArrayBuffer)); \r\n }\r\n fileReader.readAsArrayBuffer(blob);\r\n })\r\n\r\n }\r\n\r\n /**\r\n * 计算上传步骤进度\r\n * \r\n * @param percent \r\n * @param index \r\n * @param ratio \r\n */\r\n stepProgress(percent: number, index: number, ratio: number) {\r\n this.percents[index] = percent * ratio;\r\n const progress = this.percents.reduce((v1: number, v2: number) => v1 + v2);\r\n this.trigger(\"progress\", progress);\r\n }\r\n\r\n /**\r\n * 计算上传进度\r\n * \r\n * @param percent \r\n */\r\n setProgress(percent: number) {\r\n this.trigger(\"progress\", percent);\r\n }\r\n\r\n /**\r\n * 文件上传\r\n * \r\n * @param file\r\n */\r\n async start(file: Design.File.FileInfo) {\r\n this.file = file;\r\n const fileName = file.name;\r\n const fileSize = file.size;\r\n const fileMd5 = await this.fileMd5(file);\r\n file.md5 = fileMd5;\r\n const result = await request(\"post form \" + config.chunk.checkFile)({ fileName, fileMd5, fileSize }); \r\n if (result?.data?.exist) {\r\n this.onComplete(false);\r\n } else {\r\n this.stepProgress(100, 0, 0.02);\r\n this.beforeUpload();\r\n }\r\n }\r\n\r\n /**\r\n * 文件上传前\r\n * \r\n * @param file \r\n * @param fileName \r\n * @param fileMd5 \r\n */\r\n beforeUpload() {\r\n this.uploading = true;\r\n this.uploadPosition = 0;\r\n let chunkIndex = 0;\r\n const fileSize = this.file?.size ?? 0;\r\n const chunkCount = Math.ceil(fileSize / this.chunkSize);\r\n const fileReader = new FileReader()\r\n const readFile = () => {\r\n const start = chunkIndex * this.chunkSize,\r\n end = ((start + this.chunkSize) >= fileSize) ? fileSize : start + this.chunkSize; \r\n fileReader.readAsArrayBuffer(fileBlobSlice.call(this.file, start, end));\r\n }\r\n fileReader.onload = (e: ProgressEvent<FileReader>) => {\r\n chunkIndex ++;\r\n const buffer = e.target?.result ?? new ArrayBuffer(0);\r\n const chunkMd5 = this.md5hex(buffer as ArrayBuffer);\r\n const blob = new Blob([buffer]); \r\n this.uploadList.unshift({ chunkMd5, chunkIndex, blob });\r\n if (chunkIndex < chunkCount) {\r\n readFile();\r\n } else {\r\n this.uploading = false;\r\n }\r\n this.stepProgress(Math.round((chunkIndex / chunkCount) * 100), 1, 0.2);\r\n }\r\n readFile();\r\n this.startUpload(chunkCount);\r\n }\r\n\r\n /**\r\n * 分片上传\r\n * \r\n * @param fileName\r\n * @param fileMd5\r\n * @param chunkCount\r\n */\r\n async startUpload(chunkCount: number) { \r\n let index = 0;\r\n const timer = setInterval(() => {\r\n const size = this.uploadList.length;\r\n if (size === 0 && !this.uploading) {\r\n clearInterval(timer);\r\n } else {\r\n for (let i = 0; size - i > 0 && this.uploadPosition + i < this.threads; i ++, this.uploadPosition ++) {\r\n const chunk = this.uploadList.pop();\r\n if (chunk) {\r\n this.onUpload(chunk).then(()=> {\r\n index ++;\r\n this.stepProgress(Math.round((index / chunkCount) * 100), 2, 0.4);\r\n if (chunkCount === index) {\r\n this.doMerge();\r\n }\r\n });\r\n }\r\n } \r\n } \r\n }, 500);\r\n }\r\n\r\n /**\r\n * 开始上传\r\n * \r\n * @param fileName\r\n * @param fileMd5\r\n * @param chunk\r\n */\r\n async onUpload(chunk: Design.File.FileChunk) {\r\n const { chunkMd5, chunkIndex, blob } = chunk;\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n const result = await request(\"post form \" + config.chunk.checkChunk)({ fileName, fileMd5, chunkMd5, chunkIndex });\r\n if (result?.data?.exist === false) {\r\n for (let i = 0; i < this.chunkRetry; i ++) {\r\n const formData = new FormData();\r\n formData.append(\"chunkIndex\", String(chunkIndex));\r\n formData.append(\"fileName\", fileName);\r\n formData.append(\"fileMd5\", fileMd5);\r\n formData.append(\"file\", blob);\r\n await request(\"post form \" + config.chunk.chunkUpload)(formData);\r\n break;\r\n }\r\n }\r\n this.uploadPosition --;\r\n }\r\n\r\n /**\r\n * 合并\r\n * \r\n */\r\n async doMerge() {\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n await request(\"post form \" + config.chunk.doMerge)({fileName, fileMd5});\r\n this.mergeProgress();\r\n }\r\n\r\n /**\r\n * 合并进程\r\n */\r\n async mergeProgress() {\r\n const result = await request(config.chunk.mergeProgress)();\r\n const percent = result?.data?.percent;\r\n if (Number.isFinite(percent)) {\r\n this.stepProgress(percent, 3, 0.18);\r\n if (percent < 100) {\r\n await wait(1000);\r\n this.mergeProgress();\r\n } else {\r\n this.onComplete(true);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 上传完成\r\n * \r\n */\r\n async onComplete(step?: boolean) {\r\n const fileName = this.file?.name ?? \"\";\r\n const fileMd5 = this.file?.md5 ?? \"\"; \r\n const result = await request(\"post form \" + config.chunk.onComplete)({fileName, fileMd5});\r\n if (this.file && result) {\r\n this.file.response = result;\r\n }\r\n this.completeProgress(step);\r\n }\r\n\r\n /**\r\n * 其他进程\r\n */\r\n async completeProgress(step?: boolean) {\r\n const result = await request(config.chunk.completeProgress)();\r\n const percent = result?.data?.percent;\r\n if (Number.isFinite(percent)) {\r\n if (step) {\r\n this.stepProgress(percent, 4, 0.2);\r\n } else {\r\n this.setProgress(percent);\r\n }\r\n if (percent < 100) {\r\n await wait(1000);\r\n this.completeProgress(step);\r\n } else {\r\n this.trigger(\"complete\", this.file);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default ChunkUpload;","import React from 'react';\r\nimport { Form, Upload, Button, Modal, Progress, message } from 'antd';\r\nimport { UploadOutlined } from '@ant-design/icons';\r\nimport bytes from 'bytes';\r\nimport request from '@/utils/request';\r\nimport { UIListComponent, WidgetComponent } from '@/service';\r\nimport { PreviewFile } from '@/preview';\r\nimport { config } from '@/config';\r\nimport ChunkUpload from './ChunkUpload';\r\n\r\nconst { uploadUrl, listUrl } = config.file;\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 = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n label={this.getLabel()}\r\n style={styles}\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} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass UploadWidget extends WidgetComponent<Design.File.WidgetProps, Design.File.WidgetStates> {\r\n timer?: NodeJS.Timer;\r\n uploading = false;\r\n state = {\r\n fileList: [],\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const { list } = this.props;\r\n if (list && list.length > 0) {\r\n request(listUrl)({params: { 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.log(\"url\", listUrl, 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 file = info.file;\r\n const upload = new ChunkUpload({ chunkSize: 1024 * 1024 * 10, threads: 5 });\r\n upload.start(file);\r\n upload.on(\"progress\", (percent: number) => {\r\n this.setState({\r\n modal: {\r\n open: true,\r\n progress: Math.round(percent)\r\n }\r\n });\r\n file.status = \"uploading\";\r\n });\r\n upload.on(\"complete\", (file: Design.File.FileInfo) => { \r\n const { id, url } = file.response.data;\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 }, () => {\r\n this.onChange(fileList);\r\n this.setState({\r\n modal: {\r\n open: false,\r\n progress: 0\r\n }\r\n })\r\n });\r\n });\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 } = 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={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={maxCount <= fileList.length} icon={<UploadOutlined />}>上传</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, hidden } = this.props;\r\n const styles = this.getStyles();\r\n return (\r\n <Form.Item\r\n name={code}\r\n style={styles}\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} title={title} columns={this.getColumns()} />\r\n </Form.Item>\r\n )\r\n }\r\n return <></>;\r\n }\r\n}\r\n\r\nclass TableWidget extends WidgetComponent<Design.Table.WidgetProps, Design.Table.WidgetStates> {\r\n state= {\r\n dataSource: [],\r\n modal: {\r\n title: \"\",\r\n entity: undefined,\r\n show: false\r\n }\r\n };\r\n\r\n componentDidMount(): void {\r\n const { list, onChange } = this.props;\r\n if (Array.isArray(list)) {\r\n const dataSource = list.map(({ worksId, worksExtraId, ...items }, index) => {\r\n return { id: worksExtraId, index: index + 1, ...items }\r\n });\r\n this.setState({ dataSource }, () => {\r\n onChange?.(dataSource);\r\n })\r\n }\r\n }\r\n\r\n getColumns() {\r\n const { title, preview, columns, onChange } = this.props;\r\n const { dataSource } = this.state;\r\n if (preview) {\r\n return columns;\r\n }\r\n return concat(columns, {\r\n title: '操作',\r\n dataIndex: 'option',\r\n valueType: 'option',\r\n render: (_: unknown, record: any) => [\r\n <Space key=\"option\">\r\n <a key=\"modifly\"\r\n onClick={() => {\r\n this.setState({\r\n modal: { title: `新建${title}`, entity: record, show: true }\r\n })\r\n }}\r\n >\r\n 修改\r\n </a>\r\n <a key=\"delete\"\r\n onClick={() => {\r\n Modal.confirm({\r\n title: '警告',\r\n icon: <QuestionCircleOutlined />,\r\n content: '请确认是否删除该项数据?',\r\n okText: '确认',\r\n cancelText: '取消',\r\n onOk: () => {\r\n const list: Design.Table.Item[] = dataSource.filter(({ id, uid }) => !((id && record.id === id) || (uid && record.uid === uid)));\r\n this.setState({ dataSource: list }, () => {\r\n onChange?.(list);\r\n })\r\n },\r\n });\r\n }}\r\n >\r\n 删除\r\n </a>\r\n </Space>\r\n ],\r\n });\r\n }\r\n\r\n onFinish = (entity: Design.Table.Item) => {\r\n const { dataSource } = this.state;\r\n let list: Design.Table.Item[] = [];\r\n if (entity.id || entity.uid) {\r\n list = dataSource.map((item: Design.Table.Item) => {\r\n if (entity.id && item.id === entity.id) {\r\n return { ...item, ...entity }\r\n } else if (entity.uid && item.uid === entity.uid) {\r\n return { ...item, ...entity }\r\n }\r\n return item;\r\n });\r\n } else {\r\n entity.index = dataSource.length + 1;\r\n entity.uid = uniqueId();\r\n list = [...dataSource, entity];\r\n }\r\n\r\n this.setState({\r\n dataSource: list,\r\n modal: { title: \"\", entity: undefined, show: false }\r\n }, () => {\r\n this.props.onChange?.(list);\r\n })\r\n }\r\n\r\n onCancel = () => {\r\n this.setState({\r\n modal: { title: \"\", entity: undefined, show: false }\r\n })\r\n }\r\n\r\n render(): React.ReactNode {\r\n const { title, preview } = 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\" 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 labelCol={{ span: 4 }}\r\n wrapperCol={{ span: 16 }}\r\n initialValues={entity}\r\n autoComplete=\"off\"\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 { Row } from 'antd';\r\nimport React from 'react';\r\n\r\nexport default ({ children, gutter }: any) => {\r\n return (\r\n <Row gutter={Number(gutter)} style={{ margin: 0 }}>\r\n {children}\r\n </Row>\r\n )\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\nconst { Step } = Steps;\r\n\r\nexport default ({ direction, stepIndex, onChangeSetp, children }: any) => {\r\n const items = useMemo(() => {\r\n const list: any[] = [];\r\n children?.map(({ id, attributes }: any) => {\r\n const { title, description } = attributes;\r\n list.push({ key: id, title, description });\r\n });\r\n return list;\r\n }, [children]);\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 { camelCase } from 'lodash';\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 styleList = style?.replace(/\\ +/g, '').split(';');\r\n const styles = style ?? { padding: 16, backgroundColor: \"white\" };\r\n styleList?.forEach((items: any) => {\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 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 return (\r\n <Divider dashed={dashed} orientation={orientation} style={{ color: \"#055ab5\", fontWeight: \"bold\" }}>{children}</Divider>\r\n )\r\n}","import React, { useState, useMemo, memo } from 'react';\r\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\r\nimport { Button } from 'antd';\r\nimport { camelCase } from 'lodash';\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\r\n const itemStyle = useMemo(() => {\r\n const styles = {};\r\n const styleList = style?.replace(/\\ +/g, '').split(';');\r\n styleList?.forEach((items: any) => {\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 return styles;\r\n }, [style]);\r\n\r\n if (collapse) {\r\n return (\r\n <>\r\n <div style={itemStyle}>\r\n <Button\r\n type='link'\r\n onClick={() => {\r\n onExpanded(!isExpanded);\r\n }}\r\n >{isExpanded ? off : on}{isExpanded ? <UpOutlined /> : <DownOutlined />} </Button>\r\n </div>\r\n <div style={isExpanded ? show : hide}>\r\n {children}\r\n </div>\r\n </>\r\n )\r\n }\r\n return <>{children}</>;\r\n});","import React, { PureComponent, ReactNode } from \"react\";\r\nimport { Form as BaseForm, FormInstance, Skeleton } from \"antd\";\r\nimport { find, mapValues, camelCase, isBoolean, isObject, isArray } from \"lodash\";\r\nimport XMLDocument from \"@/utils/doc\";\r\nimport XML from \"@/entity/XML\";\r\nimport { ProComponent } from \"@/service\";\r\nimport * as BaseComponents from \"@/components\"\r\nimport { Col, Collapse, Content, Divider, Row, Steps } from \"@/containers\";\r\nimport { DesignContext } from \"@/context\";\r\nimport { config } from \"@/config\";\r\n\r\nconst Components: {[name: string]: {}} = BaseComponents;\r\nconst Containers: {[name: string]: {}} = { Col, Collapse, Content, Divider, Row, Steps };\r\n\r\nexport default class FormDesign extends PureComponent<Design.HomeProps, Design.HomeState> {\r\n\r\n state = {\r\n stepIndex: 0\r\n };\r\n\r\n form: React.RefObject<FormInstance>;\r\n root: XML;\r\n preview: boolean;\r\n layouts?: {};\r\n styles: {};\r\n showTitle: boolean;\r\n customComponents?: {[name:string]: {}};\r\n\r\n constructor(props: Design.HomeProps) {\r\n super(props);\r\n const { document, form, preview } = this.props;\r\n this.root = XMLDocument.getRoot(document);\r\n\r\n const { style: styleValue, labelCol, wrapperCol, showTitle } = this.root.attributes;\r\n this.showTitle = !!showTitle;\r\n this.styles = this.props.style ?? {};\r\n if (typeof styleValue === \"string\") {\r\n const styleList: string[] = styleValue?.replace(/\\ +/g, \"\").split(\";\");\r\n styleList?.forEach(style => {\r\n if (style) {\r\n const [key, value] = style.split(\":\");\r\n Object.assign(this.styles, { [camelCase(key)]: value });\r\n }\r\n });\r\n }\r\n if (labelCol && wrapperCol) {\r\n this.layouts = {\r\n labelCol: { span: labelCol },\r\n wrapperCol: { span: wrapperCol },\r\n };\r\n }\r\n this.form = form ?? React.createRef()\r\n this.preview = preview ?? false; \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 }\r\n\r\n onValuesChange = (changedValues: any) => {\r\n this.setState({\r\n values: changedValues\r\n })\r\n };\r\n\r\n onStepIndex = (stepIndex: number) => {\r\n this.setState({\r\n stepIndex\r\n })\r\n }\r\n\r\n setComponentStatus(attributes: { [name: string]: string | boolean }) {\r\n const { hidden, readonly } = this.props;\r\n // 控件是否隐藏\r\n if (isBoolean(hidden)) {\r\n attributes.hidden = hidden;\r\n } else if (isArray(hidden)) {\r\n attributes.hidden = hidden.includes(attributes.code as string);\r\n } else if (isObject(hidden)) {\r\n attributes.hidden = !!hidden[attributes.code as string];\r\n } else {\r\n attributes.hidden = attributes.hidden ?? false;\r\n }\r\n // 控件是否只读\r\n if (isBoolean(readonly)) {\r\n attributes.readonly = readonly;\r\n } else if (isArray(readonly)) {\r\n attributes.readonly = readonly.includes(attributes.code as string);\r\n } else if (isObject(readonly)) {\r\n attributes.readonly = !!readonly[attributes.code as string];\r\n } else {\r\n attributes.readonly = attributes.readonly ?? false;\r\n }\r\n }\r\n\r\n component(xml: XML, Component: any) {\r\n const { id, attributes, children } = xml;\r\n this.setComponentStatus(attributes);\r\n return <Component key={id} preview={this.preview} {...attributes}>{children?.map(this.children)}</Component>\r\n }\r\n\r\n 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 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 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 if (this.root.children) {\r\n const { initialValues } = this.props; \r\n return (\r\n <DesignContext.Provider value={{ ...this.props, form: this.form, showTitle: this.showTitle}}>\r\n <Form\r\n form={this.form}\r\n style={this.styles}\r\n initialValues={initialValues}\r\n onValuesChange={this.onValuesChange}\r\n {...this.layouts}\r\n >\r\n {this.root.children.map(this.children)}\r\n </Form>\r\n </DesignContext.Provider>\r\n );\r\n }\r\n return <Skeleton active />;\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":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","exports","arr","Array","isArray","module","__esModule","i","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","Object","done","push","value","length","err","len","arr2","arrayLikeToArray","require$$0","o","minLen","n","prototype","toString","slice","constructor","name","from","test","TypeError","arrayWithHoles","iterableToArrayLimit","require$$1","unsupportedIterableToArray","require$$2","nonIterableRest","require$$3","instance","Constructor","_typeof","obj","input","hint","prim","toPrimitive","undefined","res","String","Number","arg","key","toPropertyKey","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","self","ReferenceError","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","subClass","superClass","create","assertThisInitialized","_getPrototypeOf","getPrototypeOf","XML","element","_classCallCheck","this","_defineProperty","id","uniqueId","_step","attributes","_iterator","s","item","trim","isBoolean","toBoolean","e","f","children","_step2","childNodes","_iterator2","_this$children","_node$nodeValue","node","Element","nodeType","textContent","text","cdata","nodeValue","replace","tag","nodeName","_createClass","parseInt","XMLDocument","documentString","DOMParser","parseFromString","doc","toDocument","parser","source","excluded","sourceKeys","keys","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","validate","_ref","_ref$type","required","minlength","maxlength","min","max","pattern","message","RegExp","DesignContext","React","createContext","UIComponent","_React$PureComponent","_inherits","_super","_createSuper","_this","_len","arguments","args","_key","apply","concat","_assertThisInitialized","color","borderBottom","defaultValue","form","context","_form$current","_form$current2","code","current","getFieldValue","setFieldValue","_form$current3","_this2","setTimeout","_form$current4","_form$current5","getFieldsValue","showTitle","_jsx","_objectSpread","styleLabel","title","itemProps","_itemLayouts$wrapperC","_this$props","preview","labelCol","wrapperCol","tips","itemLayouts","span","assign","styleWrapper","tooltip","styleList","split","styles","forEach","items","_items$split","_items$split2","_slicedToArray","camelCase","_this$context$preview","fileds","_this$props2","_this$props2$defaultH","defaultHide","show","conditions","find","_conditions$children","action","list","map","fields","_ref2","join","Function","actuator","console","warn","condition","result","every","some","_this$props3","_validates$children$m","_validates$children","validates","content","_ref3","collection","_this3","computeValue","_ref4","moment","compute","_this$props$defaultVa","setDefaultValue","PureComponent","contextType","ProComponent","_UIComponent","forceUpdate","initValue","display","onComputeValue","rules","_this$getItem","getItem","hidden","Component","_objectWithoutProperties","_excluded","_Form","Item","label","getLabel","onChange","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","Promise","then","fn","_regeneratorRuntime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","val","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","globalThis","DesignConfig","conf","prefix","headers","params","listUrl","downloadUrl","uploadUrl","extraData","file","fileType","checkFile","checkChunk","chunkUpload","doMerge","mergeProgress","onComplete","completeProgress","request","chunk","components","config","init","defineConfig","umiRequest","extend","timeout","targetUrl","options","cloneData","cloneDeep","data","url","domain","urlMatch","match","parse","compile","_message","toLocaleUpperCase","requestType","status","rest","success","_data$message","response","msg","request$1","uri","uriArray","_uriArray","_uriArray2","UIListComponent","_args","_asyncToGenerator","_callee","remote","_context","_Object$entries","entries","_Object$entries$2","_Object$entries$","log","_x2","itemList","plist","filter","includes","rule","validator","_","WidgetComponent","_PureComponent","Label","getStyles","Tooltip","PreviewText","useEffect","href","rel","PreviewDuration","_value$split2","_value$split","hour","minute","second","PreviewSwitch","checked","PreviewList","_ref5","_ref6","_ref7","PreviewFile","_ref8","fileList","_ref9","worksAnnexId","contentType","fileName","fileTitle","endsWith","_jsxs","_Space","paddingBottom","startsWith","width","src","alt","controls","alignItems","height","paddingLeft","Text","placeholder","maxLength","allowClear","showCount","readonly","_Input","disabled","TextArea","InputNumber","_this$props$type","precision","numberProps","formatter","_InputNumber","Editor","colon","EditorWidget","_React$Component","_super2","createRef","isReactWEditor","ReactWEditor","onBlur","onFocus","SelectList","_UIListComponent","optionList","setState","multiple","_this$props2$allowCle","plusRules","collectionList","getList","currentValue","cleanFieldValue","SelectWidget","Option","_WidgetComponent","_this4","_len2","_key2","_this4$props$onChange","_this4$props","_Select","showSearch","mode","handleItemValue","filterOption","inputValue","option","toLowerCase","CheckBox","CheckboxWidget","_Checkbox","Group","RadioButton","optionType","RadioWidget","_Radio","SwitchButton","valuePropName","_Switch","Duration","DurationWidget","index","changeValue","_this$props$onChange","duration","durations","format","className","Datepicker","_this$props$format","_this$props$showTime","showTime","_this$props$allowClea","DateWidget","_DatePicker","picker","Timepicker","TimeWidget","arrayWithoutHoles","iterableToArray","nonIterableSpread","normFile","UplaodList","maxCount","fileTypeMessage","fileSize","getValueFromEvent","UploadWidget","modal","open","progress","fileTypeArray","_Upload","LIST_IGNORE","bytes","size","uploading","step","percent","Math","round","timer","setInterval","clearInterval","_response$message","ids","_this$state","_this$props4","count","onStart","onSuccess","onProgress","onError","_Fragment","beforeUpload","onBeforeUpload","onRemove","icon","UploadOutlined","_Modal","closable","footer","hex_chr","md5cycle","x","k","a","b","c","d","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","byteLength","set","buffer","hexToBinaryString","substr","SparkMD5","clamp","to","num","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","destroy","hashBinary","factory","filePrototype","File","fileBlobSlice","mozSlice","webkitSlice","defaultBlockSize","pow","wait","millisecond","ChunkUpload","_ref$chunkSize","chunkSize","_ref$threads","threads","_ref$chunkRetry","chunkRetry","_completeProgress","_onComplete","_mergeProgress","_doMerge","_onUpload","_startUpload","_start","callback","listeners","payload","floor","blob","fileReader","FileReader","onerror","onload","_e$target$result","_e$target","md5hex","readAsArrayBuffer","ratio","percents","reduce","v1","v2","trigger","_result$data","fileMd5","md5","exist","stepProgress","_this$file$size","_this$file","uploadPosition","chunkIndex","chunkCount","ceil","readFile","start","_e$target$result2","_e$target2","chunkMd5","Blob","uploadList","unshift","startUpload","_context2","onUpload","_callee2","_this$file$name","_this$file2","_this$file$md","_this$file3","_result$data2","formData","_context3","FormData","_callee3","_x3","_callee4","_this$file$name2","_this$file4","_this$file$md2","_this$file5","_context4","_callee5","_result$data3","_context5","isFinite","_this$file$name3","_this$file6","_this$file$md3","_this$file7","_context6","_callee6","_x4","_result$data4","_context7","setProgress","_callee7","_x5","upload","on","_file$response$data","customRequest","TableList","_columnList$children","columnList","column","_column$rules","TableWidget","columns","getColumns","dataSource","entity","uid","worksId","worksExtraId","dataIndex","valueType","render","onClick","confirm","QuestionCircleOutlined","okText","cancelText","onOk","_this$props5","_Card","bodyStyle","padding","extra","_Table","rowKey","ModalForm","onFinish","onCancel","_onOk","_Form$useForm","useForm","destroyOnClose","validateFields","initialValues","autoComplete","_Row","_Col","Row","gutter","margin","Col","Step","Steps","direction","stepIndex","onChangeSetp","useMemo","description","_Steps","backgroundColor","Content","Content$1","memo","currentStepIndex","itemStyle","Divider","_ref$dashed","dashed","_ref$orientation","orientation","_Divider","fontWeight","hide","Collapse","_ref$defaultExpanded","defaultExpanded","off","collapse","useState","_useState2","_useState","isExpanded","onExpanded","_Button","UpOutlined","DownOutlined","Components","BaseComponents","Containers","FormDesign","_this$props$style","changedValues","xml","_this$customComponent","_this$customComponent2","customComponents","component","container","applet","root","getRoot","_this$root$attributes","styleValue","_style$split","_style$split2","layouts","mapValues","isObject","_attributes$hidden","_attributes$readonly","setComponentStatus","onStepIndex","child","_rules$children","Provider","Form","onValuesChange","_Skeleton","active"],"mappings":"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"}
|