cloud-web-corejs 1.0.54-dev.705 → 1.0.54-dev.707

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.54-dev.705",
4
+ "version": "1.0.54-dev.707",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -1,25 +1,3 @@
1
- function isNull(val) {
2
- return val == null || val === "" || val === undefined;
3
- }
4
-
5
- export function formatJsonContent(content) {
6
- if (isNull(content)) return "";
7
- if (typeof content === "object") {
8
- try {
9
- return JSON.stringify(content, null, 2);
10
- } catch (e) {
11
- return String(content);
12
- }
13
- }
14
- const text = String(content).trim();
15
- if (!text) return "";
16
- try {
17
- return JSON.stringify(JSON.parse(text), null, 2);
18
- } catch (e) {
19
- return text;
20
- }
21
- }
22
-
23
1
  function parseExportContent(content) {
24
2
  if (!content) {
25
3
  return { list: [], isArray: true };
@@ -62,129 +40,59 @@ export function getExportArchiveType(url) {
62
40
  return config ? config.type : null;
63
41
  }
64
42
 
65
- function getFormScriptPrefix(item) {
66
- const scriptCode = item.scriptCode || "script";
67
- const formCode = item.formCode;
68
- return formCode ? `S-${scriptCode}-${formCode}` : `S-${scriptCode}`;
43
+ function getFormScriptFileName(scriptCode, formCode) {
44
+ const code = scriptCode || "script";
45
+ return formCode ? `S&${code}&${formCode}` : `S&${code}`;
69
46
  }
70
47
 
71
- function appendFormTemplateExtraFiles(item, extraFiles, usedNames) {
48
+ function buildFormTemplateScriptExtras(item) {
72
49
  const formCode = item.formCode || "form";
50
+ const usedNames = {};
73
51
 
74
- if (!isNull(item.formViewContent)) {
75
- const formatted = formatJsonContent(item.formViewContent);
76
- item.formViewContent = formatted;
77
- extraFiles.push({
78
- fileName: uniqueFileName(`F-${formCode}-Item`, usedNames),
79
- content: formatted,
80
- });
81
- }
82
-
83
- (item.formScriptDTOs || []).forEach((scriptItem) => {
84
- if (!scriptItem || isNull(scriptItem.script)) return;
85
- const scriptCode = scriptItem.scriptCode || "script";
86
- const scriptFormCode = scriptItem.formCode || formCode;
87
- const formatted = formatJsonContent(scriptItem.script);
88
- scriptItem.script = formatted;
89
- extraFiles.push({
52
+ return (item.formScriptDTOs || []).reduce((files, scriptItem) => {
53
+ if (!scriptItem) return files;
54
+ files.push({
90
55
  fileName: uniqueFileName(
91
- `FS-${scriptCode}-${scriptFormCode}-Item`,
56
+ getFormScriptFileName(scriptItem.scriptCode, scriptItem.formCode || formCode),
92
57
  usedNames
93
58
  ),
94
- content: formatted,
95
- });
96
- });
97
- }
98
-
99
- function formatExportFields(item, archiveType) {
100
- if (archiveType === ARCHIVE_TYPE.FORM_SCRIPT && !isNull(item.script)) {
101
- item.script = formatJsonContent(item.script);
102
- return;
103
- }
104
- if (archiveType === ARCHIVE_TYPE.FORM_TEMPLATE) {
105
- if (!isNull(item.formViewContent)) {
106
- item.formViewContent = formatJsonContent(item.formViewContent);
107
- }
108
- (item.formScriptDTOs || []).forEach((scriptItem) => {
109
- if (scriptItem && !isNull(scriptItem.script)) {
110
- scriptItem.script = formatJsonContent(scriptItem.script);
111
- }
112
- });
113
- }
114
- }
115
-
116
- function processFormScriptArchive(item) {
117
- const prefix = getFormScriptPrefix(item);
118
- formatExportFields(item, ARCHIVE_TYPE.FORM_SCRIPT);
119
- const extraFiles = [];
120
-
121
- if (!isNull(item.script)) {
122
- extraFiles.push({
123
- fileName: `${prefix}-Item`,
124
- content: item.script,
59
+ content: JSON.stringify(scriptItem, null, 2),
125
60
  });
126
- }
127
-
128
- return {
129
- mainContent: JSON.stringify(item, null, 2),
130
- mainFileName: `${prefix}-Source`,
131
- extraFiles,
132
- };
133
- }
134
-
135
- function processFormTemplateArchive(item) {
136
- const formCode = item.formCode || "form";
137
- const extraFiles = [];
138
- const usedNames = {};
139
-
140
- appendFormTemplateExtraFiles(item, extraFiles, usedNames);
141
-
142
- return {
143
- mainContent: JSON.stringify(item, null, 2),
144
- mainFileName: `F-${formCode}-Source`,
145
- extraFiles,
146
- };
147
- }
148
-
149
- function processTableArchive(item) {
150
- return {
151
- mainContent: JSON.stringify(item, null, 2),
152
- mainFileName: `T-${item.taBm || "table"}`,
153
- extraFiles: [],
154
- };
61
+ return files;
62
+ }, []);
155
63
  }
156
64
 
157
- export function processArchiveExport(content, archiveType) {
158
- const { list, invalid } = parseExportContent(content);
159
- if (invalid || !list.length) {
160
- return { mainContent: content, mainFileName: null, extraFiles: [] };
161
- }
65
+ function buildArchiveResult(item, archiveType) {
66
+ const mainContent = JSON.stringify(item, null, 2);
162
67
 
163
- const item = list[0];
164
68
  switch (archiveType) {
165
69
  case ARCHIVE_TYPE.FORM_SCRIPT:
166
- return processFormScriptArchive(item);
70
+ return {
71
+ mainContent,
72
+ mainFileName: getFormScriptFileName(item.scriptCode, item.formCode),
73
+ extraFiles: [],
74
+ };
167
75
  case ARCHIVE_TYPE.FORM_TEMPLATE:
168
- return processFormTemplateArchive(item);
76
+ return {
77
+ mainContent,
78
+ mainFileName: `F&${item.formCode || "form"}`,
79
+ extraFiles: buildFormTemplateScriptExtras(item),
80
+ };
169
81
  case ARCHIVE_TYPE.TABLE:
170
- return processTableArchive(item);
82
+ return {
83
+ mainContent,
84
+ mainFileName: `T&${item.taBm || "table"}`,
85
+ extraFiles: [],
86
+ };
171
87
  default:
172
- return { mainContent: content, mainFileName: null, extraFiles: [] };
88
+ return { mainContent, mainFileName: null, extraFiles: [] };
173
89
  }
174
90
  }
175
91
 
176
- /** 批量导出:仅格式化主 JSON 中的大字段,不额外拆文件 */
177
- export function formatBatchExportContent(content, url) {
178
- const archiveType = getExportArchiveType(url);
179
- if (!archiveType || archiveType === ARCHIVE_TYPE.TABLE) {
180
- return content;
181
- }
182
-
183
- const { list, isArray, invalid } = parseExportContent(content);
92
+ export function processArchiveExport(content, archiveType) {
93
+ const { list, invalid } = parseExportContent(content);
184
94
  if (invalid || !list.length) {
185
- return content;
95
+ return { mainContent: content, mainFileName: null, extraFiles: [] };
186
96
  }
187
-
188
- list.forEach((item) => formatExportFields(item, archiveType));
189
- return JSON.stringify(isArray ? list : list[0], null, 2);
97
+ return buildArchiveResult(list[0], archiveType);
190
98
  }
@@ -5,7 +5,6 @@ import exportDialog from "./exportDialog.vue";
5
5
  import { getBdEnv } from "@base/api/user";
6
6
  import { encrypt } from "@base/utils/aes";
7
7
  import {
8
- formatBatchExportContent,
9
8
  getExportArchiveType,
10
9
  processArchiveExport,
11
10
  } from "./exportUtil";
@@ -107,9 +106,12 @@ moudule.install = function (Vue) {
107
106
  if (archiveType) {
108
107
  const processed = processArchiveExport(content, archiveType);
109
108
  downloadTxt(processed.mainFileName, processed.mainContent);
110
- downloadExtraFiles(processed.extraFiles);
109
+ (processed.extraFiles || []).forEach((file, index) => {
110
+ setTimeout(() => {
111
+ downloadTxt(file.fileName, file.content);
112
+ }, (index + 1) * 300);
113
+ });
111
114
  } else {
112
- content = formatBatchExportContent(content, options.url);
113
115
  let fileName = options.fileName;
114
116
  if (!fileName) {
115
117
  const timeStr = res.time
@@ -157,15 +159,6 @@ moudule.install = function (Vue) {
157
159
  };
158
160
  };
159
161
 
160
- function downloadExtraFiles(extraFiles) {
161
- if (!extraFiles || !extraFiles.length) return;
162
- extraFiles.forEach((file, index) => {
163
- setTimeout(() => {
164
- downloadTxt(file.fileName, file.content);
165
- }, (index + 1) * 300);
166
- });
167
- }
168
-
169
162
  function downloadTxt(fileName, content) {
170
163
  // 创建Blob对象
171
164
  const blob = new Blob([content], { type: "text/plain;charset=utf-8" });
@@ -1,97 +1,118 @@
1
- // import dayjs from 'dayjs'
2
- import moment from 'moment'
1
+ function parseToDate(input) {
2
+ if (input == null || input === "") {
3
+ return null;
4
+ }
5
+ if (input instanceof Date) {
6
+ return isNaN(input.getTime()) ? null : input;
7
+ }
8
+ if (typeof input === "number") {
9
+ const ms = String(input).length === 10 ? input * 1000 : input;
10
+ const date = new Date(ms);
11
+ return isNaN(date.getTime()) ? null : date;
12
+ }
13
+ if (typeof input === "string") {
14
+ const trimmed = input.trim();
15
+ if (!trimmed) {
16
+ return null;
17
+ }
18
+ if (/^[0-9]+$/.test(trimmed)) {
19
+ const num = parseInt(trimmed, 10);
20
+ const ms = trimmed.length === 10 ? num * 1000 : num;
21
+ const date = new Date(ms);
22
+ return isNaN(date.getTime()) ? null : date;
23
+ }
24
+ const date = new Date(
25
+ trimmed.includes("-") ? trimmed.replace(/-/g, "/") : trimmed
26
+ );
27
+ return isNaN(date.getTime()) ? null : date;
28
+ }
29
+ return null;
30
+ }
3
31
 
4
- function validateDate(dateStr) {
5
- let date = new Date( Date.parse(dateStr) )
6
- return (date instanceof Date) && !isNaN(date.getTime())
32
+ function formatByPattern(date, pattern) {
33
+ const parsedDate = parseToDate(date);
34
+ if (!parsedDate) {
35
+ return date;
36
+ }
37
+ const pad = (n) => String(n).padStart(2, "0");
38
+ const tokens = {
39
+ YYYY: String(parsedDate.getFullYear()),
40
+ MM: pad(parsedDate.getMonth() + 1),
41
+ DD: pad(parsedDate.getDate()),
42
+ HH: pad(parsedDate.getHours()),
43
+ mm: pad(parsedDate.getMinutes()),
44
+ ss: pad(parsedDate.getSeconds()),
45
+ hh: pad(parsedDate.getHours() % 12 || 12),
46
+ };
47
+ let result = pattern;
48
+ Object.keys(tokens).forEach((key) => {
49
+ result = result.replace(key, tokens[key]);
50
+ });
51
+ return result;
7
52
  }
8
53
 
9
54
  export function formatDate1(date) {
10
- if (!validateDate(date)) {
11
- return date;
12
- }
13
-
14
- // return dayjs(date).format('YYYY-MM-DD')
15
- return moment(date).format('YYYY-MM-DD')
55
+ return formatByPattern(date, "YYYY-MM-DD");
16
56
  }
17
57
 
18
58
  export function formatDate2(date) {
19
- if (!validateDate(date)) {
20
- return date;
21
- }
22
-
23
- // return dayjs(date).format('YYYY/MM/DD')
24
- return moment(date).format('YYYY/MM/DD')
59
+ return formatByPattern(date, "YYYY/MM/DD");
25
60
  }
26
61
 
27
62
  export function formatDate3(date) {
28
- if (!validateDate(date)) {
29
- return date;
30
- }
31
-
32
- // return dayjs(date).format('YYYY年MM月DD日')
33
- return moment(date).format('YYYY年MM月DD日')
63
+ return formatByPattern(date, "YYYY年MM月DD日");
34
64
  }
35
65
 
36
66
  export function formatDate4(date) {
37
- if (!validateDate(date)) {
38
- return date;
39
- }
40
-
41
- // return dayjs(date).format('YYYY-MM-DD HH:mm:ss')
42
- return moment(date).format('YYYY-MM-DD HH:mm:ss')
67
+ return formatByPattern(date, "YYYY-MM-DD HH:mm:ss");
43
68
  }
44
69
 
45
70
  export function formatDate5(date) {
46
- if (!validateDate(date)) {
47
- return date;
48
- }
49
-
50
- // return dayjs(date).format('YYYY-MM-DD hh:mm:ss')
51
- return moment(date).format('YYYY-MM-DD hh:mm:ss')
71
+ return formatByPattern(date, "YYYY-MM-DD hh:mm:ss");
52
72
  }
53
73
 
54
74
  // ###,###,###,##0.######
55
75
  export function formatNumber1(v) {
56
- if (typeof(v) != "number") {
57
- return v;
58
- }
76
+ if (typeof v != "number") {
77
+ return v;
78
+ }
59
79
  let length = getFixedSize(v);
60
- switch(length){
61
- case 0:
62
- v = v.toFixed(0)
63
- break;
64
- case 1:
65
- v = v.toFixed(1)
66
- break;
67
- case 2:
68
- v = v.toFixed(2)
69
- break;
70
- case 3:
71
- v = v.toFixed(3)
72
- break;
73
- case 4:
74
- v = v.toFixed(4)
75
- break;
76
- case 5:
77
- v = v.toFixed(5)
78
- break;
79
- default:
80
- v = v.toFixed(6)
81
- }
82
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
83
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
84
- return $1+",";
85
- });
86
- })
87
- return res;
80
+ switch (length) {
81
+ case 0:
82
+ v = v.toFixed(0);
83
+ break;
84
+ case 1:
85
+ v = v.toFixed(1);
86
+ break;
87
+ case 2:
88
+ v = v.toFixed(2);
89
+ break;
90
+ case 3:
91
+ v = v.toFixed(3);
92
+ break;
93
+ case 4:
94
+ v = v.toFixed(4);
95
+ break;
96
+ case 5:
97
+ v = v.toFixed(5);
98
+ break;
99
+ default:
100
+ v = v.toFixed(6);
101
+ }
102
+ let res = v.toString().replace(/\d+/, function (n) {
103
+ // 先提取整数部分
104
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
105
+ return $1 + ",";
106
+ });
107
+ });
108
+ return res;
88
109
  }
89
110
 
90
- function getFixedSize(v){
111
+ function getFixedSize(v) {
91
112
  let size = 0;
92
- if(v!==null && v!==undefined){
113
+ if (v !== null && v !== undefined) {
93
114
  let arr = v.toString().split(".");
94
- if(arr.length>1){
115
+ if (arr.length > 1) {
95
116
  size = arr[1].length;
96
117
  }
97
118
  }
@@ -99,123 +120,128 @@ function getFixedSize(v){
99
120
  }
100
121
  //###,###,###,##0.00####
101
122
  export function formatNumber2(v) {
102
- if (typeof(v) != "number") {
103
- return v;
104
- }
105
-
106
- let length = getFixedSize(v);
107
- switch(length){
108
- case 0:
109
- case 1:
110
- case 2:
111
- v = v.toFixed(2)
112
- break;
113
- case 3:
114
- v = v.toFixed(3)
115
- break;
116
- case 4:
117
- v = v.toFixed(4)
118
- break;
119
- case 5:
120
- v = v.toFixed(5)
121
- break;
122
- default:
123
- v = v.toFixed(6)
124
- }
125
-
126
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
127
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
128
- return $1+",";
129
- });
130
- })
131
- return res;
123
+ if (typeof v != "number") {
124
+ return v;
125
+ }
126
+
127
+ let length = getFixedSize(v);
128
+ switch (length) {
129
+ case 0:
130
+ case 1:
131
+ case 2:
132
+ v = v.toFixed(2);
133
+ break;
134
+ case 3:
135
+ v = v.toFixed(3);
136
+ break;
137
+ case 4:
138
+ v = v.toFixed(4);
139
+ break;
140
+ case 5:
141
+ v = v.toFixed(5);
142
+ break;
143
+ default:
144
+ v = v.toFixed(6);
145
+ }
146
+
147
+ let res = v.toString().replace(/\d+/, function (n) {
148
+ // 先提取整数部分
149
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
150
+ return $1 + ",";
151
+ });
152
+ });
153
+ return res;
132
154
  }
133
155
 
134
156
  // ###,###,###,##0.000000
135
157
  export function formatNumber3(v) {
136
- if (typeof(v) != "number") {
137
- return v;
138
- }
139
-
140
- v = v.toFixed(6)
141
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
142
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
143
- return $1+",";
144
- });
145
- })
146
- return res;
158
+ if (typeof v != "number") {
159
+ return v;
160
+ }
161
+
162
+ v = v.toFixed(6);
163
+ let res = v.toString().replace(/\d+/, function (n) {
164
+ // 先提取整数部分
165
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
166
+ return $1 + ",";
167
+ });
168
+ });
169
+ return res;
147
170
  }
