amis 1.8.0-beta.13 → 1.8.0-beta.17

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.
Files changed (120) hide show
  1. package/lib/WithStore.js +1 -1
  2. package/lib/WithStore.js.map +2 -2
  3. package/lib/components/DatePicker.js +3 -1
  4. package/lib/components/DatePicker.js.map +2 -2
  5. package/lib/components/Progress.js +3 -4
  6. package/lib/components/Progress.js.map +2 -2
  7. package/lib/components/TabsTransfer.d.ts +22 -3
  8. package/lib/components/TabsTransfer.js +149 -42
  9. package/lib/components/TabsTransfer.js.map +2 -2
  10. package/lib/components/Tree.js +3 -1
  11. package/lib/components/Tree.js.map +2 -2
  12. package/lib/components/formula/Editor.js +4 -4
  13. package/lib/components/formula/Editor.js.map +2 -2
  14. package/lib/components/formula/VariableList.d.ts +63 -4
  15. package/lib/components/formula/VariableList.js +23 -8
  16. package/lib/components/formula/VariableList.js.map +2 -2
  17. package/lib/helper.css +1 -1
  18. package/lib/helper.css.map +1 -1
  19. package/lib/index.js +1 -1
  20. package/lib/renderers/Date.js +6 -1
  21. package/lib/renderers/Date.js.map +2 -2
  22. package/lib/renderers/Form/NestedSelect.d.ts +1 -1
  23. package/lib/renderers/Form/NestedSelect.js +7 -2
  24. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  25. package/lib/renderers/Form/TabsTransfer.d.ts +6 -1
  26. package/lib/renderers/Form/TabsTransfer.js +155 -6
  27. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  28. package/lib/renderers/Form/TabsTransferPicker.d.ts +2 -2
  29. package/lib/renderers/Form/TabsTransferPicker.js +4 -4
  30. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  31. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  32. package/lib/renderers/Form/index.js +6 -2
  33. package/lib/renderers/Form/index.js.map +2 -2
  34. package/lib/renderers/Markdown.js +4 -3
  35. package/lib/renderers/Markdown.js.map +2 -2
  36. package/lib/renderers/Nav.d.ts +21 -20
  37. package/lib/renderers/Nav.js +8 -1
  38. package/lib/renderers/Nav.js.map +2 -2
  39. package/lib/renderers/Page.js +1 -1
  40. package/lib/renderers/Page.js.map +2 -2
  41. package/lib/renderers/Service.js +1 -1
  42. package/lib/renderers/Service.js.map +2 -2
  43. package/lib/renderers/Table/exportExcel.d.ts +6 -0
  44. package/lib/renderers/Table/exportExcel.js +288 -0
  45. package/lib/renderers/Table/exportExcel.js.map +13 -0
  46. package/lib/renderers/Table/index.d.ts +1 -1
  47. package/lib/renderers/Table/index.js +4 -251
  48. package/lib/renderers/Table/index.js.map +2 -2
  49. package/lib/themes/ang-ie11.css +112 -36
  50. package/lib/themes/ang.css +100 -21
  51. package/lib/themes/ang.css.map +1 -1
  52. package/lib/themes/antd-ie11.css +112 -36
  53. package/lib/themes/antd.css +100 -21
  54. package/lib/themes/antd.css.map +1 -1
  55. package/lib/themes/cxd-ie11.css +97 -21
  56. package/lib/themes/cxd.css +100 -21
  57. package/lib/themes/cxd.css.map +1 -1
  58. package/lib/themes/dark-ie11.css +112 -36
  59. package/lib/themes/dark.css +100 -21
  60. package/lib/themes/dark.css.map +1 -1
  61. package/lib/themes/default-ie11.css +97 -21
  62. package/lib/themes/default.css +100 -21
  63. package/lib/themes/default.css.map +1 -1
  64. package/lib/utils/api.js +35 -6
  65. package/lib/utils/api.js.map +2 -2
  66. package/package.json +1 -1
  67. package/schema.json +1 -1
  68. package/scss/_properties.scss +4 -0
  69. package/scss/components/_formula.scss +77 -12
  70. package/scss/components/_progress.scss +2 -7
  71. package/scss/components/form/_date.scss +1 -0
  72. package/scss/components/form/_transfer.scss +21 -0
  73. package/scss/helper/layout/_display.scss +1 -1
  74. package/sdk/ang-ie11.css +130 -36
  75. package/sdk/ang.css +118 -21
  76. package/sdk/antd-ie11.css +130 -36
  77. package/sdk/antd.css +118 -21
  78. package/sdk/barcode.js +51 -51
  79. package/sdk/charts.js +14 -14
  80. package/sdk/codemirror.js +7 -7
  81. package/sdk/color-picker.js +65 -65
  82. package/sdk/cropperjs.js +2 -2
  83. package/sdk/cxd-ie11.css +115 -21
  84. package/sdk/cxd.css +118 -21
  85. package/sdk/dark-ie11.css +130 -36
  86. package/sdk/dark.css +118 -21
  87. package/sdk/exceljs.js +1 -1
  88. package/sdk/helper.css +1 -1
  89. package/sdk/helper.css.map +1 -1
  90. package/sdk/markdown.js +69 -69
  91. package/sdk/papaparse.js +1 -1
  92. package/sdk/renderers/Form/CityDB.js +1 -1
  93. package/sdk/rest.js +17 -17
  94. package/sdk/rich-text.js +62 -62
  95. package/sdk/sdk-ie11.css +115 -21
  96. package/sdk/sdk.css +118 -21
  97. package/sdk/sdk.js +1270 -1268
  98. package/sdk/thirds/hls.js/hls.js +1 -1
  99. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  100. package/sdk/tinymce.js +57 -57
  101. package/src/WithStore.tsx +1 -1
  102. package/src/components/DatePicker.tsx +2 -1
  103. package/src/components/Progress.tsx +6 -4
  104. package/src/components/TabsTransfer.tsx +253 -143
  105. package/src/components/Tree.tsx +3 -1
  106. package/src/components/formula/Editor.tsx +12 -5
  107. package/src/components/formula/VariableList.tsx +55 -21
  108. package/src/renderers/Date.tsx +14 -1
  109. package/src/renderers/Form/NestedSelect.tsx +11 -2
  110. package/src/renderers/Form/TabsTransfer.tsx +174 -11
  111. package/src/renderers/Form/TabsTransferPicker.tsx +5 -10
  112. package/src/renderers/Form/TreeSelect.tsx +15 -12
  113. package/src/renderers/Form/index.tsx +37 -16
  114. package/src/renderers/Markdown.tsx +4 -5
  115. package/src/renderers/Nav.tsx +7 -1
  116. package/src/renderers/Page.tsx +9 -2
  117. package/src/renderers/Service.tsx +8 -2
  118. package/src/renderers/Table/exportExcel.ts +289 -0
  119. package/src/renderers/Table/index.tsx +5 -252
  120. package/src/utils/api.ts +42 -10
