imatrix-ui 2.8.20-dw → 2.8.20-tmp1

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.
Files changed (47) hide show
  1. package/lib/super-ui.css +1 -1
  2. package/lib/super-ui.umd.min.js +5 -36
  3. package/package.json +4 -2
  4. package/src/i18n/i18n.js +1 -1
  5. package/src/i18n/langs/cn.js +5 -3
  6. package/src/i18n/langs/en.js +5 -3
  7. package/src/permission.js +7 -3
  8. package/src/plugins.js +3 -3
  9. package/src/router/index.js +24 -0
  10. package/src/store/getters.js +2 -1
  11. package/src/store/modules/app.js +10 -1
  12. package/src/styles/display-layout.scss +34 -0
  13. package/src/styles/index.scss +32 -4
  14. package/src/styles/theme/dark-blue/button.scss +9 -0
  15. package/src/styles/theme/dark-blue/card.scss +64 -0
  16. package/src/styles/theme/dark-blue/checkbox.scss +10 -0
  17. package/src/styles/theme/dark-blue/dark-blue-var.scss +8 -0
  18. package/src/styles/theme/dark-blue/dialog.scss +21 -0
  19. package/src/styles/theme/dark-blue/element-variables.scss +7 -0
  20. package/src/styles/theme/dark-blue/font.scss +71 -0
  21. package/src/styles/theme/dark-blue/form.scss +51 -0
  22. package/src/styles/theme/dark-blue/index.scss +247 -0
  23. package/src/styles/theme/dark-blue/input.scss +15 -0
  24. package/src/styles/theme/dark-blue/pagination.scss +14 -0
  25. package/src/styles/theme/dark-blue/scrollbar-style.scss +32 -0
  26. package/src/styles/theme/dark-blue/sidebar.scss +296 -0
  27. package/src/styles/theme/dark-blue/tab.scss +83 -0
  28. package/src/styles/theme/dark-blue/table.scss +60 -0
  29. package/src/styles/theme/dark-blue/tree.scss +31 -0
  30. package/src/styles/theme/dark-blue/var.scss +1028 -0
  31. package/src/styles/theme/gray/form-style.scss +2 -2
  32. package/src/styles/theme/gray/input-style.scss +8 -0
  33. package/src/utils/auth-api.js +115 -0
  34. package/src/utils/auth.js +34 -42
  35. package/src/utils/calculator/calculator-factory.js +2 -2
  36. package/src/utils/common-util.js +34 -0
  37. package/src/utils/jump-page-utils.js +29 -5
  38. package/src/utils/menu.js +19 -0
  39. package/src/utils/permission.js +4 -0
  40. package/src/utils/request.js +18 -2
  41. package/src/utils/util.js +7 -3
  42. package/src/views/dsc-component/Sidebar/Item.vue +3 -3
  43. package/src/views/dsc-component/Sidebar/Link.vue +11 -2
  44. package/src/views/dsc-component/Sidebar/SidebarItem.vue +34 -19
  45. package/src/views/dsc-component/Sidebar/index.vue +6 -2
  46. package/src/views/dsc-component/tabs/tab-content.vue +11 -0
  47. package/src/views/login/index.vue +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imatrix-ui",
3
- "version": "2.8.20-dw",
3
+ "version": "2.8.20-tmp1",
4
4
  "description": "前端组件库:表格、表单、组织结构树等",
5
5
  "main": "lib/super-ui.umd.min.js",
6
6
  "private": false,
@@ -13,9 +13,11 @@
13
13
  "test:unit": "vue-cli-service test:unit"
14
14
  },
15
15
  "dependencies": {
16
+ "@tinymce/tinymce-vue": "^3.2.4",
16
17
  "@zxing/library": "^0.19.1",
17
18
  "js-cookie": "^2.2.0",
18
- "sortablejs": "1.10.2"
19
+ "sortablejs": "1.10.2",
20
+ "tinymce": "^5.6.1"
19
21
  },
20
22
  "devDependencies": {
21
23
  "@vue/cli-plugin-babel": "3.8.0",
package/src/i18n/i18n.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import Vue from 'vue'
2
- import locale from '@gcommon/gcommon-ui/lib/locale'
2
+ import locale from 'element-ui/lib/locale'
3
3
  import VueI18n from 'vue-i18n'
4
4
  import en from './langs/en'
5
5
  import cn from './langs/cn'
@@ -1,4 +1,4 @@
1
- import zhLocale from '@gcommon/gcommon-ui/lib/locale/lang/zh-CN'
1
+ import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
2
2
  const cn = {
3
3
  imatrixUIPublicModel: {
4
4
  sure: '确定',
@@ -40,13 +40,14 @@ const cn = {
40
40
  switchToAdvancedQuery: '切换为高级查询',
41
41
  isNull: '等于Null',
42
42
  isNotNull: '不等于Null',
43
- previewImage: '预览图片'
43
+ previewImage: '预览图片',
44
+ fullScreen: '全屏'
44
45
  },
45
46
  imatrixUIMessage: {
46
47
  whetherToConfirmDeletion: '是否确认删除',
47
48
  tips: '提示',
48
49
  pleaseEnterContent: '请输入内容',
49
- internalServerError: '服务器出错了,请联系管理员',
50
+ internalServerError: '请求失败',
50
51
  pleaseSelectDepartment: '请选择部门',
51
52
  pleaseSelectPersonnel: '请选择人员',
52
53
  pleaseRemoveallpersonnelBeforeSelectingSpecificPersonnel: '请先移除所有人员,再选择具体人员',
@@ -89,6 +90,7 @@ const cn = {
89
90
  isShow: '是否显示',
90
91
  isExportable: '是否导出',
91
92
  recordLine: '第 {row} 行记录',
93
+ pageRecordLine: '第 {pageNum} 页第 {row} 行记录',
92
94
  fileName: '文件名称',
93
95
  deleteSuccessful: '删除成功',
94
96
  index: '序号',
@@ -1,4 +1,4 @@
1
- import enLocale from '@gcommon/gcommon-ui/lib/locale/lang/en'
1
+ import enLocale from 'element-ui/lib/locale/lang/en'
2
2
  const en = {
3
3
  imatrixUIPublicModel: {
4
4
  sure: 'Sure',
@@ -40,13 +40,14 @@ const en = {
40
40
  switchToAdvancedQuery: 'Switch To Advanced Query',
41
41
  isNull: 'Is Null',
42
42
  isNotNull: 'Is Not Null',
43
- previewImage: 'Preview image'
43
+ previewImage: 'Preview image',
44
+ fullScreen: 'Full Screen'
44
45
  },
45
46
  imatrixUIMessage: {
46
47
  whetherToConfirmDeletion: 'Whether To Confirm Deletion',
47
48
  tips: 'Tips',
48
49
  pleaseEnterContent: 'Please Enter Content',
49
- internalServerError: 'Server error, please contact administrator',
50
+ internalServerError: 'Server error',
50
51
  pleaseSelectDepartment: 'Please Select Department',
51
52
  pleaseSelectPersonnel: 'Please Select Personnel',
52
53
  pleaseRemoveallpersonnelBeforeSelectingSpecificPersonnel: 'Please Remove All Personnel Before Selecting Specific Personnel',
@@ -88,6 +89,7 @@ const en = {
88
89
  isShow: 'Is Show',
89
90
  isExportable: 'Is Exportable',
90
91
  recordLine: 'Record line {row}',
92
+ pageRecordLine: 'Record in row {row} of page {pageNum}',
91
93
  fileName: 'File Name',
92
94
  deleteSuccessful: 'Deleted successfully',
93
95
  index: 'No.',
package/src/permission.js CHANGED
@@ -4,7 +4,7 @@ import { getToken, setToken } from './utils/auth' // 验权
4
4
  import store from './store'
5
5
  import router, { errorRouterMap } from './router'
6
6
  NProgress.configure({ showSpinner: false })// NProgress Configuration
7
- import { Message } from '@gcommon/gcommon-ui'
7
+ import { Message } from 'element-ui'
8
8
  import Vue from 'vue'
9
9
 
10
10
  const whiteList = ['/login', '/update-password', '/forget-password', '/reset-password', '/redirect'] // 不重定向白名单
@@ -29,8 +29,12 @@ router.beforeEach((to, from, next) => {
29
29
  setToken(token)
30
30
  }
31
31
  }
32
+ if (to.query && to.query._systemName_) {
33
+ // 表示需要设置浏览器页签名
34
+ document.title = to.query._systemName_
35
+ }
32
36
  // console.log('router.beforeEach-getToken()=', token)
33
- if (['/update-password', '/forget-password', '/reset-password', '/redirect'].indexOf(to.path) === -1 && token) {
37
+ if ((['/update-password', '/forget-password', '/reset-password', '/redirect'].indexOf(to.path) === -1 || store.getters.whiteList.indexOf(to.path) !== -1) && token) {
34
38
  if (to.path === '/login') {
35
39
  next({ path: '/', query: to.query })
36
40
  NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it
@@ -84,7 +88,7 @@ router.beforeEach((to, from, next) => {
84
88
  }
85
89
  }
86
90
  } else {
87
- if (whiteList.indexOf(to.path) !== -1) {
91
+ if (whiteList.indexOf(to.path) !== -1 || store.getters.whiteList.indexOf(to.path) !== -1) {
88
92
  next()
89
93
  } else {
90
94
  // 必须使用to.fullPath,fullPath是带有参数的,to.path没有参数,会导致跳转到的页面参数丢失
package/src/plugins.js CHANGED
@@ -3,9 +3,9 @@ import Vue from 'vue'
3
3
  import 'normalize.css/normalize.css' // A modern alternative to CSS resets
4
4
  import './styles/index.scss' // global css
5
5
 
6
- import ElementUI from '@gcommon/gcommon-ui'
7
- import '@gcommon/gcommon-ui/lib/theme-chalk/index.css'
8
- import locale from '@gcommon/gcommon-ui/lib/locale/lang/zh-CN' // lang i18n
6
+ import ElementUI from 'element-ui'
7
+ import 'element-ui/lib/theme-chalk/index.css'
8
+ import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n
9
9
 
10
10
  import SuperUI from 'imatrix-ui'
11
11
  import 'imatrix-ui/lib/super-ui.css'
@@ -79,6 +79,30 @@ export const errorRouterMap = [
79
79
  // 404的映射必须是最后一个
80
80
  { path: '*', redirect: '/404', hidden: true }
81
81
  ]
82
+
83
+ // 解决Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location问题
84
+ const originalPush = Router.prototype.push
85
+ const originReplace = Router.prototype.replace
86
+
87
+ // 第一个参数,告诉原来push方法,你往哪里跳转(传递哪些参数)
88
+ // 第二个参数是成功的回调
89
+ // 第三个参数是失败的回调
90
+ Router.prototype.push = function(location, resolve, reject) {
91
+ // 如果传了 resolve&&reject
92
+ if (resolve && reject) {
93
+ originalPush.call(this, location, resolve, reject)
94
+ } else {
95
+ originalPush.call(this, location, () => {}, () => {})
96
+ }
97
+ }
98
+ Router.prototype.replace = function(location, resolve, reject) {
99
+ if (resolve && reject) {
100
+ originReplace.call(this, location, resolve, reject)
101
+ } else {
102
+ originReplace.call(this, location, () => {}, () => {})
103
+ }
104
+ }
105
+
82
106
  export default new Router({
83
107
  // mode: 'history', //后端支持可开
84
108
  scrollBehavior: () => ({ y: 0 }),
@@ -9,6 +9,7 @@ const getters = {
9
9
  preventReclick: state => state.app.preventReclick,
10
10
  menus: state => state.user.menus,
11
11
  openTab: state => state.tabContent.openTab,
12
- activeIndex: state => state.tabContent.activeIndex
12
+ activeIndex: state => state.tabContent.activeIndex,
13
+ whiteList: state => state.app.whiteList
13
14
  }
14
15
  export default getters
@@ -6,7 +6,8 @@ const app = {
6
6
  withoutAnimation: false
7
7
  },
8
8
  device: 'desktop',
9
- preventReclick: false
9
+ preventReclick: false,
10
+ whiteList: []
10
11
  },
11
12
  mutations: {
12
13
  toggleSidebar: state => {
@@ -28,6 +29,11 @@ const app = {
28
29
  },
29
30
  togglePreventReclick: (state, preventReclick) => {
30
31
  state.preventReclick = preventReclick
32
+ },
33
+ setWhiteList: (state, whiteList) => {
34
+ if (whiteList instanceof Array) {
35
+ state.whiteList = whiteList
36
+ }
31
37
  }
32
38
  },
33
39
  actions: {
@@ -39,6 +45,9 @@ const app = {
39
45
  },
40
46
  toggelDevice({ commit }, device) {
41
47
  commit('toggleDevice', device)
48
+ },
49
+ addWhiteList({ commit }, whiteList) {
50
+ commit('setWhiteList', whiteList)
42
51
  }
43
52
  }
44
53
  }
@@ -0,0 +1,34 @@
1
+ .flex-container {
2
+ display: flex;
3
+ width: 100%;
4
+
5
+ .tree-area {
6
+ flex: 0 0 200px;
7
+ overflow: auto;
8
+ }
9
+
10
+ .list-area {
11
+ flex: 1;
12
+ overflow: auto;
13
+ margin-left: 20px;
14
+ }
15
+ }
16
+
17
+ .three-column-layout {
18
+ height: calc(100vh - 20px);
19
+
20
+ .el-aside {
21
+ margin-right: 20px;
22
+ padding-top: 20px;
23
+ background-color: #FFFFFF;
24
+ box-shadow: 0px 1px 8px 0px #00000019;
25
+
26
+ }
27
+
28
+ .el-main {
29
+ padding: 20px 0 0 20px;
30
+ border-radius: 6px;
31
+ background: #FFFFFF;
32
+ box-shadow: 0px 1px 8px 0px #00000019;
33
+ }
34
+ }
@@ -9,6 +9,9 @@
9
9
  @import './theme/blue2/sidebar.scss';
10
10
  @import './theme/gray/index.scss';
11
11
  @import './theme/gray/sidebar.scss';
12
+ @import './theme/dark-blue/index.scss';
13
+ @import './theme/dark-blue/sidebar.scss';
14
+ @import './display-layout.scss';
12
15
 
13
16
  body {
14
17
  overflow: hidden;
@@ -32,19 +35,33 @@ body .el-table th.gutter {
32
35
  body .el-table colgroup.gutter {
33
36
  display: table-cell !important;
34
37
  }
38
+
35
39
  // 日期控件宽度不自适应问题
36
- .formContent .el-date-editor.el-input,.formContent .el-date-editor.el-input__input,.formContent .el-date-editor.el-input__inner,
37
- .grid-search-form .el-date-editor.el-input,.grid-search-form .el-date-editor.el-input__input,.grid-search-form .el-date-editor.el-input__inner {
40
+ .formContent .el-date-editor.el-input,
41
+ .formContent .el-date-editor.el-input__input,
42
+ .formContent .el-date-editor.el-input__inner,
43
+ .grid-search-form .el-date-editor.el-input,
44
+ .grid-search-form .el-date-editor.el-input__input,
45
+ .grid-search-form .el-date-editor.el-input__inner {
38
46
  width: 100%;
39
47
  }
40
- .formContent .el-date-editor--daterange.el-input,.formContent .el-date-editor--daterange.el-input__inner,.formContent .el-date-editor--timerange.el-input,.formContent .el-date-editor--timerange.el-input__inner,
41
- .grid-search-form .el-date-editor--daterange.el-input,.grid-search-form .el-date-editor--daterange.el-input__inner,.grid-search-form .el-date-editor--timerange.el-input,.grid-search-form .el-date-editor--timerange.el-input__inner {
48
+
49
+ .formContent .el-date-editor--daterange.el-input,
50
+ .formContent .el-date-editor--daterange.el-input__inner,
51
+ .formContent .el-date-editor--timerange.el-input,
52
+ .formContent .el-date-editor--timerange.el-input__inner,
53
+ .grid-search-form .el-date-editor--daterange.el-input,
54
+ .grid-search-form .el-date-editor--daterange.el-input__inner,
55
+ .grid-search-form .el-date-editor--timerange.el-input,
56
+ .grid-search-form .el-date-editor--timerange.el-input__inner {
42
57
  width: 100%;
43
58
  }
59
+
44
60
  // 日期选择按钮太小问题(gcommon ui)
45
61
  .el-picker-panel__footer .el-button--mini {
46
62
  font-size: 16px;
47
63
  }
64
+
48
65
  // 显示必填标志
49
66
  .is_req {
50
67
  .required__label::before {
@@ -56,4 +73,15 @@ body .el-table colgroup.gutter {
56
73
 
57
74
  .formContent .el-form-item {
58
75
  margin-bottom: 0;
76
+ }
77
+
78
+ .operation-area-float {
79
+ float: right;
80
+ position: fixed;
81
+ bottom: 5px;
82
+ right: 4%;
83
+ }
84
+
85
+ .el-button+.el-button {
86
+ margin-left: 10px;
59
87
  }
@@ -0,0 +1,9 @@
1
+ @import "./dark-blue-var.scss";
2
+
3
+ .dark-blue {
4
+ .operation-area .el-button--primary {
5
+ border-radius: 4px;
6
+ background: $--button-opt-background-color;
7
+ border-color: $--button-opt-background-color;
8
+ }
9
+ }
@@ -0,0 +1,64 @@
1
+ .dark-blue {
2
+ $titleColor: rgba(0, 0, 0, 0.85);
3
+
4
+ el-card box-card is-always-shadow .card-radius {
5
+ border-radius: 12px
6
+ }
7
+
8
+ .form-card-header {
9
+ width: 3px;
10
+ height: 14px;
11
+ left: 0;
12
+ align-items: center;
13
+ text-align: center;
14
+ }
15
+
16
+ .form-card-header-bgc {
17
+ width: 3px;
18
+ height: 14px;
19
+ display: flex;
20
+ background-color: #3D4CF2
21
+ }
22
+
23
+ .form-card-text {
24
+ padding-left: 8px;
25
+ font-size: 16px;
26
+ line-height: 24px;
27
+ font-weight: 500;
28
+ color: $titleColor;
29
+ display: table-cell;
30
+ position: relative;
31
+ }
32
+
33
+ .superForm {
34
+ .el-card {
35
+ border-radius: 12px;
36
+ box-shadow: 0 1px 4px 0 rgba(0, 13, 31, 0.10);
37
+ }
38
+
39
+
40
+ }
41
+
42
+
43
+ .platform-card {
44
+ .el-card__header {
45
+ height: 40px;
46
+ background: #F0F8FE;
47
+ color: #005EBA;
48
+ font-family: Source Han Sans CN;
49
+ font-weight: medium;
50
+ font-size: 14px;
51
+ text-align: left;
52
+ padding: 9px 0px 9px 20px;
53
+ }
54
+
55
+ .el-card__header>div {
56
+ line-height: 22px;
57
+ }
58
+
59
+ .card-style {
60
+ margin-top: 20px;
61
+ }
62
+ }
63
+
64
+ }
@@ -0,0 +1,10 @@
1
+ @import "./dark-blue-var.scss";
2
+
3
+ .dark-blue {
4
+
5
+ .el-checkbox__input.is-checked .el-checkbox__inner,
6
+ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
7
+ background-color: $--color-primary;
8
+ border-color: $--color-primary;
9
+ }
10
+ }
@@ -0,0 +1,8 @@
1
+ /* 改变主题色变量 */
2
+ $--color-primary: #005EBA;
3
+ $--button-default-border-color: $--color-primary;
4
+ $--button-default-font-color: $--color-primary;
5
+ $--button-font-weight: regular;
6
+ $--button-default-font-color: $--color-primary;
7
+ $--button-opt-background-color:#0780ED;
8
+ $th-cell-background: #F0F8FE;
@@ -0,0 +1,21 @@
1
+ .dark-blue {
2
+ .el-dialog__header {
3
+ padding: 22px 0px 0px 24px;
4
+ }
5
+
6
+ .el-dialog__title::before {
7
+ content: "";
8
+ text-align: center;
9
+ background: #1A6BF3;
10
+ float: left;
11
+ position: relative;
12
+ border-radius: 3px;
13
+ /** 定义成 block 元素 **/
14
+ display: block;
15
+ height: 21px;
16
+ width: 4px;
17
+ margin-right: 12px;
18
+ }
19
+
20
+
21
+ }
@@ -0,0 +1,7 @@
1
+ @import "./dark-blue-var.scss";
2
+
3
+ .dark-blue {
4
+ /* 改变 icon 字体路径变量,必需 */
5
+ $--font-path: '~element-ui/lib/theme-chalk/fonts';
6
+ @import "~element-ui/packages/theme-chalk/src/index";
7
+ }
@@ -0,0 +1,71 @@
1
+ .dark-blue {
2
+ $titleColor: rgba(0, 0, 0, 0.85);
3
+
4
+ .list-file {
5
+ color: rgba(0, 13, 31, 0.45);
6
+ font-size: 14px;
7
+ cursor: pointer;
8
+ }
9
+
10
+ .form-list-file {
11
+ color: rgba(0, 0, 0, 0.65);
12
+ background: #F2F6FA;
13
+ border-radius: 6px;
14
+ font-size: 14px;
15
+ cursor: pointer;
16
+ height: 28px;
17
+ line-height: 28px;
18
+ padding: 0 8px 0 8px;
19
+ margin-right: 32px
20
+ }
21
+
22
+ .tip-font {
23
+ color: rgba(0, 0, 0, 0.65);
24
+ font-size: 14px;
25
+ }
26
+
27
+ .superForm {
28
+ .el-form-item__label {
29
+ color: rgba(0, 13, 31, 0.85);
30
+ }
31
+ }
32
+
33
+
34
+ .page-layout__title {
35
+ width: 46px;
36
+ height: 16px;
37
+ font-size: 11px;
38
+ font-weight: 500;
39
+ color: #333333;
40
+ line-height: 13px;
41
+ }
42
+
43
+ .component-type-name__title {
44
+ width: 40px;
45
+ height: 14px;
46
+ font-size: 10px;
47
+ font-weight: 500;
48
+ color: #333333;
49
+ line-height: 12px;
50
+ // -webkit-background-clip: text;
51
+ // -webkit-text-fill-color: transparent;
52
+ }
53
+
54
+ .page-layout__title::before {
55
+ content: "";
56
+ text-align: center;
57
+ background: #1A6BF3;
58
+ float: left;
59
+ position: relative;
60
+ border-radius: 3px;
61
+ /** 定义成 block 元素 **/
62
+ display: block;
63
+ // height: 21px;
64
+ // width: 4px;
65
+ margin-right: 12px;
66
+
67
+ width: 2px;
68
+ height: 16px;
69
+
70
+ }
71
+ }
@@ -0,0 +1,51 @@
1
+ .dark-blue {
2
+
3
+ .button-at-top {
4
+ width: 100%;
5
+ background: rgb(255, 255, 255);
6
+ line-height: 72px;
7
+ height: 72px;
8
+ position: absolute;
9
+ z-index: 100;
10
+ top: 0px;
11
+ left: 0px;
12
+ right: 0px;
13
+ }
14
+
15
+ .button-at-bottom {
16
+ width: 100%;
17
+ background: rgb(255, 255, 255);
18
+ line-height: 72px;
19
+ height: 72px;
20
+ position: absolute;
21
+ bottom: 0px;
22
+ z-index: 100;
23
+ left: 0px;
24
+ right: 0px;
25
+ }
26
+
27
+ .form-top-button {
28
+ height: 72px;
29
+ float: left;
30
+ padding-left: 24px;
31
+ line-height: 72px;
32
+ }
33
+
34
+ .form-bottom-button {
35
+ height: 72px;
36
+ float: right;
37
+ padding-right: 24px;
38
+ line-height: 72px;
39
+ }
40
+
41
+ .form-center-position{
42
+ position: relative;
43
+
44
+ .form-center-son{
45
+ position: absolute;
46
+ top: 50%;
47
+ left: 50%;
48
+ transform: translate(-50%,-50%);
49
+ }
50
+ }
51
+ }