148
171
  // ###,###,###,##0.000
149
172
  export function formatNumber4(v) {
150
- if (typeof(v) != "number") {
151
- return v;
152
- }
153
-
154
- v = v.toFixed(3)
155
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
156
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
157
- return $1+",";
158
- });
159
- })
160
- return res;
173
+ if (typeof v != "number") {
174
+ return v;
175
+ }
176
+
177
+ v = v.toFixed(3);
178
+ let res = v.toString().replace(/\d+/, function (n) {
179
+ // 先提取整数部分
180
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
181
+ return $1 + ",";
182
+ });
183
+ });
184
+ return res;
161
185
  }
162
186
 
163
187
  // ###,###,###,##0.00
164
188
  export function formatNumber5(v) {
165
- if (typeof(v) != "number") {
166
- return v;
167
- }
168
-
169
- v = v.toFixed(2)
170
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
171
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
172
- return $1+",";
173
- });
174
- })
175
- return res;
189
+ if (typeof v != "number") {
190
+ return v;
191
+ }
192
+
193
+ v = v.toFixed(2);
194
+ let res = v.toString().replace(/\d+/, function (n) {
195
+ // 先提取整数部分
196
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
197
+ return $1 + ",";
198
+ });
199
+ });
200
+ return res;
176
201
  }