package/lib/utils/api.js CHANGED
@@ -8,6 +8,7 @@ var tpl_1 = require("./tpl");
8
8
  var helper_1 = require("./helper");
9
9
  var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
10
10
  var debug_1 = require("./debug");
11
+ var amis_formula_1 = require("amis-formula");
11
12
  var rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp):/i;
12
13
  var apiCaches = [];
13
14
  var isIE = !!document.documentMode;
@@ -52,17 +53,45 @@ function buildApi(api, data, options) {
52
53
  return api;
53
54
  }
54
55
  var raw = (api.url = api.url || '');
55
- var idx = api.url.indexOf('?');
56
+ var ast = undefined;
57
+ try {
58
+ ast = (0, amis_formula_1.parse)(api.url);
59
+ }
60
+ catch (e) {
61
+ console.warn("api \u914D\u7F6E\u8BED\u6CD5\u51FA\u9519\uFF1A".concat(e));
62
+ return api;
63
+ }
64
+ var url = ast.body
65
+ .map(function (item, index) {
66
+ return item.type === 'raw' ? item.value : "__expression__".concat(index, "__");
67
+ })
68
+ .join('');
69
+ var idx = url.indexOf('?');
70
+ var replaceExpression = function (fragment) {
71
+ return fragment.replace(/__expression__(\d+)__/g, function (_, index) {
72
+ return (0, amis_formula_1.evaluate)(ast.body[index], data, {
73
+ defaultFilter: 'url_encode'
74
+ });
75
+ });
76
+ };
56
77
  if (~idx) {
57
- var hashIdx = api.url.indexOf('#');
58
- var params = (0, helper_1.qsparse)(api.url.substring(idx + 1, ~hashIdx && hashIdx > idx ? hashIdx : undefined));
78
+ var hashIdx = url.indexOf('#');
79
+ var params = (0, helper_1.qsparse)(url.substring(idx + 1, ~hashIdx && hashIdx > idx ? hashIdx : undefined));
80
+ // 将里面的表达式运算完
81
+ (0, helper_1.JSONTraverse)(params, function (value, key, host) {
82
+ if (typeof value === 'string' && /^__expression__(\d+)__$/.test(value)) {
83
+ host[key] = (0, amis_formula_1.evaluate)(ast.body[RegExp.$1].body, data);
84
+ }
85
+ });
59
86
  api.url =
60
- (0, tpl_builtin_1.tokenize)(api.url.substring(0, idx + 1), data, '| url_encode') +
87
+ replaceExpression(url.substring(0, idx + 1)) +
61
88
  (0, helper_1.qsstringify)((api.query = (0, tpl_builtin_1.dataMapping)(params, data, undefined, api.convertKeyToPath))) +
62
- (~hashIdx && hashIdx > idx ? api.url.substring(hashIdx) : '');
89
+ (~hashIdx && hashIdx > idx
90
+ ? replaceExpression(url.substring(hashIdx))
91
+ : '');
63
92
  }
64
93
  else {
65
- api.url = (0, tpl_builtin_1.tokenize)(api.url, data, '| url_encode');
94
+ api.url = replaceExpression(url);
66
95
  }
