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.
Files changed (38) hide show
  1. package/dist/mooho-base-admin-plus.min.esm.js +2321 -1661
  2. package/dist/mooho-base-admin-plus.min.js +57 -69
  3. package/dist/setting.js +27 -1
  4. package/dist/style.css +1 -1
  5. package/package.json +2 -2
  6. package/public/setting.js +27 -1
  7. package/src/components/input/item-select.vue +1 -0
  8. package/src/components/upload/upload-attachment.vue +1 -1
  9. package/src/components/upload/upload-image.vue +7 -1
  10. package/src/components/view/form-setting-layout.vue +11 -6
  11. package/src/components/view/table-filter.vue +4 -1
  12. package/src/components/view/view-form-draggable.vue +4 -1
  13. package/src/components/view/view-form.vue +6 -2
  14. package/src/components/view/view-table.vue +62 -68
  15. package/src/i18n/locale/en-US.js +1 -1
  16. package/src/i18n/locale/lang.js +1 -1
  17. package/src/i18n/locale/zh-CN.js +1 -1
  18. package/src/layouts/basic-layout/mixins/click-item.js +21 -21
  19. package/src/layouts/basic-layout/mixins/sider-menu-badge.js +13 -13
  20. package/src/layouts/basic-layout/mixins/translate-title.js +11 -11
  21. package/src/layouts/basic-layout/water-mark/index.vue +29 -29
  22. package/src/libs/lodop/index.js +3 -1
  23. package/src/libs/random_str.js +10 -10
  24. package/src/libs/request/index.js +4 -1
  25. package/src/libs/water-mark.js +44 -44
  26. package/src/pages/template/processPage.vue +7 -1
  27. package/src/plugins/log/index.js +25 -0
  28. package/src/setting.js +12 -1
  29. package/src/store/modules/admin/modules/page.js +28 -25
  30. package/src/styles/common.less +47 -47
  31. package/src/styles/css/login.css +1 -1
  32. package/src/styles/default/index.less +6 -6
  33. package/src/styles/font/iconfont.css +47 -47
  34. package/src/styles/font/iconfont.json +65 -65
  35. package/src/styles/layout/basic-layout/layout.less +527 -527
  36. package/src/styles/layout/basic-layout/menu.less +274 -274
  37. package/src/styles/layout/index.less +2 -2
  38. 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.65",
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
  };
@@ -20,6 +20,7 @@
20
20
  ref="selectSourceTable"
21
21
  :view-code="sourceViewCode"
22
22
  :selectEnable="true"
23
+ :checkCrossPage="true"
23
24
  :autoLoad="false"
24
25
  :filter="sourceFilter"
25
26
  :height="480"
@@ -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="value" :size="size" v-show="false" />
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="value" v-show="false" />
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 == 'AutoComplete' ||
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 == 'YearMonth' || item.id == 'DateRange') {
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 == 'Placeholder' ||
193
- item.id == 'Custom'
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
- return this.copy(item);
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="125" label-colon=":" label-position="right" class="filter" @submit.prevent>
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-select="select"
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 - 400;
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
- this.data.forEach(item => {
1046
- item._checked = this.selectedData.some(i => {
1047
- return item.id === i.id;
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
- select(selection, row) {
1844
- this.selectedData.push(row);
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
- this.data.forEach(item => {
1867
- if (
1868
- !selected.some(i => {
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
- this.setSelected(selected);
1877
- }
1878
- /**
1879
- * 选中项变化事件
1880
- */
1881
- this.$emit('on-select-change');
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
- selected.splice(index, 1);
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.loadData();
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
  };
@@ -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};
@@ -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};
@@ -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>
@@ -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('上海汽车信息产业投资有限公司', '1A1683BD13ED8A56138F8BF8328862FF', '', '');
123
+ LODOP.SET_LICENSES(Setting.lodop.name, Setting.lodop.key, '', '');
122
124
 
123
125
  //= ==========================================================
124
126
  return LODOP;
@@ -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
+ }