cloud-web-corejs 1.0.43 → 1.0.44

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.43",
4
+ "version": "1.0.44",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -0,0 +1,349 @@
1
+ <template>
2
+ <div id="containt">
3
+ <el-tabs v-model="activeName" class="tab-box">
4
+ <el-tab-pane :label="$t1('常规')" name="first">
5
+ <editView v-if="showEdit" visible-key="showEdit" :_dataId.sync="dataId" :parent-target="_self"
6
+ @reload="$reloadHandle"></editView>
7
+ </el-tab-pane>
8
+ <el-tab-pane :label="$t1('列表')" name="second">
9
+ <div class="tree-box fl">
10
+ <div class="tit"><b>{{ $t1('操作类型') }}</b></div>
11
+ <el-tree
12
+ :props="defaultProps"
13
+ :load="loadNode"
14
+ node-key="id"
15
+ ref="tree"
16
+ highlight-current
17
+ lazy
18
+ :expand-on-click-node="false"
19
+ @node-click="handleNodeClick"
20
+ class="tree-list"
21
+ icon-class="el-icon-arrow-down"
22
+ ></el-tree>
23
+ </div>
24
+ <label id="labBtn">
25
+ <div class="icon">
26
+ <i class="el-icon-more"></i>
27
+ <i class="el-icon-more"></i>
28
+ </div>
29
+ </label>
30
+ <div class="main-right fr" style="padding-left:6px;">
31
+ <div class="grid-height">
32
+ <vxe-grid ref="table-m1" v-bind="vxeOption" @resizable-change="$vxeTableUtil.onColumnWitchChange"
33
+ @custom="$vxeTableUtil.customHandle">
34
+ <template #form>
35
+ <div class="clearfix screen-btns">
36
+ <div class="fl">
37
+ <base-table-export :option="{ title: $t1('访问统计导出'), targetRef: 'table-m1'}"
38
+ :parent-target="_self"/>
39
+ </div>
40
+ <div class="fr">
41
+ <vxe-button status="warning" icon="iconfont icon-shaixuan" class="button-sty orgn"
42
+ @click="showAdvancedSearch = true">{{ $t1('高级筛选') }}
43
+ </vxe-button>
44
+ <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
45
+ plain>{{ $t1('重置') }}
46
+ </vxe-button>
47
+ <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
48
+ {{ $t1('搜索') }}
49
+ </vxe-button>
50
+ </div>
51
+ </div>
52
+ <vxe-form ref="form" class="screen-box" title-width="92px" title-align="right" :data="formData"
53
+ @submit="searchEvent" @reset="searchEvent">
54
+ <vxe-form-item :title="$t1('操作类型')+':'">
55
+ <template v-slot>
56
+ <el-input v-model="checkNode.label" :disabled="true"></el-input>
57
+ </template>
58
+ </vxe-form-item>
59
+ <vxe-form-item :title="$t1('访问日期')+':'">
60
+ <template v-slot>
61
+ <el-date-picker
62
+ v-model="formData.startTime"
63
+ type="date"
64
+ placeholder=""
65
+ size="small"
66
+ clearable
67
+ value-format="yyyy-MM-dd"
68
+ :picker-options="$baseStartPickerOptions(formData.endTime)"
69
+ ></el-date-picker>
70
+ <span>-</span>
71
+ <el-date-picker
72
+ v-model="formData.endTime"
73
+ type="date"
74
+ placeholder=""
75
+ size="small"
76
+ clearable
77
+ value-format="yyyy-MM-dd"
78
+ :picker-options="$baseEndPickerOptions(formData.startTime)"
79
+ ></el-date-picker>
80
+ </template>
81
+ </vxe-form-item>
82
+ </vxe-form>
83
+ </template>
84
+ </vxe-grid>
85
+ </div>
86
+ </div>
87
+ </el-tab-pane>
88
+ <el-tab-pane :label="$t1('统计')" name="third">
89
+ <statistics_list v-if="showStatisticsList"></statistics_list>
90
+ </el-tab-pane>
91
+ </el-tabs>
92
+ <advancedSearchDialog v-if="showAdvancedSearch" :visiable.sync="showAdvancedSearch"
93
+ :formData.sync="advancedFormData" @confirm="searchEvent">
94
+ <template #form>
95
+ <vxe-form :model="advancedFormData" title-width="102px" :inline="true" class="adSearchForm">
96
+ <vxe-form-item :title="$t1('操作内容') + ':'" class-name="block">
97
+ <template v-slot>
98
+ <el-input v-model="advancedFormData.content" size="small" clearable></el-input>
99
+ </template>
100
+ </vxe-form-item>
101
+ <vxe-form-item :title="$t1('冗余字段1') +':'">
102
+ <template v-slot>
103
+ <el-input v-model="advancedFormData.param1" size="small" clearable></el-input>
104
+ </template>
105
+ </vxe-form-item>
106
+ <vxe-form-item :title="$t1('冗余字段2') +':'">
107
+ <template v-slot>
108
+ <el-input v-model="advancedFormData.param2" size="small" clearable></el-input>
109
+ </template>
110
+ </vxe-form-item>
111
+ </vxe-form>
112
+ </template>
113
+ </advancedSearchDialog>
114
+
115
+ </div>
116
+ </template>
117
+
118
+ <script>
119
+ import {treeScollx} from '@base/utils/global.js';
120
+ import editView from './edit.vue';
121
+ import statistics_list from "./statistics_list.vue";
122
+
123
+
124
+ export default {
125
+ name: 'access_log:list',
126
+ components: {editView, statistics_list},
127
+ data() {
128
+ return {
129
+ activeName: 'second',
130
+ dataId: 0,
131
+ showEdit: false,
132
+ vxeOption: {},
133
+ formData: {
134
+ startTime: null,
135
+ endTime: null
136
+ },
137
+ checkNode: {},
138
+ defaultProps: {
139
+ label: 'label', //这里是树结构中需显示的数据(即接口返回的需展示在页面上的参数)
140
+ children: [],
141
+ isLeaf: 'leaf'
142
+ },
143
+ showWfDialog: false,
144
+ wfContentOption: {},
145
+ showAdvancedSearch: false,
146
+ advancedFormData: {},
147
+ showStatisticsList: false,
148
+ logTypeMap: {}
149
+ };
150
+ },
151
+ watch: {
152
+ activeName(val) {
153
+ if (this.showStatisticsList === false && val === "third") {
154
+ this.showStatisticsList = true;
155
+ }
156
+ }
157
+ },
158
+ computed: {
159
+ checkNodeData() {
160
+ return this.checkNode && this.checkNode.data ? this.checkNode.data : {};
161
+ },
162
+ logType() {
163
+ let checkNodeData = this.checkNode && this.checkNode.data ? this.checkNode.data : {};
164
+ return checkNodeData.value ?? null
165
+ }
166
+ },
167
+ async mounted() {
168
+ treeScollx({target: this, type: 'default'});
169
+ this.initTableList();
170
+ },
171
+ methods: {
172
+ searchEvent() {
173
+ this.$refs['table-m1'].commitProxy('reload');
174
+ },
175
+ resetEvent() {
176
+ this.formData = {};
177
+ this.advancedFormData = {};
178
+ this.checkFirstNode();
179
+ this.$refs['table-m1'].commitProxy('reload');
180
+ },
181
+ openEditDialog(id) {
182
+ this.dataId = !id || typeof id == 'object' ? 0 : id;
183
+ this.activeName = 'first';
184
+ this.$openEditView('showEdit');
185
+ },
186
+ initTableList() {
187
+ let that = this;
188
+ let logTypeMap = this.logTypeMap;
189
+ let tableOption = {
190
+ vue: this,
191
+ tableRef: 'table-m1',
192
+ tableName: 'user_access_log_list-m1',
193
+ path: USER_PREFIX + '/access_log/listPage',
194
+ param: () => {
195
+ return {
196
+ ...this.formData,
197
+ ...this.advancedFormData,
198
+ logType: this.logType
199
+ // ...checkParam
200
+ };
201
+ },
202
+ columns: [
203
+ {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
204
+ {
205
+ title: this.$t1('操作类型'),
206
+ field: 'logTypeName',
207
+ fixed: 'left',
208
+ width: 150
209
+ },
210
+ {
211
+ title: this.$t1('操作内容'),
212
+ field: 'content',
213
+ width: 200
214
+ },
215
+ {
216
+ title: this.$t1('请求地址'),
217
+ field: 'path',
218
+ width: 200
219
+ },
220
+ {
221
+ title: this.$t1('客户端'),
222
+ field: 'client',
223
+ width: 150
224
+ },
225
+ {
226
+ title: this.$t1('冗余字段1'),
227
+ field: 'param1',
228
+ width: 150
229
+ },
230
+ {
231
+ title: this.$t1('冗余字段2'),
232
+ field: 'param2',
233
+ width: 150
234
+ },
235
+ {
236
+ title: this.$t1('操作人'),
237
+ field: 'nickName',
238
+ width: 150
239
+ },
240
+ {
241
+ title: this.$t1('服务名'),
242
+ field: 'serverName',
243
+ width: 250
244
+ },
245
+ {
246
+ title: this.$t1('请求IP'),
247
+ field: 'ip',
248
+ width: 150
249
+ },
250
+ {
251
+ title: this.$t1('创建时间'),
252
+ field: 'createDate',
253
+ width: 150
254
+ },
255
+ {
256
+ width: 47,
257
+ fixed: 'right',
258
+ title: '',
259
+ sortable: false,
260
+ slots: {
261
+ default: ({row, rowIndex}) => {
262
+ return [
263
+ <div>
264
+ <a
265
+ href="javascript:void(0);"
266
+ class="a-link"
267
+ onclick={() => {
268
+ this.openEditDialog(row.id);
269
+ }}
270
+ >
271
+ <el-tooltip enterable={false} effect="dark" content={this.$t1('查看')} placement="top"
272
+ popper-class="tooltip-skin">
273
+ <i class="el-icon-edit"/>
274
+ </el-tooltip>
275
+ </a>
276
+ </div>
277
+ ];
278
+ }
279
+ }
280
+ }
281
+ ]
282
+ };
283
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
284
+ this.vxeOption = opts;
285
+ });
286
+ },
287
+ clearNodeClick() {
288
+ this.checkNode = null;
289
+ this.formData.startTime = null;
290
+ this.formData.endTime = null;
291
+ this.$refs.tree.setCurrentKey();
292
+ this.searchEvent();
293
+ },
294
+ handleNodeClick(data, node, v) {
295
+ this.checkNode = node;
296
+ this.formData.startTime = data.all ? null : data.logDate;
297
+ this.formData.endTime = data.all ? null : data.logDate;
298
+ this.$forceUpdate();
299
+ this.searchEvent();
300
+ },
301
+ // 异步树叶子节点懒加载逻辑
302
+ loadNode(node, resolve) {
303
+ this.$http({
304
+ url: USER_PREFIX + `/user_log_classify/listPage`,
305
+ method: `post`,
306
+ data: {
307
+ enabled: true
308
+ },
309
+ success: res => {
310
+ let logTypeMap = {};
311
+ let rows = res.objx?.records || [];
312
+ let items = rows.map(item => {
313
+ logTypeMap[item.classifyCode] = item.classifyName;
314
+ return {
315
+ label: item.classifyName,
316
+ value: item.classifyCode,
317
+ id: item.classifyCode,
318
+ leaf: true,
319
+ }
320
+ })
321
+ this.logTypeMap = logTypeMap;
322
+ let data = [
323
+ {
324
+ label: this.$t1('全部类型'),
325
+ all: true,
326
+ id: -1,
327
+ leaf: true,
328
+ },
329
+ ...items
330
+ ]
331
+ resolve(data);
332
+ this.$nextTick(() => {
333
+ if (node.childNodes.length) {
334
+ this.checkFirstNode();
335
+ this.$forceUpdate();
336
+ }
337
+ });
338
+ }
339
+ });
340
+
341
+ },
342
+ checkFirstNode() {
343
+ let node = this.$refs.tree.getNode(-1);
344
+ this.$refs.tree.setCurrentKey(node);
345
+ this.checkNode = node;
346
+ }
347
+ }
348
+ };
349
+ </script>
@@ -1,344 +0,0 @@
1
- <template>
2
- <div id="containt">
3
- <el-tabs v-model="activeName" class="tab-box">
4
- <el-tab-pane :label="$t1('单据对象列表')" name="second">
5
- <div class="grid-height">
6
- <vxe-grid ref="table-m1" v-bind="vxeOption" @resizable-change="$vxeTableUtil.onColumnWitchChange"
7
- @custom="$vxeTableUtil.customHandle">
8
- <template #form>
9
- <div class="clearfix screen-btns">
10
- <div class="fl">
11
- <base-table-export :option="{ title: $t1('扩展属性-单据配置导出'), targetRef: 'table-m1'}"
12
- :parent-target="_self"/>
13
- </div>
14
- <div class="fr">
15
- <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent" type="text" status="primary"
16
- plain>{{ $t1('重置') }}
17
- </vxe-button>
18
- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent">
19
- {{ $t1('搜索') }}
20
- </vxe-button>
21
- </div>
22
- </div>
23
- <vxe-form ref="form" class="screen-box" title-width="92px" title-align="right" :data="formData"
24
- @submit="searchEvent" @reset="searchEvent">
25
- <vxe-form-item :title="$t1('单据对象名称')+':'" field="eaObjName">
26
- <template v-slot>
27
- <el-input v-model="formData.eaObjName" size="small" clearable/>
28
- </template>
29
- </vxe-form-item>
30
- <vxe-form-item :title="$t1('单据对象编码')+':'" field="eaObjCode">
31
- <template v-slot>
32
- <el-input v-model="formData.eaObjCode" size="small" clearable/>
33
- </template>
34
- </vxe-form-item>
35
- </vxe-form>
36
- </template>
37
- </vxe-grid>
38
- </div>
39
- </el-tab-pane>
40
- <el-tab-pane :label="$t1('单据对象分组配置列表')" name="third">
41
- <div class="grid-height" v-if="showList">
42
- <vxe-grid ref="table-m2" v-bind="vxeOption2" @resizable-change="$vxeTableUtil.onColumnWitchChange"
43
- @custom="$vxeTableUtil.customHandle">
44
- <template #form>
45
- <div class="clearfix screen-btns">
46
- <div class="fl">
47
- <vxe-button status="primary" class="button-sty" icon="el-icon-plus" @click="openEditDialog2">
48
- {{ $t1('新增') }}
49
- </vxe-button>
50
- </div>
51
- <div class="fr">
52
- <vxe-button icon="el-icon-brush" class="button-sty" @click="resetEvent2" type="text" status="primary"
53
- plain>{{ $t1('重置') }}
54
- </vxe-button>
55
- <vxe-button status="warning" icon="el-icon-search" class="button-sty" @click="searchEvent2">
56
- {{ $t1('搜索') }}
57
- </vxe-button>
58
- </div>
59
- </div>
60
- <vxe-form ref="form2" class="screen-box" title-width="92px" title-align="right" :data="formData2"
61
- @submit="searchEvent2" @reset="searchEvent2">
62
- <vxe-form-item :title="$t1('单据对象名称')+':'" field="eaObjName">
63
- <template v-slot>
64
- <el-input v-model="eaObjName" size="small" disabled/>
65
- </template>
66
- </vxe-form-item>
67
- <vxe-form-item :title="$t1('单据对象编码')+':'" field="eaObjCode">
68
- <template v-slot>
69
- <el-input v-model="eaObjCode" size="small" disabled/>
70
- </template>
71
- </vxe-form-item>
72
- </vxe-form>
73
- </template>
74
- </vxe-grid>
75
- </div>
76
- </el-tab-pane>
77
- <el-tab-pane :label="$t1('分组配置常规')" name="first">
78
- <editView v-if="showEdit" visible-key="showEdit" :_dataId.sync="dataId" :eaObjCode.sync="eaObjCode"
79
- :parent-target="_self" @reload="$reloadHandle"></editView>
80
- </el-tab-pane>
81
- </el-tabs>
82
- </div>
83
- </template>
84
-
85
- <script>
86
- import editView from './edit.vue';
87
-
88
- export default {
89
- name: 'eagroup:eaobj_list',
90
- components: {
91
- editView
92
- },
93
- created() {
94
- },
95
- mounted() {
96
- this.initTableList();
97
- },
98
- data() {
99
- return {
100
- activeName: 'second',
101
- dataId: 0,
102
- showEdit: false,
103
- showList: false,
104
- eaObjName: '',
105
- eaObjCode: '',
106
- vxeOption: {},
107
- formData: {},
108
- formData2: {},
109
- vxeOption2: {}
110
- };
111
- },
112
- watch: {
113
- activeName(val) {
114
- let that = this;
115
- if (val == 'third') {
116
- if (this.showList == false && this.eaObjCode) {
117
- this.showList == true;
118
- setTimeout(function () {
119
- that.initTableList2();
120
- }, 200);
121
- }
122
- }
123
- }
124
- },
125
- methods: {
126
- searchEvent() {
127
- this.$refs['table-m1'].commitProxy('reload');
128
- },
129
- resetEvent() {
130
- this.formData = {};
131
- this.$refs['table-m1'].commitProxy('reload');
132
- },
133
- openEditDialog(row) {
134
- this.eaObjName = row.eaObjName;
135
- this.eaObjCode = row.eaObjCode;
136
- this.activeName = 'third';
137
- this.$openEditView('showList');
138
- },
139
- initTableList() {
140
- let that = this;
141
- let tableOption = {
142
- vue: this,
143
- tableRef: 'table-m1',
144
- tableName: 'eagroup-eaobj_list-m1',
145
- path: USER_PREFIX + '/eaobj/listPage',
146
- param: () => {
147
- return this.formData;
148
- },
149
- columns: [
150
- {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
151
- {
152
- title: this.$t1('单据对象名称'),
153
- field: 'eaObjName',
154
- width: 150,
155
- fixed: 'left'
156
- },
157
- {
158
- field: 'eaObjCode',
159
- title: this.$t1('单据对象编码'),
160
- width: 150
161
- },
162
- {
163
- field: 'applicationName',
164
- title: this.$t1('所属应用服务名'),
165
- width: 150
166
- },
167
- {
168
- field: 'memo',
169
- title: this.$t1('备注'),
170
- width: 150
171
- },
172
- {
173
- field: 'createDate',
174
- title: this.$t1('创建时间'),
175
- width: 200
176
- },
177
- {
178
- width: 47,
179
- fixed: 'right',
180
- title: '',
181
- sortable: false,
182
- slots: {
183
- default: ({row}) => {
184
- return [
185
- <a
186
- href="javascript:void(0);"
187
- class="a-link"
188
- onclick={() => {
189
- this.openEditDialog(row);
190
- }}
191
- >
192
- <el-tooltip enterable={false} effect="dark" content={this.$t1('查看分组配置')} placement="top"
193
- popper-class="tooltip-skin">
194
- <i class="el-icon-edit"/>
195
- </el-tooltip>
196
- </a>
197
- ];
198
- }
199
- }
200
- }
201
- ]
202
- };
203
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
204
- this.vxeOption = opts;
205
- });
206
- },
207
- searchEvent2() {
208
- this.$refs['table-m2'].commitProxy('reload');
209
- },
210
- resetEvent2() {
211
- this.formData2 = {};
212
- this.$refs['table-m2'].commitProxy('reload');
213
- },
214
- openEditDialog2(id) {
215
- this.dataId = !id || typeof id == 'object' ? 0 : id;
216
- this.activeName = 'first';
217
- this.$openEditView('showEdit');
218
- },
219
- initTableList2() {
220
- let that = this;
221
- let eaGroupTypeMap = {1: this.$t1('单属性'), 2: this.$t1('列表属性'), 3: this.$t1('附件')};
222
- let tableOption = {
223
- vue: this,
224
- tableRef: 'table-m2',
225
- tableName: 'eagroup-eaobj_list-m2',
226
- path: USER_PREFIX + '/eagroup/list',
227
- param: () => {
228
- return {
229
- eaObjCode: this.eaObjCode
230
- };
231
- },
232
- config: {
233
- proxyConfig: {
234
- props: {
235
- result: 'objx',
236
- total: 'objx.length'
237
- }
238
- }
239
- },
240
- columns: [
241
- {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
242
- {
243
- title: this.$t1('分组描述'),
244
- field: 'eaGroupDesc',
245
- width: 150,
246
- fixed: 'left'
247
- },
248
- {
249
- field: 'eaGroupCode',
250
- title: this.$t1('分组编码'),
251
- width: 250
252
- },
253
- {
254
- field: 'eaObjCode',
255
- title: this.$t1('单据对象编码'),
256
- width: 150
257
- },
258
- {
259
- field: 'eaTableName',
260
- title: this.$t1('数据表名'),
261
- width: 250
262
- },
263
- {
264
- field: 'eaGroupType',
265
- title: this.$t1('分组类型'),
266
- width: 150,
267
- slots: {
268
- default: ({row}) => {
269
- return eaGroupTypeMap[row.eaGroupType] || '';
270
- }
271
- }
272
- },
273
- {
274
- field: 'orders',
275
- title: this.$t1('序号'),
276
- width: 150
277
- },
278
- {
279
- field: 'applicationName',
280
- title: this.$t1('所属服务器名'),
281
- width: 150
282
- },
283
- {
284
- field: 'eaAttachType',
285
- title: this.$t1('附件类型名'),
286
- width: 150
287
- },
288
- {
289
- field: 'enabled',
290
- title: this.$t1('是否启用'),
291
- width: 150,
292
- slots: {
293
- default: ({row}) => {
294
- if (row.enabled) {
295
- return [<div class="txt-status">{this.$t1('启用')}</div>];
296
- } else {
297
- return [<div class="txt-status s-3">{this.$t1('禁用')}</div>];
298
- }
299
- }
300
- }
301
- },
302
- {
303
- field: 'memo',
304
- title: this.$t1('备注'),
305
- width: 150
306
- },
307
- {
308
- field: 'createDate',
309
- title: this.$t1('创建时间'),
310
- width: 200
311
- },
312
- {
313
- width: 47,
314
- fixed: 'right',
315
- title: '',
316
- sortable: false,
317
- slots: {
318
- default: ({row}) => {
319
- return [
320
- <a
321
- href="javascript:void(0);"
322
- class="a-link"
323
- onclick={() => {
324
- this.openEditDialog2(row.id);
325
- }}
326
- >
327
- <el-tooltip enterable={false} effect="dark" content={this.$t1('查看')} placement="top"
328
- popper-class="tooltip-skin">
329
- <i class="el-icon-edit"/>
330
- </el-tooltip>
331
- </a>
332
- ];
333
- }
334
- }
335
- }
336
- ]
337
- };
338
- this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
339
- this.vxeOption2 = opts;
340
- });
341
- }
342
- }
343
- };
344
- </script>