67
96
  if (ignoreData) {
68
97
  return api;
@@ -6,8 +6,8 @@
6
6
  "/src/utils/api.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import omit from 'lodash/omit';\nimport {Api, ApiObject, EventTrack, fetcherResult, Payload} from '../types';\nimport {fetcherConfig} from '../factory';\nimport {tokenize, dataMapping, escapeHtml} from './tpl-builtin';\nimport {evalExpression} from './tpl';\nimport {\n isObject,\n isObjectShallowModified,\n hasFile,\n object2formData,\n qsstringify,\n cloneObject,\n createObject,\n qsparse,\n uuid\n} from './helper';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {debug} from './debug';\n\nconst rSchema = /(?:^|raw\\:)(get|post|put|delete|patch|options|head|jsonp):/i;\n\ninterface ApiCacheConfig extends ApiObject {\n cachedPromise: Promise<any>;\n requestTime: number;\n}\n\nconst apiCaches: Array<ApiCacheConfig> = [];\n\nconst isIE = !!(document as any).documentMode;\n\nexport function normalizeApi(\n api: Api,\n defaultMethod: string = 'get'\n): ApiObject {\n if (typeof api === 'string') {\n let method = rSchema.test(api) ? RegExp.$1 : '';\n method && (api = api.replace(method + ':', ''));\n\n api = {\n method: (method || defaultMethod) as any,\n url: api\n };\n } else {\n api = {\n ...api\n };\n }\n return api;\n}\n\nexport function buildApi(\n api: Api,\n data?: object,\n options: {\n autoAppend?: boolean;\n ignoreData?: boolean;\n [propName: string]: any;\n } = {}\n): ApiObject {\n api = normalizeApi(api, options.method);\n const {autoAppend, ignoreData, ...rest} = options;\n\n api.config = {\n ...rest\n };\n api.method = (api.method || (options as any).method || 'get').toLowerCase();\n\n if (api.headers) {\n api.headers = dataMapping(api.headers, data, undefined, false);\n }\n\n if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {\n api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;\n }\n\n if (api.adaptor && typeof api.adaptor === 'string') {\n api.adaptor = str2function(\n api.adaptor,\n 'payload',\n 'response',\n 'api'\n ) as any;\n }\n\n if (!data) {\n return api;\n } else if (\n data instanceof FormData ||\n data instanceof Blob ||\n data instanceof ArrayBuffer\n ) {\n api.data = data;\n return api;\n }\n\n const raw = (api.url = api.url || '');\n const idx = api.url.indexOf('?');\n\n if (~idx) {\n const hashIdx = api.url.indexOf('#');\n const params = qsparse(\n api.url.substring(\n idx + 1,\n ~hashIdx && hashIdx > idx ? hashIdx : undefined\n )\n );\n api.url =\n tokenize(api.url.substring(0, idx + 1), data, '| url_encode') +\n qsstringify(\n (api.query = dataMapping(params, data, undefined, api.convertKeyToPath))\n ) +\n (~hashIdx && hashIdx > idx ? api.url.substring(hashIdx) : '');\n } else {\n api.url = tokenize(api.url, data, '| url_encode');\n }\n\n if (ignoreData) {\n return api;\n }\n\n if (api.data) {\n api.body = api.data = dataMapping(\n api.data,\n data,\n undefined,\n api.convertKeyToPath\n );\n } else if (\n api.method === 'post' ||\n api.method === 'put' ||\n api.method === 'patch'\n ) {\n api.body = api.data = cloneObject(data);\n }\n\n // get 类请求,把 data 附带到 url 上。\n if (api.method === 'get' || api.method === 'jsonp') {\n if (\n !api.data &&\n ((!~raw.indexOf('$') && autoAppend) || api.forceAppendDataToQuery)\n ) {\n api.query = api.data = data;\n } else if (\n api.attachDataToQuery === false &&\n api.data &&\n ((!~raw.indexOf('$') && autoAppend) || api.forceAppendDataToQuery)\n ) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = data;\n api.url += '?' + qsstringify(data);\n }\n }\n\n if (api.data && api.attachDataToQuery !== false) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...api.data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = api.data;\n api.url += '?' + qsstringify(api.data);\n }\n delete api.data;\n }\n }\n\n if (api.graphql) {\n if (api.method === 'get') {\n api.query = api.data = {...api.query, query: api.graphql};\n } else if (\n api.method === 'post' ||\n api.method === 'put' ||\n api.method === 'patch'\n ) {\n api.body = api.data = {\n query: api.graphql,\n operationName: api.operationName,\n variables: cloneObject(api.data)\n };\n }\n }\n\n return api;\n}\n\nexport function str2function(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;\n\nexport function str2AsyncFunction(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new AsyncFunction(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport function responseAdaptor(ret: fetcherResult, api: ApiObject) {\n let data = ret.data;\n let hasStatusField = true;\n\n if (!data) {\n throw new Error('Response is empty');\n }\n\n // 返回内容是 string,说明 content-type 不是 json,这时可能是返回了纯文本或 html\n if (typeof data === 'string') {\n const contentType = (ret.headers as any)['content-type'] || '';\n // 如果是文本类型就尝试解析一下\n if (\n ret.headers &&\n contentType.startsWith('text/') &&\n !contentType.includes('markdown')\n ) {\n try {\n data = JSON.parse(data);\n if (typeof data === 'undefined') {\n throw new Error('Response should be JSON');\n }\n } catch (e) {\n const responseBrief =\n typeof data === 'string'\n ? escapeHtml((data as string).substring(0, 100))\n : '';\n throw new Error(`Response should be JSON\\n ${responseBrief}`);\n }\n } else {\n if (api.responseType === 'blob') {\n throw new Error('Should have \"Content-Disposition\" in Header');\n } else if (!contentType.includes('markdown')) {\n throw new Error(`Content type is wrong \"${contentType}\"`);\n }\n }\n }\n\n // 兼容几种常见写法\n if (data.hasOwnProperty('errorCode')) {\n // 阿里 Java 规范\n data.status = data.errorCode;\n data.msg = data.errorMessage;\n } else if (data.hasOwnProperty('errno')) {\n data.status = data.errno;\n data.msg = data.errmsg || data.errstr || data.msg;\n } else if (data.hasOwnProperty('no')) {\n data.status = data.no;\n data.msg = data.error || data.msg;\n } else if (data.hasOwnProperty('error')) {\n // Google JSON guide\n // https://google.github.io/styleguide/jsoncstyleguide.xml#error\n if (typeof data.error === 'object' && data.error.hasOwnProperty('code')) {\n data.status = data.error.code;\n data.msg = data.error.message;\n } else {\n data.status = data.error;\n data.msg = data.errmsg || data.msg;\n }\n }\n\n if (!data.hasOwnProperty('status')) {\n hasStatusField = false;\n }\n\n const payload: Payload = {\n ok: hasStatusField === false || data.status == 0,\n status: hasStatusField === false ? 0 : data.status,\n msg: data.msg || data.message,\n msgTimeout: data.msgTimeout,\n data: !data.data && !hasStatusField ? data : data.data // 兼容直接返回数据的情况\n };\n\n // 兼容返回 schema 的情况,用于 app 模式\n if (data && data.type) {\n payload.data = data;\n }\n\n if (payload.status == 422) {\n payload.errors = data.errors;\n }\n\n debug('api', 'response', payload);\n\n if (payload.ok && api.responseData) {\n debug('api', 'before dataMapping', payload.data);\n const responseData = dataMapping(\n api.responseData,\n\n createObject(\n {api},\n (Array.isArray(payload.data)\n ? {\n items: payload.data\n }\n : payload.data) || {}\n ),\n undefined,\n api.convertKeyToPath\n );\n debug('api', 'after dataMapping', responseData);\n payload.data = responseData;\n }\n\n return payload;\n}\n\nexport function wrapFetcher(\n fn: (config: fetcherConfig) => Promise<fetcherResult>,\n tracker?: (eventTrack: EventTrack, data: any) => void\n): (api: Api, data: object, options?: object) => Promise<Payload | void> {\n return function (api, data, options) {\n api = buildApi(api, data, options) as ApiObject;\n\n if (api.requestAdaptor) {\n debug('api', 'before requestAdaptor', api);\n api = api.requestAdaptor(api) || api;\n debug('api', 'after requestAdaptor', api);\n }\n\n if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {\n api.data =\n api.data instanceof FormData\n ? api.data\n : object2formData(api.data, api.qsOptions);\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'form'\n ) {\n api.data = qsstringify(api.data, api.qsOptions) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'json'\n ) {\n api.data = JSON.stringify(api.data) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/json';\n }\n\n debug('api', 'request api', api);\n\n tracker?.(\n {eventType: 'api', eventData: omit(api, ['config', 'data', 'body'])},\n api.data\n );\n\n if (api.method?.toLocaleLowerCase() === 'jsonp') {\n return wrapAdaptor(jsonpFetcher(api), api);\n }\n\n if (typeof api.cache === 'number' && api.cache > 0) {\n const apiCache = getApiCache(api);\n return wrapAdaptor(\n apiCache\n ? (apiCache as ApiCacheConfig).cachedPromise\n : setApiCache(api, fn(api)),\n api\n );\n }\n // IE 下 get 请求会被缓存,所以自动加个时间戳\n if (isIE && api && api.method?.toLocaleLowerCase() === 'get') {\n const timeStamp = `_t=${Date.now()}`;\n if (api.url.indexOf('?') === -1) {\n api.url = api.url + `?${timeStamp}`;\n } else {\n api.url = api.url + `&${timeStamp}`;\n }\n }\n return wrapAdaptor(fn(api), api);\n };\n}\n\nexport function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {\n const adaptor = api.adaptor;\n return adaptor\n ? promise\n .then(async response => {\n debug('api', 'before adaptor data', (response as any).data);\n let result = adaptor((response as any).data, response, api);\n\n if (result?.then) {\n result = await result;\n }\n\n debug('api', 'after adaptor data', result);\n\n return {\n ...response,\n data: result\n };\n })\n .then(ret => responseAdaptor(ret, api))\n : promise.then(ret => responseAdaptor(ret, api));\n}\n\nexport function jsonpFetcher(api: ApiObject): Promise<fetcherResult> {\n return new Promise((resolve, reject) => {\n let script: HTMLScriptElement | null = document.createElement('script');\n let src = api.url;\n\n script.async = true;\n\n function remove() {\n if (script) {\n // @ts-ignore\n script.onload = script.onreadystatechange = script.onerror = null;\n\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n\n script = null;\n }\n }\n\n const jsonp = api.query?.callback || 'axiosJsonpCallback' + uuid();\n const old = (window as any)[jsonp];\n\n (window as any)[jsonp] = function (responseData: any) {\n (window as any)[jsonp] = old;\n\n const response = {\n data: responseData,\n status: 200,\n headers: {}\n };\n\n resolve(response);\n };\n\n const additionalParams: any = {\n _: new Date().getTime(),\n _callback: jsonp\n };\n\n src += (src.indexOf('?') >= 0 ? '&' : '?') + qsstringify(additionalParams);\n\n // @ts-ignore IE 为script.onreadystatechange\n script.onload = script.onreadystatechange = function () {\n // @ts-ignore\n if (!script.readyState || /loaded|complete/.test(script.readyState)) {\n remove();\n }\n };\n\n script.onerror = function () {\n remove();\n const errResponse = {\n status: 0,\n headers: {}\n };\n\n reject(errResponse);\n };\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport function isApiOutdated(\n prevApi: Api | undefined,\n nextApi: Api | undefined,\n prevData: any,\n nextData: any\n): nextApi is Api {\n if (!nextApi) {\n return false;\n } else if (!prevApi) {\n return true;\n }\n\n nextApi = normalizeApi(nextApi);\n\n if (nextApi.autoRefresh === false) {\n return false;\n }\n\n const trackExpression = nextApi.trackExpression ?? nextApi.url;\n\n if (typeof trackExpression !== 'string' || !~trackExpression.indexOf('$')) {\n return false;\n }\n prevApi = normalizeApi(prevApi);\n\n let isModified = false;\n\n if (nextApi.trackExpression || prevApi.trackExpression) {\n isModified =\n tokenize(prevApi.trackExpression || '', prevData) !==\n tokenize(nextApi.trackExpression || '', nextData);\n } else {\n prevApi = buildApi(prevApi as Api, prevData as object, {ignoreData: true});\n nextApi = buildApi(nextApi as Api, nextData as object, {ignoreData: true});\n isModified = prevApi.url !== nextApi.url;\n }\n\n return !!(\n isModified &&\n isValidApi(nextApi.url) &&\n (!nextApi.sendOn || evalExpression(nextApi.sendOn, nextData))\n );\n}\n\nexport function isValidApi(api: string) {\n return (\n api &&\n /^(?:(https?|wss?|taf):\\/\\/[^\\/]+)?(\\/?[^\\s\\/\\?]*){1,}(\\?.*)?$/.test(api)\n );\n}\n\nexport function isEffectiveApi(\n api?: Api,\n data?: any,\n initFetch?: boolean,\n initFetchOn?: string\n): api is Api {\n if (!api) {\n return false;\n }\n if (initFetch === false) {\n return false;\n }\n if (initFetchOn && data && !evalExpression(initFetchOn, data)) {\n return false;\n }\n if (typeof api === 'string' && api.length) {\n return true;\n } else if (isObject(api) && (api as ApiObject).url) {\n if (\n (api as ApiObject).sendOn &&\n data &&\n !evalExpression((api as ApiObject).sendOn as string, data)\n ) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function isSameApi(\n apiA: ApiObject | ApiCacheConfig,\n apiB: ApiObject | ApiCacheConfig\n): boolean {\n return (\n apiA.method === apiB.method &&\n apiA.url === apiB.url &&\n !isObjectShallowModified(apiA.data, apiB.data, false)\n );\n}\n\nexport function getApiCache(api: ApiObject): ApiCacheConfig | undefined {\n // 清理过期cache\n const now = Date.now();\n let result: ApiCacheConfig | undefined;\n\n for (let idx = 0, len = apiCaches.length; idx < len; idx++) {\n const apiCache = apiCaches[idx];\n\n if (now - apiCache.requestTime > (apiCache.cache as number)) {\n apiCaches.splice(idx, 1);\n len--;\n idx--;\n continue;\n }\n\n if (isSameApi(api, apiCache)) {\n result = apiCache;\n break;\n }\n }\n\n return result;\n}\n\nexport function setApiCache(\n api: ApiObject,\n promise: Promise<any>\n): Promise<any> {\n apiCaches.push({\n ...api,\n cachedPromise: promise,\n requestTime: Date.now()\n });\n return promise;\n}\n\nexport function clearApiCache() {\n apiCaches.splice(0, apiCaches.length);\n}\n\nexport function normalizeApiResponseData(data: any) {\n if (typeof data === 'undefined') {\n data = {};\n } else if (!isPlainObject(data)) {\n data = {\n [Array.isArray(data) ? 'items' : 'result']: data\n };\n }\n\n return data;\n}\n\n// window.apiCaches = apiCaches;\n"
11
+ "import omit from 'lodash/omit';\nimport {Api, ApiObject, EventTrack, fetcherResult, Payload} from '../types';\nimport {fetcherConfig} from '../factory';\nimport {tokenize, dataMapping, escapeHtml} from './tpl-builtin';\nimport {evalExpression} from './tpl';\nimport {\n isObject,\n isObjectShallowModified,\n hasFile,\n object2formData,\n qsstringify,\n cloneObject,\n createObject,\n qsparse,\n uuid,\n JSONTraverse\n} from './helper';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {debug} from './debug';\nimport {evaluate, parse} from 'amis-formula';\n\nconst rSchema = /(?:^|raw\\:)(get|post|put|delete|patch|options|head|jsonp):/i;\n\ninterface ApiCacheConfig extends ApiObject {\n cachedPromise: Promise<any>;\n requestTime: number;\n}\n\nconst apiCaches: Array<ApiCacheConfig> = [];\n\nconst isIE = !!(document as any).documentMode;\n\nexport function normalizeApi(\n api: Api,\n defaultMethod: string = 'get'\n): ApiObject {\n if (typeof api === 'string') {\n let method = rSchema.test(api) ? RegExp.$1 : '';\n method && (api = api.replace(method + ':', ''));\n\n api = {\n method: (method || defaultMethod) as any,\n url: api\n };\n } else {\n api = {\n ...api\n };\n }\n return api;\n}\n\nexport function buildApi(\n api: Api,\n data?: object,\n options: {\n autoAppend?: boolean;\n ignoreData?: boolean;\n [propName: string]: any;\n } = {}\n): ApiObject {\n api = normalizeApi(api, options.method);\n const {autoAppend, ignoreData, ...rest} = options;\n\n api.config = {\n ...rest\n };\n api.method = (api.method || (options as any).method || 'get').toLowerCase();\n\n if (api.headers) {\n api.headers = dataMapping(api.headers, data, undefined, false);\n }\n\n if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {\n api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;\n }\n\n if (api.adaptor && typeof api.adaptor === 'string') {\n api.adaptor = str2function(\n api.adaptor,\n 'payload',\n 'response',\n 'api'\n ) as any;\n }\n\n if (!data) {\n return api;\n } else if (\n data instanceof FormData ||\n data instanceof Blob ||\n data instanceof ArrayBuffer\n ) {\n api.data = data;\n return api;\n }\n\n const raw = (api.url = api.url || '');\n let ast: any = undefined;\n try {\n ast = parse(api.url);\n } catch (e) {\n console.warn(`api 配置语法出错:${e}`);\n return api;\n }\n const url = ast.body\n .map((item: any, index: number) => {\n return item.type === 'raw' ? item.value : `__expression__${index}__`;\n })\n .join('');\n\n const idx = url.indexOf('?');\n let replaceExpression = (fragment: string) => {\n return fragment.replace(\n /__expression__(\\d+)__/g,\n (_: any, index: string) => {\n return evaluate(ast.body[index], data, {\n defaultFilter: 'url_encode'\n });\n }\n );\n };\n\n if (~idx) {\n const hashIdx = url.indexOf('#');\n const params = qsparse(\n url.substring(idx + 1, ~hashIdx && hashIdx > idx ? hashIdx : undefined)\n );\n\n // 将里面的表达式运算完\n JSONTraverse(params, (value: any, key: string | number, host: any) => {\n if (typeof value === 'string' && /^__expression__(\\d+)__$/.test(value)) {\n host[key] = evaluate(ast.body[RegExp.$1].body, data);\n }\n });\n\n api.url =\n replaceExpression(url.substring(0, idx + 1)) +\n qsstringify(\n (api.query = dataMapping(params, data, undefined, api.convertKeyToPath))\n ) +\n (~hashIdx && hashIdx > idx\n ? replaceExpression(url.substring(hashIdx))\n : '');\n } else {\n api.url = replaceExpression(url);\n }\n\n if (ignoreData) {\n return api;\n }\n\n if (api.data) {\n api.body = api.data = dataMapping(\n api.data,\n data,\n undefined,\n api.convertKeyToPath\n );\n } else if (\n api.method === 'post' ||\n api.method === 'put' ||\n api.method === 'patch'\n ) {\n api.body = api.data = cloneObject(data);\n }\n\n // get 类请求,把 data 附带到 url 上。\n if (api.method === 'get' || api.method === 'jsonp') {\n if (\n !api.data &&\n ((!~raw.indexOf('$') && autoAppend) || api.forceAppendDataToQuery)\n ) {\n api.query = api.data = data;\n } else if (\n api.attachDataToQuery === false &&\n api.data &&\n ((!~raw.indexOf('$') && autoAppend) || api.forceAppendDataToQuery)\n ) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = data;\n api.url += '?' + qsstringify(data);\n }\n }\n\n if (api.data && api.attachDataToQuery !== false) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...api.data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = api.data;\n api.url += '?' + qsstringify(api.data);\n }\n delete api.data;\n }\n }\n\n if (api.graphql) {\n if (api.method === 'get') {\n api.query = api.data = {...api.query, query: api.graphql};\n } else if (\n api.method === 'post' ||\n api.method === 'put' ||\n api.method === 'patch'\n ) {\n api.body = api.data = {\n query: api.graphql,\n operationName: api.operationName,\n variables: cloneObject(api.data)\n };\n }\n }\n\n return api;\n}\n\nexport function str2function(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;\n\nexport function str2AsyncFunction(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new AsyncFunction(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport function responseAdaptor(ret: fetcherResult, api: ApiObject) {\n let data = ret.data;\n let hasStatusField = true;\n\n if (!data) {\n throw new Error('Response is empty');\n }\n\n // 返回内容是 string,说明 content-type 不是 json,这时可能是返回了纯文本或 html\n if (typeof data === 'string') {\n const contentType = (ret.headers as any)['content-type'] || '';\n // 如果是文本类型就尝试解析一下\n if (\n ret.headers &&\n contentType.startsWith('text/') &&\n !contentType.includes('markdown')\n ) {\n try {\n data = JSON.parse(data);\n if (typeof data === 'undefined') {\n throw new Error('Response should be JSON');\n }\n } catch (e) {\n const responseBrief =\n typeof data === 'string'\n ? escapeHtml((data as string).substring(0, 100))\n : '';\n throw new Error(`Response should be JSON\\n ${responseBrief}`);\n }\n } else {\n if (api.responseType === 'blob') {\n throw new Error('Should have \"Content-Disposition\" in Header');\n } else if (!contentType.includes('markdown')) {\n throw new Error(`Content type is wrong \"${contentType}\"`);\n }\n }\n }\n\n // 兼容几种常见写法\n if (data.hasOwnProperty('errorCode')) {\n // 阿里 Java 规范\n data.status = data.errorCode;\n data.msg = data.errorMessage;\n } else if (data.hasOwnProperty('errno')) {\n data.status = data.errno;\n data.msg = data.errmsg || data.errstr || data.msg;\n } else if (data.hasOwnProperty('no')) {\n data.status = data.no;\n data.msg = data.error || data.msg;\n } else if (data.hasOwnProperty('error')) {\n // Google JSON guide\n // https://google.github.io/styleguide/jsoncstyleguide.xml#error\n if (typeof data.error === 'object' && data.error.hasOwnProperty('code')) {\n data.status = data.error.code;\n data.msg = data.error.message;\n } else {\n data.status = data.error;\n data.msg = data.errmsg || data.msg;\n }\n }\n\n if (!data.hasOwnProperty('status')) {\n hasStatusField = false;\n }\n\n const payload: Payload = {\n ok: hasStatusField === false || data.status == 0,\n status: hasStatusField === false ? 0 : data.status,\n msg: data.msg || data.message,\n msgTimeout: data.msgTimeout,\n data: !data.data && !hasStatusField ? data : data.data // 兼容直接返回数据的情况\n };\n\n // 兼容返回 schema 的情况,用于 app 模式\n if (data && data.type) {\n payload.data = data;\n }\n\n if (payload.status == 422) {\n payload.errors = data.errors;\n }\n\n debug('api', 'response', payload);\n\n if (payload.ok && api.responseData) {\n debug('api', 'before dataMapping', payload.data);\n const responseData = dataMapping(\n api.responseData,\n\n createObject(\n {api},\n (Array.isArray(payload.data)\n ? {\n items: payload.data\n }\n : payload.data) || {}\n ),\n undefined,\n api.convertKeyToPath\n );\n debug('api', 'after dataMapping', responseData);\n payload.data = responseData;\n }\n\n return payload;\n}\n\nexport function wrapFetcher(\n fn: (config: fetcherConfig) => Promise<fetcherResult>,\n tracker?: (eventTrack: EventTrack, data: any) => void\n): (api: Api, data: object, options?: object) => Promise<Payload | void> {\n return function (api, data, options) {\n api = buildApi(api, data, options) as ApiObject;\n\n if (api.requestAdaptor) {\n debug('api', 'before requestAdaptor', api);\n api = api.requestAdaptor(api) || api;\n debug('api', 'after requestAdaptor', api);\n }\n\n if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {\n api.data =\n api.data instanceof FormData\n ? api.data\n : object2formData(api.data, api.qsOptions);\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'form'\n ) {\n api.data = qsstringify(api.data, api.qsOptions) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'json'\n ) {\n api.data = JSON.stringify(api.data) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/json';\n }\n\n debug('api', 'request api', api);\n\n tracker?.(\n {eventType: 'api', eventData: omit(api, ['config', 'data', 'body'])},\n api.data\n );\n\n if (api.method?.toLocaleLowerCase() === 'jsonp') {\n return wrapAdaptor(jsonpFetcher(api), api);\n }\n\n if (typeof api.cache === 'number' && api.cache > 0) {\n const apiCache = getApiCache(api);\n return wrapAdaptor(\n apiCache\n ? (apiCache as ApiCacheConfig).cachedPromise\n : setApiCache(api, fn(api)),\n api\n );\n }\n // IE 下 get 请求会被缓存,所以自动加个时间戳\n if (isIE && api && api.method?.toLocaleLowerCase() === 'get') {\n const timeStamp = `_t=${Date.now()}`;\n if (api.url.indexOf('?') === -1) {\n api.url = api.url + `?${timeStamp}`;\n } else {\n api.url = api.url + `&${timeStamp}`;\n }\n }\n return wrapAdaptor(fn(api), api);\n };\n}\n\nexport function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {\n const adaptor = api.adaptor;\n return adaptor\n ? promise\n .then(async response => {\n debug('api', 'before adaptor data', (response as any).data);\n let result = adaptor((response as any).data, response, api);\n\n if (result?.then) {\n result = await result;\n }\n\n debug('api', 'after adaptor data', result);\n\n return {\n ...response,\n data: result\n };\n })\n .then(ret => responseAdaptor(ret, api))\n : promise.then(ret => responseAdaptor(ret, api));\n}\n\nexport function jsonpFetcher(api: ApiObject): Promise<fetcherResult> {\n return new Promise((resolve, reject) => {\n let script: HTMLScriptElement | null = document.createElement('script');\n let src = api.url;\n\n script.async = true;\n\n function remove() {\n if (script) {\n // @ts-ignore\n script.onload = script.onreadystatechange = script.onerror = null;\n\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n\n script = null;\n }\n }\n\n const jsonp = api.query?.callback || 'axiosJsonpCallback' + uuid();\n const old = (window as any)[jsonp];\n\n (window as any)[jsonp] = function (responseData: any) {\n (window as any)[jsonp] = old;\n\n const response = {\n data: responseData,\n status: 200,\n headers: {}\n };\n\n resolve(response);\n };\n\n const additionalParams: any = {\n _: new Date().getTime(),\n _callback: jsonp\n };\n\n src += (src.indexOf('?') >= 0 ? '&' : '?') + qsstringify(additionalParams);\n\n // @ts-ignore IE 为script.onreadystatechange\n script.onload = script.onreadystatechange = function () {\n // @ts-ignore\n if (!script.readyState || /loaded|complete/.test(script.readyState)) {\n remove();\n }\n };\n\n script.onerror = function () {\n remove();\n const errResponse = {\n status: 0,\n headers: {}\n };\n\n reject(errResponse);\n };\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport function isApiOutdated(\n prevApi: Api | undefined,\n nextApi: Api | undefined,\n prevData: any,\n nextData: any\n): nextApi is Api {\n if (!nextApi) {\n return false;\n } else if (!prevApi) {\n return true;\n }\n\n nextApi = normalizeApi(nextApi);\n\n if (nextApi.autoRefresh === false) {\n return false;\n }\n\n const trackExpression = nextApi.trackExpression ?? nextApi.url;\n\n if (typeof trackExpression !== 'string' || !~trackExpression.indexOf('$')) {\n return false;\n }\n prevApi = normalizeApi(prevApi);\n\n let isModified = false;\n\n if (nextApi.trackExpression || prevApi.trackExpression) {\n isModified =\n tokenize(prevApi.trackExpression || '', prevData) !==\n tokenize(nextApi.trackExpression || '', nextData);\n } else {\n prevApi = buildApi(prevApi as Api, prevData as object, {ignoreData: true});\n nextApi = buildApi(nextApi as Api, nextData as object, {ignoreData: true});\n isModified = prevApi.url !== nextApi.url;\n }\n\n return !!(\n isModified &&\n isValidApi(nextApi.url) &&\n (!nextApi.sendOn || evalExpression(nextApi.sendOn, nextData))\n );\n}\n\nexport function isValidApi(api: string) {\n return (\n api &&\n /^(?:(https?|wss?|taf):\\/\\/[^\\/]+)?(\\/?[^\\s\\/\\?]*){1,}(\\?.*)?$/.test(api)\n );\n}\n\nexport function isEffectiveApi(\n api?: Api,\n data?: any,\n initFetch?: boolean,\n initFetchOn?: string\n): api is Api {\n if (!api) {\n return false;\n }\n if (initFetch === false) {\n return false;\n }\n if (initFetchOn && data && !evalExpression(initFetchOn, data)) {\n return false;\n }\n if (typeof api === 'string' && api.length) {\n return true;\n } else if (isObject(api) && (api as ApiObject).url) {\n if (\n (api as ApiObject).sendOn &&\n data &&\n !evalExpression((api as ApiObject).sendOn as string, data)\n ) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function isSameApi(\n apiA: ApiObject | ApiCacheConfig,\n apiB: ApiObject | ApiCacheConfig\n): boolean {\n return (\n apiA.method === apiB.method &&\n apiA.url === apiB.url &&\n !isObjectShallowModified(apiA.data, apiB.data, false)\n );\n}\n\nexport function getApiCache(api: ApiObject): ApiCacheConfig | undefined {\n // 清理过期cache\n const now = Date.now();\n let result: ApiCacheConfig | undefined;\n\n for (let idx = 0, len = apiCaches.length; idx < len; idx++) {\n const apiCache = apiCaches[idx];\n\n if (now - apiCache.requestTime > (apiCache.cache as number)) {\n apiCaches.splice(idx, 1);\n len--;\n idx--;\n continue;\n }\n\n if (isSameApi(api, apiCache)) {\n result = apiCache;\n break;\n }\n }\n\n return result;\n}\n\nexport function setApiCache(\n api: ApiObject,\n promise: Promise<any>\n): Promise<any> {\n apiCaches.push({\n ...api,\n cachedPromise: promise,\n requestTime: Date.now()\n });\n return promise;\n}\n\nexport function clearApiCache() {\n apiCaches.splice(0, apiCaches.length);\n}\n\nexport function normalizeApiResponseData(data: any) {\n if (typeof data === 'undefined') {\n data = {};\n } else if (!isPlainObject(data)) {\n data = {\n [Array.isArray(data) ? 'items' : 'result']: data\n };\n }\n\n return data;\n}\n\n// window.apiCaches = apiCaches;\n"
12
12
  ]