177
202
 
178
203
  // ###,###,###,##0
179
204
  export function formatNumber6(v) {
180
- if (typeof(v) != "number") {
181
- return v;
182
- }
183
-
184
- v = v.toFixed(0)
185
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
186
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
187
- return $1+",";
188
- });
189
- })
190
- return res;
205
+ if (typeof v != "number") {
206
+ return v;
207
+ }
208
+
209
+ v = v.toFixed(0);
210
+ let res = v.toString().replace(/\d+/, function (n) {
211
+ // 先提取整数部分
212
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
213
+ return $1 + ",";
214
+ });
215
+ });
216
+ return res;
191
217
  }
192
218
 
193
219
  // ###,##0.00##%
194
220
  export function formatNumber7(v) {
195
- if (typeof(v) != "number") {
196
- return v;
197
- }
198
-
199
- let length = getFixedSize(v);
200
- v = v*100
201
- switch(length){
202
- case 0:
203
- case 1:
204
- case 2:
205
- v = v.toFixed(2)
206
- break;
207
- case 3:
208
- v = v.toFixed(3)
209
- break;
210
- default:
211
- v = v.toFixed(4)
212
- }
213
-
214
- let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
215
- return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
216
- return $1+",";
217
- });
218
- })
219
- return res+'%';
220
- }
221
+ if (typeof v != "number") {
222
+ return v;
223
+ }
221
224
 
225
+ let length = getFixedSize(v);
226
+ v = v * 100;
227
+ switch (length) {
228
+ case 0:
229
+ case 1:
230
+ case 2:
231
+ v = v.toFixed(2);
232
+ break;
233
+ case 3:
234
+ v = v.toFixed(3);
235
+ break;
236
+ default:
237
+ v = v.toFixed(4);
238
+ }
239
+
240
+ let res = v.toString().replace(/\d+/, function (n) {
241
+ // 先提取整数部分
242
+ return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
243
+ return $1 + ",";
244
+ });
245
+ });
246
+ return res + "%";
247
+ }