@gingkoo/base-server 0.0.2-alpha.2 → 0.0.2-alpha.4

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@gingkoo/base-server",
3
- "version": "0.0.2-alpha.2",
3
+ "version": "0.0.2-alpha.4",
4
4
  "description": "",
5
5
  "main": "app.js",
6
6
  "scripts": {
package/static/1.csv ADDED
@@ -0,0 +1 @@
1
+ 1,2
package/static/1.xlsx ADDED
Binary file
package/static/12.xls ADDED
Binary file
@@ -1,23 +1,81 @@
1
1
  // /fss/resources/share/1__2701fc.xlsx
2
2
  // https://minio.cnbabylon.com/public/luckysheet/money-manager-2.xlsx
3
- const getUrlParams = () => {
4
- let params = {};
5
- let url = location.href;
6
- let index = url.lastIndexOf('?');
3
+ function getUrlParams() {
4
+ var params = {};
5
+ var url = location.href;
6
+ var index = url.lastIndexOf('?');
7
7
  if (~index) {
8
8
  url
9
9
  .slice(index + 1)
10
10
  .split('&')
11
11
  .forEach((v) => {
12
- let item = v.split('=');
12
+ var item = v.split('=');
13
13
  params[item[0]] = item[1];
14
14
  });
15
15
  }
16
16
  return params;
17
- };
17
+ }
18
+
19
+ var params = getUrlParams();
20
+ var fileurl = decodeURIComponent(params.url);
18
21
 
19
- let params = getUrlParams();
20
- let fileurl = decodeURIComponent(params.url);
22
+ var defaultOptions = {
23
+ title: '',
24
+ lang: 'zh', // 设定表格语言
25
+ gridKey: 'excel-1', //
26
+ showinfobar: false, // 顶部信息栏
27
+ showtoolbar: false, // 工具栏
28
+ showstatisticBar: false, // 底部计数栏
29
+ showstatisticBarConfig: false,
30
+ userInfo: false,
31
+ enableAddRow: false,
32
+ enableAddCol: false,
33
+ addRowCount: false,
34
+ sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
35
+ showtoolbar: false,
36
+ autoCalc: true,
37
+ autoCalcType: ['label'],
38
+ allowEdit: false, // 只读 文字
39
+ allowMode: false, // 只读 样式
40
+ enableAddRow: false, // 允许添加行
41
+ enableAddBackTop: false, // 允许回到顶部
42
+ devicePixelRatio: window.devicePixelRatio || 5, // 设备比例,比例越大表格分辨率越高
43
+ cellRightClickConfig: {
44
+ // 自定义配置单元格右击菜单
45
+ copy: false, // 复制
46
+ copyAs: false, // 复制为
47
+ paste: false, // 粘贴
48
+ insertRow: false, // 插入行
49
+ insertColumn: false, // 插入列
50
+ deleteRow: false, // 删除选中行
51
+ deleteColumn: false, // 删除选中列
52
+ deleteCell: false, // 删除单元格
53
+ hideRow: false, // 隐藏选中行和显示选中行
54
+ hideColumn: false, // 隐藏选中列和显示选中列
55
+ rowHeight: false, // 行高
56
+ columnWidth: false, // 列宽
57
+ clear: false, // 清除内容
58
+ matrix: false, // 矩阵操作选区
59
+ sort: false, // 排序选区
60
+ filter: false, // 筛选选区
61
+ chart: false, // 图表生成
62
+ image: false, // 插入图片
63
+ link: false, // 插入链接
64
+ data: false, // 数据验证
65
+ cellFormat: false, // 设置单元格格式
66
+ defaultFontSize: 11, // 默认11 默认字体大小
67
+ },
68
+ showsheetbar: true, // 是否显示底部sheet页按钮
69
+ showsheetbarConfig: {
70
+ // 自定义配置底部sheet页按钮
71
+ add: false, //新增sheet
72
+ menu: false, //sheet管理菜单
73
+ sheet: true, //sheet页显示
74
+ },
75
+ rowHeaderWidth: 46, // 默认 46 行标题区域的宽度,如果设置为0,则表示隐藏行标题
76
+ columnHeaderHeight: 20, // 默认20 列标题区域的高度,如果设置为0,则表示隐藏列标题
77
+ sheetFormulaBar: true, // 是否显示公式栏
78
+ };
21
79
 
22
80
  var page = {
23
81
  // 读取二进制流文件内容,转换成html
@@ -48,7 +106,7 @@ var page = {
48
106
  return;
49
107
  }
50
108
 
51
- let suffix = '';
109
+ var suffix = '';
52
110
  if (fileurl && /^.*\/[^/]+\.[^/]+$/.test(fileurl)) {
53
111
  suffix = fileurl.slice(fileurl.lastIndexOf('.') + 1);
54
112
  }
@@ -75,39 +133,88 @@ var page = {
75
133
  },
76
134
  };
77
135
 
78
- var loadLuckySheet = (exportJson) => {
136
+ function transform(sheet) {
137
+ let finalCellData = [];
138
+ let sheetCelldata = sheet?.celldata || [];
139
+ if (!sheetCelldata.length) {
140
+ sheetCelldata = sheet?.data || [];
141
+ }
142
+ if (!sheetCelldata.length) return sheet;
143
+
144
+ let sheetColumn = sheet.column < 60 ? 60 : sheet.column;
145
+ let sheetRow = sheet.row < 84 ? 84 : sheet.row;
146
+
147
+ // 兼容window电脑字体 模糊问题
148
+ finalCellData = sheetCelldata.map((cell) => {
149
+ if (cell && cell.v && cell.v.fs && cell.v.fs < 12) {
150
+ cell.v.ff = '微软雅黑';
151
+ cell.v.fs = 12;
152
+ cell.v.tb = 2; // tb 为2会卡顿
153
+ cell.v.vt = 1;
154
+ cell.v.ht = 1;
155
+ if (cell.v?.ct?.s) {
156
+ cell.v.ct.s.map((v) => {
157
+ v.ff = '微软雅黑';
158
+ v.fs = 12;
159
+ });
160
+ }
161
+ return cell;
162
+ }
163
+ return cell;
164
+ });
165
+
166
+ if (params.cut) {
167
+ // 隐藏多余空格
168
+ let row = 0,
169
+ col = 0;
170
+ finalCellData.forEach((cell) => {
171
+ if (cell.v?.m || cell.v?.v || cell.v.ct?.fa?.s) {
172
+ col = col < cell.c ? cell.c : col;
173
+ row = row < cell.r ? cell.r : row;
174
+ }
175
+ });
176
+ finalCellData = finalCellData.filter((cell) => cell.c <= col && cell.r <= row);
177
+ sheetColumn = col + 1;
178
+ sheetRow = row + 1;
179
+ }
180
+
181
+ return {
182
+ ...sheet,
183
+ celldata: finalCellData.map((cell) => {
184
+ let { v } = cell;
185
+ v = v || {};
186
+ let { tb, ...rest } = v;
187
+ return {
188
+ ...cell,
189
+ v: {
190
+ ...rest,
191
+ tb: 0,
192
+ },
193
+ };
194
+ }),
195
+ data: [],
196
+ column: sheetColumn,
197
+ row: sheetRow,
198
+ };
199
+ }
200
+
201
+ var loadLuckySheet = function (exportJson) {
79
202
  if (exportJson.sheets == null || exportJson.sheets.length == 0) {
80
- alert('无法读取excel文件的内容,当前不支持xls文件!');
203
+ console.log('无法读取excel文件的内容');
81
204
  return;
82
205
  }
83
206
 
84
207
  window.luckysheet.destroy();
85
208
  window.luckysheet.create({
209
+ ...defaultOptions,
86
210
  container: 'luckysheet',
87
- data: exportJson.sheets,
88
- lang: 'zh',
89
- title: '',
90
- userInfo: false,
91
- showinfobar: false,
92
- showstatisticBar: false,
93
- enableAddRow: false,
94
- enableAddCol: false,
95
- addRowCount: false,
96
- enableAddBackTop: false,
97
- sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
98
- allowEdit: false, // 是否允许前台编辑——edit
99
- showtoolbar: false,
100
- showstatisticBarConfig: false,
101
- showsheetbarConfig: {
102
- add: false, //新增sheet
103
- menu: false, //sheet管理菜单
104
- sheet: true, //sheet页显示
105
- },
211
+ data: !exportJson.ext ? exportJson.sheets.map((v) => transform(v)) : exportJson.sheets,
212
+
106
213
  hook: {
107
214
  workbookCreateAfter() {
108
215
  setTimeout(() => {
109
- let c = document.querySelectorAll('#luckysheet-sheet-container-c>div');
110
- let ids = [];
216
+ var c = document.querySelectorAll('#luckysheet-sheet-container-c>div');
217
+ var ids = [];
111
218
 
112
219
  Array.from(c).forEach((v) => {
113
220
  if (ids.includes(v.id)) {
@@ -121,7 +228,7 @@ var loadLuckySheet = (exportJson) => {
121
228
  });
122
229
  };
123
230
 
124
- page.getFileInfo((file) => {
231
+ page.getFileInfo(function (file) {
125
232
  if (file.ext == 'xlsx') {
126
233
  LuckyExcel.transformExcelToLucky(file.content, function (exportJson, luckysheetfile) {
127
234
  loadLuckySheet(exportJson);
@@ -150,5 +257,5 @@ page.getFileInfo((file) => {
150
257
  _sheet.data = utils.xlsToLuckySheet(wb.Sheets[name], _sheet);
151
258
  sheets.push(_sheet);
152
259
  }
153
- loadLuckySheet({ sheets: sheets });
260
+ loadLuckySheet({ sheets: sheets, ext: file.ext });
154
261
  });