cloud-web-corejs 1.0.34 → 1.0.36

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/package.json +1 -1
  2. package/src/components/table/CellSlot.vue +28 -2
  3. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +8 -8
  4. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -1
  5. package/src/components/xform/form-render/container-item/data-table-mixin.js +1 -1
  6. package/src/utils/request.js +1 -315
  7. package/src/views/bd/setting/bd_attach_setting/mixins/dialog.js +1 -84
  8. package/src/views/bd/setting/bd_attach_setting/mixins/edit.js +1 -92
  9. package/src/views/bd/setting/bd_attach_setting/mixins/list.js +1 -204
  10. package/src/views/bd/setting/form_script/edit1.vue +182 -181
  11. package/src/views/bd/setting/form_script/mixins/dialog.js +1 -128
  12. package/src/views/bd/setting/form_script/mixins/edit.js +1 -128
  13. package/src/views/bd/setting/form_script/mixins/edit1.js +1 -159
  14. package/src/views/bd/setting/form_script/mixins/form_list.js +1 -267
  15. package/src/views/bd/setting/form_script/mixins/list.js +1 -161
  16. package/src/views/bd/setting/form_script/mixins/list1.js +1 -316
  17. package/src/views/bd/setting/form_script/mixins/list2.js +1 -10
  18. package/src/views/bd/setting/form_template/edit.vue +2 -1
  19. package/src/views/bd/setting/form_template/mixins/dialog.js +1 -102
  20. package/src/views/bd/setting/form_template/mixins/edit.js +1 -165
  21. package/src/views/bd/setting/form_template/mixins/editWfObjConfigDialog.js +1 -92
  22. package/src/views/bd/setting/form_template/mixins/ftHistoryDialog.js +1 -91
  23. package/src/views/bd/setting/form_template/mixins/itemEdit.js +1 -104
  24. package/src/views/bd/setting/form_template/mixins/itemList.js +1 -234
  25. package/src/views/bd/setting/form_template/mixins/list.js +2 -506
  26. package/src/views/bd/setting/form_template/mixins/preformDialog.js +1 -26
  27. package/src/views/bd/setting/menu_kind/mixins/authDialog.js +1 -231
  28. package/src/views/bd/setting/menu_kind/mixins/dialog.js +1 -135
  29. package/src/views/bd/setting/menu_kind/mixins/list.js +1 -171
  30. package/src/views/bd/setting/table_model/edit.vue +1 -1
  31. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -70
  32. package/src/views/bd/setting/table_model/mixins/edit.js +1 -753
  33. package/src/views/bd/setting/table_model/mixins/list.js +1 -323
  34. package/src/views/bd/setting/table_model/mixins/zdDialog.js +1 -108
  35. package/src/views/bd/setting/utils/index.js +1 -60
  36. package/src/views/user/access_log/statistics_list.vue +296 -291
  37. package/src/views/user/fieldTranslation/editDialog.vue +5 -5
  38. package/src/views/user/home/default.vue +8 -8
