|
@@ -0,0 +1,45 @@
|
|
|
+import _ from 'lodash-es';
|
|
|
+
|
|
|
+/** 将 formData 格式化为 api 需要的格式 */
|
|
|
+export function parseFormDataToParams(formData: Record<string, number | string | undefined>) {
|
|
|
+ const params = {};
|
|
|
+ _.forEach(formData, (v: string | undefined, k) => {
|
|
|
+ // 如果是以 moduleData 打头的数据要特殊处理,因为这是配置的主要项目,表单配置见 ./configuration.data
|
|
|
+ if (v && k.startsWith('moduleData')) {
|
|
|
+ _.set(params, k, JSON.parse(v));
|
|
|
+ } else {
|
|
|
+ _.set(params, k, v);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return params;
|
|
|
+}
|
|
|
+
|
|
|
+/** 将 api 返回的 moduleData 格式化为可用的对象,如果传入了 data,那么会返回带数据的配置,否则返回默认配置 */
|
|
|
+export function parseModuleDataToObject(moduleData: string): { chart: { label: string; prop: string }[]; list: { label: string; prop: string }[] };
|
|
|
+export function parseModuleDataToObject(
|
|
|
+ moduleData: string,
|
|
|
+ data: any
|
|
|
+): { chart: { label: string; value: string }[]; list: { label: string; value: string }[] };
|
|
|
+
|
|
|
+export function parseModuleDataToObject(moduleData: string, data?: any) {
|
|
|
+ const raw = JSON.parse(moduleData);
|
|
|
+ if (data) {
|
|
|
+ return {
|
|
|
+ chart: _.map(_.get(raw, 'chart', []), (label, prop) => {
|
|
|
+ return { label, value: _.get(data, prop, '/') };
|
|
|
+ }),
|
|
|
+ list: _.map(_.get(raw, 'list', []), (label, prop) => {
|
|
|
+ return { label, value: _.get(data, prop, '/') };
|
|
|
+ }),
|
|
|
+ };
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ chart: _.map(_.get(raw, 'chart', []), (label, prop) => {
|
|
|
+ return { label, prop };
|
|
|
+ }),
|
|
|
+ list: _.map(_.get(raw, 'list', []), (label, prop) => {
|
|
|
+ return { label, prop };
|
|
|
+ }),
|
|
|
+ };
|
|
|
+}
|