13
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amis",
3
- "version": "1.8.0-beta.13",
3
+ "version": "1.8.0-beta.17",
4
4
  "description": "一种MIS页面生成工具",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
package/schema.json CHANGED
@@ -48659,7 +48659,7 @@
48659
48659
  },
48660
48660
  "onlyLeaf": {
48661
48661
  "type": "boolean",
48662
- "description": "单选时只允许选择叶子节点"
48662
+ "description": "只允许选择叶子节点"
48663
48663
  },
48664
48664
  "hideNodePathLabel": {
48665
48665
  "type": "boolean",
@@ -1351,6 +1351,7 @@
1351
1351
  --Tabs--strong-arrow-size: #{px2rem(24px)};
1352
1352
 
1353
1353
  --Tabs-borderColor: var(--borderColor);
1354
+ --Tabs--simple-split-color: var(--Tabs-borderColor);
1354
1355
  --Tabs-borderRadius: var(--borderRadius);
1355
1356
  --Tabs-borderWidth: var(--borderWidth);
1356
1357
  --Tabs-color: var(--text-color);
@@ -1491,6 +1492,9 @@
1491
1492
  --Transfer-title-bg: #f6f8f8;
1492
1493
  --Transfer-selection-maxHeight: #{px2rem(350px)};
1493
1494
 
1495
+ --TabsTransfer-title-bg: #f7f7f9;
1496
+ --TabsTransfer-border-color: #e8e9eb;
1497
+
1494
1498
  --Tree-indent: var(--gap-md);
1495
1499
  --Tree-inputHeight: calc(var(--Form-input-height) * 0.85);
1496
1500
  --Tree-item-onHover-bg: rgba(0, 126, 255, 0.08);
@@ -23,8 +23,7 @@
23
23
  box-sizing: border-box;
24
24
  background: var(--InputFormula-header-bgColor);
25
25
  border-radius: var(--borderRadius) var(--borderRadius) 0 0;
26
- border-bottom: var(--Form-input-borderWidth) solid
27
- var(--Form-input-borderColor);
26
+ border-bottom: none;
28
27
  font-weight: 500;
29
28
  }