@@ -1,291 +1,296 @@
1
- <template>
2
- <div>
3
- <div class="tree-box fl">
4
- <div class="tit"><b>{{ $t1('操作类型') }}</b></div>
5
- <el-tree
6
- :props="defaultProps"
7
- :load="loadNode"
8
- node-key="id"
9
- ref="tree"
10
- highlight-current
11
- lazy
12
- :expand-on-click-node="false"
13
- @node-click="handleNodeClick"
14
- class="tree-list"
15
- icon-class="el-icon-arrow-down"
16
- ></el-tree>
17
- </div>
18
- <label id="labBtn">
19
- <div class="icon">
20
- <i class="el-icon-more"></i>
21
- <i class="el-icon-more"></i>
22
- </div>
23
- </label>
24
- <div class="main-right fr" style="padding-left:6px;">
25
- <div class="grid-height">
26
- <template v-if="logType=='login'">
27
- <div class="statistics-box">
28
- <div class="name"><i class="el-icon-user-solid f-blue"></i>{{ $t1('登录成功') }}</div>
29
- <template>
30
- <block v-for="(item,index) in accessLogs" :key="index">
31
- <template v-if="item.flag!=='total'">
32
- <div class="item"><span class="date-txt">{{ item.logDate }}</span> {{ $t1('共有') }} <span
33
- class="f-red">{{ item.numbers }}</span> {{ $t1('人登录') }}
34
- </div>
35
- </template>
36
- <template v-else>
37
- <div class="last">
38
- {{ $t1('合计') }}:<span class="d">{{ item.startDate }}</span> {{ $t1('至') }} <span
39
- class="d">{{ item.endDate }}</span> {{ $t1('共有') }}
40
- <span class="f-red">{{ item.numbers }}</span> {{ $t1('人登录') }}
41
- </div>
42
- </template>
43
- </block>
44
- </template>
45
- </div>
46
- </template>
47
- <vxe-grid v-show="logType!=='login'" ref="table-m1" v-bind="vxeOption"
48
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
49
- @custom="$vxeTableUtil.customHandle">
50
- <template #form>
51
- <div class="clearfix screen-btns">
52
- <div class="fl">
53
- </div>
54
- <div class="fr">
55
- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
56
- {{ $t1('搜索') }}
57
- </vxe-button>
58
- </div>
59
- </div>
60
- <vxe-form ref="form" class="screen-box" title-width="92px" title-align="right" :data="formData"
61
- @submit="searchEvent" @reset="searchEvent">
62
- <vxe-form-item :title="$t1('访问日期')+':'">
63
- <template v-slot>
64
- <el-date-picker
65
- v-model="formData.startDate"
66
- type="date"
67
- placeholder=""
68
- size="small"
69
- clearable
70
- value-format="yyyy-MM-dd"
71
- :picker-options="$baseStartPickerOptions(formData.endDate)"
72
- ></el-date-picker>
73
- <span>-</span>
74
- <el-date-picker
75
- v-model="formData.endDate"
76
- type="date"
77
- placeholder=""
78
- size="small"
79
- clearable
80
- value-format="yyyy-MM-dd"
81
- :picker-options="$baseEndPickerOptions(formData.startDate)"
82
- ></el-date-picker>
83
- <el-button style="margin-left: 15px;" icon="el-icon-date" class="button-sty"
84
- @click="checkDateButton(7)"
85
- type="success"
86
- >{{ $t1('近7天') }}
87
- </el-button>
88
- <el-button icon="el-icon-date" class="button-sty" @click="checkDateButton(30)"
89
- type="success"
90
- >{{ $t1('近30天') }}
91
- </el-button>
92
- <el-button icon="el-icon-date" class="button-sty" @click="checkDateButton(90)"
93
- type="success"
94
- >{{ $t1('近90天') }}
95
- </el-button>
96
- </template>
97
- </vxe-form-item>
98
- </vxe-form>
99
- </template>
100
- </vxe-grid>
101
- </div>
102
- </div>
103
- </div>
104
- </template>
105
-
106
- <script>
107
- import {treeScollx} from '@base/utils/global.js';
108
- import moment from "moment"
109
-
110
- export default {
111
- name: 'access_log:list',
112
- components: {},
113
- data() {
114
- return {
115
- activeName: 'second',
116
- dataId: 0,
117
- showEdit: false,
118
- vxeOption: {},
119
- formData: {
120
- startDate: null,
121
- endDate: null
122
- },
123
- checkNode: {},
124
- defaultProps: {
125
- label: 'label', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
126
- children: [],
127
- isLeaf: 'leaf'
128
- },
129
- showWfDialog: false,
130
- wfContentOption: {},
131
- showAdvancedSearch: false,
132
- advancedFormData: {},
133
- userLogTypeDictArr: [],
134
- userLogTypeDicMap: {},
135
- logType: "login",
136
- accessLogs: []
137
- };
138
- },
139
- computed: {
140
- checkNodeData() {
141
- return this.checkNode && this.checkNode.data ? this.checkNode.data : {};
142
- }
143
- },
144
- async mounted() {
145
- treeScollx({target: this, type: 'default'});
146
- this.initTableList();
147
- },
148
- methods: {
149
- doSearch() {
150
- if (this.logType == "login") {
151
- this.accessLogs = []
152
- this.$http({
153
- url: USER_PREFIX + '/access_log/accessStatistics',
154
- method: `post`,
155
- data: {
156
- logType: this.logType
157
- },
158
- isLoading: true,
159
- modalStrictly: true,
160
- success: res => {
161
- this.accessLogs = res.objx || [];
162
- }
163
- })
164
- } else {
165
- if (!this.formData.startDate || !this.formData.endDate) {
166
- this.$baseAlert(this.$t1('请选择访问日期'));
167
- return
168
- }
169
- this.$refs['table-m1'].commitProxy('reload');
170
- }
171
- },
172
- searchEvent() {
173
- this.doSearch();
174
- },
175
- resetEvent() {
176
- this.formData = {};
177
- this.doSearch();
178
- },
179
- openEditDialog(id) {
180
- this.dataId = !id || typeof id == 'object' ? 0 : id;
181
- this.activeName = 'first';
182
- this.$openEditView('showEdit');
183
- },
184
- initTableList() {
185
- let that = this;
186
- let tableOption = {
187
- vue: this,
188
- tableRef: 'table-m1',
189
- tableName: 'user_access_statistics_list-m1',
190
- path: USER_PREFIX + '/access_log/accessStatistics',
191
- param: () => {
192
- return {
193
- ...this.formData,
194
- logType: this.logType
195
- // ...checkParam
196
- };
197
- },
198
- config: {
199
- proxyConfig: {
200
- props: {
201
- result: "objx", // 配置响应结果列表字段
202
- total: "objx.length", // 配置响应结果总页数字段
203
- },
204
- autoLoad: false
205
- }
206
- },
207
- columns: [
208
- {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
209
- {
210
- title: this.$t1('访问菜单名'),
211
- field: 'businessCode',
212
- width: 250,
213
- fixed: 'left',
214
- },
215
- {
216
- field: 'times',
217
- title: this.$t1('菜单访问总量'),
218
- width: 150
219
- },
220
- {
221
- field: 'numbers',
222
- title: this.$t1('菜单访问人数'),
223
- width: 150
224
- },
225
- {
226
- width: 47,
227
- fixed: 'right',
228
- title: '',
229
- sortable: false
230
- }
231
- ]
232
- };
233
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
234
- this.vxeOption = opts;
235
- });
236
- },
237
- handleNodeClick(data, node, v) {
238
- this.logType = data.value;
239
- this.checkNode = node;
240
- this.formData.startTime = null;
241
- this.formData.endTime = null;
242
- this.$forceUpdate();
243
- this.searchEvent();
244
- },
245
- // 异步树叶子节点懒加载逻辑
246
- loadNode(node, resolve) {
247
- let data = [
248
- {
249
- label: this.$t1('登录成功'),
250
- value: "login",
251
- id: 1,
252
- leaf: true
253
- },
254
- {
255
- label: this.$t1('访问菜单'),
256
- value: "accessMenu",
257
- id: 2,
258
- leaf: true
259
- }
260
- ]
261
- resolve(data);
262
- this.$nextTick(() => {
263
- if (node.childNodes.length) {
264
- this.checkFirstNode();
265
- this.checkDateButton(7);
266
- }
267
- });
268
- },
269
- checkFirstNode() {
270
- let node = this.$refs.tree.getNode(1);
271
- this.$refs.tree.setCurrentKey(node);
272
- this.checkNode = node;
273
- this.logType = node.data.value;
274
- },
275
- checkDateButton(num) {
276
- const dateArray = [];
277
- const today = new Date();
278
-
279
- this.formData.startDate = moment(today).add(-num + 1, "days").format("YYYY-MM-DD");
280
- this.formData.endDate = moment(today).format("YYYY-MM-DD");
281
- this.searchEvent()
282
- }
283
-
284
- }
285
- };
286
- </script>
287
- <style scoped>
288
- ::v-deep body .tab-box > .el-tabs__content .grid-height {
289
- height: calc(100vh - 91px);
290
- }
291
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="tree-box fl">
4
+ <div class="tit"><b>{{ $t1('操作类型') }}</b></div>
5
+ <el-tree
6
+ :props="defaultProps"
7
+ :load="loadNode"
8
+ node-key="id"
9
+ ref="tree"
10
+ highlight-current
11
+ lazy
12
+ :expand-on-click-node="false"
13
+ @node-click="handleNodeClick"
14
+ class="tree-list"
15
+ icon-class="el-icon-arrow-down"
16
+ ></el-tree>
17
+ </div>
18
+ <label id="labBtn">
19
+ <div class="icon">
20
+ <i class="el-icon-more"></i>
21
+ <i class="el-icon-more"></i>
22
+ </div>
23
+ </label>
24
+ <div class="main-right fr" style="padding-left:6px;">
25
+ <div class="grid-height">
26
+ <template v-if="logType=='login'">
27
+ <div class="statistics-box">
28
+ <div class="name"><i class="el-icon-user-solid f-blue"></i>{{ $t1('登录成功') }}</div>
29
+ <template>
30
+ <block v-for="(item,index) in accessLogs" :key="index">
31
+ <template v-if="item.flag!=='total'">
32
+ <div class="item">
33
+ <span v-html="$t1('{logDate}共有{number}人登录',{
34
+ logDate: `<span class='date-txt'>${item.logDate}</span>`,
35
+ number: `<span class='f-red'>${item.numbers}</span>`
36
+ })"></span>
37
+ </div>
38
+ </template>
39
+ <template v-else>
40
+ <div class="last">
41
+ <span v-html="$t1('合计:{startDate}至{endDate}共有{number}人登录',{
42
+ startDate: `<span class='d'>${item.startDate}</span>`,
43
+ endDate: `<span class='d'>${item.endDate}</span>`,
44
+ number: `<span class='f-red'>${item.numbers}</span>`
45
+ })"></span>
46
+ </div>
47
+ </template>
48
+ </block>
49
+ </template>
50
+ </div>
51
+ </template>
52
+ <vxe-grid v-show="logType!=='login'" ref="table-m1" v-bind="vxeOption"
53
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
54
+ @custom="$vxeTableUtil.customHandle">
55
+ <template #form>
56
+ <div class="clearfix screen-btns">
57
+ <div class="fl">
58
+ </div>
59
+ <div class="fr">
60
+ <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
61
+ {{ $t1('搜索') }}
62
+ </vxe-button>
63
+ </div>
64
+ </div>
65
+ <vxe-form ref="form" class="screen-box" title-width="92px" title-align="right" :data="formData"
66
+ @submit="searchEvent" @reset="searchEvent">
67
+ <vxe-form-item :title="$t1('访问日期')+':'">
68
+ <template v-slot>
69
+ <el-date-picker
70
+ v-model="formData.startDate"
71
+ type="date"
72
+ placeholder=""
73
+ size="small"
74
+ clearable
75
+ value-format="yyyy-MM-dd"
76
+ :picker-options="$baseStartPickerOptions(formData.endDate)"
77
+ ></el-date-picker>
78
+ <span>-</span>
79
+ <el-date-picker
80
+ v-model="formData.endDate"
81
+ type="date"
82
+ placeholder=""
83
+ size="small"
84
+ clearable
85
+ value-format="yyyy-MM-dd"
86
+ :picker-options="$baseEndPickerOptions(formData.startDate)"
87
+ ></el-date-picker>
88
+ <el-button style="margin-left: 15px;" icon="el-icon-date" class="button-sty"
89
+ @click="checkDateButton(7)"
90
+ type="success"
91
+ >{{ $t1('近7天') }}
92
+ </el-button>
93
+ <el-button icon="el-icon-date" class="button-sty" @click="checkDateButton(30)"
94
+ type="success"
95
+ >{{ $t1('近30天') }}
96
+ </el-button>
97
+ <el-button icon="el-icon-date" class="button-sty" @click="checkDateButton(90)"
98
+ type="success"
99
+ >{{ $t1('近90天') }}
100
+ </el-button>
101
+ </template>
102
+ </vxe-form-item>
103
+ </vxe-form>
104
+ </template>
105
+ </vxe-grid>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </template>
110
+
111
+ <script>
112
+ import {treeScollx} from '@base/utils/global.js';
113
+ import moment from "moment"
114
+
115
+ export default {
116
+ name: 'access_log:list',
117
+ components: {},
118
+ data() {
119
+ return {
120
+ activeName: 'second',
121
+ dataId: 0,
122
+ showEdit: false,
123
+ vxeOption: {},
124
+ formData: {
125
+ startDate: null,
126
+ endDate: null
127
+ },
128
+ checkNode: {},
129
+ defaultProps: {
130
+ label: 'label', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
131
+ children: [],
132
+ isLeaf: 'leaf'
133
+ },
134
+ showWfDialog: false,
135
+ wfContentOption: {},
136
+ showAdvancedSearch: false,
137
+ advancedFormData: {},
138
+ userLogTypeDictArr: [],
139
+ userLogTypeDicMap: {},
140
+ logType: "login",
141
+ accessLogs: []
142
+ };
143
+ },
144
+ computed: {
145
+ checkNodeData() {
146
+ return this.checkNode && this.checkNode.data ? this.checkNode.data : {};
147
+ }
148
+ },
149
+ async mounted() {
150
+ treeScollx({target: this, type: 'default'});
151
+ this.initTableList();
152
+ },
153
+ methods: {
154
+ doSearch() {
155
+ if (this.logType == "login") {
156
+ this.accessLogs = []
157
+ this.$http({
158
+ url: USER_PREFIX + '/access_log/accessStatistics',
159
+ method: `post`,
160
+ data: {
161
+ logType: this.logType
162
+ },
163
+ isLoading: true,
164
+ modalStrictly: true,
165
+ success: res => {
166
+ this.accessLogs = res.objx || [];
167
+ }
168
+ })
169
+ } else {
170
+ if (!this.formData.startDate || !this.formData.endDate) {
171
+ this.$baseAlert(this.$t1('请选择访问日期'));
172
+ return
173
+ }
174
+ this.$refs['table-m1'].commitProxy('reload');
175
+ }
176
+ },
177
+ searchEvent() {
178
+ this.doSearch();
179
+ },
180
+ resetEvent() {
181
+ this.formData = {};
182
+ this.doSearch();
183
+ },
184
+ openEditDialog(id) {
185
+ this.dataId = !id || typeof id == 'object' ? 0 : id;
186
+ this.activeName = 'first';
187
+ this.$openEditView('showEdit');
188
+ },
189
+ initTableList() {
190
+ let that = this;
191
+ let tableOption = {
192
+ vue: this,
193
+ tableRef: 'table-m1',
194
+ tableName: 'user_access_statistics_list-m1',
195
+ path: USER_PREFIX + '/access_log/accessStatistics',
196
+ param: () => {
197
+ return {
198
+ ...this.formData,
199
+ logType: this.logType
200
+ // ...checkParam
201
+ };
202
+ },
203
+ config: {
204
+ proxyConfig: {
205
+ props: {
206
+ result: "objx", // 配置响应结果列表字段
207
+ total: "objx.length", // 配置响应结果总页数字段
208
+ },
209
+ autoLoad: false
210
+ }
211
+ },
212
+ columns: [
213
+ {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
214
+ {
215
+ title: this.$t1('访问菜单名'),
216
+ field: 'businessCode',
217
+ width: 250,
218
+ fixed: 'left',
219
+ },
220
+ {
221
+ field: 'times',
222
+ title: this.$t1('菜单访问总量'),
223
+ width: 150
224
+ },
225
+ {
226
+ field: 'numbers',
227
+ title: this.$t1('菜单访问人数'),
228
+ width: 150
229
+ },
230
+ {
231
+ width: 47,
232
+ fixed: 'right',
233
+ title: '',
234
+ sortable: false
235
+ }
236
+ ]
237
+ };
238
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
239
+ this.vxeOption = opts;
240
+ });
241
+ },
242
+ handleNodeClick(data, node, v) {
243
+ this.logType = data.value;
244
+ this.checkNode = node;
245
+ this.formData.startTime = null;
246
+ this.formData.endTime = null;
247
+ this.$forceUpdate();
248
+ this.searchEvent();
249
+ },
250
+ // 异步树叶子节点懒加载逻辑
251
+ loadNode(node, resolve) {
252
+ let data = [
253
+ {
254
+ label: this.$t1('登录成功'),
255
+ value: "login",
256
+ id: 1,
257
+ leaf: true
258
+ },
259
+ {
260
+ label: this.$t1('访问菜单'),
261
+ value: "accessMenu",
262
+ id: 2,
263
+ leaf: true
264
+ }
265
+ ]
266
+ resolve(data);
267
+ this.$nextTick(() => {
268
+ if (node.childNodes.length) {
269
+ this.checkFirstNode();
270
+ this.checkDateButton(7);
271
+ }
272
+ });
273
+ },
274
+ checkFirstNode() {
275
+ let node = this.$refs.tree.getNode(1);
276
+ this.$refs.tree.setCurrentKey(node);
277
+ this.checkNode = node;
278
+ this.logType = node.data.value;
279
+ },
280
+ checkDateButton(num) {
281
+ const dateArray = [];
282
+ const today = new Date();
283
+
284
+ this.formData.startDate = moment(today).add(-num + 1, "days").format("YYYY-MM-DD");
285
+ this.formData.endDate = moment(today).format("YYYY-MM-DD");
286
+ this.searchEvent()
287
+ }
288
+
289
+ }
290
+ };
291
+ </script>
292
+ <style scoped>
293
+ ::v-deep body .tab-box > .el-tabs__content .grid-height {
294
+ height: calc(100vh - 91px);
295
+ }
296
+ </style>
@@ -12,22 +12,22 @@
12
12
  v-el-drag-dialog
