vue2-client 1.4.16 → 1.4.17
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 +378 -375
- package/index.js +30 -30
- package/package.json +78 -78
- 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 +389 -389
- 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 +69 -69
- 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/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 +6 -36
- package/src/pages/system/ticket/submitTicketSuccess.vue +1 -1
- 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/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
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
const TicketDetailsViewApi = {
|
|
2
|
-
// 查询:获取工单流转详情
|
|
3
|
-
getTicketWorkFlowDetails: '/api/af-system/logic/getTicketWorkFlowDetails',
|
|
4
|
-
// 查询:获取工单详情
|
|
5
|
-
getTicketDetails: '/api/af-system/logic/getTicketDetails',
|
|
6
|
-
// 手动关闭工单
|
|
7
|
-
manualCloseTicket: '/api/af-system/logic/manualCloseTicket',
|
|
8
|
-
// 转交工单给其他人
|
|
9
|
-
transferTicketToOthers: '/api/af-system/logic/transferTicketToOthers',
|
|
10
|
-
// 确认工单,开始处理
|
|
11
|
-
confirmTicket: '/api/af-system/logic/confirmTicket',
|
|
12
|
-
// 查询:获取订单详情用于订单追踪
|
|
13
|
-
getTicketDetailsForUploader: '/api/af-system/logic/getTicketDetailsForUploader',
|
|
14
|
-
// 更新:将工单优先级增加
|
|
15
|
-
rushTicket: '/api/af-system/logic/rushTicket',
|
|
16
|
-
// 客户手动关闭工单
|
|
17
|
-
manualCloseTicketByCustomer: '/api/af-system/logic/manualCloseTicketByCustomer',
|
|
18
|
-
// 在工单提交页面删除照片
|
|
19
|
-
revocationImage: '/api/af-system/logic/revocationImage',
|
|
20
|
-
// 在工单提交页面删除照片
|
|
21
|
-
getTicketImages: '/api/af-system/logic/getTicketImages',
|
|
22
|
-
// 用户填写附加信息时取消了操作,将已上传的照片清空
|
|
23
|
-
removeAllImages: '/api/af-system/logic/removeAllImages',
|
|
24
|
-
// 提交用户填写附加信息
|
|
25
|
-
AddonDescriptionToTicket: '/api/af-system/logic/AddonDescriptionToTicket',
|
|
26
|
-
// 获取用户填写附加信息
|
|
27
|
-
getAddonDescription: '/api/af-system/logic/getAddonDescription',
|
|
28
|
-
// 发起售后工单流程
|
|
29
|
-
createTicket: '/api/af-system/logic/createTicket',
|
|
30
|
-
// 查询:获取所有员工名,供前端展示备选项
|
|
31
|
-
getAllEmployeeName: '/api/af-system/logic/getAllEmployeeName'
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export { TicketDetailsViewApi }
|
|
1
|
+
const TicketDetailsViewApi = {
|
|
2
|
+
// 查询:获取工单流转详情
|
|
3
|
+
getTicketWorkFlowDetails: '/api/af-system/logic/getTicketWorkFlowDetails',
|
|
4
|
+
// 查询:获取工单详情
|
|
5
|
+
getTicketDetails: '/api/af-system/logic/getTicketDetails',
|
|
6
|
+
// 手动关闭工单
|
|
7
|
+
manualCloseTicket: '/api/af-system/logic/manualCloseTicket',
|
|
8
|
+
// 转交工单给其他人
|
|
9
|
+
transferTicketToOthers: '/api/af-system/logic/transferTicketToOthers',
|
|
10
|
+
// 确认工单,开始处理
|
|
11
|
+
confirmTicket: '/api/af-system/logic/confirmTicket',
|
|
12
|
+
// 查询:获取订单详情用于订单追踪
|
|
13
|
+
getTicketDetailsForUploader: '/api/af-system/logic/getTicketDetailsForUploader',
|
|
14
|
+
// 更新:将工单优先级增加
|
|
15
|
+
rushTicket: '/api/af-system/logic/rushTicket',
|
|
16
|
+
// 客户手动关闭工单
|
|
17
|
+
manualCloseTicketByCustomer: '/api/af-system/logic/manualCloseTicketByCustomer',
|
|
18
|
+
// 在工单提交页面删除照片
|
|
19
|
+
revocationImage: '/api/af-system/logic/revocationImage',
|
|
20
|
+
// 在工单提交页面删除照片
|
|
21
|
+
getTicketImages: '/api/af-system/logic/getTicketImages',
|
|
22
|
+
// 用户填写附加信息时取消了操作,将已上传的照片清空
|
|
23
|
+
removeAllImages: '/api/af-system/logic/removeAllImages',
|
|
24
|
+
// 提交用户填写附加信息
|
|
25
|
+
AddonDescriptionToTicket: '/api/af-system/logic/AddonDescriptionToTicket',
|
|
26
|
+
// 获取用户填写附加信息
|
|
27
|
+
getAddonDescription: '/api/af-system/logic/getAddonDescription',
|
|
28
|
+
// 发起售后工单流程
|
|
29
|
+
createTicket: '/api/af-system/logic/createTicket',
|
|
30
|
+
// 查询:获取所有员工名,供前端展示备选项
|
|
31
|
+
getAllEmployeeName: '/api/af-system/logic/getAllEmployeeName'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { TicketDetailsViewApi }
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const CommonTempTable = {
|
|
2
|
-
// 初始化子表
|
|
3
|
-
initApplySubTable: '/api/af-system/logic/initApplySubTable',
|
|
4
|
-
// 创建临时表,根据配置文件动态生成
|
|
5
|
-
createTempTable: '/api/af-system/logic/createTempTable',
|
|
6
|
-
// 向临时表中插入数据
|
|
7
|
-
insertDataToTempTable: '/api/af-system/logic/insertDataToTempTable'
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export { CommonTempTable }
|
|
1
|
+
const CommonTempTable = {
|
|
2
|
+
// 初始化子表
|
|
3
|
+
initApplySubTable: '/api/af-system/logic/initApplySubTable',
|
|
4
|
+
// 创建临时表,根据配置文件动态生成
|
|
5
|
+
createTempTable: '/api/af-system/logic/createTempTable',
|
|
6
|
+
// 向临时表中插入数据
|
|
7
|
+
insertDataToTempTable: '/api/af-system/logic/insertDataToTempTable'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { CommonTempTable }
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { commonApi, getColumnsJson, query, addOrModify, remove } from '@vue2-client/services/api/common'
|
|
2
|
-
import { QueryParamsDetailsViewApi } from '@vue2-client/services/api/QueryParamsDetailsViewApi'
|
|
3
|
-
import { DictionaryDetailsViewApi } from '@vue2-client/services/api/DictionaryDetailsViewApi'
|
|
4
|
-
import { LogDetailsViewApi } from '@vue2-client/services/api/LogDetailsViewApi'
|
|
5
|
-
import { manageApi } from '@vue2-client/services/api/manage'
|
|
6
|
-
import { get, post } from '@vue2-client/services/api/restTools'
|
|
7
|
-
import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
|
|
8
|
-
|
|
9
|
-
export {
|
|
10
|
-
commonApi, getColumnsJson, query, addOrModify, remove,
|
|
11
|
-
DictionaryDetailsViewApi,
|
|
12
|
-
LogDetailsViewApi,
|
|
13
|
-
manageApi,
|
|
14
|
-
QueryParamsDetailsViewApi,
|
|
15
|
-
get, post,
|
|
16
|
-
TicketDetailsViewApi
|
|
17
|
-
}
|
|
1
|
+
import { commonApi, getColumnsJson, query, addOrModify, remove } from '@vue2-client/services/api/common'
|
|
2
|
+
import { QueryParamsDetailsViewApi } from '@vue2-client/services/api/QueryParamsDetailsViewApi'
|
|
3
|
+
import { DictionaryDetailsViewApi } from '@vue2-client/services/api/DictionaryDetailsViewApi'
|
|
4
|
+
import { LogDetailsViewApi } from '@vue2-client/services/api/LogDetailsViewApi'
|
|
5
|
+
import { manageApi } from '@vue2-client/services/api/manage'
|
|
6
|
+
import { get, post } from '@vue2-client/services/api/restTools'
|
|
7
|
+
import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
commonApi, getColumnsJson, query, addOrModify, remove,
|
|
11
|
+
DictionaryDetailsViewApi,
|
|
12
|
+
LogDetailsViewApi,
|
|
13
|
+
manageApi,
|
|
14
|
+
QueryParamsDetailsViewApi,
|
|
15
|
+
get, post,
|
|
16
|
+
TicketDetailsViewApi
|
|
17
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const manageApi = {
|
|
2
|
-
// 查询:获取字典键列表
|
|
3
|
-
getDictionaryValue: '/api/af-system/logic/getDictionaryValue',
|
|
4
|
-
// 查询:获取省市区街道三级分类
|
|
5
|
-
getDivisionsOhChina: '/api/af-system/logic/getDivisionsOhChina'
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export { manageApi }
|
|
1
|
+
const manageApi = {
|
|
2
|
+
// 查询:获取字典键列表
|
|
3
|
+
getDictionaryValue: '/api/af-system/logic/getDictionaryValue',
|
|
4
|
+
// 查询:获取省市区街道三级分类
|
|
5
|
+
getDivisionsOhChina: '/api/af-system/logic/getDivisionsOhChina'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { manageApi }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import account from './account'
|
|
2
|
-
import setting from './setting'
|
|
3
|
-
|
|
4
|
-
export default { account, setting }
|
|
1
|
+
import account from './account'
|
|
2
|
+
import setting from './setting'
|
|
3
|
+
|
|
4
|
+
export default { account, setting }
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
@import '~ant-design-vue/lib/style/themes/default';
|
|
2
|
-
|
|
3
|
-
/* Make clicks pass-through */
|
|
4
|
-
#nprogress {
|
|
5
|
-
pointer-events: none;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
#nprogress .bar {
|
|
9
|
-
background: @primary-color;
|
|
10
|
-
|
|
11
|
-
position: fixed;
|
|
12
|
-
z-index: 1031;
|
|
13
|
-
top: 0;
|
|
14
|
-
left: 0;
|
|
15
|
-
|
|
16
|
-
width: 100%;
|
|
17
|
-
height: 2px;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Fancy blur effect */
|
|
21
|
-
#nprogress .peg {
|
|
22
|
-
display: block;
|
|
23
|
-
position: absolute;
|
|
24
|
-
right: 0;
|
|
25
|
-
width: 100px;
|
|
26
|
-
height: 100%;
|
|
27
|
-
box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color;
|
|
28
|
-
opacity: 1.0;
|
|
29
|
-
|
|
30
|
-
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
|
31
|
-
-ms-transform: rotate(3deg) translate(0px, -4px);
|
|
32
|
-
transform: rotate(3deg) translate(0px, -4px);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* Remove these to get rid of the spinner */
|
|
36
|
-
#nprogress .spinner {
|
|
37
|
-
display: block;
|
|
38
|
-
position: fixed;
|
|
39
|
-
z-index: 1031;
|
|
40
|
-
top: 15px;
|
|
41
|
-
right: 15px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
#nprogress .spinner-icon {
|
|
45
|
-
width: 18px;
|
|
46
|
-
height: 18px;
|
|
47
|
-
box-sizing: border-box;
|
|
48
|
-
|
|
49
|
-
border: solid 2px transparent;
|
|
50
|
-
border-top-color: @primary-color;
|
|
51
|
-
border-left-color: @primary-color;
|
|
52
|
-
border-radius: 50%;
|
|
53
|
-
|
|
54
|
-
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
|
55
|
-
animation: nprogress-spinner 400ms linear infinite;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.nprogress-custom-parent {
|
|
59
|
-
overflow: hidden;
|
|
60
|
-
position: relative;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.nprogress-custom-parent #nprogress .spinner,
|
|
64
|
-
.nprogress-custom-parent #nprogress .bar {
|
|
65
|
-
position: absolute;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
@-webkit-keyframes nprogress-spinner {
|
|
69
|
-
0% { -webkit-transform: rotate(0deg); }
|
|
70
|
-
100% { -webkit-transform: rotate(360deg); }
|
|
71
|
-
}
|
|
72
|
-
@keyframes nprogress-spinner {
|
|
73
|
-
0% { transform: rotate(0deg); }
|
|
74
|
-
100% { transform: rotate(360deg); }
|
|
75
|
-
}
|
|
76
|
-
|
|
1
|
+
@import '~ant-design-vue/lib/style/themes/default';
|
|
2
|
+
|
|
3
|
+
/* Make clicks pass-through */
|
|
4
|
+
#nprogress {
|
|
5
|
+
pointer-events: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
#nprogress .bar {
|
|
9
|
+
background: @primary-color;
|
|
10
|
+
|
|
11
|
+
position: fixed;
|
|
12
|
+
z-index: 1031;
|
|
13
|
+
top: 0;
|
|
14
|
+
left: 0;
|
|
15
|
+
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 2px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Fancy blur effect */
|
|
21
|
+
#nprogress .peg {
|
|
22
|
+
display: block;
|
|
23
|
+
position: absolute;
|
|
24
|
+
right: 0;
|
|
25
|
+
width: 100px;
|
|
26
|
+
height: 100%;
|
|
27
|
+
box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color;
|
|
28
|
+
opacity: 1.0;
|
|
29
|
+
|
|
30
|
+
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
|
31
|
+
-ms-transform: rotate(3deg) translate(0px, -4px);
|
|
32
|
+
transform: rotate(3deg) translate(0px, -4px);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Remove these to get rid of the spinner */
|
|
36
|
+
#nprogress .spinner {
|
|
37
|
+
display: block;
|
|
38
|
+
position: fixed;
|
|
39
|
+
z-index: 1031;
|
|
40
|
+
top: 15px;
|
|
41
|
+
right: 15px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
#nprogress .spinner-icon {
|
|
45
|
+
width: 18px;
|
|
46
|
+
height: 18px;
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
|
|
49
|
+
border: solid 2px transparent;
|
|
50
|
+
border-top-color: @primary-color;
|
|
51
|
+
border-left-color: @primary-color;
|
|
52
|
+
border-radius: 50%;
|
|
53
|
+
|
|
54
|
+
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
|
55
|
+
animation: nprogress-spinner 400ms linear infinite;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.nprogress-custom-parent {
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
position: relative;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.nprogress-custom-parent #nprogress .spinner,
|
|
64
|
+
.nprogress-custom-parent #nprogress .bar {
|
|
65
|
+
position: absolute;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@-webkit-keyframes nprogress-spinner {
|
|
69
|
+
0% { -webkit-transform: rotate(0deg); }
|
|
70
|
+
100% { -webkit-transform: rotate(360deg); }
|
|
71
|
+
}
|
|
72
|
+
@keyframes nprogress-spinner {
|
|
73
|
+
0% { transform: rotate(0deg); }
|
|
74
|
+
100% { transform: rotate(360deg); }
|
|
75
|
+
}
|
|
76
|
+
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
.week-mode{
|
|
2
|
-
overflow: hidden;
|
|
3
|
-
filter: invert(80%);
|
|
4
|
-
}
|
|
5
|
-
.beauty-scroll{
|
|
6
|
-
scrollbar-color: @primary-color @primary-2;
|
|
7
|
-
scrollbar-width: thin;
|
|
8
|
-
-ms-overflow-style:none;
|
|
9
|
-
position: relative;
|
|
10
|
-
&::-webkit-scrollbar{
|
|
11
|
-
width: 3px;
|
|
12
|
-
height: 1px;
|
|
13
|
-
}
|
|
14
|
-
&::-webkit-scrollbar-thumb {
|
|
15
|
-
border-radius: 3px;
|
|
16
|
-
background: @primary-color;
|
|
17
|
-
}
|
|
18
|
-
&::-webkit-scrollbar-track {
|
|
19
|
-
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
|
|
20
|
-
border-radius: 3px;
|
|
21
|
-
background: @primary-3;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
.split-right{
|
|
25
|
-
&:not(:last-child) {
|
|
26
|
-
border-right: 1px solid rgba(98, 98, 98, 0.2);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
.disabled{
|
|
30
|
-
cursor: not-allowed;
|
|
31
|
-
color: @disabled-color;
|
|
32
|
-
pointer-events: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
::-webkit-scrollbar{
|
|
36
|
-
width: 5px;
|
|
37
|
-
height: 5px;
|
|
38
|
-
}
|
|
39
|
-
::-webkit-scrollbar-thumb {
|
|
40
|
-
border-radius: 3px;
|
|
41
|
-
background: @primary-3;
|
|
42
|
-
}
|
|
43
|
-
::-webkit-scrollbar-track {
|
|
44
|
-
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
|
|
45
|
-
border-radius: 3px;
|
|
46
|
-
background: @primary-1;
|
|
47
|
-
}
|
|
1
|
+
.week-mode{
|
|
2
|
+
overflow: hidden;
|
|
3
|
+
filter: invert(80%);
|
|
4
|
+
}
|
|
5
|
+
.beauty-scroll{
|
|
6
|
+
scrollbar-color: @primary-color @primary-2;
|
|
7
|
+
scrollbar-width: thin;
|
|
8
|
+
-ms-overflow-style:none;
|
|
9
|
+
position: relative;
|
|
10
|
+
&::-webkit-scrollbar{
|
|
11
|
+
width: 3px;
|
|
12
|
+
height: 1px;
|
|
13
|
+
}
|
|
14
|
+
&::-webkit-scrollbar-thumb {
|
|
15
|
+
border-radius: 3px;
|
|
16
|
+
background: @primary-color;
|
|
17
|
+
}
|
|
18
|
+
&::-webkit-scrollbar-track {
|
|
19
|
+
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
|
|
20
|
+
border-radius: 3px;
|
|
21
|
+
background: @primary-3;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
.split-right{
|
|
25
|
+
&:not(:last-child) {
|
|
26
|
+
border-right: 1px solid rgba(98, 98, 98, 0.2);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
.disabled{
|
|
30
|
+
cursor: not-allowed;
|
|
31
|
+
color: @disabled-color;
|
|
32
|
+
pointer-events: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
::-webkit-scrollbar{
|
|
36
|
+
width: 5px;
|
|
37
|
+
height: 5px;
|
|
38
|
+
}
|
|
39
|
+
::-webkit-scrollbar-thumb {
|
|
40
|
+
border-radius: 3px;
|
|
41
|
+
background: @primary-3;
|
|
42
|
+
}
|
|
43
|
+
::-webkit-scrollbar-track {
|
|
44
|
+
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
|
|
45
|
+
border-radius: 3px;
|
|
46
|
+
background: @primary-1;
|
|
47
|
+
}
|
package/src/utils/colors.js
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
const varyColor = require('webpack-theme-color-replacer/client/varyColor')
|
|
2
|
-
const { generate } = require('@ant-design/colors')
|
|
3
|
-
const { ADMIN, ANTD } = require('../config/default')
|
|
4
|
-
const Config = require('../config')
|
|
5
|
-
|
|
6
|
-
const themeMode = ADMIN.theme.mode
|
|
7
|
-
|
|
8
|
-
// 获取 ant design 色系
|
|
9
|
-
function getAntdColors (color, mode) {
|
|
10
|
-
const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
|
|
11
|
-
return generate(color, options)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// 获取功能性颜色
|
|
15
|
-
function getFunctionalColors (mode) {
|
|
16
|
-
const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
|
|
17
|
-
let { success, warning, error } = ANTD.primary
|
|
18
|
-
const { success: s1, warning: w1, error: e1 } = Config.theme
|
|
19
|
-
success = success && s1
|
|
20
|
-
warning = success && w1
|
|
21
|
-
error = success && e1
|
|
22
|
-
const successColors = generate(success, options)
|
|
23
|
-
const warningColors = generate(warning, options)
|
|
24
|
-
const errorColors = generate(error, options)
|
|
25
|
-
return {
|
|
26
|
-
success: successColors,
|
|
27
|
-
warning: warningColors,
|
|
28
|
-
error: errorColors
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// 获取菜单色系
|
|
33
|
-
function getMenuColors (color, mode) {
|
|
34
|
-
if (mode === themeMode.NIGHT) {
|
|
35
|
-
return ANTD.primary.night.menuColors
|
|
36
|
-
} else if (color === ANTD.primary.color) {
|
|
37
|
-
return ANTD.primary.dark.menuColors
|
|
38
|
-
} else {
|
|
39
|
-
return [varyColor.darken(color, 0.93), varyColor.darken(color, 0.83), varyColor.darken(color, 0.73)]
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// 获取主题模式切换色系
|
|
44
|
-
function getThemeToggleColors (color, mode) {
|
|
45
|
-
// 主色系
|
|
46
|
-
const mainColors = getAntdColors(color, mode)
|
|
47
|
-
const primary = mainColors[5]
|
|
48
|
-
// 辅助色系,因为 antd 目前没针对夜间模式设计,所以增加辅助色系以保证夜间模式的正常切换
|
|
49
|
-
const subColors = getAntdColors(primary, themeMode.LIGHT)
|
|
50
|
-
// 菜单色系
|
|
51
|
-
const menuColors = getMenuColors(color, mode)
|
|
52
|
-
// 内容色系(包含背景色、文字颜色等)
|
|
53
|
-
const themeCfg = ANTD.theme[mode]
|
|
54
|
-
let contentColors = Object.keys(themeCfg)
|
|
55
|
-
.map(key => themeCfg[key])
|
|
56
|
-
.map(color => isHex(color) ? color : toNum3(color).join(','))
|
|
57
|
-
// 内容色去重
|
|
58
|
-
contentColors = [...new Set(contentColors)]
|
|
59
|
-
// rgb 格式的主题色
|
|
60
|
-
const rgbColors = [toNum3(primary).join(',')]
|
|
61
|
-
const functionalColors = getFunctionalColors(mode)
|
|
62
|
-
return { primary, mainColors, subColors, menuColors, contentColors, rgbColors, functionalColors }
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function toNum3 (color) {
|
|
66
|
-
if (isHex(color)) {
|
|
67
|
-
return varyColor.toNum3(color)
|
|
68
|
-
}
|
|
69
|
-
let colorStr = ''
|
|
70
|
-
if (isRgb(color)) {
|
|
71
|
-
colorStr = color.slice(5, color.length)
|
|
72
|
-
} else if (isRgba(color)) {
|
|
73
|
-
colorStr = color.slice(6, color.lastIndexOf(','))
|
|
74
|
-
}
|
|
75
|
-
const rgb = colorStr.split(',')
|
|
76
|
-
const r = parseInt(rgb[0])
|
|
77
|
-
const g = parseInt(rgb[1])
|
|
78
|
-
const b = parseInt(rgb[2])
|
|
79
|
-
return [r, g, b]
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function isHex (color) {
|
|
83
|
-
return color.length >= 4 && color[0] === '#'
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function isRgb (color) {
|
|
87
|
-
return color.length >= 10 && color.slice(0, 3) === 'rgb'
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function isRgba (color) {
|
|
91
|
-
return color.length >= 13 && color.slice(0, 4) === 'rgba'
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
module.exports = {
|
|
95
|
-
isHex,
|
|
96
|
-
isRgb,
|
|
97
|
-
isRgba,
|
|
98
|
-
toNum3,
|
|
99
|
-
getAntdColors,
|
|
100
|
-
getMenuColors,
|
|
101
|
-
getThemeToggleColors,
|
|
102
|
-
getFunctionalColors
|
|
103
|
-
}
|
|
1
|
+
const varyColor = require('webpack-theme-color-replacer/client/varyColor')
|
|
2
|
+
const { generate } = require('@ant-design/colors')
|
|
3
|
+
const { ADMIN, ANTD } = require('../config/default')
|
|
4
|
+
const Config = require('../config')
|
|
5
|
+
|
|
6
|
+
const themeMode = ADMIN.theme.mode
|
|
7
|
+
|
|
8
|
+
// 获取 ant design 色系
|
|
9
|
+
function getAntdColors (color, mode) {
|
|
10
|
+
const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
|
|
11
|
+
return generate(color, options)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// 获取功能性颜色
|
|
15
|
+
function getFunctionalColors (mode) {
|
|
16
|
+
const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
|
|
17
|
+
let { success, warning, error } = ANTD.primary
|
|
18
|
+
const { success: s1, warning: w1, error: e1 } = Config.theme
|
|
19
|
+
success = success && s1
|
|
20
|
+
warning = success && w1
|
|
21
|
+
error = success && e1
|
|
22
|
+
const successColors = generate(success, options)
|
|
23
|
+
const warningColors = generate(warning, options)
|
|
24
|
+
const errorColors = generate(error, options)
|
|
25
|
+
return {
|
|
26
|
+
success: successColors,
|
|
27
|
+
warning: warningColors,
|
|
28
|
+
error: errorColors
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 获取菜单色系
|
|
33
|
+
function getMenuColors (color, mode) {
|
|
34
|
+
if (mode === themeMode.NIGHT) {
|
|
35
|
+
return ANTD.primary.night.menuColors
|
|
36
|
+
} else if (color === ANTD.primary.color) {
|
|
37
|
+
return ANTD.primary.dark.menuColors
|
|
38
|
+
} else {
|
|
39
|
+
return [varyColor.darken(color, 0.93), varyColor.darken(color, 0.83), varyColor.darken(color, 0.73)]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// 获取主题模式切换色系
|
|
44
|
+
function getThemeToggleColors (color, mode) {
|
|
45
|
+
// 主色系
|
|
46
|
+
const mainColors = getAntdColors(color, mode)
|
|
47
|
+
const primary = mainColors[5]
|
|
48
|
+
// 辅助色系,因为 antd 目前没针对夜间模式设计,所以增加辅助色系以保证夜间模式的正常切换
|
|
49
|
+
const subColors = getAntdColors(primary, themeMode.LIGHT)
|
|
50
|
+
// 菜单色系
|
|
51
|
+
const menuColors = getMenuColors(color, mode)
|
|
52
|
+
// 内容色系(包含背景色、文字颜色等)
|
|
53
|
+
const themeCfg = ANTD.theme[mode]
|
|
54
|
+
let contentColors = Object.keys(themeCfg)
|
|
55
|
+
.map(key => themeCfg[key])
|
|
56
|
+
.map(color => isHex(color) ? color : toNum3(color).join(','))
|
|
57
|
+
// 内容色去重
|
|
58
|
+
contentColors = [...new Set(contentColors)]
|
|
59
|
+
// rgb 格式的主题色
|
|
60
|
+
const rgbColors = [toNum3(primary).join(',')]
|
|
61
|
+
const functionalColors = getFunctionalColors(mode)
|
|
62
|
+
return { primary, mainColors, subColors, menuColors, contentColors, rgbColors, functionalColors }
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function toNum3 (color) {
|
|
66
|
+
if (isHex(color)) {
|
|
67
|
+
return varyColor.toNum3(color)
|
|
68
|
+
}
|
|
69
|
+
let colorStr = ''
|
|
70
|
+
if (isRgb(color)) {
|
|
71
|
+
colorStr = color.slice(5, color.length)
|
|
72
|
+
} else if (isRgba(color)) {
|
|
73
|
+
colorStr = color.slice(6, color.lastIndexOf(','))
|
|
74
|
+
}
|
|
75
|
+
const rgb = colorStr.split(',')
|
|
76
|
+
const r = parseInt(rgb[0])
|
|
77
|
+
const g = parseInt(rgb[1])
|
|
78
|
+
const b = parseInt(rgb[2])
|
|
79
|
+
return [r, g, b]
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function isHex (color) {
|
|
83
|
+
return color.length >= 4 && color[0] === '#'
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function isRgb (color) {
|
|
87
|
+
return color.length >= 10 && color.slice(0, 3) === 'rgb'
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function isRgba (color) {
|
|
91
|
+
return color.length >= 13 && color.slice(0, 4) === 'rgba'
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
module.exports = {
|
|
95
|
+
isHex,
|
|
96
|
+
isRgb,
|
|
97
|
+
isRgba,
|
|
98
|
+
toNum3,
|
|
99
|
+
getAntdColors,
|
|
100
|
+
getMenuColors,
|
|
101
|
+
getThemeToggleColors,
|
|
102
|
+
getFunctionalColors
|
|
103
|
+
}
|