30
29
 
@@ -68,11 +67,11 @@
68
67
 
69
68
  &-panel {
70
69
  display: flex;
70
+ flex: 1;
71
71
  flex-flow: column nowrap;
72
72
  justify-content: space-between;
73
73
  align-items: stretch;
74
74
  height: #{px2rem(250px)};
75
- width: #{px2rem(220px)};
76
75
  border-radius: var(--borderRadius);
77
76
  border: var(--Form-input-borderWidth) solid var(--Form-input-borderColor);
78
77
 
@@ -93,38 +92,100 @@
93
92
  display: flex;
94
93
  flex-flow: column nowrap;
95
94
  max-height: #{px2rem(220px)};
95
+
96
+ &--tabs {
97
+ max-height: #{px2rem(250px)};
98
+ }
96
99
  }
97
100
  }
98
101
 
99
102
  /* 变量列表 */
100
103
  &-VariableList {
101
104
  &-root {
102
- max-height: #{px2rem(220px)};
105
+ max-height: 100%;
106
+ }
107
+
108
+ &-body {
109
+ display: flex;
110
+ flex-flow: column nowrap;
111
+ max-height: 100%;
112
+ }
113
+
114
+ &-base {
115
+ --Form-input-fontSize: var(--fontSizeSm);
116
+ --gap-sm: #{px2rem(10px)};
117
+ flex: 1;
118
+ max-height: 100%;
103
119
  }
104
120
 
105
- &-root.is-scrollable {
121
+ &-base.is-scrollable {
106
122
  @include scrollbar();
107
123
  overflow-x: hidden;
108
124
  overflow-y: auto;
109
125
  }
110
126
 
111
- &-base {
112
- --Form-input-fontSize: var(--fontSizeSm);
113
- max-width: inherit;
114
- overflow: hidden;
127
+ &-searchBox {
128
+ display: flex;
129
+ width: auto;
130
+ flex-shrink: 0;
131
+ padding: #{px2rem(8px)};
132
+
133
+ & > div {
134
+ flex: 1;
135
+ font-size: var(--fontSizeSm);
136
+ height: var(--gap-xl);
137
+ }
115
138
  }
116
139
 
117
140
  &-tabs {
118
141
  --Tabs-linkFontSize: var(--fontSizeSm);
119
142
  --Tabs--card-linkPadding: #{px2rem(5px)};
120
143
 
121
- max-height: #{px2rem(220px)};
144
+ max-height: 100%;
122
145
  display: flex;
123
146
  flex-flow: column nowrap;
124
147
  justify-content: space-between;
125
148
 
126
- & > ul {
127
- border-top: none;
149
+ .#{$ns}Tabs {
150
+ &-content {
151
+ padding: 0;
152
+ .#{$ns}FormulaEditor-VariableList {
153
+ &-sub {
154
+ .#{$ns}FormulaEditor-VariableList-body {
155
+ max-height: #{px2rem(220px)};
156
+ overflow-y: hidden;
157
+ }
158
+ &-FormulaEditor-VariableList-base {
159
+ @include scrollbar();
160
+ overflow-x: hidden;
161
+ overflow-y: auto;
162
+ }
163
+ }
164
+ }
165
+ }
166
+ &-linksContainer {
167
+ &-wrapper {
168
+ @include panel-header();
169
+ max-height: px2rem(30px);
170
+ min-height: px2rem(30px);
171
+ ul.#{$ns}Tabs-links {
172
+ > li {
173
+ height: 30px;
174
+ line-height: 30px;
175
+ > a {
176
+ margin: 0;
177
+ padding: 0;
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ &--overflow {
184
+ > div {
185
+ margin: 0;
186
+ }
187
+ }
188
+ }
128
189
  }
129
190
 
130
191
  & > div {
@@ -170,6 +231,10 @@
170
231
  align-items: stretch;
171
232
  flex: 1;
172
233
 
234
+ .#{$ns}FormulaEditor-panel {
235
+ width: #{px2rem(188px)};
236
+ }
237
+
173
238
  &:not(:last-child) {
174
239
  margin-right: #{px2rem(10px)};
175
240
  }
@@ -6,7 +6,6 @@
6
6
  &-line {
7
7
  display: inline-block;
8
8
  width: 100%;
9
- height: 10px;
10
9
 
11
10
  &-inter {
12
11
  height: 100%;
@@ -30,10 +29,7 @@
30
29
  &-bar {
31
30
  float: left;
32
31
  width: 0;
33
- height: 100%;
34
- font-size: 12px;
35
- line-height: 10px;
36
- text-align: center;
32
+ height: 10px;
37
33
  background: var(--primary);
38
34
  transition: width var(--animation-duration) ease;
39
35
 
@@ -75,8 +71,7 @@
75
71
  }
76
72
 
77
73
  &-circle {
78
- width: 120px;
79
- height: 120px;
74
+ width: 100%;
80
75
  position: relative;
81
76
  &-text {
82
77
  position: absolute;
@@ -100,6 +100,7 @@
100
100
  }
101
101
 
102
102
  .#{$ns}DateControl {
103
+ width: auto !important; // 因为这里要撑开父容器
103
104
  &.is-date > .#{$ns}DatePicker {
104
105
  min-width: calc(var(--DatePicker-minWidth) + var(--fontSizeLg) * 2);
105
106
  }
@@ -115,6 +115,27 @@
115
115
  .#{$ns}Transfer-title {
116
116
  height: 40px;
117
117
  }
118
+ &-tabs {
119
+ .#{$ns}Tabs-linksContainer {
120
+ padding-left: px2rem(20px);
121
+ padding-top: px2rem(8px);
122
+ background-color: var(--TabsTransfer-title-bg);
123
+ }
124
+ }
125
+
126
+ &-search {
127
+ margin: var(--gap-sm) var(--gap-sm);
128
+ .#{$ns}InputBox {
129
+ border: 1px solid var(--TabsTransfer-border-color);
130
+ }
131
+ }
132
+
133
+ .#{$ns}Transfer-result {
134
+ .#{$ns}Transfer-title {
135
+ height: px2rem(40px);
136
+ line-height: px2rem(40px);
137
+ }
138
+ }
118
139
 
119
140
  // .#{$ns}Transfer-result {
120
141
  // flex-grow: unset;
@@ -26,7 +26,7 @@ title: Display
26
26
  | grid | display: grid; |
27
27
  | inline-grid | display: inline-grid; |
28
28
  | contents | display: contents; |
29
- | hidden | display: hidden; |
29
+ | hidden | display: none; |
30
30
 
31
31
  ## 用法
32
32
  css 相关的知识点就不介绍了,请参考: