mooho-base-admin-plus 0.1.64 → 0.1.68
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/dist/mooho-base-admin-plus.min.esm.js +2332 -1680
- package/dist/mooho-base-admin-plus.min.js +57 -69
- package/dist/setting.js +27 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/public/setting.js +27 -1
- package/src/components/input/dialog-select.vue +9 -8
- package/src/components/input/item-select.vue +1 -0
- package/src/components/richEditor/index.vue +2 -2
- package/src/components/upload/upload-attachment.vue +7 -7
- package/src/components/upload/upload-image.vue +17 -11
- package/src/components/view/filter-edit.vue +2 -2
- package/src/components/view/form-setting-layout.vue +11 -6
- package/src/components/view/view-form.vue +2 -1
- package/src/components/view/view-table.vue +58 -67
- package/src/i18n/locale/en-US.js +1 -1
- package/src/i18n/locale/lang.js +1 -1
- package/src/i18n/locale/zh-CN.js +1 -1
- package/src/layouts/basic-layout/mixins/click-item.js +21 -21
- package/src/layouts/basic-layout/mixins/sider-menu-badge.js +13 -13
- package/src/layouts/basic-layout/mixins/translate-title.js +11 -11
- package/src/layouts/basic-layout/water-mark/index.vue +29 -29
- package/src/libs/lodop/index.js +3 -1
- package/src/libs/random_str.js +10 -10
- package/src/libs/request/index.js +4 -1
- package/src/libs/water-mark.js +44 -44
- package/src/pages/template/processPage.vue +7 -1
- package/src/plugins/log/index.js +25 -0
- package/src/setting.js +13 -2
- package/src/store/modules/admin/modules/page.js +28 -25
- package/src/styles/common.less +47 -47
- package/src/styles/css/login.css +1 -1
- package/src/styles/default/index.less +6 -6
- package/src/styles/font/iconfont.css +47 -47
- package/src/styles/font/iconfont.json +65 -65
- package/src/styles/layout/basic-layout/layout.less +527 -527
- package/src/styles/layout/basic-layout/menu.less +274 -274
- package/src/styles/layout/index.less +2 -2
- package/src/styles/setting.less +6 -6
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { mapState } from 'vuex';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
computed: {
|
|
5
|
-
...mapState('admin/menu', ['siderMenuBadge']),
|
|
6
|
-
badgeData() {
|
|
7
|
-
let data = null;
|
|
8
|
-
const siderMenuBadge = this.siderMenuBadge.find(item => item.path === this.menu.path);
|
|
9
|
-
if (siderMenuBadge) data = siderMenuBadge;
|
|
10
|
-
return data;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
};
|
|
1
|
+
import { mapState } from 'vuex';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
computed: {
|
|
5
|
+
...mapState('admin/menu', ['siderMenuBadge']),
|
|
6
|
+
badgeData() {
|
|
7
|
+
let data = null;
|
|
8
|
+
const siderMenuBadge = this.siderMenuBadge.find(item => item.path === this.menu.path);
|
|
9
|
+
if (siderMenuBadge) data = siderMenuBadge;
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
methods: {
|
|
3
|
-
tTitle(title) {
|
|
4
|
-
if (title && title.indexOf('$t:') === 0) {
|
|
5
|
-
return this.$t(title.split('$t:')[1]);
|
|
6
|
-
} else {
|
|
7
|
-
return title;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
};
|
|
1
|
+
export default {
|
|
2
|
+
methods: {
|
|
3
|
+
tTitle(title) {
|
|
4
|
+
if (title && title.indexOf('$t:') === 0) {
|
|
5
|
+
return this.$t(title.split('$t:')[1]);
|
|
6
|
+
} else {
|
|
7
|
+
return title;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div :style="styles" v-if="waterMark.show"></div>
|
|
3
|
-
</template>
|
|
4
|
-
<script>
|
|
5
|
-
import { mapState } from 'vuex';
|
|
6
|
-
import getWaterMarkCanvas from '../../../libs/water-mark';
|
|
7
|
-
|
|
8
|
-
export default {
|
|
9
|
-
name: 'i-water-mark',
|
|
10
|
-
computed: {
|
|
11
|
-
...mapState('admin/layout', ['waterMark']),
|
|
12
|
-
styles() {
|
|
13
|
-
const url = getWaterMarkCanvas(this.waterMark.text, this.waterMark.options);
|
|
14
|
-
return {
|
|
15
|
-
width: '100%',
|
|
16
|
-
height: '100%',
|
|
17
|
-
position: 'absolute',
|
|
18
|
-
top: '0',
|
|
19
|
-
left: '0',
|
|
20
|
-
'z-index': '2000',
|
|
21
|
-
'background-size': '320px',
|
|
22
|
-
'background-repeat': 'repeat',
|
|
23
|
-
'background-image': `url(${url})`,
|
|
24
|
-
'pointer-events': 'none'
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div :style="styles" v-if="waterMark.show"></div>
|
|
3
|
+
</template>
|
|
4
|
+
<script>
|
|
5
|
+
import { mapState } from 'vuex';
|
|
6
|
+
import getWaterMarkCanvas from '../../../libs/water-mark';
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
name: 'i-water-mark',
|
|
10
|
+
computed: {
|
|
11
|
+
...mapState('admin/layout', ['waterMark']),
|
|
12
|
+
styles() {
|
|
13
|
+
const url = getWaterMarkCanvas(this.waterMark.text, this.waterMark.options);
|
|
14
|
+
return {
|
|
15
|
+
width: '100%',
|
|
16
|
+
height: '100%',
|
|
17
|
+
position: 'absolute',
|
|
18
|
+
top: '0',
|
|
19
|
+
left: '0',
|
|
20
|
+
'z-index': '2000',
|
|
21
|
+
'background-size': '320px',
|
|
22
|
+
'background-repeat': 'repeat',
|
|
23
|
+
'background-image': `url(${url})`,
|
|
24
|
+
'pointer-events': 'none'
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
</script>
|
package/src/libs/lodop/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-empty */
|
|
2
2
|
/* eslint-disable no-undef */
|
|
3
|
+
import Setting from '../../setting';
|
|
4
|
+
|
|
3
5
|
var CreatedOKLodop7766 = null;
|
|
4
6
|
|
|
5
7
|
//= ===判断是否需要安装CLodop云打印服务器:====
|
|
@@ -118,7 +120,7 @@ const getLodop = (oOBJECT, oEMBED) => {
|
|
|
118
120
|
return LODOP;
|
|
119
121
|
}
|
|
120
122
|
//= ==如下空白位置适合调用统一功能(如注册语句、语言选择等):===
|
|
121
|
-
LODOP.SET_LICENSES(
|
|
123
|
+
LODOP.SET_LICENSES(Setting.lodop.name, Setting.lodop.key, '', '');
|
|
122
124
|
|
|
123
125
|
//= ==========================================================
|
|
124
126
|
return LODOP;
|
package/src/libs/random_str.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// 生成随机字符串
|
|
2
|
-
export default function (len = 32) {
|
|
3
|
-
const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
|
|
4
|
-
const maxPos = $chars.length;
|
|
5
|
-
let str = '';
|
|
6
|
-
for (let i = 0; i < len; i++) {
|
|
7
|
-
str += $chars.charAt(Math.floor(Math.random() * maxPos));
|
|
8
|
-
}
|
|
9
|
-
return str;
|
|
10
|
-
}
|
|
1
|
+
// 生成随机字符串
|
|
2
|
+
export default function (len = 32) {
|
|
3
|
+
const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
|
|
4
|
+
const maxPos = $chars.length;
|
|
5
|
+
let str = '';
|
|
6
|
+
for (let i = 0; i < len; i++) {
|
|
7
|
+
str += $chars.charAt(Math.floor(Math.random() * maxPos));
|
|
8
|
+
}
|
|
9
|
+
return str;
|
|
10
|
+
}
|
|
@@ -107,7 +107,10 @@ service.interceptors.response.use(
|
|
|
107
107
|
},
|
|
108
108
|
error => {
|
|
109
109
|
if (error && error.response && error.response.status === 401) {
|
|
110
|
-
|
|
110
|
+
console.log('1', getRouter());
|
|
111
|
+
if (getRouter().currentRoute.value.path != '/login') {
|
|
112
|
+
getRouter().push('/login?redirect=' + getRouter().options.history.location);
|
|
113
|
+
}
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
store.commit('admin/loader/end');
|
package/src/libs/water-mark.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description 生成水印
|
|
3
|
-
* */
|
|
4
|
-
export default function getWaterMarkCanvas(text, options) {
|
|
5
|
-
const canvas = document.createElement('canvas');
|
|
6
|
-
const ctx = canvas.getContext('2d');
|
|
7
|
-
const canvasWidth = 400;
|
|
8
|
-
const canvasHeight = 400;
|
|
9
|
-
canvas.width = canvasWidth;
|
|
10
|
-
canvas.height = canvasHeight;
|
|
11
|
-
ctx.textAlign = 'center';
|
|
12
|
-
ctx.textBaseline = 'bottom';
|
|
13
|
-
ctx.globalAlpha = options.globalAlpha || 0.1;
|
|
14
|
-
ctx.font = options.font || '20px Microsoft Yahei';
|
|
15
|
-
|
|
16
|
-
ctx.translate(canvasWidth / 2, canvasHeight / 2);
|
|
17
|
-
ctx.rotate(options.rotateAngle || -0.4);
|
|
18
|
-
|
|
19
|
-
ctx.translate((-canvasWidth / 2) * 1.2, (-canvasHeight / 2) * 1.2);
|
|
20
|
-
|
|
21
|
-
const waterMarkText = [];
|
|
22
|
-
const chunkWidth = options.chunkWidth || 400;
|
|
23
|
-
const chunkHeight = options.chunkHeight || 120;
|
|
24
|
-
const horizontalChunkCount = 0;
|
|
25
|
-
const verticalChunkCount = 1;
|
|
26
|
-
|
|
27
|
-
for (let j = 0, initY = chunkHeight / 2, indent = 0; j <= verticalChunkCount; j += 1) {
|
|
28
|
-
indent = parseInt(j % 2);
|
|
29
|
-
|
|
30
|
-
for (let i = 0, initX = chunkWidth / 2; i <= horizontalChunkCount; i += 1) {
|
|
31
|
-
waterMarkText.push({
|
|
32
|
-
text,
|
|
33
|
-
x: i * chunkWidth + indent * initX,
|
|
34
|
-
y: j * chunkHeight + initY
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
waterMarkText.forEach(item => {
|
|
40
|
-
ctx.fillText(item.text, item.x, item.y);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
return ctx.canvas.toDataURL();
|
|
44
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @description 生成水印
|
|
3
|
+
* */
|
|
4
|
+
export default function getWaterMarkCanvas(text, options) {
|
|
5
|
+
const canvas = document.createElement('canvas');
|
|
6
|
+
const ctx = canvas.getContext('2d');
|
|
7
|
+
const canvasWidth = 400;
|
|
8
|
+
const canvasHeight = 400;
|
|
9
|
+
canvas.width = canvasWidth;
|
|
10
|
+
canvas.height = canvasHeight;
|
|
11
|
+
ctx.textAlign = 'center';
|
|
12
|
+
ctx.textBaseline = 'bottom';
|
|
13
|
+
ctx.globalAlpha = options.globalAlpha || 0.1;
|
|
14
|
+
ctx.font = options.font || '20px Microsoft Yahei';
|
|
15
|
+
|
|
16
|
+
ctx.translate(canvasWidth / 2, canvasHeight / 2);
|
|
17
|
+
ctx.rotate(options.rotateAngle || -0.4);
|
|
18
|
+
|
|
19
|
+
ctx.translate((-canvasWidth / 2) * 1.2, (-canvasHeight / 2) * 1.2);
|
|
20
|
+
|
|
21
|
+
const waterMarkText = [];
|
|
22
|
+
const chunkWidth = options.chunkWidth || 400;
|
|
23
|
+
const chunkHeight = options.chunkHeight || 120;
|
|
24
|
+
const horizontalChunkCount = 0;
|
|
25
|
+
const verticalChunkCount = 1;
|
|
26
|
+
|
|
27
|
+
for (let j = 0, initY = chunkHeight / 2, indent = 0; j <= verticalChunkCount; j += 1) {
|
|
28
|
+
indent = parseInt(j % 2);
|
|
29
|
+
|
|
30
|
+
for (let i = 0, initX = chunkWidth / 2; i <= horizontalChunkCount; i += 1) {
|
|
31
|
+
waterMarkText.push({
|
|
32
|
+
text,
|
|
33
|
+
x: i * chunkWidth + indent * initX,
|
|
34
|
+
y: j * chunkHeight + initY
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
waterMarkText.forEach(item => {
|
|
40
|
+
ctx.fillText(item.text, item.x, item.y);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
return ctx.canvas.toDataURL();
|
|
44
|
+
}
|
|
@@ -32,7 +32,13 @@
|
|
|
32
32
|
<Button type="primary" custom-icon="fa fa-save" @click="save">保存</Button>
|
|
33
33
|
<Button
|
|
34
34
|
type="warning"
|
|
35
|
-
v-if="
|
|
35
|
+
v-if="
|
|
36
|
+
$refs.form &&
|
|
37
|
+
$refs.form.data &&
|
|
38
|
+
$refs.form.data.application &&
|
|
39
|
+
$refs.form.data.applicationID &&
|
|
40
|
+
($refs.form.data.application.status == 'Draft' || $refs.form.data.application.status == 'Rejected')
|
|
41
|
+
"
|
|
36
42
|
custom-icon="fa fa-trash-alt"
|
|
37
43
|
@click="cancel"
|
|
38
44
|
>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import store from '../../store';
|
|
2
|
+
import util from '../../libs/util';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
install(app) {
|
|
6
|
+
// 快速打印 log
|
|
7
|
+
app.config.globalProperties.$log = {
|
|
8
|
+
...util.log,
|
|
9
|
+
push(data) {
|
|
10
|
+
if (typeof data === 'string') {
|
|
11
|
+
// 如果传递来的数据是字符串
|
|
12
|
+
// 赋值给 message 字段
|
|
13
|
+
// 为了方便使用
|
|
14
|
+
// eg: this.$log.push('foo text')
|
|
15
|
+
store.dispatch('admin/log/push', {
|
|
16
|
+
message: data
|
|
17
|
+
});
|
|
18
|
+
} else if (typeof data === 'object') {
|
|
19
|
+
// 如果传递来的数据是对象
|
|
20
|
+
store.dispatch('admin/log/push', data);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
package/src/setting.js
CHANGED
|
@@ -46,6 +46,15 @@ const Setting = {
|
|
|
46
46
|
// 是否通过远程接口来获取 i81n 文件
|
|
47
47
|
remote: false
|
|
48
48
|
},
|
|
49
|
+
/**
|
|
50
|
+
* 打印控件
|
|
51
|
+
* */
|
|
52
|
+
lodop: {
|
|
53
|
+
// 名称
|
|
54
|
+
name: '南京摩赫信息技术有限公司',
|
|
55
|
+
// key
|
|
56
|
+
key: '58C4DF8932E17DEBE409D1E7F683CAFE'
|
|
57
|
+
},
|
|
49
58
|
/**
|
|
50
59
|
* 布局配置
|
|
51
60
|
* */
|
|
@@ -77,7 +86,7 @@ const Setting = {
|
|
|
77
86
|
// 是否固定顶栏
|
|
78
87
|
headerFix: true,
|
|
79
88
|
// 是否在下滑时隐藏顶栏,需开启 headerFix,如果开启了 tabsFix,Tabs 也会被隐藏
|
|
80
|
-
headerHide:
|
|
89
|
+
headerHide: true,
|
|
81
90
|
// 是否显示顶部菜单栏
|
|
82
91
|
// 一般来说,侧边的菜单栏足以满足大部分业务,如需动态切换侧边栏,可开启此选项启用顶部一级菜单,此时侧边栏将作为二级菜单
|
|
83
92
|
headerMenu: false,
|
|
@@ -120,7 +129,9 @@ const Setting = {
|
|
|
120
129
|
// 是否允许点击遮罩层关闭
|
|
121
130
|
maskClosable: true,
|
|
122
131
|
// 是否允许拖动
|
|
123
|
-
draggable: true
|
|
132
|
+
draggable: true,
|
|
133
|
+
// 筛选标题栏宽度
|
|
134
|
+
filterWidth: 125
|
|
124
135
|
},
|
|
125
136
|
/**
|
|
126
137
|
* 多页 Tabs
|
|
@@ -181,37 +181,40 @@ export default {
|
|
|
181
181
|
*/
|
|
182
182
|
open({ state, commit, dispatch }, { name, params, query, fullPath }) {
|
|
183
183
|
return new Promise(async resolve => {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if (pageOpened) {
|
|
194
|
-
// 页面以前打开过
|
|
195
|
-
await dispatch('openedUpdate', {
|
|
196
|
-
index: pageOpenedIndex,
|
|
197
|
-
params,
|
|
198
|
-
query,
|
|
199
|
-
fullPath
|
|
184
|
+
setTimeout(async () => {
|
|
185
|
+
// 已经打开的页面
|
|
186
|
+
let opened = state.opened;
|
|
187
|
+
// 判断此页面是否已经打开 并且记录位置
|
|
188
|
+
let pageOpenedIndex = 0;
|
|
189
|
+
const pageOpened = opened.find((page, index) => {
|
|
190
|
+
const same = page.fullPath === fullPath;
|
|
191
|
+
pageOpenedIndex = same ? index : pageOpenedIndex;
|
|
192
|
+
return same;
|
|
200
193
|
});
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (page) {
|
|
206
|
-
await dispatch('add', {
|
|
207
|
-
tag: Object.assign({}, page),
|
|
194
|
+
if (pageOpened) {
|
|
195
|
+
// 页面以前打开过
|
|
196
|
+
await dispatch('openedUpdate', {
|
|
197
|
+
index: pageOpenedIndex,
|
|
208
198
|
params,
|
|
209
199
|
query,
|
|
210
200
|
fullPath
|
|
211
201
|
});
|
|
202
|
+
} else {
|
|
203
|
+
// 页面以前没有打开过
|
|
204
|
+
let page = state.pool.find(t => t.name === name);
|
|
205
|
+
// 如果这里没有找到 page 代表这个路由虽然在框架内 但是不参与标签页显示
|
|
206
|
+
if (page) {
|
|
207
|
+
await dispatch('add', {
|
|
208
|
+
tag: Object.assign({}, page),
|
|
209
|
+
params,
|
|
210
|
+
query,
|
|
211
|
+
fullPath
|
|
212
|
+
});
|
|
213
|
+
}
|
|
212
214
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
+
commit('currentSet', fullPath);
|
|
216
|
+
});
|
|
217
|
+
|
|
215
218
|
// end
|
|
216
219
|
resolve();
|
|
217
220
|
});
|
package/src/styles/common.less
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
#app, body, html{
|
|
2
|
-
height: 100%;
|
|
3
|
-
}
|
|
4
|
-
body{
|
|
5
|
-
background-color: @background-color-base;
|
|
6
|
-
font-size: 14px;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// 隐藏滚动条样式
|
|
10
|
-
.i-scrollbar-hide{
|
|
11
|
-
&::-webkit-scrollbar{
|
|
12
|
-
width: 0;
|
|
13
|
-
}
|
|
14
|
-
&::-webkit-scrollbar-track{
|
|
15
|
-
background-color: transparent;
|
|
16
|
-
}
|
|
17
|
-
&::-webkit-scrollbar-thumb{
|
|
18
|
-
background: #e8eaec;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// 极简滚动条样式
|
|
23
|
-
.i-scrollbar{
|
|
24
|
-
&::-webkit-scrollbar{
|
|
25
|
-
width: 6px;
|
|
26
|
-
}
|
|
27
|
-
&::-webkit-scrollbar-track{
|
|
28
|
-
background-color: transparent;
|
|
29
|
-
}
|
|
30
|
-
&::-webkit-scrollbar-thumb{
|
|
31
|
-
background: #808695;
|
|
32
|
-
border-radius: 4px;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// 去除 Table 的左右边框,更精简
|
|
37
|
-
.i-table-no-border{
|
|
38
|
-
.ivu-table th{
|
|
39
|
-
background-color: #fff;
|
|
40
|
-
}
|
|
41
|
-
.ivu-table-wrapper, .ivu-table tr:last-child td{
|
|
42
|
-
border: none;
|
|
43
|
-
}
|
|
44
|
-
.ivu-table:before, .ivu-table:after{
|
|
45
|
-
display: none;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
#app, body, html{
|
|
2
|
+
height: 100%;
|
|
3
|
+
}
|
|
4
|
+
body{
|
|
5
|
+
background-color: @background-color-base;
|
|
6
|
+
font-size: 14px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// 隐藏滚动条样式
|
|
10
|
+
.i-scrollbar-hide{
|
|
11
|
+
&::-webkit-scrollbar{
|
|
12
|
+
width: 0;
|
|
13
|
+
}
|
|
14
|
+
&::-webkit-scrollbar-track{
|
|
15
|
+
background-color: transparent;
|
|
16
|
+
}
|
|
17
|
+
&::-webkit-scrollbar-thumb{
|
|
18
|
+
background: #e8eaec;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 极简滚动条样式
|
|
23
|
+
.i-scrollbar{
|
|
24
|
+
&::-webkit-scrollbar{
|
|
25
|
+
width: 6px;
|
|
26
|
+
}
|
|
27
|
+
&::-webkit-scrollbar-track{
|
|
28
|
+
background-color: transparent;
|
|
29
|
+
}
|
|
30
|
+
&::-webkit-scrollbar-thumb{
|
|
31
|
+
background: #808695;
|
|
32
|
+
border-radius: 4px;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 去除 Table 的左右边框,更精简
|
|
37
|
+
.i-table-no-border{
|
|
38
|
+
.ivu-table th{
|
|
39
|
+
background-color: #fff;
|
|
40
|
+
}
|
|
41
|
+
.ivu-table-wrapper, .ivu-table tr:last-child td{
|
|
42
|
+
border: none;
|
|
43
|
+
}
|
|
44
|
+
.ivu-table:before, .ivu-table:after{
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
}
|
package/src/styles/css/login.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// 自定义主题
|
|
2
|
-
// 详见 https://www.iviewui.com/docs/guide/theme
|
|
3
|
-
@import 'view-ui-plus/src/styles/index.less';
|
|
4
|
-
|
|
5
|
-
@menu-dark-title: #191a23;
|
|
6
|
-
@menu-dark-active-bg: #101117;
|
|
1
|
+
// 自定义主题
|
|
2
|
+
// 详见 https://www.iviewui.com/docs/guide/theme
|
|
3
|
+
@import 'view-ui-plus/src/styles/index.less';
|
|
4
|
+
|
|
5
|
+
@menu-dark-title: #191a23;
|
|
6
|
+
@menu-dark-active-bg: #101117;
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "i-icon"; /* Project id 1125611 */
|
|
3
|
-
src: url('iconfont.woff2?t=1651052284018') format('woff2'),
|
|
4
|
-
url('iconfont.woff?t=1651052284018') format('woff'),
|
|
5
|
-
url('iconfont.ttf?t=1651052284018') format('truetype');
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.i-icon {
|
|
9
|
-
font-family: "i-icon" !important;
|
|
10
|
-
font-size: 16px;
|
|
11
|
-
font-style: normal;
|
|
12
|
-
-webkit-font-smoothing: antialiased;
|
|
13
|
-
-moz-osx-font-smoothing: grayscale;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.i-icon-i18n:before {
|
|
17
|
-
content: "\e8e9";
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.i-icon-refresh:before {
|
|
21
|
-
content: "\e7d1";
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.i-icon-record:before {
|
|
25
|
-
content: "\e61f";
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.i-icon-notification:before {
|
|
29
|
-
content: "\e69d";
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.i-icon-full-screen:before {
|
|
33
|
-
content: "\e743";
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.i-icon-exit-full-screen:before {
|
|
37
|
-
content: "\e657";
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.i-icon-menu-unfold:before {
|
|
41
|
-
content: "\e68b";
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.i-icon-menu-fold:before {
|
|
45
|
-
content: "\e600";
|
|
46
|
-
}
|
|
47
|
-
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: "i-icon"; /* Project id 1125611 */
|
|
3
|
+
src: url('iconfont.woff2?t=1651052284018') format('woff2'),
|
|
4
|
+
url('iconfont.woff?t=1651052284018') format('woff'),
|
|
5
|
+
url('iconfont.ttf?t=1651052284018') format('truetype');
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.i-icon {
|
|
9
|
+
font-family: "i-icon" !important;
|
|
10
|
+
font-size: 16px;
|
|
11
|
+
font-style: normal;
|
|
12
|
+
-webkit-font-smoothing: antialiased;
|
|
13
|
+
-moz-osx-font-smoothing: grayscale;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.i-icon-i18n:before {
|
|
17
|
+
content: "\e8e9";
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.i-icon-refresh:before {
|
|
21
|
+
content: "\e7d1";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.i-icon-record:before {
|
|
25
|
+
content: "\e61f";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.i-icon-notification:before {
|
|
29
|
+
content: "\e69d";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.i-icon-full-screen:before {
|
|
33
|
+
content: "\e743";
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.i-icon-exit-full-screen:before {
|
|
37
|
+
content: "\e657";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.i-icon-menu-unfold:before {
|
|
41
|
+
content: "\e68b";
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.i-icon-menu-fold:before {
|
|
45
|
+
content: "\e600";
|
|
46
|
+
}
|
|
47
|
+
|