13
13
  @close="close"
14
14
  >
15
- <div class="cont">
15
+ <div class="cont" style="max-height: 500px;">
16
16
  <el-form ref="editForm" :model="fieldTranslation" label-width="110px" class="adSearchForm"
17
17
  style="width:100%;height: auto;">
18
18
  <el-form-item :label="$t1('数据类型')" prop="dataTypeName" :rules="[{ required: false, trigger: 'blur' }]">
19
19
  <span>{{ dataTypeMap[fieldTranslation.dataTypeCode] }}</span>
20
20
  </el-form-item>
21
- <el-form-item :label="$t1('字段编码')" prop="fieldCode" :rules="[{ required: false, trigger: 'blur' }]">
22
- <el-input v-model="fieldTranslation.fieldCode" clearable/>
21
+ <el-form-item :label="$t1('字段编码')" prop="fieldCode" :rules="[{ required: false, trigger: 'blur' }]" class="block">
22
+ <el-input type="textarea" :rows="2" v-model="fieldTranslation.fieldCode" clearable/>
23
23
  </el-form-item>
24
24
  <el-form-item :label="$t1('中文')" prop="translation1" :rules="[{ required: false, trigger: 'blur' }]"
25
25
  class="block">
26
- <el-input v-model="fieldTranslation.translation1" clearable/>
26
+ <el-input type="textarea" :rows="2" v-model="fieldTranslation.translation1" clearable/>
27
27
  </el-form-item>
28
28
  <el-form-item v-for="(item,index) in languageSettings" :key="index" :label="item.languageName" :prop="item.sn"
29
29
  :rules="[{ required: false, trigger: 'blur' }]" class="block">
30
- <el-input v-model="fieldTranslation[item.translationField]" clearable/>
30
+ <el-input type="textarea" :rows="2" v-model="fieldTranslation[item.translationField]" clearable/>
31
31
  </el-form-item>
32
32
  <el-form-item :label="$t1('多语言标签')" prop="translation1" :rules="[{ required: false, trigger: 'blur' }]"
33
33
  class="block">