imatrix-ui 2.8.23 → 2.8.24
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
|
@@ -1346,60 +1346,76 @@ export default {
|
|
|
1346
1346
|
gridParams.options.subTableData &&
|
|
1347
1347
|
gridParams.options.subTableData.length > 0
|
|
1348
1348
|
) {
|
|
1349
|
-
this.
|
|
1350
|
-
gridParams.loaded = true
|
|
1351
|
-
let subTableData = []
|
|
1352
|
-
// 如果有子表数据,则展示传递的子表数据
|
|
1353
|
-
if (isHasOptionFunction('gridDataLoaded', this.code)) {
|
|
1354
|
-
const gridData = gridParams.options.gridDataLoaded.call(this, {
|
|
1355
|
-
gridData: gridParams.options.subTableData,
|
|
1356
|
-
columns: gridParams.columns
|
|
1357
|
-
})
|
|
1358
|
-
if (gridData) {
|
|
1359
|
-
subTableData = gridData
|
|
1360
|
-
this.hasLoadData = true
|
|
1361
|
-
} else {
|
|
1362
|
-
subTableData = gridParams.options.subTableData
|
|
1363
|
-
this.hasLoadData = true
|
|
1364
|
-
}
|
|
1365
|
-
} else {
|
|
1366
|
-
subTableData = gridParams.options.subTableData
|
|
1367
|
-
this.hasLoadData = true
|
|
1368
|
-
}
|
|
1369
|
-
if (subTableData) {
|
|
1370
|
-
// 子表时所有记录的所有字段设置默认值null,优化子表编辑时性能
|
|
1371
|
-
subTableData.forEach(item => {
|
|
1372
|
-
this.setColumnsDefaultValue(gridParams.allColumns, item)
|
|
1373
|
-
})
|
|
1374
|
-
}
|
|
1375
|
-
if (this.pagination && this.isSubTableShowPage === true) {
|
|
1376
|
-
// 表示子表需要显示分页
|
|
1377
|
-
this.subTableData = subTableData
|
|
1378
|
-
// 更新记录总条数
|
|
1379
|
-
this.pagination.total = this.subTableData.length
|
|
1380
|
-
gridParams.subTableData = this.subTableData
|
|
1381
|
-
this.gridData = this.getSubTableGridData(this.subTableData)
|
|
1382
|
-
} else {
|
|
1383
|
-
this.gridData = subTableData
|
|
1384
|
-
}
|
|
1385
|
-
gridParams.gridData = this.gridData
|
|
1386
|
-
// 完成深拷贝,复制一份对象,行编辑时使用
|
|
1387
|
-
gridParams.orgGridData = [].concat(
|
|
1388
|
-
JSON.parse(JSON.stringify(this.gridData))
|
|
1389
|
-
)
|
|
1349
|
+
this.packageSubTableData(gridParams, gridParams.options.subTableData)
|
|
1390
1350
|
} else {
|
|
1391
1351
|
const isCanRefreshTableData = this.canRefreshTableData(gridParams)
|
|
1392
1352
|
if (isCanRefreshTableData) {
|
|
1393
1353
|
// 可以刷新表格记录
|
|
1394
1354
|
return this.fetchListData(searchParam, isSearch, parentRowIds, resove)
|
|
1395
1355
|
} else {
|
|
1396
|
-
//
|
|
1356
|
+
// 子表无记录时不需要刷新子表记录。表示是新建或修改时子表无记录,且不需要刷新子表。
|
|
1357
|
+
if (
|
|
1358
|
+
this.isSubTableEmpty(gridParams)
|
|
1359
|
+
){
|
|
1360
|
+
// 表示是新建表单时,子表记录集合是空数组
|
|
1361
|
+
console.log('子表无记录----code=', this.code, gridParams)
|
|
1362
|
+
const subTableData = []
|
|
1363
|
+
this.packageSubTableData(gridParams,subTableData)
|
|
1364
|
+
}
|
|
1397
1365
|
this.hasLoadData = true
|
|
1398
1366
|
gridParams.loaded = true
|
|
1399
1367
|
}
|
|
1400
1368
|
}
|
|
1401
1369
|
}
|
|
1402
1370
|
},
|
|
1371
|
+
isSubTableEmpty (gridParams) {
|
|
1372
|
+
return gridParams.options && gridParams.options.isFormSubTable &&
|
|
1373
|
+
((gridParams.options.subTableData === undefined || gridParams.options.subTableData === null) ||
|
|
1374
|
+
gridParams.options.subTableData.length === 0)
|
|
1375
|
+
},
|
|
1376
|
+
packageSubTableData(gridParams, initSubTableData) {
|
|
1377
|
+
this.hasLoadData = false
|
|
1378
|
+
gridParams.loaded = true
|
|
1379
|
+
let subTableData = []
|
|
1380
|
+
// 如果有子表数据,则展示传递的子表数据
|
|
1381
|
+
if (isHasOptionFunction('gridDataLoaded', this.code)) {
|
|
1382
|
+
const gridData = gridParams.options.gridDataLoaded.call(this, {
|
|
1383
|
+
gridData: initSubTableData,
|
|
1384
|
+
columns: gridParams.columns
|
|
1385
|
+
})
|
|
1386
|
+
if (gridData) {
|
|
1387
|
+
subTableData = gridData
|
|
1388
|
+
this.hasLoadData = true
|
|
1389
|
+
} else {
|
|
1390
|
+
subTableData = initSubTableData
|
|
1391
|
+
this.hasLoadData = true
|
|
1392
|
+
}
|
|
1393
|
+
} else {
|
|
1394
|
+
subTableData = initSubTableData
|
|
1395
|
+
this.hasLoadData = true
|
|
1396
|
+
}
|
|
1397
|
+
if (subTableData) {
|
|
1398
|
+
// 子表时所有记录的所有字段设置默认值null,优化子表编辑时性能
|
|
1399
|
+
subTableData.forEach(item => {
|
|
1400
|
+
this.setColumnsDefaultValue(gridParams.allColumns, item)
|
|
1401
|
+
})
|
|
1402
|
+
}
|
|
1403
|
+
if (this.pagination && this.isSubTableShowPage === true) {
|
|
1404
|
+
// 表示子表需要显示分页
|
|
1405
|
+
this.subTableData = subTableData
|
|
1406
|
+
// 更新记录总条数
|
|
1407
|
+
this.pagination.total = this.subTableData.length
|
|
1408
|
+
gridParams.subTableData = this.subTableData
|
|
1409
|
+
this.gridData = this.getSubTableGridData(this.subTableData)
|
|
1410
|
+
} else {
|
|
1411
|
+
this.gridData = subTableData
|
|
1412
|
+
}
|
|
1413
|
+
gridParams.gridData = this.gridData
|
|
1414
|
+
// 完成深拷贝,复制一份对象,行编辑时使用
|
|
1415
|
+
gridParams.orgGridData = [].concat(
|
|
1416
|
+
JSON.parse(JSON.stringify(this.gridData))
|
|
1417
|
+
)
|
|
1418
|
+
},
|
|
1403
1419
|
canRefreshTableData (gridParams) {
|
|
1404
1420
|
let isCanRefreshTableData = false
|
|
1405
1421
|
if (gridParams.options && !gridParams.options.isFormSubTable) {
|
package/src/utils/common-util.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import sessionStorage from 'sessionstorage'
|
|
2
2
|
import Vue from 'vue'
|
|
3
|
+
import authApi from './auth-api'
|
|
4
|
+
import { getToken } from './auth'
|
|
3
5
|
/**
|
|
4
6
|
* 获得相对地址
|
|
5
7
|
*/
|
|
@@ -234,3 +236,79 @@ export function isMobileBrowser() {
|
|
|
234
236
|
return false
|
|
235
237
|
}
|
|
236
238
|
}
|
|
239
|
+
|
|
240
|
+
export function getLocaleByLang(lang) {
|
|
241
|
+
let locale = 'cn'
|
|
242
|
+
if (lang && lang.indexOf('_') > 0) {
|
|
243
|
+
const language = lang.substring(0, lang.indexOf('_'))
|
|
244
|
+
locale = language
|
|
245
|
+
}
|
|
246
|
+
if (locale === 'zh') {
|
|
247
|
+
locale = 'cn'
|
|
248
|
+
}
|
|
249
|
+
return locale
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const langKey = 'AMB_LANG_INFO'
|
|
253
|
+
|
|
254
|
+
export function cacheLangs(langs) {
|
|
255
|
+
let langResult
|
|
256
|
+
if(langs) {
|
|
257
|
+
langResult = JSON.stringify(langs)
|
|
258
|
+
}
|
|
259
|
+
return authApi.setCookieCache(langKey,langResult)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export function getLangs() {
|
|
263
|
+
return authApi.getCookieCache(langKey)
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
*
|
|
267
|
+
* @param {*} langShort 例如:cn或en
|
|
268
|
+
* @returns 例如:zh_CN或en_US
|
|
269
|
+
*/
|
|
270
|
+
export function getLangByShort(langShort) {
|
|
271
|
+
let lang
|
|
272
|
+
const langResultJson = getLangs()
|
|
273
|
+
if(langResultJson){
|
|
274
|
+
const langObj = JSON.parse(langResultJson)
|
|
275
|
+
lang = langObj[langShort]
|
|
276
|
+
}
|
|
277
|
+
if(!lang){
|
|
278
|
+
lang = 'zh_CN'
|
|
279
|
+
}
|
|
280
|
+
return lang
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// 首次加载业务系统时,缓存所有语言
|
|
284
|
+
export function cacheAllLanguagesUtil(http) {
|
|
285
|
+
return new Promise((resolve, reject) => {
|
|
286
|
+
const token = getToken()
|
|
287
|
+
if (token) {
|
|
288
|
+
http.get(Vue.prototype.baseAPI + '/component/all-languages').then((langList) => {
|
|
289
|
+
const langResult = {}
|
|
290
|
+
if (langList) {
|
|
291
|
+
langList.forEach(item => {
|
|
292
|
+
// 例如:zh_CN、en_US
|
|
293
|
+
const lang = item.value
|
|
294
|
+
let langShort
|
|
295
|
+
if (lang.indexOf('_') > 0) {
|
|
296
|
+
langShort = lang.substring(0, lang.indexOf('_'))
|
|
297
|
+
}
|
|
298
|
+
if (langShort && langShort === 'zh') {
|
|
299
|
+
// 中文处理,为了兼容历史逻辑
|
|
300
|
+
langShort = 'cn'
|
|
301
|
+
}
|
|
302
|
+
if (langShort) {
|
|
303
|
+
langResult[langShort] = lang
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
}
|
|
307
|
+
cacheLangs(langResult)
|
|
308
|
+
resolve()
|
|
309
|
+
})
|
|
310
|
+
} else {
|
|
311
|
+
resolve()
|
|
312
|
+
}
|
|
313
|
+
})
|
|
314
|
+
}
|
package/src/utils/util.js
CHANGED
|
@@ -3,6 +3,7 @@ import Vue from 'vue'
|
|
|
3
3
|
import {
|
|
4
4
|
executeExpression
|
|
5
5
|
} from './calculator/calculator-util'
|
|
6
|
+
import { getLangByShort } from './common-util'
|
|
6
7
|
export function getI18n() {
|
|
7
8
|
if (!window.$locale) {
|
|
8
9
|
i18n.locale = 'cn'
|
|
@@ -13,12 +14,11 @@ export function getI18n() {
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export function getLanguageWithLocale() {
|
|
16
|
-
|
|
17
|
-
if (currentLocale
|
|
18
|
-
|
|
19
|
-
} else {
|
|
20
|
-
return 'zh_CN'
|
|
17
|
+
let currentLocale = window.$locale
|
|
18
|
+
if (!currentLocale || currentLocale === 'zh') {
|
|
19
|
+
currentLocale = 'cn'
|
|
21
20
|
}
|
|
21
|
+
return getLangByShort(currentLocale)
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* 根据动态数据源获得下拉选的选项集合
|