mooho-base-admin-plus 0.1.65 → 0.1.69
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 +2321 -1661
- 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/item-select.vue +1 -0
- package/src/components/upload/upload-attachment.vue +1 -1
- package/src/components/upload/upload-image.vue +7 -1
- package/src/components/view/form-setting-layout.vue +11 -6
- package/src/components/view/table-filter.vue +4 -1
- package/src/components/view/view-form-draggable.vue +4 -1
- package/src/components/view/view-form.vue +6 -2
- package/src/components/view/view-table.vue +62 -68
- 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 +12 -1
- 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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mooho-base-admin-plus",
|
|
3
3
|
"description": "MOOHO basic framework for admin by Vue3",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.69",
|
|
5
5
|
"author": "jinyifan <jinyifan@mooho.com.cn>",
|
|
6
6
|
"dotnetVersion": "1.3.97",
|
|
7
7
|
"license": "MIT",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@fortawesome/fontawesome-free": "^5.13.0",
|
|
21
21
|
"axios": "^0.26.0",
|
|
22
|
-
"date-fns": "^2.9.0",
|
|
23
22
|
"ckeditor4-integrations-common": "^1.0.0",
|
|
23
|
+
"date-fns": "^2.9.0",
|
|
24
24
|
"echarts": "^5.3.2",
|
|
25
25
|
"file-saver": "^2.0.2",
|
|
26
26
|
"js-cookie": "^3.0.1",
|
package/public/setting.js
CHANGED
|
@@ -25,6 +25,32 @@ window.setting = {
|
|
|
25
25
|
// 是否允许点击遮罩层关闭
|
|
26
26
|
maskClosable: true,
|
|
27
27
|
// 是否允许拖动
|
|
28
|
-
draggable: true
|
|
28
|
+
draggable: true,
|
|
29
|
+
// 是否显示多语言
|
|
30
|
+
showI18n: true
|
|
31
|
+
},
|
|
32
|
+
/**
|
|
33
|
+
* 多语言配置
|
|
34
|
+
* */
|
|
35
|
+
i18n: {
|
|
36
|
+
// 默认语言
|
|
37
|
+
default: 'zh-CN',
|
|
38
|
+
// 是否根据用户电脑配置自动设置语言(仅第一次有效)
|
|
39
|
+
auto: false,
|
|
40
|
+
// 切换语言时是否刷新页面
|
|
41
|
+
refresh: true,
|
|
42
|
+
// 支持的语言列表
|
|
43
|
+
list: [
|
|
44
|
+
{
|
|
45
|
+
locale: 'zh-CN',
|
|
46
|
+
language: '简体中文'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
locale: 'en-US',
|
|
50
|
+
language: 'English'
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
// 是否通过远程接口来获取 i81n 文件
|
|
54
|
+
remote: false
|
|
29
55
|
}
|
|
30
56
|
};
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
>
|
|
14
14
|
<Button v-if="!readonly" :size="size" icon="ios-cloud-upload-outline">上传文件...</Button>
|
|
15
15
|
</Upload>
|
|
16
|
-
<Input type="text" :model-value="
|
|
16
|
+
<Input type="text" :model-value="modelValue" :size="size" v-show="false" />
|
|
17
17
|
</div>
|
|
18
18
|
</template>
|
|
19
19
|
<script>
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
<Icon v-if="!readonly && index < fileList.length - 1 && fileList.length > 1" custom="fa fa-arrow-circle-right" @click="forwardImage(index)"></Icon>
|
|
14
14
|
<Icon v-if="!readonly && index > 0 && fileList.length > 1" custom="fa fa-arrow-circle-left" @click="backwardImage(index)"></Icon>
|
|
15
15
|
<Icon custom="fa fa-eye" @click="previewImage(item)"></Icon>
|
|
16
|
+
<Icon custom="fa fa-download" @click="downloadImage(item)"></Icon>
|
|
16
17
|
</div>
|
|
17
18
|
</div>
|
|
18
19
|
<Upload v-if="!readonly" accept="image/*" :action="uploadURL" :headers="uploadHeaders" :show-upload-list="false" :before-upload="beforeUpload" :on-success="onUploadSuccess">
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
<Icon custom="fa fa-plus-circle" color="#999" :style="{ 'font-size': width == null ? '25px' : width / 3 + 'px', cursor: 'pointer' }"></Icon>
|
|
25
26
|
</div>
|
|
26
27
|
</Upload>
|
|
27
|
-
<Input type="text" :model-value="
|
|
28
|
+
<Input type="text" :model-value="modelValue" v-show="false" />
|
|
28
29
|
</div>
|
|
29
30
|
<Modal title="预览" v-model="preview" scrollable :mask-closable="layout.maskClosable" :draggable="layout.draggable" :sticky="true" :reset-drag-position="true" width="70%">
|
|
30
31
|
<div style="text-align: center">
|
|
@@ -160,6 +161,11 @@
|
|
|
160
161
|
previewImage(item) {
|
|
161
162
|
this.imageUrl = item;
|
|
162
163
|
this.preview = true;
|
|
164
|
+
},
|
|
165
|
+
// 下载
|
|
166
|
+
downloadImage(item) {
|
|
167
|
+
let url = this.getAttachmentUrl(item, item);
|
|
168
|
+
window.location.href = url;
|
|
163
169
|
}
|
|
164
170
|
}
|
|
165
171
|
};
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
this.componentGroups = [
|
|
129
129
|
{
|
|
130
130
|
key: 'Normal',
|
|
131
|
-
name: '
|
|
131
|
+
name: '基础控件',
|
|
132
132
|
components: []
|
|
133
133
|
},
|
|
134
134
|
{
|
|
@@ -163,6 +163,7 @@
|
|
|
163
163
|
item.id == 'Label' ||
|
|
164
164
|
item.id == 'TextInput' ||
|
|
165
165
|
item.id == 'NumberInput' ||
|
|
166
|
+
item.id == 'Hyperlink' ||
|
|
166
167
|
item.id == 'Check' ||
|
|
167
168
|
item.id == 'Switch' ||
|
|
168
169
|
item.id == 'Slider' ||
|
|
@@ -176,21 +177,23 @@
|
|
|
176
177
|
item.id == 'ComboSelect' ||
|
|
177
178
|
item.id == 'DialogSelect' ||
|
|
178
179
|
item.id == 'MultiDialogSelect' ||
|
|
179
|
-
item.id == '
|
|
180
|
+
item.id == 'TreeSelect' ||
|
|
181
|
+
item.id == 'MultiTreeSelect' ||
|
|
180
182
|
item.id == 'Radio' ||
|
|
181
183
|
item.id == 'CheckGroup'
|
|
182
184
|
) {
|
|
183
185
|
this.componentGroups.find(componentGroup => componentGroup.key == 'Datasource').components.push(component);
|
|
184
|
-
} else if (item.id == 'Date' || item.id == 'Time' || item.id == 'DateTime' || item.id == 'Year' || item.id == '
|
|
186
|
+
} else if (item.id == 'Date' || item.id == 'Time' || item.id == 'DateTime' || item.id == 'Year' || item.id == 'Month' || item.id == 'DateRange') {
|
|
185
187
|
this.componentGroups.find(componentGroup => componentGroup.key == 'DateTime').components.push(component);
|
|
186
188
|
} else if (
|
|
189
|
+
item.id == 'Title' ||
|
|
187
190
|
item.id == 'Table' ||
|
|
188
191
|
item.id == 'List' ||
|
|
189
192
|
item.id == 'Attachment' ||
|
|
190
193
|
item.id == 'Image' ||
|
|
191
194
|
item.id == 'RichEditor' ||
|
|
192
|
-
item.id == '
|
|
193
|
-
item.id == '
|
|
195
|
+
item.id == 'Custom' ||
|
|
196
|
+
item.id == 'Placeholder'
|
|
194
197
|
) {
|
|
195
198
|
this.componentGroups.find(componentGroup => componentGroup.key == 'Other').components.push(component);
|
|
196
199
|
}
|
|
@@ -303,7 +306,9 @@
|
|
|
303
306
|
},
|
|
304
307
|
// 拖动克隆
|
|
305
308
|
clone(item) {
|
|
306
|
-
|
|
309
|
+
let data = this.copy(item);
|
|
310
|
+
this.columns.push(data);
|
|
311
|
+
return data;
|
|
307
312
|
},
|
|
308
313
|
// 双击
|
|
309
314
|
dblclick(item) {
|
|
@@ -280,8 +280,11 @@
|
|
|
280
280
|
// 当前时间转字符串
|
|
281
281
|
let format = item.defaultValue.substr(7, item.defaultValue.length - 9);
|
|
282
282
|
this.setData(data, item.code, dateFormat(new Date(), format));
|
|
283
|
+
} else if (item.defaultValue == '{currentUserID}') {
|
|
284
|
+
// 当前用户编号
|
|
285
|
+
this.setData(data, item.code, this.info.id);
|
|
283
286
|
} else if (item.defaultValue == '{currentUser}') {
|
|
284
|
-
//
|
|
287
|
+
// 当前用户姓名
|
|
285
288
|
this.setData(data, item.code, this.info.name);
|
|
286
289
|
} else {
|
|
287
290
|
if (item.dataType === 'Integer') {
|
|
@@ -735,8 +735,11 @@
|
|
|
735
735
|
// 当前时间转字符串
|
|
736
736
|
let format = item.defaultValue.substr(7, item.defaultValue.length - 9);
|
|
737
737
|
this.setData(data, item.code, dateFormat(new Date(), format));
|
|
738
|
+
} else if (item.defaultValue == '{currentUserID}') {
|
|
739
|
+
// 当前用户编号
|
|
740
|
+
this.setData(data, item.code, this.info.id);
|
|
738
741
|
} else if (item.defaultValue == '{currentUser}') {
|
|
739
|
-
//
|
|
742
|
+
// 当前用户姓名
|
|
740
743
|
this.setData(data, item.code, this.info.name);
|
|
741
744
|
} else {
|
|
742
745
|
if (item.dataType === 'Integer') {
|
|
@@ -643,8 +643,11 @@
|
|
|
643
643
|
// 当前时间转字符串
|
|
644
644
|
let format = item.defaultValue.substr(7, item.defaultValue.length - 9);
|
|
645
645
|
this.setData(data, item.code, dateFormat(new Date(), format));
|
|
646
|
+
} else if (item.defaultValue == '{currentUserID}') {
|
|
647
|
+
// 当前用户编号
|
|
648
|
+
this.setData(data, item.code, this.info.id);
|
|
646
649
|
} else if (item.defaultValue == '{currentUser}') {
|
|
647
|
-
//
|
|
650
|
+
// 当前用户姓名
|
|
648
651
|
this.setData(data, item.code, this.info.name);
|
|
649
652
|
} else {
|
|
650
653
|
if (item.dataType === 'Integer') {
|
|
@@ -1012,6 +1015,7 @@
|
|
|
1012
1015
|
if (data) {
|
|
1013
1016
|
if (this.parseData(data, column.code) == null && column.isDefaultFirst && res.data.length > 0) {
|
|
1014
1017
|
this.setData(data, column.code, this.parseData(res.data[0], column.sourceDataCode));
|
|
1018
|
+
this.$emit('on-change', column, null, value, null);
|
|
1015
1019
|
|
|
1016
1020
|
if (column.sourceDataCode == 'id' && column.code.length > 2) {
|
|
1017
1021
|
let code = column.code.substr(0, column.code.length - 2);
|
|
@@ -1239,7 +1243,7 @@
|
|
|
1239
1243
|
}
|
|
1240
1244
|
|
|
1241
1245
|
// 计算需要刷新的字段
|
|
1242
|
-
if (sender == null || sender.triggers !== []) {
|
|
1246
|
+
if (sender == null || (sender.triggers && sender.triggers !== [])) {
|
|
1243
1247
|
this.columns.forEach(function (column) {
|
|
1244
1248
|
if (
|
|
1245
1249
|
!column.isStaticItem &&
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
@slot 顶部
|
|
8
8
|
-->
|
|
9
9
|
<slot name="top"></slot>
|
|
10
|
-
<Form v-if="tableView.filterEnable && filterEnable" :model="filter" :label-width="
|
|
10
|
+
<Form v-if="tableView.filterEnable && filterEnable" :model="filter" :label-width="layout.filterWidth" label-colon=":" label-position="right" class="filter" @submit.prevent>
|
|
11
11
|
<div ref="filterCommand">
|
|
12
12
|
<Row :gutter="24" type="flex" justify="end">
|
|
13
13
|
<!--
|
|
@@ -99,10 +99,7 @@
|
|
|
99
99
|
no-data-text="暂无数据..."
|
|
100
100
|
@on-column-width-resize="columnWidthResize"
|
|
101
101
|
@on-sort-change="sortChange"
|
|
102
|
-
@on-
|
|
103
|
-
@on-select-cancel="selectCancel"
|
|
104
|
-
@on-select-all="selectAll"
|
|
105
|
-
@on-select-all-cancel="selectAllCancel"
|
|
102
|
+
@on-selection-change="onSelectionChange"
|
|
106
103
|
@on-drag-drop="dragDrop"
|
|
107
104
|
>
|
|
108
105
|
<template #normal="{ row, column, index }">
|
|
@@ -642,6 +639,13 @@
|
|
|
642
639
|
type: Boolean,
|
|
643
640
|
default: false
|
|
644
641
|
},
|
|
642
|
+
/**
|
|
643
|
+
* 是否跨页选择
|
|
644
|
+
*/
|
|
645
|
+
checkCrossPage: {
|
|
646
|
+
type: Boolean,
|
|
647
|
+
default: false
|
|
648
|
+
},
|
|
645
649
|
/**
|
|
646
650
|
* 是否允许树展开
|
|
647
651
|
*/
|
|
@@ -749,7 +753,7 @@
|
|
|
749
753
|
if (this.isFullScreen) {
|
|
750
754
|
return document.body.offsetHeight - 100 - this.$refs.filterCommand.offsetHeight;
|
|
751
755
|
} else {
|
|
752
|
-
return document.body.offsetHeight -
|
|
756
|
+
return document.body.offsetHeight - 350;
|
|
753
757
|
}
|
|
754
758
|
} else {
|
|
755
759
|
return this.height;
|
|
@@ -890,7 +894,7 @@
|
|
|
890
894
|
this.columns.push(column);
|
|
891
895
|
}
|
|
892
896
|
|
|
893
|
-
if (this.selectEnable) {
|
|
897
|
+
if (this.selectEnable || this.tableView.checkEnable) {
|
|
894
898
|
this.columns.unshift({
|
|
895
899
|
type: 'selection',
|
|
896
900
|
align: 'center',
|
|
@@ -1041,12 +1045,18 @@
|
|
|
1041
1045
|
this.current = 1;
|
|
1042
1046
|
}
|
|
1043
1047
|
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
+
if (this.checkCrossPage || this.tableView.checkCrossPage) {
|
|
1049
|
+
// 跨页选择,设置选中项
|
|
1050
|
+
this.data.forEach(item => {
|
|
1051
|
+
item._checked = this.selectedData.some(i => {
|
|
1052
|
+
return item.id === i.id;
|
|
1053
|
+
});
|
|
1048
1054
|
});
|
|
1049
|
-
}
|
|
1055
|
+
} else {
|
|
1056
|
+
// 非跨页选择,清空选择项
|
|
1057
|
+
this.selectedData = [];
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1050
1060
|
// if (typeof this.selectFunc === 'function') {
|
|
1051
1061
|
// let selected = this.data.filter(this.selectFunc);
|
|
1052
1062
|
// this.setSelected(selected);
|
|
@@ -1120,6 +1130,12 @@
|
|
|
1120
1130
|
if (this.embedded) {
|
|
1121
1131
|
this.staticData.splice((this.current - 1) * this.size + index, 1);
|
|
1122
1132
|
this.loadData();
|
|
1133
|
+
|
|
1134
|
+
/**
|
|
1135
|
+
* 数据变化事件
|
|
1136
|
+
* @property {object} data 行对象
|
|
1137
|
+
*/
|
|
1138
|
+
this.$emit('on-change', row);
|
|
1123
1139
|
} else {
|
|
1124
1140
|
if (this.tableView.isCustom) {
|
|
1125
1141
|
await customModelApi.remove(this.tableView.model, row.id);
|
|
@@ -1151,8 +1167,11 @@
|
|
|
1151
1167
|
// 当前时间转字符串
|
|
1152
1168
|
let format = item.defaultValue.substr(7, item.defaultValue.length - 9);
|
|
1153
1169
|
this.setData(data, item.code, dateFormat(new Date(), format));
|
|
1170
|
+
} else if (item.defaultValue == '{currentUserID}') {
|
|
1171
|
+
// 当前用户编号
|
|
1172
|
+
this.setData(data, item.code, this.info.id);
|
|
1154
1173
|
} else if (item.defaultValue == '{currentUser}') {
|
|
1155
|
-
//
|
|
1174
|
+
// 当前用户姓名
|
|
1156
1175
|
this.setData(data, item.code, this.info.name);
|
|
1157
1176
|
} else {
|
|
1158
1177
|
if (item.dataType === 'Integer') {
|
|
@@ -1839,66 +1858,29 @@
|
|
|
1839
1858
|
this.$refs.filterSetting.open(this.tableView, this.copy(this.tableView.filterColumns));
|
|
1840
1859
|
});
|
|
1841
1860
|
},
|
|
1842
|
-
//
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
* 选中项变化事件
|
|
1847
|
-
*/
|
|
1848
|
-
this.$emit('on-select-change');
|
|
1849
|
-
},
|
|
1850
|
-
// 取消选中响应事件
|
|
1851
|
-
selectCancel(selection, row) {
|
|
1852
|
-
const index = this.selectedData.findIndex(item => item.id === row.id);
|
|
1853
|
-
this.selectedData.splice(index, 1);
|
|
1854
|
-
/**
|
|
1855
|
-
* 选中项变化事件
|
|
1856
|
-
*/
|
|
1857
|
-
this.$emit('on-select-change');
|
|
1858
|
-
},
|
|
1859
|
-
// 全选响应事件
|
|
1860
|
-
selectAll() {
|
|
1861
|
-
if (this.static) {
|
|
1862
|
-
this.setSelected(this.staticData);
|
|
1863
|
-
} else {
|
|
1864
|
-
let selected = this.copy(this.selectedData);
|
|
1861
|
+
// 选中变化
|
|
1862
|
+
onSelectionChange(selection) {
|
|
1863
|
+
// 当页所有数据
|
|
1864
|
+
let allData = this.getDataWithChildren(this.data);
|
|
1865
1865
|
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
return i.id == item.id;
|
|
1870
|
-
})
|
|
1871
|
-
) {
|
|
1872
|
-
selected.push(item);
|
|
1873
|
-
}
|
|
1866
|
+
allData.forEach(item => {
|
|
1867
|
+
const index = this.selectedData.findIndex(i => {
|
|
1868
|
+
return i.id == item.id;
|
|
1874
1869
|
});
|
|
1875
1870
|
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
// 取消全选响应事件
|
|
1884
|
-
selectAllCancel() {
|
|
1885
|
-
if (this.static) {
|
|
1886
|
-
this.setSelected([]);
|
|
1887
|
-
} else {
|
|
1888
|
-
let selected = this.copy(this.selectedData);
|
|
1889
|
-
|
|
1890
|
-
this.data.forEach(item => {
|
|
1891
|
-
const index = selected.findIndex(i => {
|
|
1892
|
-
return i.id == item.id;
|
|
1893
|
-
});
|
|
1871
|
+
if (selection.some(i => i.id == item.id)) {
|
|
1872
|
+
// 选中
|
|
1873
|
+
if (index == -1) {
|
|
1874
|
+
this.selectedData.push(item);
|
|
1875
|
+
}
|
|
1876
|
+
} else {
|
|
1877
|
+
// 未选中, 剔除
|
|
1894
1878
|
|
|
1895
1879
|
if (index != -1) {
|
|
1896
|
-
|
|
1880
|
+
this.selectedData.splice(index, 1);
|
|
1897
1881
|
}
|
|
1898
|
-
}
|
|
1899
|
-
|
|
1900
|
-
this.setSelected(selected);
|
|
1901
|
-
}
|
|
1882
|
+
}
|
|
1883
|
+
});
|
|
1902
1884
|
|
|
1903
1885
|
/**
|
|
1904
1886
|
* 选中项变化事件
|
|
@@ -1919,7 +1901,7 @@
|
|
|
1919
1901
|
}
|
|
1920
1902
|
}
|
|
1921
1903
|
|
|
1922
|
-
this.
|
|
1904
|
+
this.search();
|
|
1923
1905
|
},
|
|
1924
1906
|
// 合并后最终的筛选项
|
|
1925
1907
|
getAllFilter() {
|
|
@@ -2254,6 +2236,18 @@
|
|
|
2254
2236
|
} else {
|
|
2255
2237
|
return this.data[index];
|
|
2256
2238
|
}
|
|
2239
|
+
},
|
|
2240
|
+
// 所有数据,包括子数据
|
|
2241
|
+
getDataWithChildren(data) {
|
|
2242
|
+
let result = [];
|
|
2243
|
+
data.forEach(item => {
|
|
2244
|
+
result.push(item);
|
|
2245
|
+
if (item.children) {
|
|
2246
|
+
result = result.concat(this.getDataWithChildren(item.children));
|
|
2247
|
+
}
|
|
2248
|
+
});
|
|
2249
|
+
|
|
2250
|
+
return result;
|
|
2257
2251
|
}
|
|
2258
2252
|
}
|
|
2259
2253
|
};
|
package/src/i18n/locale/en-US.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./lang.js";const t={i:{locale:"en-US",select:{placeholder:"Select",noMatch:"No matching data",loading:"Loading"},table:{noDataText:"No Data",noFilteredDataText:"No filter data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},datepicker:{selectDate:"Select date",selectTime:"Select time",startTime:"Start Time",endTime:"End Time",clear:"Clear",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Month",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",year:"Year",weekStartDay:"0",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"May",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Oct",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Source",target:"Target"},filterPlaceholder:"Search here",notFoundText:"Not Found"},modal:{okText:"OK",cancelText:"Cancel"},poptip:{okText:"OK",cancelText:"Cancel"},page:{prev:"Previous Page",next:"Next Page",total:"Total",item:"item",items:"items",prev5:"Previous 5 Pages",next5:"Next 5 Pages",page:"/page",goto:"Goto",p:""},rate:{star:"Star",stars:"Stars"},time:{before:" ago",after:" after",just:"just now",seconds:" seconds",minutes:" minutes",hours:" hours",days:" days"},tree:{emptyText:"No Data"}}};e(t);export{t as default};
|
|
1
|
+
import{s as e}from"./lang.js";const t={i:{locale:"en-US",select:{placeholder:"Select",noMatch:"No matching data",loading:"Loading"},table:{noDataText:"No Data",noFilteredDataText:"No filter data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},datepicker:{selectDate:"Select date",selectTime:"Select time",startTime:"Start Time",endTime:"End Time",clear:"Clear",ok:"OK",datePanelLabel:"[mmmm] [yyyy]",month:"Month",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",year:"Year",weekStartDay:"0",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},months:{m1:"Jan",m2:"Feb",m3:"Mar",m4:"Apr",m5:"May",m6:"Jun",m7:"Jul",m8:"Aug",m9:"Sep",m10:"Oct",m11:"Nov",m12:"Dec"}},transfer:{titles:{source:"Source",target:"Target"},filterPlaceholder:"Search here",notFoundText:"Not Found"},modal:{okText:"OK",cancelText:"Cancel"},poptip:{okText:"OK",cancelText:"Cancel"},page:{prev:"Previous Page",next:"Next Page",total:"Total",item:"item",items:"items",prev5:"Previous 5 Pages",next5:"Next 5 Pages",page:"/page",goto:"Goto",p:""},rate:{star:"Star",stars:"Stars"},time:{before:" ago",after:" after",just:"just now",seconds:" seconds",minutes:" minutes",hours:" hours",days:" days"},tree:{emptyText:"No Data"}}};e(t);export{t as default};
|
package/src/i18n/locale/lang.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=typeof window!="undefined";function n(i){e&&typeof window.viewuiplus!="undefined"&&("langs"in viewuiplus||(viewuiplus.langs={}),viewuiplus.langs[i.i.locale]=i)}export{n as s};
|
|
1
|
+
const e=typeof window!="undefined";function n(i){e&&typeof window.viewuiplus!="undefined"&&("langs"in viewuiplus||(viewuiplus.langs={}),viewuiplus.langs[i.i.locale]=i)}export{n as s};
|
package/src/i18n/locale/zh-CN.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./lang.js";const t={i:{locale:"zh-CN",select:{placeholder:"\u8BF7\u9009\u62E9",noMatch:"\u65E0\u5339\u914D\u6570\u636E",loading:"\u52A0\u8F7D\u4E2D"},table:{noDataText:"\u6682\u65E0\u6570\u636E",noFilteredDataText:"\u6682\u65E0\u7B5B\u9009\u7ED3\u679C",confirmFilter:"\u7B5B\u9009",resetFilter:"\u91CD\u7F6E",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8BA1"},datepicker:{selectDate:"\u9009\u62E9\u65E5\u671F",selectTime:"\u9009\u62E9\u65F6\u95F4",startTime:"\u5F00\u59CB\u65F6\u95F4",endTime:"\u7ED3\u675F\u65F6\u95F4",clear:"\u6E05\u7A7A",ok:"\u786E\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u4E00",tue:"\u4E8C",wed:"\u4E09",thu:"\u56DB",fri:"\u4E94",sat:"\u516D"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u6E90\u5217\u8868",target:"\u76EE\u7684\u5217\u8868"},filterPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",notFoundText:"\u5217\u8868\u4E3A\u7A7A"},modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},poptip:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},page:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875",total:"\u5171",item:"\u6761",items:"\u6761",prev5:"\u5411\u524D 5 \u9875",next5:"\u5411\u540E 5 \u9875",page:"\u6761/\u9875",goto:"\u8DF3\u81F3",p:"\u9875"},rate:{star:"\u661F",stars:"\u661F"},time:{before:"\u524D",after:"\u540E",just:"\u521A\u521A",seconds:"\u79D2",minutes:"\u5206\u949F",hours:"\u5C0F\u65F6",days:"\u5929"},tree:{emptyText:"\u6682\u65E0\u6570\u636E"}}};e(t);export{t as default};
|
|
1
|
+
import{s as e}from"./lang.js";const t={i:{locale:"zh-CN",select:{placeholder:"\u8BF7\u9009\u62E9",noMatch:"\u65E0\u5339\u914D\u6570\u636E",loading:"\u52A0\u8F7D\u4E2D"},table:{noDataText:"\u6682\u65E0\u6570\u636E",noFilteredDataText:"\u6682\u65E0\u7B5B\u9009\u7ED3\u679C",confirmFilter:"\u7B5B\u9009",resetFilter:"\u91CD\u7F6E",clearFilter:"\u5168\u90E8",sumText:"\u5408\u8BA1"},datepicker:{selectDate:"\u9009\u62E9\u65E5\u671F",selectTime:"\u9009\u62E9\u65F6\u95F4",startTime:"\u5F00\u59CB\u65F6\u95F4",endTime:"\u7ED3\u675F\u65F6\u95F4",clear:"\u6E05\u7A7A",ok:"\u786E\u5B9A",datePanelLabel:"[yyyy\u5E74] [m\u6708]",month:"\u6708",month1:"1 \u6708",month2:"2 \u6708",month3:"3 \u6708",month4:"4 \u6708",month5:"5 \u6708",month6:"6 \u6708",month7:"7 \u6708",month8:"8 \u6708",month9:"9 \u6708",month10:"10 \u6708",month11:"11 \u6708",month12:"12 \u6708",year:"\u5E74",weekStartDay:"0",weeks:{sun:"\u65E5",mon:"\u4E00",tue:"\u4E8C",wed:"\u4E09",thu:"\u56DB",fri:"\u4E94",sat:"\u516D"},months:{m1:"1\u6708",m2:"2\u6708",m3:"3\u6708",m4:"4\u6708",m5:"5\u6708",m6:"6\u6708",m7:"7\u6708",m8:"8\u6708",m9:"9\u6708",m10:"10\u6708",m11:"11\u6708",m12:"12\u6708"}},transfer:{titles:{source:"\u6E90\u5217\u8868",target:"\u76EE\u7684\u5217\u8868"},filterPlaceholder:"\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",notFoundText:"\u5217\u8868\u4E3A\u7A7A"},modal:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},poptip:{okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88"},page:{prev:"\u4E0A\u4E00\u9875",next:"\u4E0B\u4E00\u9875",total:"\u5171",item:"\u6761",items:"\u6761",prev5:"\u5411\u524D 5 \u9875",next5:"\u5411\u540E 5 \u9875",page:"\u6761/\u9875",goto:"\u8DF3\u81F3",p:"\u9875"},rate:{star:"\u661F",stars:"\u661F"},time:{before:"\u524D",after:"\u540E",just:"\u521A\u521A",seconds:"\u79D2",minutes:"\u5206\u949F",hours:"\u5C0F\u65F6",days:"\u5929"},tree:{emptyText:"\u6682\u65E0\u6570\u636E"}}};e(t);export{t as default};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { findComponentUpward } from 'view-ui-plus/src/utils/assist';
|
|
2
|
-
import { mapState } from 'vuex';
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
computed: {
|
|
6
|
-
...mapState('admin/layout', ['menuSiderReload', 'menuHeaderReload'])
|
|
7
|
-
},
|
|
8
|
-
methods: {
|
|
9
|
-
handleClick(path, type = 'sider') {
|
|
10
|
-
const current = this.$route.path;
|
|
11
|
-
if (current === path) {
|
|
12
|
-
if (type === 'sider' && this.menuSiderReload) this.handleReload();
|
|
13
|
-
else if (type === 'header' && this.menuHeaderReload) this.handleReload();
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
handleReload() {
|
|
17
|
-
const $layout = findComponentUpward(this, 'BasicLayout');
|
|
18
|
-
if ($layout) $layout.handleReload();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
};
|
|
1
|
+
import { findComponentUpward } from 'view-ui-plus/src/utils/assist';
|
|
2
|
+
import { mapState } from 'vuex';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
computed: {
|
|
6
|
+
...mapState('admin/layout', ['menuSiderReload', 'menuHeaderReload'])
|
|
7
|
+
},
|
|
8
|
+
methods: {
|
|
9
|
+
handleClick(path, type = 'sider') {
|
|
10
|
+
const current = this.$route.path;
|
|
11
|
+
if (current === path) {
|
|
12
|
+
if (type === 'sider' && this.menuSiderReload) this.handleReload();
|
|
13
|
+
else if (type === 'header' && this.menuHeaderReload) this.handleReload();
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
handleReload() {
|
|
17
|
+
const $layout = findComponentUpward(this, 'BasicLayout');
|
|
18
|
+
if ($layout) $layout.handleReload();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
@@ -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
|
+
}
|