ts-glitter 21.3.9 → 21.4.1
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/lowcode/Entry.js +18 -1
- package/lowcode/Entry.ts +19 -1
- package/lowcode/api/pageConfig.js +29 -10
- package/lowcode/api/pageConfig.ts +43 -11
- package/lowcode/backend-manager/bg-blog.js +5 -0
- package/lowcode/backend-manager/bg-blog.ts +5 -0
- package/lowcode/cms-plugin/menus-setting.js +15 -6
- package/lowcode/cms-plugin/menus-setting.ts +23 -6
- package/lowcode/cms-plugin/module/user-excel.js +11 -5
- package/lowcode/cms-plugin/module/user-excel.ts +11 -5
- package/lowcode/cms-plugin/shopping-discount-setting.js +236 -234
- package/lowcode/cms-plugin/shopping-discount-setting.ts +137 -134
- package/lowcode/cms-plugin/third-party-line.js +34 -0
- package/lowcode/cms-plugin/third-party-line.ts +34 -0
- package/lowcode/editor-components/global-editor.js +60 -0
- package/lowcode/editor-components/global-editor.ts +65 -0
- package/lowcode/editor-components/global-widget/bridge.js +40 -34
- package/lowcode/editor-components/global-widget/bridge.ts +42 -34
- package/lowcode/glitterBundle/html-component/global-widget.js +265 -170
- package/lowcode/glitterBundle/html-component/global-widget.ts +264 -159
- package/lowcode/index.html +1 -1
- package/lowcode/jspage/function-page/tool-setting.js +9 -1
- package/lowcode/jspage/function-page/tool-setting.ts +9 -1
- package/lowcode/jspage/main.js +78 -16
- package/lowcode/jspage/main.ts +108 -22
- package/lowcode/official_view_component/official/component.js +17 -10
- package/lowcode/official_view_component/official/component.ts +38 -27
- package/lowcode/public-components/blogs/blogs-01.js +200 -140
- package/lowcode/public-components/blogs/blogs-01.ts +232 -145
- package/lowcode/public-components/checkout/index.js +5 -3
- package/lowcode/public-components/checkout/index.ts +6 -4
- package/lowcode/public-components/headers/head-initial.ts +1 -1
- package/lowcode/public-components/headers/sy-02.js +1 -0
- package/lowcode/public-components/headers/sy-02.ts +1 -0
- package/lowcode/public-components/headers/sy-03.js +1 -0
- package/lowcode/public-components/headers/sy-03.ts +1 -0
- package/lowcode/public-components/headers/sy-04.js +1 -0
- package/lowcode/public-components/headers/sy-04.ts +1 -0
- package/lowcode/public-components/headers/sy-05.js +1 -0
- package/lowcode/public-components/headers/sy-05.ts +1 -0
- package/lowcode/public-components/product/product-detail.js +2 -2
- package/lowcode/public-components/product/product-detail.ts +4 -4
- package/lowcode/public-components/terms-related/index.ts +1 -0
- package/lowcode/public-components/user-manager/um-login.js +7 -1
- package/lowcode/public-components/user-manager/um-login.ts +8 -1
- package/package.json +1 -1
- package/src/api-public/models/glitter-finance.js +1 -2
- package/src/api-public/models/glitter-finance.js.map +1 -1
- package/src/api-public/services/checkout-event.js +1 -0
- package/src/api-public/services/checkout-event.js.map +1 -1
- package/src/api-public/services/checkout-event.ts +1 -0
- package/src/api-public/services/ezpay/tool.d.ts +0 -1
- package/src/api-public/services/user.js +11 -18
- package/src/api-public/services/user.js.map +1 -1
- package/src/api-public/services/user.ts +4 -1
- package/src/app-project/serverless/src/modules/database.d.ts +1 -1
- package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
- package/src/controllers/template.js +2 -2
- package/src/controllers/template.js.map +1 -1
- package/src/controllers/template.ts +5 -2
- package/src/firebase/message.js +1 -2
- package/src/firebase/message.js.map +1 -1
- package/src/helper/app_creater.js +1 -2
- package/src/helper/app_creater.js.map +1 -1
- package/src/helper/glitter-util.d.ts +0 -1
- package/src/index.js +8 -18
- package/src/index.js.map +1 -5
- package/src/index.ts +1 -1
- package/src/lambda/interface.js +2 -2
- package/src/lambda/interface.js.map +1 -1
- package/src/modules/database.d.ts +1 -1
- package/src/run.js +1 -2
- package/src/run.js.map +1 -1
- package/src/seo-config.d.ts +1 -1
- package/src/seo-config.js +13 -12
- package/src/seo-config.js.map +1 -1
- package/src/seo-config.ts +18 -12
- package/src/services/app.d.ts +2 -1
- package/src/services/app.js +11 -19
- package/src/services/app.js.map +1 -1
- package/src/services/app.ts +5 -2
- package/src/services/backend-service.js +7 -17
- package/src/services/backend-service.js.map +1 -1
- package/src/services/saas-table-check.js +2 -2
- package/src/services/saas-table-check.js.map +1 -1
- package/src/services/seo.d.ts +2 -1
- package/src/services/seo.js +7 -4
- package/src/services/seo.js.map +1 -1
- package/src/services/seo.ts +7 -4
- package/src/services/ses.js +1 -2
- package/src/services/ses.js.map +1 -1
- package/src/services/template.d.ts +3 -1
- package/src/services/template.js +55 -34
- package/src/services/template.js.map +1 -1
- package/src/services/template.ts +68 -35
- package/nxv0ptv53w.json +0 -1
- package/omr85cp878.json +0 -1
package/lowcode/Entry.js
CHANGED
|
@@ -127,6 +127,23 @@ export class Entry {
|
|
|
127
127
|
if (glitter.getUrlParameter('page') !== 'backend_manager') {
|
|
128
128
|
Entry.checkRedirectPage(glitter);
|
|
129
129
|
}
|
|
130
|
+
if (['pages/', 'hidden/', 'shop/'].find((dd) => {
|
|
131
|
+
return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd));
|
|
132
|
+
})) {
|
|
133
|
+
const og_path = glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
|
|
134
|
+
window.page_refer = og_path;
|
|
135
|
+
setInterval(() => {
|
|
136
|
+
if (glitter.getUrlParameter('page') === 'index') {
|
|
137
|
+
glitter.href = '/' + og_path;
|
|
138
|
+
}
|
|
139
|
+
else if (glitter.getUrlParameter('page') !== og_path) {
|
|
140
|
+
glitter.setUrlParameter('page_refer', og_path);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
glitter.setUrlParameter('page_refer', undefined);
|
|
144
|
+
}
|
|
145
|
+
}, 100);
|
|
146
|
+
}
|
|
130
147
|
glitter.share.logID = glitter.getUUID();
|
|
131
148
|
glitter.addStyle(`
|
|
132
149
|
@media (prefers-reduced-motion: no-preference) {
|
|
@@ -146,7 +163,7 @@ export class Entry {
|
|
|
146
163
|
}
|
|
147
164
|
window.renderClock = (_b = window.renderClock) !== null && _b !== void 0 ? _b : createClock();
|
|
148
165
|
console.log(`Entry-time:`, window.renderClock.stop());
|
|
149
|
-
glitter.share.editerVersion = 'V_21.
|
|
166
|
+
glitter.share.editerVersion = 'V_21.4.1';
|
|
150
167
|
glitter.share.start = new Date();
|
|
151
168
|
const vm = { appConfig: [] };
|
|
152
169
|
window.saasConfig = {
|
package/lowcode/Entry.ts
CHANGED
|
@@ -131,6 +131,24 @@ export class Entry {
|
|
|
131
131
|
if (glitter.getUrlParameter('page') !== 'backend_manager') {
|
|
132
132
|
Entry.checkRedirectPage(glitter);
|
|
133
133
|
}
|
|
134
|
+
|
|
135
|
+
//紀錄初始載入頁面,後續會帶入query當中用與替換Header避免跳頁
|
|
136
|
+
if(['pages/','hidden/','shop/'].find((dd)=>{
|
|
137
|
+
return (glitter.getUrlParameter('page') || '').startsWith(dd) || ((glitter.getUrlParameter('page_refer') || '').startsWith(dd))
|
|
138
|
+
})){
|
|
139
|
+
const og_path=glitter.getUrlParameter('page_refer') || glitter.getUrlParameter('page');
|
|
140
|
+
(window as any).page_refer=og_path;
|
|
141
|
+
|
|
142
|
+
setInterval(()=>{
|
|
143
|
+
if(glitter.getUrlParameter('page')==='index'){
|
|
144
|
+
glitter.href='/'+og_path
|
|
145
|
+
}else if(glitter.getUrlParameter('page')!==og_path){
|
|
146
|
+
glitter.setUrlParameter('page_refer',og_path)
|
|
147
|
+
}else{
|
|
148
|
+
glitter.setUrlParameter('page_refer',undefined)
|
|
149
|
+
}
|
|
150
|
+
},100)
|
|
151
|
+
}
|
|
134
152
|
glitter.share.logID = glitter.getUUID();
|
|
135
153
|
glitter.addStyle(`
|
|
136
154
|
@media (prefers-reduced-motion: no-preference) {
|
|
@@ -150,7 +168,7 @@ export class Entry {
|
|
|
150
168
|
}
|
|
151
169
|
(window as any).renderClock = (window as any).renderClock ?? createClock();
|
|
152
170
|
console.log(`Entry-time:`, (window as any).renderClock.stop());
|
|
153
|
-
glitter.share.editerVersion = 'V_21.
|
|
171
|
+
glitter.share.editerVersion = 'V_21.4.1';
|
|
154
172
|
glitter.share.start = new Date();
|
|
155
173
|
const vm = { appConfig: [] };
|
|
156
174
|
(window as any).saasConfig = {
|
|
@@ -11,6 +11,7 @@ import { config } from "../config.js";
|
|
|
11
11
|
import { BaseApi } from "../glitterBundle/api/base.js";
|
|
12
12
|
import { GlobalUser } from "../glitter-base/global/global-user.js";
|
|
13
13
|
import { ShareDialog } from "../glitterBundle/dialog/ShareDialog.js";
|
|
14
|
+
import { ApiUser } from '../glitter-base/route/user.js';
|
|
14
15
|
export class ApiPageConfig {
|
|
15
16
|
constructor() {
|
|
16
17
|
}
|
|
@@ -114,6 +115,7 @@ export class ApiPageConfig {
|
|
|
114
115
|
(request.page_type) && (query.push(`page_type=${request.page_type}`));
|
|
115
116
|
(request.me) && (query.push(`me=${request.me}`));
|
|
116
117
|
(request.favorite) && (query.push(`favorite=${request.favorite}`));
|
|
118
|
+
window.page_refer && query.push(`page_refer=${window.page_refer}`);
|
|
117
119
|
return query.join('&');
|
|
118
120
|
})(),
|
|
119
121
|
"type": "GET",
|
|
@@ -163,16 +165,33 @@ export class ApiPageConfig {
|
|
|
163
165
|
});
|
|
164
166
|
}
|
|
165
167
|
static setPage(data) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
168
|
+
if (data.tag === 'c_header' && ['pages/', 'hidden/', 'shop/'].find((dd) => {
|
|
169
|
+
return window.parent.glitter.getUrlParameter('page').startsWith(dd);
|
|
170
|
+
})) {
|
|
171
|
+
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
data.config[0].is_customer_header = true;
|
|
173
|
+
yield ApiUser.setPublicConfig({
|
|
174
|
+
key: 'c_header_' + window.parent.glitter.getUrlParameter('page'),
|
|
175
|
+
value: data.config,
|
|
176
|
+
user_id: 'manager',
|
|
177
|
+
});
|
|
178
|
+
resolve({
|
|
179
|
+
result: true
|
|
180
|
+
});
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
return BaseApi.create({
|
|
185
|
+
"url": config.url + `/api/v1/template`,
|
|
186
|
+
"type": "PUT",
|
|
187
|
+
"timeout": 0,
|
|
188
|
+
"headers": {
|
|
189
|
+
"Content-Type": "application/json",
|
|
190
|
+
"Authorization": config.token
|
|
191
|
+
},
|
|
192
|
+
data: JSON.stringify(data)
|
|
193
|
+
});
|
|
194
|
+
}
|
|
176
195
|
}
|
|
177
196
|
static addPage(data) {
|
|
178
197
|
return BaseApi.create({
|
|
@@ -3,6 +3,7 @@ import {BaseApi} from "../glitterBundle/api/base.js";
|
|
|
3
3
|
import {GlobalUser} from "../glitter-base/global/global-user.js";
|
|
4
4
|
import {EditorElem} from "../glitterBundle/plugins/editor-elem";
|
|
5
5
|
import {ShareDialog} from "../glitterBundle/dialog/ShareDialog.js";
|
|
6
|
+
import { ApiUser } from '../glitter-base/route/user.js';
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
export class ApiPageConfig {
|
|
@@ -123,7 +124,8 @@ export class ApiPageConfig {
|
|
|
123
124
|
(request.type) && (query.push(`type=${request.type}`));
|
|
124
125
|
(request.page_type) && (query.push(`page_type=${request.page_type}`));
|
|
125
126
|
(request.me) && (query.push(`me=${request.me}`));
|
|
126
|
-
(request.favorite) && (query.push(`favorite=${request.favorite}`))
|
|
127
|
+
(request.favorite) && (query.push(`favorite=${request.favorite}`));
|
|
128
|
+
(window as any).page_refer && query.push(`page_refer=${(window as any).page_refer}`);
|
|
127
129
|
return query.join('&')
|
|
128
130
|
})()
|
|
129
131
|
,
|
|
@@ -191,7 +193,7 @@ export class ApiPageConfig {
|
|
|
191
193
|
public static setPage(data: {
|
|
192
194
|
"id": number
|
|
193
195
|
"appName": "lionDesign",
|
|
194
|
-
"tag"
|
|
196
|
+
"tag"?: any,
|
|
195
197
|
"group"?: "首頁相關",
|
|
196
198
|
"name"?: "首頁",
|
|
197
199
|
"config"?: [],
|
|
@@ -199,17 +201,47 @@ export class ApiPageConfig {
|
|
|
199
201
|
"page_type"?: string,
|
|
200
202
|
favorite?: number,
|
|
201
203
|
preview_image?: string
|
|
202
|
-
})
|
|
204
|
+
}):Promise<{
|
|
205
|
+
result: boolean
|
|
206
|
+
}> {
|
|
207
|
+
|
|
208
|
+
if(data.tag==='c_header' && ['pages/','hidden/','shop/'].find((dd)=>{
|
|
209
|
+
return (window.parent as any).glitter.getUrlParameter('page').startsWith(dd)
|
|
210
|
+
})){
|
|
211
|
+
return new Promise(async (resolve,reject)=>{
|
|
212
|
+
(data.config as any)[0].is_customer_header=true
|
|
213
|
+
await ApiUser.setPublicConfig({
|
|
214
|
+
key: 'c_header_'+(window.parent as any).glitter.getUrlParameter('page'),
|
|
215
|
+
value: data.config,
|
|
216
|
+
user_id: 'manager',
|
|
217
|
+
})
|
|
218
|
+
resolve({
|
|
219
|
+
result: true
|
|
220
|
+
})
|
|
221
|
+
})
|
|
222
|
+
// return BaseApi.create({
|
|
223
|
+
// "url": config.url + `/api/v1/template`,
|
|
224
|
+
// "type": "PUT",
|
|
225
|
+
// "timeout": 0,
|
|
226
|
+
// "headers": {
|
|
227
|
+
// "Content-Type": "application/json",
|
|
228
|
+
// "Authorization": config.token
|
|
229
|
+
// },
|
|
230
|
+
// data: JSON.stringify(data)
|
|
231
|
+
// })
|
|
232
|
+
}else{
|
|
203
233
|
return BaseApi.create({
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
234
|
+
"url": config.url + `/api/v1/template`,
|
|
235
|
+
"type": "PUT",
|
|
236
|
+
"timeout": 0,
|
|
237
|
+
"headers": {
|
|
238
|
+
"Content-Type": "application/json",
|
|
239
|
+
"Authorization": config.token
|
|
240
|
+
},
|
|
241
|
+
data: JSON.stringify(data)
|
|
212
242
|
})
|
|
243
|
+
}
|
|
244
|
+
|
|
213
245
|
}
|
|
214
246
|
|
|
215
247
|
public static addPage(data: {
|
|
@@ -1132,6 +1132,11 @@ function detail(gvc, cf, vm, cVm, page_tab) {
|
|
|
1132
1132
|
}, 400);
|
|
1133
1133
|
function checkSwitchToUiEditor() {
|
|
1134
1134
|
function next() {
|
|
1135
|
+
Object.keys(window.glitterInitialHelper.share).map((dd) => {
|
|
1136
|
+
if (dd.startsWith('getPageData-')) {
|
|
1137
|
+
window.glitterInitialHelper.share[dd] = undefined;
|
|
1138
|
+
}
|
|
1139
|
+
});
|
|
1135
1140
|
localStorage.setItem('preview_data', JSON.stringify(vm.data.content));
|
|
1136
1141
|
window.parent.glitter.setUrlParameter('page-id', vm.data.id);
|
|
1137
1142
|
window.parent.glitter.setUrlParameter('language', language);
|
|
@@ -1266,6 +1266,11 @@ function detail(gvc: GVC, cf: any, vm: any, cVm: any, page_tab: 'page' | 'hidden
|
|
|
1266
1266
|
|
|
1267
1267
|
function checkSwitchToUiEditor() {
|
|
1268
1268
|
function next() {
|
|
1269
|
+
Object.keys((window as any).glitterInitialHelper.share).map((dd)=>{
|
|
1270
|
+
if(dd.startsWith('getPageData-')){
|
|
1271
|
+
(window as any).glitterInitialHelper.share[dd]=undefined
|
|
1272
|
+
}
|
|
1273
|
+
})
|
|
1269
1274
|
localStorage.setItem('preview_data', JSON.stringify(vm.data.content));
|
|
1270
1275
|
(window.parent as any).glitter.setUrlParameter('page-id', vm.data.id);
|
|
1271
1276
|
(window.parent as any).glitter.setUrlParameter('language', language);
|
|
@@ -12,6 +12,7 @@ export class MenusSetting {
|
|
|
12
12
|
index: 0,
|
|
13
13
|
dataList: undefined,
|
|
14
14
|
query: '',
|
|
15
|
+
tab: 'menu'
|
|
15
16
|
};
|
|
16
17
|
const filterID = gvc.glitter.getUUID();
|
|
17
18
|
let vmi = undefined;
|
|
@@ -46,12 +47,20 @@ export class MenusSetting {
|
|
|
46
47
|
}))
|
|
47
48
|
: ''}
|
|
48
49
|
</div>
|
|
50
|
+
${BgWidget.tab([
|
|
51
|
+
{ title: '主選單', key: 'menu' },
|
|
52
|
+
{ title: '頁腳', key: 'footer' }
|
|
53
|
+
], gvc, vm.tab, (text) => {
|
|
54
|
+
vm.tab = text;
|
|
55
|
+
gvc.notifyDataChange(id);
|
|
56
|
+
}, `margin-bottom:0px !important;`)}
|
|
49
57
|
${BgWidget.container(BgWidget.mainCard(BgWidget.tableV3({
|
|
50
58
|
gvc: gvc,
|
|
51
59
|
getData: vmi => {
|
|
52
60
|
vm.dataList = [
|
|
53
|
-
{ tag: 'menu-setting'
|
|
54
|
-
|
|
61
|
+
{ tag: vm.tab === 'menu' ? 'menu-setting' : 'footer-setting', title: `
|
|
62
|
+
<div> ${vm.tab === 'menu' ? `頁首選單` : `頁腳選單`} <span style="font-size:12px;color:#36B;">系統預設</span></div>
|
|
63
|
+
` }
|
|
55
64
|
];
|
|
56
65
|
vmi.pageSize = 1;
|
|
57
66
|
vmi.originalData = vm.dataList;
|
|
@@ -90,8 +99,8 @@ export class MenusSetting {
|
|
|
90
99
|
}
|
|
91
100
|
},
|
|
92
101
|
divCreate: {
|
|
93
|
-
class: `
|
|
94
|
-
style: `max-width:100
|
|
102
|
+
class: `w-100 `,
|
|
103
|
+
style: `max-width:100%;`,
|
|
95
104
|
},
|
|
96
105
|
};
|
|
97
106
|
});
|
|
@@ -187,7 +196,7 @@ export class MenusSetting {
|
|
|
187
196
|
view: () => {
|
|
188
197
|
var _a;
|
|
189
198
|
const link = vm.link[vm.language];
|
|
190
|
-
return html `<div class="title-container" style="width:
|
|
199
|
+
return html `<div class="title-container" style="width: 100%; max-width: 100%;">
|
|
191
200
|
${BgWidget.goBack(cf.gvc.event(() => {
|
|
192
201
|
cf.goBack();
|
|
193
202
|
}))}${BgWidget.title((_a = cf.title) !== null && _a !== void 0 ? _a : '選單設定')}
|
|
@@ -202,7 +211,7 @@ export class MenusSetting {
|
|
|
202
211
|
})}
|
|
203
212
|
</div>
|
|
204
213
|
${BgWidget.container(html `<div
|
|
205
|
-
style="max-width:100%;width:
|
|
214
|
+
style="max-width:100%;width: 100%; padding: 20px; background: white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.08); border-radius: 10px; overflow: hidden; justify-content: center; align-items: center; display: inline-flex"
|
|
206
215
|
>
|
|
207
216
|
<div style="width: 100%; position: relative">
|
|
208
217
|
<div
|
|
@@ -23,11 +23,13 @@ export class MenusSetting {
|
|
|
23
23
|
index: number;
|
|
24
24
|
dataList: any;
|
|
25
25
|
query?: string;
|
|
26
|
+
tab:'menu'|'footer'
|
|
26
27
|
} = {
|
|
27
28
|
type: 'list',
|
|
28
29
|
index: 0,
|
|
29
30
|
dataList: undefined,
|
|
30
31
|
query: '',
|
|
32
|
+
tab:'menu'
|
|
31
33
|
};
|
|
32
34
|
const filterID = gvc.glitter.getUUID();
|
|
33
35
|
let vmi: any = undefined;
|
|
@@ -48,6 +50,7 @@ export class MenusSetting {
|
|
|
48
50
|
function refresh() {
|
|
49
51
|
gvc.notifyDataChange(id);
|
|
50
52
|
}
|
|
53
|
+
|
|
51
54
|
return {
|
|
52
55
|
bind: id,
|
|
53
56
|
dataList: [{ obj: vm, key: 'type' }],
|
|
@@ -67,14 +70,28 @@ export class MenusSetting {
|
|
|
67
70
|
)
|
|
68
71
|
: ''}
|
|
69
72
|
</div>
|
|
73
|
+
${BgWidget.tab(
|
|
74
|
+
[
|
|
75
|
+
{ title: '主選單', key: 'menu' },
|
|
76
|
+
{ title: '頁腳', key: 'footer' }
|
|
77
|
+
],
|
|
78
|
+
gvc,
|
|
79
|
+
vm.tab,
|
|
80
|
+
(text) => {
|
|
81
|
+
vm.tab=text as any
|
|
82
|
+
gvc.notifyDataChange(id);
|
|
83
|
+
},
|
|
84
|
+
`margin-bottom:0px !important;`
|
|
85
|
+
)}
|
|
70
86
|
${BgWidget.container(
|
|
71
87
|
BgWidget.mainCard(
|
|
72
88
|
BgWidget.tableV3({
|
|
73
89
|
gvc: gvc,
|
|
74
90
|
getData: vmi => {
|
|
75
91
|
vm.dataList = [
|
|
76
|
-
{ tag: 'menu-setting', title:
|
|
77
|
-
|
|
92
|
+
{ tag: vm.tab==='menu' ? 'menu-setting':'footer-setting', title: `
|
|
93
|
+
<div> ${vm.tab==='menu' ? `頁首選單`:`頁腳選單`} <span style="font-size:12px;color:#36B;">系統預設</span></div>
|
|
94
|
+
` }
|
|
78
95
|
];
|
|
79
96
|
vmi.pageSize = 1;
|
|
80
97
|
vmi.originalData = vm.dataList;
|
|
@@ -117,8 +134,8 @@ export class MenusSetting {
|
|
|
117
134
|
}
|
|
118
135
|
},
|
|
119
136
|
divCreate: {
|
|
120
|
-
class: `
|
|
121
|
-
style: `max-width:100
|
|
137
|
+
class: `w-100 `,
|
|
138
|
+
style: `max-width:100%;`,
|
|
122
139
|
},
|
|
123
140
|
};
|
|
124
141
|
});
|
|
@@ -236,7 +253,7 @@ export class MenusSetting {
|
|
|
236
253
|
bind: vm.id,
|
|
237
254
|
view: () => {
|
|
238
255
|
const link = vm.link[vm.language];
|
|
239
|
-
return html`<div class="title-container" style="width:
|
|
256
|
+
return html`<div class="title-container" style="width: 100%; max-width: 100%;">
|
|
240
257
|
${BgWidget.goBack(
|
|
241
258
|
cf.gvc.event(() => {
|
|
242
259
|
cf.goBack();
|
|
@@ -254,7 +271,7 @@ export class MenusSetting {
|
|
|
254
271
|
</div>
|
|
255
272
|
${BgWidget.container(
|
|
256
273
|
html`<div
|
|
257
|
-
style="max-width:100%;width:
|
|
274
|
+
style="max-width:100%;width: 100%; padding: 20px; background: white; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.08); border-radius: 10px; overflow: hidden; justify-content: center; align-items: center; display: inline-flex"
|
|
258
275
|
>
|
|
259
276
|
<div style="width: 100%; position: relative">
|
|
260
277
|
<div
|
|
@@ -223,19 +223,25 @@ export class UserExcel {
|
|
|
223
223
|
const jsonData = yield Excel.parseExcelToJson(gvc, target.files[0]);
|
|
224
224
|
dialog.dataLoading({ visible: false });
|
|
225
225
|
const setUserEmails = [...new Set(jsonData.map(user => user['電子信箱']))];
|
|
226
|
-
if (jsonData.
|
|
226
|
+
if (jsonData.filter((user) => {
|
|
227
|
+
return user['電子信箱'];
|
|
228
|
+
}).length > setUserEmails.filter((dd) => {
|
|
229
|
+
return dd;
|
|
230
|
+
}).length) {
|
|
227
231
|
dialog.errorMessage({ text: '會員電子信箱不可重複' });
|
|
228
232
|
return;
|
|
229
233
|
}
|
|
230
234
|
const setUserPhones = [...new Set(jsonData.map(user => user['電話']))];
|
|
231
|
-
if (jsonData.
|
|
235
|
+
if (jsonData.filter((user) => {
|
|
236
|
+
return user['電話'];
|
|
237
|
+
}).length > setUserPhones.length) {
|
|
232
238
|
dialog.errorMessage({ text: '會員電話不可重複' });
|
|
233
239
|
return;
|
|
234
240
|
}
|
|
235
241
|
for (let i = 0; i < jsonData.length; i++) {
|
|
236
242
|
const user = jsonData[i];
|
|
237
|
-
if (!user['電子信箱']) {
|
|
238
|
-
dialog.errorMessage({ text: '
|
|
243
|
+
if (!user['電子信箱'] && !user['電話']) {
|
|
244
|
+
dialog.errorMessage({ text: '電話或信箱擇一必填' });
|
|
239
245
|
return;
|
|
240
246
|
}
|
|
241
247
|
const userData = {
|
|
@@ -260,7 +266,7 @@ export class UserExcel {
|
|
|
260
266
|
rebate: user['購物金餘額'],
|
|
261
267
|
};
|
|
262
268
|
jsonData[i] = {
|
|
263
|
-
account: userData.email,
|
|
269
|
+
account: userData.email | userData.phone,
|
|
264
270
|
pwd: gvc.glitter.getUUID(),
|
|
265
271
|
userData: userData,
|
|
266
272
|
};
|
|
@@ -364,13 +364,19 @@ export class UserExcel {
|
|
|
364
364
|
dialog.dataLoading({ visible: false });
|
|
365
365
|
|
|
366
366
|
const setUserEmails = [...new Set(jsonData.map(user => user['電子信箱']))];
|
|
367
|
-
if (jsonData.
|
|
367
|
+
if (jsonData.filter((user)=>{
|
|
368
|
+
return user['電子信箱']
|
|
369
|
+
}).length > setUserEmails.filter((dd)=>{
|
|
370
|
+
return dd
|
|
371
|
+
}).length) {
|
|
368
372
|
dialog.errorMessage({ text: '會員電子信箱不可重複' });
|
|
369
373
|
return;
|
|
370
374
|
}
|
|
371
375
|
|
|
372
376
|
const setUserPhones = [...new Set(jsonData.map(user => user['電話']))];
|
|
373
|
-
if (jsonData.
|
|
377
|
+
if (jsonData.filter((user)=>{
|
|
378
|
+
return user['電話']
|
|
379
|
+
}).length > setUserPhones.length) {
|
|
374
380
|
dialog.errorMessage({ text: '會員電話不可重複' });
|
|
375
381
|
return;
|
|
376
382
|
}
|
|
@@ -378,8 +384,8 @@ export class UserExcel {
|
|
|
378
384
|
for (let i = 0; i < jsonData.length; i++) {
|
|
379
385
|
const user = jsonData[i];
|
|
380
386
|
|
|
381
|
-
if (!user['電子信箱']) {
|
|
382
|
-
dialog.errorMessage({ text: '
|
|
387
|
+
if (!user['電子信箱'] && !user['電話']) {
|
|
388
|
+
dialog.errorMessage({ text: '電話或信箱擇一必填' });
|
|
383
389
|
return;
|
|
384
390
|
}
|
|
385
391
|
|
|
@@ -406,7 +412,7 @@ export class UserExcel {
|
|
|
406
412
|
};
|
|
407
413
|
|
|
408
414
|
jsonData[i] = {
|
|
409
|
-
account: userData.email,
|
|
415
|
+
account: userData.email | userData.phone,
|
|
410
416
|
pwd: gvc.glitter.getUUID(),
|
|
411
417
|
userData: userData,
|
|
412
418
|
};
|