n20-common-lib 2.1.3 → 2.1.5
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 +1 -1
- package/src/assets/css/normalize.scss +15 -35
- package/src/components/DatePicker/por.vue +1 -1
- package/src/components/FileUploadTable/index.vue +169 -258
- package/src/components/Filters/index.vue +6 -1
- package/src/components/Filters/indexO.vue +6 -1
- package/src/components/InputNumber/index.vue +2 -4
- package/src/components/Layout/HeaderWrap/indexN.vue +6 -8
- package/src/components/Layout/index.vue +3 -1
- package/src/components/LoginSetting/index.vue +1 -1
- package/src/components/LoginSetting/indexN.vue +9 -2
- package/src/components/LoginSetting/setItem.vue +47 -20
- package/src/components/LoginTemporary/form.vue +8 -1
- package/src/components/LoginTemporary/indexN.vue +49 -12
- package/src/components/LoginTemporary/systemIconMap.js +8 -8
- package/src/components/Table/index.vue +7 -3
- package/src/components/Upload/index.vue +9 -2
- package/src/utils/urlToGo.js +34 -7
package/package.json
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
$--font-size-base: 14px !default;
|
|
2
|
-
$--border-color-base: #dcdfe6 !default;
|
|
3
|
-
$--border-radius-base: 4px !default;
|
|
4
|
-
$--input-width: 224px !default;
|
|
5
|
-
|
|
6
1
|
// 项目中可以直接使用
|
|
7
2
|
// .input-w {width: $--input-width;}
|
|
8
3
|
// .button-4em{min-width: 72px;}
|
|
9
|
-
/* 格式化样式
|
|
10
|
-
---------------- */
|
|
4
|
+
/* 格式化样式 */
|
|
11
5
|
html {
|
|
12
6
|
height: 100%;
|
|
13
7
|
}
|
|
@@ -31,8 +25,7 @@ iframe {
|
|
|
31
25
|
outline: none;
|
|
32
26
|
}
|
|
33
27
|
|
|
34
|
-
/* 滚动条样式
|
|
35
|
-
--------------- */
|
|
28
|
+
/* 滚动条样式 */
|
|
36
29
|
::-webkit-scrollbar {
|
|
37
30
|
width: 6px;
|
|
38
31
|
height: 6px;
|
|
@@ -81,8 +74,7 @@ iframe {
|
|
|
81
74
|
--client-height: calc(100vh - 116px);
|
|
82
75
|
}
|
|
83
76
|
|
|
84
|
-
/* 内外边距
|
|
85
|
-
--------------- */
|
|
77
|
+
/* 内外边距 */
|
|
86
78
|
@mixin set-pm($m, $p) {
|
|
87
79
|
.p-a#{$m} {
|
|
88
80
|
padding: $p;
|
|
@@ -148,8 +140,7 @@ iframe {
|
|
|
148
140
|
@include set-pm('-ss', 4px !important);
|
|
149
141
|
@include set-pm('-0', 0 !important);
|
|
150
142
|
|
|
151
|
-
/* 内外边距
|
|
152
|
-
--------------- */
|
|
143
|
+
/* 内外边距 */
|
|
153
144
|
@mixin pm-fn($n) {
|
|
154
145
|
.pa-#{$n} {
|
|
155
146
|
padding: #{$n}px;
|
|
@@ -221,8 +212,7 @@ iframe {
|
|
|
221
212
|
@include pm-fn(12);
|
|
222
213
|
@include pm-fn(14);
|
|
223
214
|
|
|
224
|
-
/* 浮动布局
|
|
225
|
-
--------------- */
|
|
215
|
+
/* 浮动布局 */
|
|
226
216
|
.left,
|
|
227
217
|
.float-left {
|
|
228
218
|
float: left;
|
|
@@ -265,8 +255,7 @@ iframe {
|
|
|
265
255
|
clear: right;
|
|
266
256
|
}
|
|
267
257
|
|
|
268
|
-
/* 行内块元素水平垂直对齐方式
|
|
269
|
-
--------------- */
|
|
258
|
+
/* 行内块元素水平垂直对齐方式 */
|
|
270
259
|
.b-center {
|
|
271
260
|
text-align: center;
|
|
272
261
|
|
|
@@ -294,8 +283,7 @@ iframe {
|
|
|
294
283
|
}
|
|
295
284
|
}
|
|
296
285
|
|
|
297
|
-
/* 文字居中
|
|
298
|
-
--------------- */
|
|
286
|
+
/* 文字居中 */
|
|
299
287
|
.text {
|
|
300
288
|
&-c {
|
|
301
289
|
text-align: center !important;
|
|
@@ -321,8 +309,7 @@ iframe {
|
|
|
321
309
|
}
|
|
322
310
|
}
|
|
323
311
|
|
|
324
|
-
/* 弹性盒模型
|
|
325
|
-
--------------- */
|
|
312
|
+
/* 弹性盒模型 */
|
|
326
313
|
.flex-box {
|
|
327
314
|
display: flex;
|
|
328
315
|
}
|
|
@@ -573,34 +560,29 @@ iframe {
|
|
|
573
560
|
color: #333;
|
|
574
561
|
}
|
|
575
562
|
|
|
576
|
-
/* 鼠标默认样式
|
|
577
|
-
--------------- */
|
|
563
|
+
/* 鼠标默认样式 */
|
|
578
564
|
.cursor-d {
|
|
579
565
|
cursor: default;
|
|
580
566
|
}
|
|
581
567
|
|
|
582
|
-
/* 鼠标小手
|
|
583
|
-
--------------- */
|
|
568
|
+
/* 鼠标小手 */
|
|
584
569
|
.pointer {
|
|
585
570
|
cursor: pointer;
|
|
586
571
|
}
|
|
587
572
|
|
|
588
|
-
/*
|
|
589
|
-
---------------- */
|
|
573
|
+
/* 鼠标禁止- */
|
|
590
574
|
.cursor-not {
|
|
591
575
|
cursor: not-allowed;
|
|
592
576
|
}
|
|
593
577
|
|
|
594
|
-
/* 字重
|
|
595
|
-
--------------- */
|
|
578
|
+
/* 字重 */
|
|
596
579
|
.font {
|
|
597
580
|
&-w600 {
|
|
598
581
|
font-weight: var(--font-weight-bold);
|
|
599
582
|
}
|
|
600
583
|
}
|
|
601
584
|
|
|
602
|
-
/* 字号
|
|
603
|
-
--------------- */
|
|
585
|
+
/* 字号 */
|
|
604
586
|
.f-s {
|
|
605
587
|
&-s {
|
|
606
588
|
/* 12号字 */
|
|
@@ -627,8 +609,7 @@ iframe {
|
|
|
627
609
|
}
|
|
628
610
|
}
|
|
629
611
|
|
|
630
|
-
/* 宽高范围是 60-1000
|
|
631
|
-
---------------- */
|
|
612
|
+
/* 宽高范围是 60-1000- */
|
|
632
613
|
$list: 45, 60, 80, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
|
|
633
614
|
300, 400, 500, 600, 700, 800, 900, 1000;
|
|
634
615
|
|
|
@@ -690,8 +671,7 @@ $list: 45, 60, 80, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 2
|
|
|
690
671
|
}
|
|
691
672
|
}
|
|
692
673
|
|
|
693
|
-
/* 垂直对齐
|
|
694
|
-
--------------- */
|
|
674
|
+
/* 垂直对齐 */
|
|
695
675
|
.align {
|
|
696
676
|
&-baseline {
|
|
697
677
|
vertical-align: baseline; // 将一个元素的基线与其父元素的基线对齐。
|
|
@@ -166,7 +166,7 @@ export default {
|
|
|
166
166
|
this.pickerOptions
|
|
167
167
|
)
|
|
168
168
|
|
|
169
|
-
this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
|
|
169
|
+
this.listeners = Object.assign({}, this.$listeners, { input: () => {}, change: () => {} })
|
|
170
170
|
return {}
|
|
171
171
|
},
|
|
172
172
|
computed: {
|
|
@@ -1,253 +1,161 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="file-upload-table">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<div
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
<slot v-if="tableData.length" name="down-btn">
|
|
9
|
-
<el-button size="mini" plain @click="downRows">{{ '批量下载' | $lc }}</el-button>
|
|
10
|
-
</slot>
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<el-table :data="tableData" :row-key="keys.rowKey" @selection-change="(selection) => (selectionList = selection)">
|
|
15
|
-
<slot name="selection-column">
|
|
16
|
-
<el-table-column type="selection" width="50" align="center" />
|
|
3
|
+
<div class="flex-box flex-v flex-lr m-b-s">
|
|
4
|
+
<div><slot name="title"></slot></div>
|
|
5
|
+
<div>
|
|
6
|
+
<slot v-if="!readonly" name="add-btn">
|
|
7
|
+
<el-button type="primary" size="mini" @click="addRow">{{ '新增' | $lc }}</el-button>
|
|
17
8
|
</slot>
|
|
18
|
-
<
|
|
19
|
-
<el-
|
|
20
|
-
v-for="item in dataPorp.slotHeader"
|
|
21
|
-
:key="item.prop"
|
|
22
|
-
:label="item.label"
|
|
23
|
-
:prop="item.prop"
|
|
24
|
-
:align="item.align || 'center'"
|
|
25
|
-
:width="item.width || 'auto'"
|
|
26
|
-
:show-overflow-tooltip="item['show-overflow-tooltip']"
|
|
27
|
-
/>
|
|
28
|
-
</template>
|
|
29
|
-
<template v-else>
|
|
30
|
-
<el-table-column :label="'附件类型' | $lc" :prop="keys.type">
|
|
31
|
-
<template slot="header" slot-scope="scope">
|
|
32
|
-
<slot name="type-header" :column="scope.column">{{ '附件类型' | $lc }}</slot>
|
|
33
|
-
</template>
|
|
34
|
-
<template slot-scope="{ row }">
|
|
35
|
-
<slot name="type" :row="row">{{ row[keys.type] | typeFiter(typeOptions) }}</slot>
|
|
36
|
-
</template>
|
|
37
|
-
</el-table-column>
|
|
38
|
-
<el-table-column :label="'附件名称' | $lc" :prop="keys.name">
|
|
39
|
-
<template slot="header" slot-scope="scope">
|
|
40
|
-
<slot name="name-header" :column="scope.column">{{ '附件名称' | $lc }}</slot>
|
|
41
|
-
</template>
|
|
42
|
-
<template slot-scope="{ row }">
|
|
43
|
-
<slot name="name" :row="row">{{ row[keys.name] ? row[keys.name].replace(/\.[A-z0-9]+$/, '') : '' }}</slot>
|
|
44
|
-
</template>
|
|
45
|
-
</el-table-column>
|
|
46
|
-
<el-table-column :label="'附件上传' | $lc" :prop="keys.name">
|
|
47
|
-
<template slot="header" slot-scope="scope">
|
|
48
|
-
<slot name="name-header" :column="scope.column">{{ '附件上传' | $lc }}</slot>
|
|
49
|
-
</template>
|
|
50
|
-
<template slot-scope="{ row }">
|
|
51
|
-
<slot name="name" :row="row">{{ $options.filters.fileName(row, keys.url) || row[keys.name] }}</slot>
|
|
52
|
-
</template>
|
|
53
|
-
</el-table-column>
|
|
54
|
-
<template slot-scope="{ row }">
|
|
55
|
-
<slot name="slotCol" :row="row"></slot>
|
|
56
|
-
</template>
|
|
57
|
-
<el-table-column :label="'上传时间' | $lc" :prop="keys.time" width="170" align="left">
|
|
58
|
-
<template slot="header" slot-scope="scope">
|
|
59
|
-
<slot name="time-header" :column="scope.column">{{ '上传时间' | $lc }}</slot>
|
|
60
|
-
</template>
|
|
61
|
-
<template slot-scope="{ row }">
|
|
62
|
-
<slot name="time" :row="row">{{ row[keys.time] }}</slot>
|
|
63
|
-
</template>
|
|
64
|
-
</el-table-column>
|
|
65
|
-
<el-table-column :label="'上传人' | $lc" :prop="keys.user">
|
|
66
|
-
<template slot="header" slot-scope="scope">
|
|
67
|
-
<slot name="user-header" :column="scope.column">{{ '上传人' | $lc }}</slot>
|
|
68
|
-
</template>
|
|
69
|
-
<template slot-scope="{ row }">
|
|
70
|
-
<slot name="user" :row="row">{{ row[keys.user] }}</slot>
|
|
71
|
-
</template>
|
|
72
|
-
</el-table-column>
|
|
73
|
-
</template>
|
|
74
|
-
<el-table-column :label="'操作' | $lc" align="center" width="80" fixed="right">
|
|
75
|
-
<template slot="header" slot-scope="scope">
|
|
76
|
-
<slot name="handle-header" :column="scope.column">{{ '操作' | $lc }}</slot>
|
|
77
|
-
</template>
|
|
78
|
-
<template slot-scope="{ row }">
|
|
79
|
-
<slot name="handle" :row="row">
|
|
80
|
-
<el-button type="text" icon="el-icon-view" @click="seeFile(row)" />
|
|
81
|
-
<el-button type="text" icon="el-icon-download" :disabled="!row[keys.url]" @click="downFile(row)" />
|
|
82
|
-
</slot>
|
|
83
|
-
</template>
|
|
84
|
-
</el-table-column>
|
|
85
|
-
</el-table>
|
|
86
|
-
</template>
|
|
87
|
-
<!-- 上传附件 -->
|
|
88
|
-
<template v-else>
|
|
89
|
-
<div class="p-b-s">
|
|
90
|
-
<div class="flex-box flex-v flex-lr">
|
|
91
|
-
<div><slot name="title"></slot></div>
|
|
92
|
-
<div>
|
|
93
|
-
<slot name="add-btn">
|
|
94
|
-
<el-button type="primary" size="mini" @click="addRow">{{ '新增' | $lc }}</el-button>
|
|
95
|
-
</slot>
|
|
96
|
-
<slot v-if="showBatchUpload" name="batch-btn">
|
|
97
|
-
<el-button size="mini" plain @click="visibleBatch = true">{{ '批量上传' | $lc }}</el-button>
|
|
98
|
-
</slot>
|
|
99
|
-
<slot v-if="tableData.length" name="down-btn">
|
|
100
|
-
<el-button size="mini" plain @click="downRows">{{ '下载' | $lc }}</el-button>
|
|
101
|
-
</slot>
|
|
102
|
-
<slot v-if="tableData.length" name="delete-btn">
|
|
103
|
-
<el-button type="danger" plain size="mini" @click="deleteRows">{{ '删除' | $lc }}</el-button>
|
|
104
|
-
</slot>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
</div>
|
|
108
|
-
<el-table :data="tableData" :row-key="keys.rowKey" @selection-change="(selection) => (selectionList = selection)">
|
|
109
|
-
<slot name="selection-column">
|
|
110
|
-
<el-table-column type="selection" width="50" align="center" />
|
|
9
|
+
<slot v-if="!readonly && showBatchUpload" name="batch-btn">
|
|
10
|
+
<el-button size="mini" plain @click="visibleBatch = true">{{ '批量上传' | $lc }}</el-button>
|
|
111
11
|
</slot>
|
|
112
|
-
<
|
|
113
|
-
<el-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
<slot name="user-header" :column="scope.column">{{ '上传人' | $lc }}</slot>
|
|
200
|
-
</template>
|
|
201
|
-
<template slot-scope="{ row }">
|
|
202
|
-
<slot name="user" :row="row">{{ row[keys.user] }}</slot>
|
|
203
|
-
</template>
|
|
204
|
-
</el-table-column>
|
|
205
|
-
</template>
|
|
206
|
-
<el-table-column :label="'上传进度' | $lc" width="220">
|
|
207
|
-
<template slot="header" slot-scope="scope">
|
|
208
|
-
<slot name="percent-header" :column="scope.column">{{ '上传进度' | $lc }}</slot>
|
|
209
|
-
</template>
|
|
210
|
-
<template slot-scope="{ row, $index }">
|
|
211
|
-
<slot name="percent" :row="row" :$index="$index">
|
|
212
|
-
<div v-if="row['_percent'] >= 0 || !row['_typeDisabled']" class="flex-box flex-v">
|
|
213
|
-
<el-progress
|
|
214
|
-
class="n20-upload-table-progress"
|
|
215
|
-
:percentage="row['_percent']"
|
|
216
|
-
:status="row['_status']"
|
|
217
|
-
style="width: 140px"
|
|
218
|
-
/>
|
|
219
|
-
<el-button
|
|
220
|
-
v-if="row['_status'] === 'exception' || !row['_typeDisabled']"
|
|
221
|
-
type="text"
|
|
222
|
-
size="mini"
|
|
223
|
-
style="width: 60px"
|
|
224
|
-
@click="anewSubmitFn(row, $index)"
|
|
225
|
-
>{{ '重新上传' | $lc }}</el-button
|
|
226
|
-
>
|
|
227
|
-
<el-button
|
|
228
|
-
v-else-if="(row['_percent'] >= 0 && row['_percent'] < 100) || !row['_typeDisabled']"
|
|
229
|
-
type="text"
|
|
230
|
-
size="mini"
|
|
231
|
-
style="width: 60px"
|
|
232
|
-
@click="abortFn(row, $index)"
|
|
233
|
-
>{{ '取消' | $lc }}</el-button
|
|
234
|
-
>
|
|
235
|
-
</div>
|
|
236
|
-
</slot>
|
|
237
|
-
</template>
|
|
12
|
+
<slot name="down-btn">
|
|
13
|
+
<el-button size="mini" plain @click="downRows">{{ '下载' | $lc }}</el-button>
|
|
14
|
+
</slot>
|
|
15
|
+
<slot v-if="!readonly" name="delete-btn">
|
|
16
|
+
<el-button type="danger" plain size="mini" @click="deleteRows">{{ '删除' | $lc }}</el-button>
|
|
17
|
+
</slot>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<el-table :data="tableData" :row-key="keys.rowKey" @selection-change="(selection) => (selectionList = selection)">
|
|
21
|
+
<slot name="selection-column">
|
|
22
|
+
<el-table-column type="selection" width="50" align="center" />
|
|
23
|
+
</slot>
|
|
24
|
+
<template v-if="dataPorp.slotHeader">
|
|
25
|
+
<el-table-column
|
|
26
|
+
v-for="item in dataPorp.slotHeader"
|
|
27
|
+
:key="item.prop"
|
|
28
|
+
:label="item.label"
|
|
29
|
+
:prop="item.prop"
|
|
30
|
+
:align="item.align || 'center'"
|
|
31
|
+
:width="item.width || 'auto'"
|
|
32
|
+
:show-overflow-tooltip="item.showOverflowTooltip || item['show-overflow-tooltip']"
|
|
33
|
+
/>
|
|
34
|
+
</template>
|
|
35
|
+
<template v-else>
|
|
36
|
+
<el-table-column :label="'附件类型' | $lc" :prop="keys.type">
|
|
37
|
+
<slot slot="header" slot-scope="scope" name="type-header" :column="scope.column">{{ '附件类型' | $lc }}</slot>
|
|
38
|
+
<slot slot-scope="{ row }" name="type" :row="row">
|
|
39
|
+
<span v-if="readonly">{{ row[keys.type] | typeFiter(typeOptions) }}</span>
|
|
40
|
+
<el-select
|
|
41
|
+
v-else
|
|
42
|
+
v-model="row[keys.type]"
|
|
43
|
+
:disabled="row._typeDisabled"
|
|
44
|
+
:placeholder="'请选择' | $lc"
|
|
45
|
+
style="width: 100%"
|
|
46
|
+
>
|
|
47
|
+
<el-option
|
|
48
|
+
v-for="item in typeOptions"
|
|
49
|
+
:key="item.type"
|
|
50
|
+
:disabled="item.disabled"
|
|
51
|
+
:value="item.type"
|
|
52
|
+
:label="item.label"
|
|
53
|
+
/>
|
|
54
|
+
</el-select>
|
|
55
|
+
</slot>
|
|
56
|
+
</el-table-column>
|
|
57
|
+
<el-table-column :label="'附件名称' | $lc" :prop="keys.name">
|
|
58
|
+
<slot slot="header" slot-scope="scope" name="name-header" :column="scope.column">{{ '附件名称' | $lc }}</slot>
|
|
59
|
+
<slot slot-scope="{ row }" name="name" :row="row">
|
|
60
|
+
<span v-if="readonly">{{ row[keys.name] ? row[keys.name].replace(/\.[A-z0-9]+$/, '') : '' }}</span>
|
|
61
|
+
<el-input
|
|
62
|
+
v-else
|
|
63
|
+
:value="row[keys.name] ? row[keys.name].replace(/\.[A-z0-9]+$/, '') : ''"
|
|
64
|
+
disabled
|
|
65
|
+
:placeholder="'请输入' | $lc"
|
|
66
|
+
/>
|
|
67
|
+
</slot>
|
|
68
|
+
</el-table-column>
|
|
69
|
+
<el-table-column v-if="readonly" :label="'附件上传' | $lc" :prop="keys.name">
|
|
70
|
+
<slot slot="header" slot-scope="scope" name="name-header" :column="scope.column">{{ '附件上传' | $lc }}</slot>
|
|
71
|
+
<slot slot-scope="{ row }" name="name" :row="row">
|
|
72
|
+
{{ $options.filters.fileName(row, keys.url) || row[keys.name] }}
|
|
73
|
+
</slot>
|
|
74
|
+
</el-table-column>
|
|
75
|
+
<el-table-column :label="'附件上传' | $lc">
|
|
76
|
+
<slot slot="header" slot-scope="scope" name="upload-header" :column="scope.column">{{
|
|
77
|
+
'附件上传' | $lc
|
|
78
|
+
}}</slot>
|
|
79
|
+
<slot slot-scope="{ row, $index }" name="upload" :row="row" :$index="$index">
|
|
80
|
+
<Upload
|
|
81
|
+
:ref="'upload' + $index"
|
|
82
|
+
class="n20-upload-table-up"
|
|
83
|
+
:file-name="row | fileName(keys.url)"
|
|
84
|
+
:data="row['_fileData'] || fileData"
|
|
85
|
+
:msg-type="null"
|
|
86
|
+
:show-clear="false"
|
|
87
|
+
:action="action"
|
|
88
|
+
:headers="headers"
|
|
89
|
+
:disabled="!row[keys.type] || row._typeDisabled"
|
|
90
|
+
:accept="row[keys.type] | acceptFilter(typeOptions, fileAccept)"
|
|
91
|
+
:size="row[keys.type] | sizeFilter(typeOptions, fileSize)"
|
|
92
|
+
:http-request="uploadHttpRequest ? (options) => uploadHttpRequest(options, row) : undefined"
|
|
93
|
+
:before-upload="(file) => beforeUploadFn(file, row)"
|
|
94
|
+
:on-progress="(event) => onProgressFn(event, row)"
|
|
95
|
+
:on-success="(response, file, fileList) => onSuccessFn(response, file, fileList, row)"
|
|
96
|
+
:on-error="(err, file, fileList) => errorFn(err, file, fileList, row, $index)"
|
|
97
|
+
/>
|
|
98
|
+
</slot>
|
|
238
99
|
</el-table-column>
|
|
239
|
-
<
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
</
|
|
243
|
-
<template slot-scope="{ row }">
|
|
244
|
-
<slot name="handle" :row="row">
|
|
245
|
-
<el-button type="text" icon="el-icon-view" :disabled="!row[keys.url]" @click="seeFile(row)" />
|
|
246
|
-
</slot>
|
|
247
|
-
</template>
|
|
100
|
+
<slot name="slotCol"></slot>
|
|
101
|
+
<el-table-column :label="'上传时间' | $lc" :prop="keys.time" width="170" align="center">
|
|
102
|
+
<slot slot="header" slot-scope="scope" name="time-header" :column="scope.column">{{ '上传时间' | $lc }}</slot>
|
|
103
|
+
<slot slot-scope="{ row }" name="time" :row="row">{{ row[keys.time] }}</slot>
|
|
248
104
|
</el-table-column>
|
|
249
|
-
|
|
250
|
-
|
|
105
|
+
<el-table-column :label="'上传人' | $lc" :prop="keys.user">
|
|
106
|
+
<slot slot="header" slot-scope="scope" name="user-header" :column="scope.column">{{ '上传人' | $lc }}</slot>
|
|
107
|
+
<slot slot-scope="{ row }" name="user" :row="row">{{ row[keys.user] }}</slot>
|
|
108
|
+
</el-table-column>
|
|
109
|
+
</template>
|
|
110
|
+
<el-table-column v-if="!readonly" :label="'上传进度' | $lc" width="220">
|
|
111
|
+
<template slot="header" slot-scope="scope">
|
|
112
|
+
<slot name="percent-header" :column="scope.column">{{ '上传进度' | $lc }}</slot>
|
|
113
|
+
</template>
|
|
114
|
+
<template slot-scope="{ row, $index }">
|
|
115
|
+
<slot name="percent" :row="row" :$index="$index">
|
|
116
|
+
<div v-if="row['_percent'] >= 0 && !row._typeDisabled" class="flex-box flex-v">
|
|
117
|
+
<el-progress
|
|
118
|
+
class="n20-upload-table-progress"
|
|
119
|
+
:percentage="row['_percent']"
|
|
120
|
+
:status="row['_status']"
|
|
121
|
+
text-color=""
|
|
122
|
+
style="width: 140px"
|
|
123
|
+
/>
|
|
124
|
+
<el-button
|
|
125
|
+
v-if="row['_status'] === 'exception'"
|
|
126
|
+
type="text"
|
|
127
|
+
size="mini"
|
|
128
|
+
style="width: 60px"
|
|
129
|
+
@click="anewSubmitFn(row, $index)"
|
|
130
|
+
>{{ '重新上传' | $lc }}</el-button
|
|
131
|
+
>
|
|
132
|
+
<el-button
|
|
133
|
+
v-else-if="row['_percent'] >= 0 && row['_percent'] < 100"
|
|
134
|
+
type="text"
|
|
135
|
+
size="mini"
|
|
136
|
+
style="width: 60px"
|
|
137
|
+
@click="abortFn(row, $index)"
|
|
138
|
+
>{{ '取消' | $lc }}</el-button
|
|
139
|
+
>
|
|
140
|
+
</div>
|
|
141
|
+
</slot>
|
|
142
|
+
</template>
|
|
143
|
+
</el-table-column>
|
|
144
|
+
<el-table-column :label="'操作' | $lc" align="center" width="80" fixed="right">
|
|
145
|
+
<slot slot="header" slot-scope="scope" name="handle-header" :column="scope.column">{{ '操作' | $lc }}</slot>
|
|
146
|
+
<slot slot-scope="{ row }" name="handle" :row="row">
|
|
147
|
+
<el-button type="text" icon="el-icon-view" :disabled="!row[keys.url]" @click="seeFile(row)" />
|
|
148
|
+
<el-button
|
|
149
|
+
v-if="readonly"
|
|
150
|
+
type="text"
|
|
151
|
+
icon="el-icon-download"
|
|
152
|
+
:disabled="!row[keys.url]"
|
|
153
|
+
@click="downFile(row)"
|
|
154
|
+
/>
|
|
155
|
+
</slot>
|
|
156
|
+
</el-table-column>
|
|
157
|
+
</el-table>
|
|
158
|
+
|
|
251
159
|
<Dialog
|
|
252
160
|
v-drag
|
|
253
161
|
class="p-a-0"
|
|
@@ -263,7 +171,7 @@
|
|
|
263
171
|
<img :src="previewUrl" :alt="previewName" style="display: none" />
|
|
264
172
|
</ViewerImg>
|
|
265
173
|
<component
|
|
266
|
-
:is="previewSameOrg ? 'object' : '
|
|
174
|
+
:is="previewSameOrg ? 'object' : 'object'"
|
|
267
175
|
v-else
|
|
268
176
|
:key="previewUrl"
|
|
269
177
|
:data="previewUrl"
|
|
@@ -281,6 +189,7 @@
|
|
|
281
189
|
</div>
|
|
282
190
|
</Dialog>
|
|
283
191
|
<Dialog
|
|
192
|
+
v-drag
|
|
284
193
|
:title="'附件批量上传' | $lc"
|
|
285
194
|
:visible.sync="visibleBatch"
|
|
286
195
|
top="5vh"
|
|
@@ -328,15 +237,18 @@ import Dialog from '../Dialog/index.vue'
|
|
|
328
237
|
|
|
329
238
|
import 'viewerjs/dist/viewer.css'
|
|
330
239
|
import importG from '../../utils/importGlobal.js'
|
|
240
|
+
|
|
241
|
+
const ViewerImg = async function () {
|
|
242
|
+
let { component } = await importG('v-viewer', () => import(/*webpackChunkName: "v-viewer"*/ 'v-viewer'))
|
|
243
|
+
return component
|
|
244
|
+
}
|
|
245
|
+
|
|
331
246
|
export default {
|
|
332
247
|
name: 'FileUploadTable',
|
|
333
248
|
components: {
|
|
334
249
|
Upload,
|
|
335
250
|
Dialog,
|
|
336
|
-
ViewerImg
|
|
337
|
-
let { component } = await importG('v-viewer', () => import(/*webpackChunkName: "v-viewer"*/ 'v-viewer'))
|
|
338
|
-
return component
|
|
339
|
-
}
|
|
251
|
+
ViewerImg
|
|
340
252
|
},
|
|
341
253
|
filters: {
|
|
342
254
|
typeFiter(type, typeOptions) {
|
|
@@ -483,9 +395,9 @@ export default {
|
|
|
483
395
|
this.$emit('delete-rows', this.selectionList)
|
|
484
396
|
},
|
|
485
397
|
|
|
486
|
-
async getFileInfo(row) {
|
|
398
|
+
async getFileInfo(row, type) {
|
|
487
399
|
if (this.getFileMethod) {
|
|
488
|
-
return this.getFileMethod(row)
|
|
400
|
+
return this.getFileMethod(row, type)
|
|
489
401
|
}
|
|
490
402
|
|
|
491
403
|
let _url = row[this.keys.url]
|
|
@@ -519,7 +431,7 @@ export default {
|
|
|
519
431
|
}
|
|
520
432
|
},
|
|
521
433
|
async seeFile(row) {
|
|
522
|
-
let { url, name, sameOrg } = await this.getFileInfo(row)
|
|
434
|
+
let { url, name, sameOrg } = await this.getFileInfo(row, 'preview')
|
|
523
435
|
if (url) {
|
|
524
436
|
this.previewSameOrg = sameOrg
|
|
525
437
|
this.previewUrl = url
|
|
@@ -575,18 +487,17 @@ export default {
|
|
|
575
487
|
|
|
576
488
|
let clUpload = this.$refs['upload' + $index]
|
|
577
489
|
let elUpload = clUpload.$refs['upload']
|
|
578
|
-
let uploadFiles = elUpload.uploadFiles
|
|
579
490
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
file
|
|
583
|
-
|
|
491
|
+
// let uploadFiles = elUpload.uploadFiles
|
|
492
|
+
// /* 重置文件状态,并加入文件队列 */
|
|
493
|
+
// let file = uploadFiles[uploadFiles.length - 1]
|
|
494
|
+
// file.status = 'ready'
|
|
495
|
+
// clUpload.fileList = [file]
|
|
584
496
|
|
|
585
497
|
elUpload.abort()
|
|
586
498
|
},
|
|
587
499
|
anewSubmitFn(row, $index) {
|
|
588
500
|
this.$set(row, '_status', undefined)
|
|
589
|
-
|
|
590
501
|
this.$refs['upload' + $index]?.$refs['upload']?.submit()
|
|
591
502
|
}
|
|
592
503
|
}
|
|
@@ -43,7 +43,12 @@
|
|
|
43
43
|
</template>
|
|
44
44
|
<template v-else-if="type === 'remote'">
|
|
45
45
|
<!-- 服务端保存筛选条件组 -->
|
|
46
|
-
<el-form-item
|
|
46
|
+
<el-form-item
|
|
47
|
+
v-for="(item, i) in remoteList"
|
|
48
|
+
:key="(item.slotName || item.label || '') + i"
|
|
49
|
+
class="m-b"
|
|
50
|
+
:label="item.label"
|
|
51
|
+
>
|
|
47
52
|
<slot v-if="item.slotName" :name="item.slotName"></slot>
|
|
48
53
|
<form-item-input v-else :form="form" :item="item" />
|
|
49
54
|
</el-form-item>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<el-popover
|
|
3
|
+
ref="filterPop"
|
|
3
4
|
v-model="showPop"
|
|
4
5
|
:width="width"
|
|
5
6
|
placement="bottom-end"
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
|
|
15
16
|
<div v-click-outside="clickOut" class="n20-filter p-a-s">
|
|
16
17
|
<slot></slot>
|
|
17
|
-
<el-button v-if="$slots.more" class="p-t-0 m-b-s" type="text" @click="
|
|
18
|
+
<el-button v-if="$slots.more" class="p-t-0 m-b-s" type="text" @click="handleMore"
|
|
18
19
|
><span>{{ showMore ? $lc('收起') : $lc('更多') }}{{ '条件' | $lc }}</span
|
|
19
20
|
><i :class="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i
|
|
20
21
|
></el-button>
|
|
@@ -93,6 +94,10 @@ export default {
|
|
|
93
94
|
this.showPop = false
|
|
94
95
|
}
|
|
95
96
|
}
|
|
97
|
+
},
|
|
98
|
+
handleMore() {
|
|
99
|
+
this.showMore = !this.showMore
|
|
100
|
+
setTimeout(() => this.$refs['filterPop'].updatePopper(), 360)
|
|
96
101
|
}
|
|
97
102
|
}
|
|
98
103
|
}
|
|
@@ -110,10 +110,8 @@ export default {
|
|
|
110
110
|
this.valueStr = this.num2str(val)
|
|
111
111
|
return
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.preValue = this.valueStr
|
|
116
|
-
}
|
|
113
|
+
this.valueStr = this.num2str(val)
|
|
114
|
+
this.preValue = this.valueStr
|
|
117
115
|
},
|
|
118
116
|
immediate: true
|
|
119
117
|
}
|
|
@@ -116,14 +116,12 @@
|
|
|
116
116
|
<span class="_edit el-icon-edit" @click="editByLabel"></span>
|
|
117
117
|
</div>
|
|
118
118
|
</div>
|
|
119
|
-
<
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
>
|
|
125
|
-
<changePwd :visible.sync="cpwdV" />
|
|
126
|
-
</dialogWrap>
|
|
119
|
+
<el-dropdown-item command="changePassword">
|
|
120
|
+
<div class="flex-box flex-v">
|
|
121
|
+
<span>{{ '修改密码' | $lc }}</span>
|
|
122
|
+
<i class="el-icon-caret-right m-l-auto m-r-0"></i>
|
|
123
|
+
</div>
|
|
124
|
+
</el-dropdown-item>
|
|
127
125
|
<el-dropdown-item v-if="customOpt.agency" command="myAgency">
|
|
128
126
|
<div class="flex-box flex-v">
|
|
129
127
|
<span>{{ '工作代理' | $lc }}</span>
|
|
@@ -106,7 +106,9 @@ export default {
|
|
|
106
106
|
},
|
|
107
107
|
computed: {
|
|
108
108
|
activeNavC() {
|
|
109
|
-
|
|
109
|
+
let acTab = this.tabList.find((t) => t.uuid === this.activeNav)
|
|
110
|
+
let acNav = acTab?.query?.startPath || this.activeNav
|
|
111
|
+
return getShowUuid(acNav, this.menuList)
|
|
110
112
|
}
|
|
111
113
|
},
|
|
112
114
|
watch: {
|
|
@@ -35,7 +35,13 @@
|
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
37
|
<template v-for="item in munList">
|
|
38
|
-
<SetItem
|
|
38
|
+
<SetItem
|
|
39
|
+
v-if="activateMunId === item.id"
|
|
40
|
+
:key="item.id + siKey"
|
|
41
|
+
class="flex-item"
|
|
42
|
+
:id-no="activateMunId"
|
|
43
|
+
@renewal="siKey = siKey + 1"
|
|
44
|
+
/>
|
|
39
45
|
</template>
|
|
40
46
|
</div>
|
|
41
47
|
<div slot="footer" style="height: 44px"></div>
|
|
@@ -51,7 +57,8 @@ export default {
|
|
|
51
57
|
return {
|
|
52
58
|
userNo: sessionStorage.getItem('userNo'),
|
|
53
59
|
munList: [],
|
|
54
|
-
activateMunId: undefined
|
|
60
|
+
activateMunId: undefined,
|
|
61
|
+
siKey: 0
|
|
55
62
|
}
|
|
56
63
|
},
|
|
57
64
|
created() {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
<el-table-column label="系统名称" prop="NAME" />
|
|
83
83
|
<el-table-column label="是否在登陆页显示" align="center">
|
|
84
84
|
<template slot-scope="{ row }">
|
|
85
|
-
<el-switch v-model="row.OPEN" />
|
|
85
|
+
<el-switch v-model="row.OPEN" @change="openCg" />
|
|
86
86
|
</template>
|
|
87
87
|
</el-table-column>
|
|
88
88
|
</el-table>
|
|
@@ -91,7 +91,8 @@
|
|
|
91
91
|
label="页面展示方式"
|
|
92
92
|
:rules="{ required: true, message: '页面展示方式不能为空', trigger: 'change' }"
|
|
93
93
|
>
|
|
94
|
-
<el-select v-model="form.LOGIN_TYPE" class="input-w-u">
|
|
94
|
+
<el-select v-model="form.LOGIN_TYPE" class="input-w-u" :disabled="loginTypeDisabled">
|
|
95
|
+
<el-option label="平铺展示" value="T0" />
|
|
95
96
|
<el-option label="左右切换" value="T1" />
|
|
96
97
|
<el-option label="平铺展示" value="T2" />
|
|
97
98
|
</el-select>
|
|
@@ -131,15 +132,8 @@
|
|
|
131
132
|
</cl-expandable-pane>
|
|
132
133
|
</el-form>
|
|
133
134
|
<div class="fixed-button-shadow flex-box flex-c flex-v">
|
|
134
|
-
<el-button
|
|
135
|
-
|
|
136
|
-
@click="
|
|
137
|
-
() => {
|
|
138
|
-
save()
|
|
139
|
-
}
|
|
140
|
-
"
|
|
141
|
-
>保存</el-button
|
|
142
|
-
>
|
|
135
|
+
<el-button type="primary" @click="save()">保存</el-button>
|
|
136
|
+
<!-- <el-button @click="queryLoginPage">{{'预览' | $lc}}</el-button> -->
|
|
143
137
|
</div>
|
|
144
138
|
</div>
|
|
145
139
|
</template>
|
|
@@ -158,6 +152,7 @@ export default {
|
|
|
158
152
|
this.setingId = {}
|
|
159
153
|
return {
|
|
160
154
|
userNo: sessionStorage.getItem('userNo'),
|
|
155
|
+
loginTypeDisabled: false,
|
|
161
156
|
form: {
|
|
162
157
|
LOGIN_URL: '',
|
|
163
158
|
LOGIN_MODE: [],
|
|
@@ -168,56 +163,56 @@ export default {
|
|
|
168
163
|
LOGIN_TYPE: 'T1',
|
|
169
164
|
SYSTEM_LIST: [
|
|
170
165
|
{
|
|
171
|
-
NO: '
|
|
166
|
+
NO: 'CSZHYW',
|
|
172
167
|
NAME: '财司综合业务系统',
|
|
173
168
|
ICON: undefined,
|
|
174
169
|
LOGIN_MODE: [],
|
|
175
170
|
OPEN: true
|
|
176
171
|
},
|
|
177
172
|
{
|
|
178
|
-
NO: '
|
|
173
|
+
NO: 'CSYWGL',
|
|
179
174
|
NAME: '财司业务管理系统',
|
|
180
175
|
ICON: undefined,
|
|
181
176
|
LOGIN_MODE: [],
|
|
182
177
|
OPEN: false
|
|
183
178
|
},
|
|
184
179
|
{
|
|
185
|
-
NO: '
|
|
180
|
+
NO: 'CSFZJC',
|
|
186
181
|
NAME: '财司辅助决策系统',
|
|
187
182
|
ICON: undefined,
|
|
188
183
|
LOGIN_MODE: [],
|
|
189
184
|
OPEN: false
|
|
190
185
|
},
|
|
191
186
|
{
|
|
192
|
-
NO: '
|
|
187
|
+
NO: 'CSWY',
|
|
193
188
|
NAME: '财司网银系统',
|
|
194
189
|
ICON: undefined,
|
|
195
190
|
LOGIN_MODE: [],
|
|
196
191
|
OPEN: false
|
|
197
192
|
},
|
|
198
193
|
{
|
|
199
|
-
NO: '
|
|
194
|
+
NO: 'JTZL',
|
|
200
195
|
NAME: '财司直连平台系统',
|
|
201
196
|
ICON: undefined,
|
|
202
197
|
LOGIN_MODE: [],
|
|
203
198
|
OPEN: false
|
|
204
199
|
},
|
|
205
200
|
{
|
|
206
|
-
NO: '
|
|
201
|
+
NO: 'JRWG',
|
|
207
202
|
NAME: '金融网管系统',
|
|
208
203
|
ICON: undefined,
|
|
209
204
|
LOGIN_MODE: [],
|
|
210
205
|
OPEN: false
|
|
211
206
|
},
|
|
212
207
|
{
|
|
213
|
-
NO: '
|
|
208
|
+
NO: 'JTSKYWGK',
|
|
214
209
|
NAME: '集团司库业务管控系统',
|
|
215
210
|
ICON: undefined,
|
|
216
211
|
LOGIN_MODE: [],
|
|
217
212
|
OPEN: false
|
|
218
213
|
},
|
|
219
214
|
{
|
|
220
|
-
NO: '
|
|
215
|
+
NO: 'JTSKSJFX',
|
|
221
216
|
NAME: '集团数据分析系统',
|
|
222
217
|
ICON: undefined,
|
|
223
218
|
LOGIN_MODE: [],
|
|
@@ -275,6 +270,7 @@ export default {
|
|
|
275
270
|
})
|
|
276
271
|
}
|
|
277
272
|
}
|
|
273
|
+
this.openCg()
|
|
278
274
|
|
|
279
275
|
// this.$axios.get(`/bems/1.0/download/${this.idNo}_bg`, null, { responseType: 'blob' })
|
|
280
276
|
})
|
|
@@ -282,6 +278,14 @@ export default {
|
|
|
282
278
|
sltRow(row) {
|
|
283
279
|
this.systemItem = row
|
|
284
280
|
},
|
|
281
|
+
openCg() {
|
|
282
|
+
if (this.form.SYSTEM_LIST.filter((d) => d.OPEN).length <= 1) {
|
|
283
|
+
this.form.LOGIN_TYPE = 'T0'
|
|
284
|
+
this.loginTypeDisabled = true
|
|
285
|
+
} else {
|
|
286
|
+
this.loginTypeDisabled = false
|
|
287
|
+
}
|
|
288
|
+
},
|
|
285
289
|
async save() {
|
|
286
290
|
await this.$refs['form'].validate()
|
|
287
291
|
let errItem = this.form.SYSTEM_LIST.find((d) => d.OPEN && !d.NAME)
|
|
@@ -315,7 +319,30 @@ export default {
|
|
|
315
319
|
}
|
|
316
320
|
}
|
|
317
321
|
|
|
318
|
-
this.$axios.post(`/bems/1.0/sysSetting`, data).then((res) => {
|
|
322
|
+
this.$axios.post(`/bems/1.0/sysSetting`, data).then((res) => {
|
|
323
|
+
this.$message({
|
|
324
|
+
type: 'success',
|
|
325
|
+
message: `设置成功.`
|
|
326
|
+
})
|
|
327
|
+
this.$emit('renewal')
|
|
328
|
+
})
|
|
329
|
+
},
|
|
330
|
+
Logout() {
|
|
331
|
+
this.$router.push({ path: '/login' })
|
|
332
|
+
},
|
|
333
|
+
countDown() {
|
|
334
|
+
let secondsToGo = 5
|
|
335
|
+
this.$message({
|
|
336
|
+
type: 'success',
|
|
337
|
+
message: `设置成功,系统将在 ${secondsToGo} 秒后退出到登陆页面.`
|
|
338
|
+
})
|
|
339
|
+
const interval = setInterval(() => {
|
|
340
|
+
secondsToGo -= 1
|
|
341
|
+
}, 1000)
|
|
342
|
+
setTimeout(() => {
|
|
343
|
+
clearInterval(interval)
|
|
344
|
+
this.Logout()
|
|
345
|
+
}, secondsToGo * 1000)
|
|
319
346
|
}
|
|
320
347
|
}
|
|
321
348
|
}
|
|
@@ -181,6 +181,10 @@ export default {
|
|
|
181
181
|
asyncRelaNos: {
|
|
182
182
|
type: Boolean,
|
|
183
183
|
default: false
|
|
184
|
+
},
|
|
185
|
+
extraForm: {
|
|
186
|
+
type: Object,
|
|
187
|
+
default: () => ({})
|
|
184
188
|
}
|
|
185
189
|
},
|
|
186
190
|
data() {
|
|
@@ -570,7 +574,10 @@ export default {
|
|
|
570
574
|
this.loadingAdd()
|
|
571
575
|
let { data } = await axios.get(
|
|
572
576
|
'/bems/1.0/menuTree/tree',
|
|
573
|
-
{
|
|
577
|
+
{
|
|
578
|
+
resType: this.asyncRelaNos ? '1' : undefined,
|
|
579
|
+
...this.extraForm
|
|
580
|
+
},
|
|
574
581
|
{ loading: this.loadingSub }
|
|
575
582
|
)
|
|
576
583
|
data || (data = [])
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
v-for="(item, i) in systemList"
|
|
57
57
|
:key="item.NO"
|
|
58
58
|
class="sys-item float-left"
|
|
59
|
+
:class="{ active: item.NO === sltSys.NO }"
|
|
59
60
|
:style="{
|
|
60
61
|
marginRight: (i + 1) % 4 ? '32px' : undefined,
|
|
61
62
|
marginBottom: systemList.length > 4 && i < 4 ? '54px' : undefined
|
|
@@ -76,8 +77,9 @@
|
|
|
76
77
|
v-if="operateType === 'login'"
|
|
77
78
|
:before-login="beforeLogin"
|
|
78
79
|
:login-types="loginTypes"
|
|
79
|
-
:login-then="
|
|
80
|
+
:login-then="loginThenT"
|
|
80
81
|
:async-rela-nos="asyncRelaNos"
|
|
82
|
+
:extra-form="extraForm"
|
|
81
83
|
class="login-form"
|
|
82
84
|
@changType="getChangetype"
|
|
83
85
|
>
|
|
@@ -173,10 +175,11 @@ export default {
|
|
|
173
175
|
},
|
|
174
176
|
data() {
|
|
175
177
|
this.realUrl = realUrl
|
|
178
|
+
let { protocol, host, pathname } = window.location
|
|
176
179
|
return {
|
|
177
180
|
wrapStyle: '',
|
|
178
181
|
OL: false, // 切换到旧的登录页
|
|
179
|
-
logUrl:
|
|
182
|
+
logUrl: `${protocol}//${host}${pathname}`,
|
|
180
183
|
jsonData: {
|
|
181
184
|
loginTypes: ['account'],
|
|
182
185
|
loginBg: undefined,
|
|
@@ -199,56 +202,56 @@ export default {
|
|
|
199
202
|
LOGIN_TYPE: undefined,
|
|
200
203
|
SYSTEM_LIST: [
|
|
201
204
|
{
|
|
202
|
-
NO: '
|
|
205
|
+
NO: 'CSZHYW',
|
|
203
206
|
NAME: '财司综合业务系统',
|
|
204
207
|
ICON: undefined,
|
|
205
208
|
LOGIN_MODE: [],
|
|
206
209
|
OPEN: false
|
|
207
210
|
},
|
|
208
211
|
{
|
|
209
|
-
NO: '
|
|
212
|
+
NO: 'CSYWGL',
|
|
210
213
|
NAME: '财司业务管理系统',
|
|
211
214
|
ICON: undefined,
|
|
212
215
|
LOGIN_MODE: [],
|
|
213
216
|
OPEN: false
|
|
214
217
|
},
|
|
215
218
|
{
|
|
216
|
-
NO: '
|
|
219
|
+
NO: 'CSFZJC',
|
|
217
220
|
NAME: '财司辅助决策系统',
|
|
218
221
|
ICON: undefined,
|
|
219
222
|
LOGIN_MODE: [],
|
|
220
223
|
OPEN: false
|
|
221
224
|
},
|
|
222
225
|
{
|
|
223
|
-
NO: '
|
|
226
|
+
NO: 'CSWY',
|
|
224
227
|
NAME: '财司网银系统',
|
|
225
228
|
ICON: undefined,
|
|
226
229
|
LOGIN_MODE: [],
|
|
227
230
|
OPEN: false
|
|
228
231
|
},
|
|
229
232
|
{
|
|
230
|
-
NO: '
|
|
233
|
+
NO: 'JTZL',
|
|
231
234
|
NAME: '财司直连平台系统',
|
|
232
235
|
ICON: undefined,
|
|
233
236
|
LOGIN_MODE: [],
|
|
234
237
|
OPEN: false
|
|
235
238
|
},
|
|
236
239
|
{
|
|
237
|
-
NO: '
|
|
240
|
+
NO: 'JRWG',
|
|
238
241
|
NAME: '金融网管系统',
|
|
239
242
|
ICON: undefined,
|
|
240
243
|
LOGIN_MODE: [],
|
|
241
244
|
OPEN: false
|
|
242
245
|
},
|
|
243
246
|
{
|
|
244
|
-
NO: '
|
|
247
|
+
NO: 'JTSKYWGK',
|
|
245
248
|
NAME: '集团司库业务管控系统',
|
|
246
249
|
ICON: undefined,
|
|
247
250
|
LOGIN_MODE: [],
|
|
248
251
|
OPEN: false
|
|
249
252
|
},
|
|
250
253
|
{
|
|
251
|
-
NO: '
|
|
254
|
+
NO: 'JTSKSJFX',
|
|
252
255
|
NAME: '集团数据分析系统',
|
|
253
256
|
ICON: undefined,
|
|
254
257
|
LOGIN_MODE: [],
|
|
@@ -256,7 +259,7 @@ export default {
|
|
|
256
259
|
}
|
|
257
260
|
]
|
|
258
261
|
},
|
|
259
|
-
sltSys:
|
|
262
|
+
sltSys: {},
|
|
260
263
|
inspectionV: false
|
|
261
264
|
}
|
|
262
265
|
},
|
|
@@ -299,6 +302,16 @@ export default {
|
|
|
299
302
|
},
|
|
300
303
|
systemList() {
|
|
301
304
|
return this.form.SYSTEM_LIST.filter((d) => d.OPEN)
|
|
305
|
+
},
|
|
306
|
+
extraForm() {
|
|
307
|
+
let form = {}
|
|
308
|
+
if (this?.sltSys?.NO) {
|
|
309
|
+
form.systemNo = this.sltSys.NO
|
|
310
|
+
} else if (this.systemList.length === 1) {
|
|
311
|
+
form.systemNo = this.systemList[0].NO
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return form
|
|
302
315
|
}
|
|
303
316
|
},
|
|
304
317
|
created() {
|
|
@@ -315,6 +328,16 @@ export default {
|
|
|
315
328
|
window.removeEventListener('resize', this.setWrapSty)
|
|
316
329
|
},
|
|
317
330
|
methods: {
|
|
331
|
+
async loginThenT() {
|
|
332
|
+
if (this.sltSys?.NO) {
|
|
333
|
+
localStorage.setItem('pageInSystemNo', this.sltSys.NO)
|
|
334
|
+
} else {
|
|
335
|
+
localStorage.removeItem('pageInSystemNo')
|
|
336
|
+
}
|
|
337
|
+
if (this.loginThen) {
|
|
338
|
+
await this.loginThen()
|
|
339
|
+
}
|
|
340
|
+
},
|
|
318
341
|
setWrapSty() {
|
|
319
342
|
let winW = document.documentElement.clientWidth
|
|
320
343
|
let winH = document.documentElement.clientHeight
|
|
@@ -376,8 +399,18 @@ export default {
|
|
|
376
399
|
this.jsonData = _layoutData
|
|
377
400
|
|
|
378
401
|
this.$nextTick(() => {
|
|
402
|
+
let systemNo = localStorage.getItem('pageInSystemNo')
|
|
403
|
+
let acSysI = this.systemList.findIndex((s) => s.NO === systemNo)
|
|
404
|
+
|
|
379
405
|
if (this.form.LOGIN_TYPE === 'T1') {
|
|
380
406
|
this.newSwiper()
|
|
407
|
+
if (acSysI !== -1) {
|
|
408
|
+
window.loginSwiperSys(acSysI)
|
|
409
|
+
}
|
|
410
|
+
} else {
|
|
411
|
+
if (acSysI !== -1) {
|
|
412
|
+
this.selSystem(this.systemList[acSysI])
|
|
413
|
+
}
|
|
381
414
|
}
|
|
382
415
|
})
|
|
383
416
|
},
|
|
@@ -474,7 +507,7 @@ export default {
|
|
|
474
507
|
.login-form {
|
|
475
508
|
position: absolute;
|
|
476
509
|
right: 103px;
|
|
477
|
-
top:
|
|
510
|
+
top: 50%;
|
|
478
511
|
transform: translateY(-50%);
|
|
479
512
|
width: 300px;
|
|
480
513
|
min-height: 340px;
|
|
@@ -660,6 +693,10 @@ export default {
|
|
|
660
693
|
background: linear-gradient(180deg, rgba(153, 165, 186, 0.53), rgba(96, 108, 133, 0.15));
|
|
661
694
|
border-radius: 6px;
|
|
662
695
|
}
|
|
696
|
+
.login-wrap-2 .sys-item:hover,
|
|
697
|
+
.login-wrap-2 .sys-item.active {
|
|
698
|
+
background: linear-gradient(180deg, #327bff, rgba(74, 102, 158, 0.3));
|
|
699
|
+
}
|
|
663
700
|
.login-wrap-2 .sys-item-title {
|
|
664
701
|
height: 58px;
|
|
665
702
|
font-size: 14px;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
CSZHYW: '/server-assets/N01.png',
|
|
3
|
+
CSYWGL: '/server-assets/N02.png',
|
|
4
|
+
CSFZJC: '/server-assets/N03.png',
|
|
5
|
+
CSWY: '/server-assets/N04.png',
|
|
6
|
+
JTZL: '/server-assets/N05.png',
|
|
7
|
+
JRWG: '/server-assets/N06.png',
|
|
8
|
+
JTSKYWGK: '/server-assets/N07.png',
|
|
9
|
+
JTSKSJFX: '/server-assets/N08.png'
|
|
10
10
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<el-table
|
|
3
3
|
ref="el-table"
|
|
4
|
+
:key="colsKey"
|
|
4
5
|
:header-cell-style="{ 'text-align': 'center' }"
|
|
5
6
|
:data="data"
|
|
6
7
|
:height="height"
|
|
@@ -85,11 +86,14 @@ export default {
|
|
|
85
86
|
default: undefined
|
|
86
87
|
}
|
|
87
88
|
},
|
|
89
|
+
data() {
|
|
90
|
+
return {
|
|
91
|
+
colsKey: 0
|
|
92
|
+
}
|
|
93
|
+
},
|
|
88
94
|
watch: {
|
|
89
95
|
columns() {
|
|
90
|
-
this
|
|
91
|
-
this.$refs['el-table']?.doLayout()
|
|
92
|
-
})
|
|
96
|
+
this.colsKey = this.colsKey + 1
|
|
93
97
|
}
|
|
94
98
|
},
|
|
95
99
|
mounted() {
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
</template>
|
|
50
50
|
|
|
51
51
|
<script>
|
|
52
|
+
import _axios from 'axios'
|
|
52
53
|
import { $lc } from '../../utils/i18n/index'
|
|
53
54
|
import auth from '../../utils/auth'
|
|
54
55
|
import axios from '../../utils/axios'
|
|
@@ -244,7 +245,8 @@ export default {
|
|
|
244
245
|
}
|
|
245
246
|
}
|
|
246
247
|
|
|
247
|
-
|
|
248
|
+
let abort
|
|
249
|
+
let Pro = axios.post(opt.action, FD, {
|
|
248
250
|
headers: Object.assign(auth.setHeaders(this.headers), { 'Content-Type': 'multipart/form-data' }),
|
|
249
251
|
loading: false,
|
|
250
252
|
onUploadProgress: (arg) => {
|
|
@@ -252,8 +254,13 @@ export default {
|
|
|
252
254
|
arg.percent = arg.progress * 100
|
|
253
255
|
opt.onProgress(arg)
|
|
254
256
|
}
|
|
255
|
-
}
|
|
257
|
+
},
|
|
258
|
+
cancelToken: new _axios.CancelToken((cancel) => {
|
|
259
|
+
abort = cancel
|
|
260
|
+
})
|
|
256
261
|
})
|
|
262
|
+
Pro.abort = abort
|
|
263
|
+
return Pro
|
|
257
264
|
}
|
|
258
265
|
},
|
|
259
266
|
progressFn(event, file, fileList) {
|
package/src/utils/urlToGo.js
CHANGED
|
@@ -55,28 +55,55 @@ function buildURL(url, params) {
|
|
|
55
55
|
return url
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
export function linkPush(url,
|
|
59
|
-
|
|
60
|
-
sessionStorage.setItem(
|
|
58
|
+
export function linkPush(url = '', query = {}, $router) {
|
|
59
|
+
query._fromNo = Date.now()
|
|
60
|
+
sessionStorage.setItem(query._fromNo, location.href)
|
|
61
|
+
// 如果提供vue-router
|
|
62
|
+
if ($router && $router.options && $router.push) {
|
|
63
|
+
let base = $router.options.base || ''
|
|
64
|
+
base = base.replace(/\/$/, '')
|
|
65
|
+
base = new RegExp('^' + base)
|
|
61
66
|
|
|
62
|
-
|
|
67
|
+
if (base.test(url)) {
|
|
68
|
+
$router.push({
|
|
69
|
+
path: url.replace(base, ''),
|
|
70
|
+
query: query
|
|
71
|
+
})
|
|
72
|
+
$router = undefined
|
|
73
|
+
return
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
url = buildURL(url, query)
|
|
63
78
|
history.pushState(null, null, url)
|
|
64
79
|
}
|
|
65
80
|
|
|
66
|
-
export function linkGo() {
|
|
81
|
+
export function linkGo(N = -1, $router) {
|
|
67
82
|
let _fromUrl
|
|
68
83
|
const search = window.location.search
|
|
69
84
|
let _fromRe = search.includes('_fromNo=') ? /_fromNo=(\d+)/ : /_fromId=(\d+)/
|
|
70
85
|
let _fromM = search.match(_fromRe)
|
|
71
|
-
if (_fromM
|
|
86
|
+
if (_fromM && _fromM[1]) {
|
|
72
87
|
_fromUrl = sessionStorage.getItem(_fromM[1])
|
|
73
88
|
}
|
|
74
89
|
|
|
75
90
|
if (_fromUrl) {
|
|
91
|
+
// 如果提供vue-router
|
|
92
|
+
if ($router && $router.options && $router.push) {
|
|
93
|
+
let base = $router.options.base || ''
|
|
94
|
+
base = base.replace(/\/$/, '')
|
|
95
|
+
base = new RegExp('^' + base)
|
|
96
|
+
|
|
97
|
+
if (base.test(_fromUrl)) {
|
|
98
|
+
$router.push(_fromUrl.replace(base, ''))
|
|
99
|
+
$router = undefined
|
|
100
|
+
return
|
|
101
|
+
}
|
|
102
|
+
}
|
|
76
103
|
// window.history.go(-1)
|
|
77
104
|
// window.history.replaceState(null, null, _fromUrl)
|
|
78
105
|
history.pushState(null, null, _fromUrl)
|
|
79
106
|
} else {
|
|
80
|
-
window.history.go(
|
|
107
|
+
window.history.go(N)
|
|
81
108
|
}
|
|
82
109
|
}
|