vue2-client 1.4.20 → 1.4.21
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/CHANGELOG.md +388 -388
- package/index.js +30 -30
- package/package.json +1 -1
- package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +595 -595
- package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
- package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +553 -553
- package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
- package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
- package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
- package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
- package/src/base-client/components/common/XCard/XCard.vue +64 -64
- package/src/base-client/components/common/XForm/XForm.vue +274 -274
- package/src/base-client/components/common/XForm/XFormItem.vue +365 -365
- package/src/base-client/components/common/XFormTable/index.md +96 -96
- package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
- package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
- package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
- package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
- package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
- package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
- package/src/base-client/plugins/AppData.js +73 -73
- package/src/base-client/plugins/GetLoginInfoService.js +179 -179
- package/src/base-client/plugins/PagedList.js +177 -177
- package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
- package/src/base-client/plugins/i18n-extend.js +32 -32
- package/src/components/Ellipsis/index.md +38 -38
- package/src/components/NumberInfo/index.md +43 -43
- package/src/components/STable/README.md +341 -341
- package/src/components/STable/index.js +318 -318
- package/src/components/Trend/index.md +45 -45
- package/src/components/checkbox/ColorCheckbox.vue +157 -157
- package/src/components/checkbox/ImgCheckbox.vue +163 -163
- package/src/components/form/FormRow.vue +52 -52
- package/src/components/index.js +36 -36
- package/src/components/menu/SideMenu.vue +62 -62
- package/src/components/menu/menu.js +273 -273
- package/src/components/setting/Setting.vue +235 -235
- package/src/components/table/StandardTable.vue +141 -141
- package/src/components/table/advance/ActionColumns.vue +158 -158
- package/src/components/table/advance/SearchArea.vue +355 -355
- package/src/components/tool/AStepItem.vue +60 -60
- package/src/components/tool/AvatarList.vue +68 -68
- package/src/components/tool/Drawer.vue +142 -142
- package/src/components/tool/TagSelect.vue +83 -83
- package/src/components/transition/PageToggleTransition.vue +97 -97
- package/src/config/replacer/resolve.config.js +67 -67
- package/src/layouts/AdminLayout.vue +174 -174
- package/src/layouts/SinglePageView.vue +88 -88
- package/src/layouts/header/AdminHeader.vue +104 -104
- package/src/layouts/header/HeaderNotice.vue +167 -167
- package/src/layouts/header/HeaderSearch.vue +67 -67
- package/src/layouts/header/InstitutionDetail.vue +181 -181
- package/src/layouts/tabs/TabsHead.vue +190 -190
- package/src/layouts/tabs/TabsView.vue +379 -379
- package/src/mock/goods/index.js +108 -108
- package/src/pages/CreateQueryPage.vue +65 -65
- package/src/pages/login/Login.vue +351 -342
- package/src/pages/report/ReportTable.js +124 -124
- package/src/pages/report/ReportTableHome.vue +28 -28
- package/src/pages/resourceManage/orgListManage.vue +98 -98
- package/src/pages/system/dictionary/index.vue +43 -43
- package/src/pages/system/file/index.vue +317 -317
- package/src/pages/system/monitor/loginInfor/index.vue +36 -36
- package/src/pages/system/monitor/operLog/index.vue +36 -36
- package/src/pages/system/queryParams/index.vue +43 -43
- package/src/pages/system/ticket/index.vue +475 -474
- package/src/router/async/config.async.js +27 -27
- package/src/router/async/router.map.js +65 -65
- package/src/router/index.js +27 -27
- package/src/services/api/DictionaryDetailsViewApi.js +6 -6
- package/src/services/api/LogDetailsViewApi.js +10 -10
- package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
- package/src/services/api/TicketDetailsViewApi.js +34 -34
- package/src/services/api/commonTempTable.js +10 -10
- package/src/services/api/index.js +17 -17
- package/src/services/api/manage.js +8 -8
- package/src/services/apiService.js +14 -14
- package/src/services/user.js +53 -53
- package/src/store/modules/index.js +4 -4
- package/src/theme/default/nprogress.less +76 -76
- package/src/theme/default/style.less +47 -47
- package/src/utils/colors.js +103 -103
- package/src/utils/excel/Blob.js +180 -180
- package/src/utils/excel/Export2Excel.js +141 -141
- package/src/utils/formatter.js +68 -68
- package/src/utils/i18n.js +80 -80
- package/src/utils/routerUtil.js +364 -364
- package/src/utils/theme-color-replacer-extend.js +91 -91
- package/src/utils/themeUtil.js +100 -100
- package/src/utils/util.js +230 -230
package/src/utils/formatter.js
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 把对象按照 js配置文件的格式进行格式化
|
|
3
|
-
* @param obj 格式化的对象
|
|
4
|
-
* @param dep 层级,此项无需传值
|
|
5
|
-
* @returns {string}
|
|
6
|
-
*/
|
|
7
|
-
function formatConfig (obj, dep) {
|
|
8
|
-
dep = dep || 1
|
|
9
|
-
const LN = '\n'; const TAB = ' '
|
|
10
|
-
let indent = ''
|
|
11
|
-
for (let i = 0; i < dep; i++) {
|
|
12
|
-
indent += TAB
|
|
13
|
-
}
|
|
14
|
-
let isArray = false; let arrayLastIsObj = false
|
|
15
|
-
let str = ''; let prefix = '{'; let subfix = '}'
|
|
16
|
-
if (Array.isArray(obj)) {
|
|
17
|
-
isArray = true
|
|
18
|
-
prefix = '['
|
|
19
|
-
subfix = ']'
|
|
20
|
-
str = obj.map((item, index) => {
|
|
21
|
-
let format = ''
|
|
22
|
-
if (typeof item == 'function') {
|
|
23
|
-
//
|
|
24
|
-
} else if (typeof item == 'object') {
|
|
25
|
-
arrayLastIsObj = true
|
|
26
|
-
format = `${LN}${indent}${formatConfig(item, dep + 1)},`
|
|
27
|
-
} else if ((typeof item == 'number' && !isNaN(item)) || typeof item == 'boolean') {
|
|
28
|
-
format = `${item},`
|
|
29
|
-
} else if (typeof item == 'string') {
|
|
30
|
-
format = `'${item}',`
|
|
31
|
-
}
|
|
32
|
-
if (index === obj.length - 1) {
|
|
33
|
-
format = format.substring(0, format.length - 1)
|
|
34
|
-
} else {
|
|
35
|
-
arrayLastIsObj = false
|
|
36
|
-
}
|
|
37
|
-
return format
|
|
38
|
-
}).join('')
|
|
39
|
-
} else if (typeof obj != 'function' && typeof obj == 'object') {
|
|
40
|
-
str = Object.keys(obj).map((key, index, keys) => {
|
|
41
|
-
const val = obj[key]
|
|
42
|
-
let format = ''
|
|
43
|
-
if (typeof val == 'function') {
|
|
44
|
-
//
|
|
45
|
-
} else if (typeof val == 'object') {
|
|
46
|
-
format = `${LN}${indent}${key}: ${formatConfig(val, dep + 1)},`
|
|
47
|
-
} else if ((typeof val == 'number' && !isNaN(val)) || typeof val == 'boolean') {
|
|
48
|
-
format = `${LN}${indent}${key}: ${val},`
|
|
49
|
-
} else if (typeof val == 'string') {
|
|
50
|
-
format = `${LN}${indent}${key}: '${val}',`
|
|
51
|
-
}
|
|
52
|
-
if (index === keys.length - 1) {
|
|
53
|
-
format = format.substring(0, format.length - 1)
|
|
54
|
-
}
|
|
55
|
-
return format
|
|
56
|
-
}).join('')
|
|
57
|
-
}
|
|
58
|
-
const len = TAB.length
|
|
59
|
-
if (indent.length >= len) {
|
|
60
|
-
indent = indent.substring(0, indent.length - len)
|
|
61
|
-
}
|
|
62
|
-
if (!isArray || arrayLastIsObj) {
|
|
63
|
-
subfix = LN + indent + subfix
|
|
64
|
-
}
|
|
65
|
-
return `${prefix}${str}${subfix}`
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
module.exports = { formatConfig }
|
|
1
|
+
/**
|
|
2
|
+
* 把对象按照 js配置文件的格式进行格式化
|
|
3
|
+
* @param obj 格式化的对象
|
|
4
|
+
* @param dep 层级,此项无需传值
|
|
5
|
+
* @returns {string}
|
|
6
|
+
*/
|
|
7
|
+
function formatConfig (obj, dep) {
|
|
8
|
+
dep = dep || 1
|
|
9
|
+
const LN = '\n'; const TAB = ' '
|
|
10
|
+
let indent = ''
|
|
11
|
+
for (let i = 0; i < dep; i++) {
|
|
12
|
+
indent += TAB
|
|
13
|
+
}
|
|
14
|
+
let isArray = false; let arrayLastIsObj = false
|
|
15
|
+
let str = ''; let prefix = '{'; let subfix = '}'
|
|
16
|
+
if (Array.isArray(obj)) {
|
|
17
|
+
isArray = true
|
|
18
|
+
prefix = '['
|
|
19
|
+
subfix = ']'
|
|
20
|
+
str = obj.map((item, index) => {
|
|
21
|
+
let format = ''
|
|
22
|
+
if (typeof item == 'function') {
|
|
23
|
+
//
|
|
24
|
+
} else if (typeof item == 'object') {
|
|
25
|
+
arrayLastIsObj = true
|
|
26
|
+
format = `${LN}${indent}${formatConfig(item, dep + 1)},`
|
|
27
|
+
} else if ((typeof item == 'number' && !isNaN(item)) || typeof item == 'boolean') {
|
|
28
|
+
format = `${item},`
|
|
29
|
+
} else if (typeof item == 'string') {
|
|
30
|
+
format = `'${item}',`
|
|
31
|
+
}
|
|
32
|
+
if (index === obj.length - 1) {
|
|
33
|
+
format = format.substring(0, format.length - 1)
|
|
34
|
+
} else {
|
|
35
|
+
arrayLastIsObj = false
|
|
36
|
+
}
|
|
37
|
+
return format
|
|
38
|
+
}).join('')
|
|
39
|
+
} else if (typeof obj != 'function' && typeof obj == 'object') {
|
|
40
|
+
str = Object.keys(obj).map((key, index, keys) => {
|
|
41
|
+
const val = obj[key]
|
|
42
|
+
let format = ''
|
|
43
|
+
if (typeof val == 'function') {
|
|
44
|
+
//
|
|
45
|
+
} else if (typeof val == 'object') {
|
|
46
|
+
format = `${LN}${indent}${key}: ${formatConfig(val, dep + 1)},`
|
|
47
|
+
} else if ((typeof val == 'number' && !isNaN(val)) || typeof val == 'boolean') {
|
|
48
|
+
format = `${LN}${indent}${key}: ${val},`
|
|
49
|
+
} else if (typeof val == 'string') {
|
|
50
|
+
format = `${LN}${indent}${key}: '${val}',`
|
|
51
|
+
}
|
|
52
|
+
if (index === keys.length - 1) {
|
|
53
|
+
format = format.substring(0, format.length - 1)
|
|
54
|
+
}
|
|
55
|
+
return format
|
|
56
|
+
}).join('')
|
|
57
|
+
}
|
|
58
|
+
const len = TAB.length
|
|
59
|
+
if (indent.length >= len) {
|
|
60
|
+
indent = indent.substring(0, indent.length - len)
|
|
61
|
+
}
|
|
62
|
+
if (!isArray || arrayLastIsObj) {
|
|
63
|
+
subfix = LN + indent + subfix
|
|
64
|
+
}
|
|
65
|
+
return `${prefix}${str}${subfix}`
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
module.exports = { formatConfig }
|
package/src/utils/i18n.js
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
import VueI18n from 'vue-i18n'
|
|
3
|
-
import routesI18n from '@vue2-client/router/i18n'
|
|
4
|
-
import './Objects'
|
|
5
|
-
import { getI18nKey } from '@vue2-client/utils/routerUtil'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* 创建 i18n 配置
|
|
9
|
-
* @param locale 本地化语言
|
|
10
|
-
* @param fallback 回退语言
|
|
11
|
-
* @returns {VueI18n}
|
|
12
|
-
*/
|
|
13
|
-
function initI18n (locale, fallback) {
|
|
14
|
-
Vue.use(VueI18n)
|
|
15
|
-
const i18nOptions = {
|
|
16
|
-
locale,
|
|
17
|
-
fallbackLocale: fallback,
|
|
18
|
-
silentFallbackWarn: true
|
|
19
|
-
}
|
|
20
|
-
return new VueI18n(i18nOptions)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* 根据 router options 配置生成 国际化语言
|
|
25
|
-
* @param lang
|
|
26
|
-
* @param routes
|
|
27
|
-
* @param valueKey
|
|
28
|
-
* @returns {*}
|
|
29
|
-
*/
|
|
30
|
-
function generateI18n (lang, routes, valueKey) {
|
|
31
|
-
routes.forEach(route => {
|
|
32
|
-
const keys = getI18nKey(route.fullPath).split('.')
|
|
33
|
-
const value = valueKey === 'path' ? route[valueKey].split('/').filter(item => !item.startsWith(':') && item !== '').join('.') : route[valueKey]
|
|
34
|
-
lang.assignProps(keys, value)
|
|
35
|
-
if (route.children) {
|
|
36
|
-
generateI18n(lang, route.children, valueKey)
|
|
37
|
-
}
|
|
38
|
-
})
|
|
39
|
-
return lang
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* 格式化 router.options.routes,生成 fullPath
|
|
44
|
-
* @param routes
|
|
45
|
-
* @param parentPath
|
|
46
|
-
*/
|
|
47
|
-
function formatFullPath (routes, parentPath = '') {
|
|
48
|
-
routes.forEach(route => {
|
|
49
|
-
const isFullPath = route.path.substring(0, 1) === '/'
|
|
50
|
-
route.fullPath = isFullPath ? route.path : (parentPath === '/' ? parentPath + route.path : parentPath + '/' + route.path)
|
|
51
|
-
if (route.children) {
|
|
52
|
-
formatFullPath(route.children, route.fullPath)
|
|
53
|
-
}
|
|
54
|
-
})
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* 从路由提取国际化数据
|
|
59
|
-
* @param i18n
|
|
60
|
-
* @param routes
|
|
61
|
-
*/
|
|
62
|
-
function mergeI18nFromRoutes (i18n, routes) {
|
|
63
|
-
formatFullPath(routes)
|
|
64
|
-
// eslint-disable-next-line no-new-object
|
|
65
|
-
const CN = generateI18n({}, routes, 'name')
|
|
66
|
-
// eslint-disable-next-line no-new-object
|
|
67
|
-
const US = generateI18n({}, routes, 'path')
|
|
68
|
-
i18n.mergeLocaleMessage('CN', CN)
|
|
69
|
-
i18n.mergeLocaleMessage('US', US)
|
|
70
|
-
const messages = routesI18n.messages
|
|
71
|
-
Object.keys(messages).forEach(lang => {
|
|
72
|
-
i18n.mergeLocaleMessage(lang, messages[lang])
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export {
|
|
77
|
-
initI18n,
|
|
78
|
-
mergeI18nFromRoutes,
|
|
79
|
-
formatFullPath
|
|
80
|
-
}
|
|
1
|
+
import Vue from 'vue'
|
|
2
|
+
import VueI18n from 'vue-i18n'
|
|
3
|
+
import routesI18n from '@vue2-client/router/i18n'
|
|
4
|
+
import './Objects'
|
|
5
|
+
import { getI18nKey } from '@vue2-client/utils/routerUtil'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 创建 i18n 配置
|
|
9
|
+
* @param locale 本地化语言
|
|
10
|
+
* @param fallback 回退语言
|
|
11
|
+
* @returns {VueI18n}
|
|
12
|
+
*/
|
|
13
|
+
function initI18n (locale, fallback) {
|
|
14
|
+
Vue.use(VueI18n)
|
|
15
|
+
const i18nOptions = {
|
|
16
|
+
locale,
|
|
17
|
+
fallbackLocale: fallback,
|
|
18
|
+
silentFallbackWarn: true
|
|
19
|
+
}
|
|
20
|
+
return new VueI18n(i18nOptions)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 根据 router options 配置生成 国际化语言
|
|
25
|
+
* @param lang
|
|
26
|
+
* @param routes
|
|
27
|
+
* @param valueKey
|
|
28
|
+
* @returns {*}
|
|
29
|
+
*/
|
|
30
|
+
function generateI18n (lang, routes, valueKey) {
|
|
31
|
+
routes.forEach(route => {
|
|
32
|
+
const keys = getI18nKey(route.fullPath).split('.')
|
|
33
|
+
const value = valueKey === 'path' ? route[valueKey].split('/').filter(item => !item.startsWith(':') && item !== '').join('.') : route[valueKey]
|
|
34
|
+
lang.assignProps(keys, value)
|
|
35
|
+
if (route.children) {
|
|
36
|
+
generateI18n(lang, route.children, valueKey)
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
return lang
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 格式化 router.options.routes,生成 fullPath
|
|
44
|
+
* @param routes
|
|
45
|
+
* @param parentPath
|
|
46
|
+
*/
|
|
47
|
+
function formatFullPath (routes, parentPath = '') {
|
|
48
|
+
routes.forEach(route => {
|
|
49
|
+
const isFullPath = route.path.substring(0, 1) === '/'
|
|
50
|
+
route.fullPath = isFullPath ? route.path : (parentPath === '/' ? parentPath + route.path : parentPath + '/' + route.path)
|
|
51
|
+
if (route.children) {
|
|
52
|
+
formatFullPath(route.children, route.fullPath)
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 从路由提取国际化数据
|
|
59
|
+
* @param i18n
|
|
60
|
+
* @param routes
|
|
61
|
+
*/
|
|
62
|
+
function mergeI18nFromRoutes (i18n, routes) {
|
|
63
|
+
formatFullPath(routes)
|
|
64
|
+
// eslint-disable-next-line no-new-object
|
|
65
|
+
const CN = generateI18n({}, routes, 'name')
|
|
66
|
+
// eslint-disable-next-line no-new-object
|
|
67
|
+
const US = generateI18n({}, routes, 'path')
|
|
68
|
+
i18n.mergeLocaleMessage('CN', CN)
|
|
69
|
+
i18n.mergeLocaleMessage('US', US)
|
|
70
|
+
const messages = routesI18n.messages
|
|
71
|
+
Object.keys(messages).forEach(lang => {
|
|
72
|
+
i18n.mergeLocaleMessage(lang, messages[lang])
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
initI18n,
|
|
78
|
+
mergeI18nFromRoutes,
|
|
79
|
+
formatFullPath
|
|
80
|
+
}
|