n20-common-lib 3.2.39 → 3.2.42
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 +2 -2
- package/src/components/AIButton/index.vue +6 -5
- package/src/components/AdvancedFilter/index.vue +4 -3
- package/src/components/ApprovalButtons/index.vue +26 -22
- package/src/components/ApprovalButtons/indexApp.vue +19 -13
- package/src/components/ApprovalButtons/selectSpr.vue +1 -1
- package/src/components/ApprovalButtons/showAppOpi.vue +5 -5
- package/src/components/ApprovalButtons/showOtherAttr.vue +1 -1
- package/src/components/ApprovalButtons/showOtherAttrNew.vue +4 -4
- package/src/components/ApprovalCard/index.vue +7 -7
- package/src/components/ApprovalCard/indexApp.vue +2 -2
- package/src/components/ApprovalRecord/approvalImgPro/child.vue +3 -3
- package/src/components/ApprovalRecord/approvalImgPro/index.vue +3 -3
- package/src/components/AttachmentPass/index.vue +7 -7
- package/src/components/DateChoose/index.vue +33 -33
- package/src/components/DatePicker/index.vue +3 -1
- package/src/components/DateSelect/busiDate.vue +7 -4
- package/src/components/DateSelect/index.vue +8 -8
- package/src/components/DateSelect/quarterDatePicker.vue +11 -11
- package/src/components/DynamicField/DynamicField.vue +2 -2
- package/src/components/DynamicField/DynamicFieldOptions.vue +57 -57
- package/src/components/DynamicField/DynamicFormView.vue +13 -13
- package/src/components/DynamicField/DynamicTable.vue +4 -4
- package/src/components/DynamicField/contentPop.vue +6 -6
- package/src/components/DynamicField/tableList.vue +5 -5
- package/src/components/DynamicField/tableView.vue +20 -6
- package/src/components/ElectronicArchive/index.vue +20 -17
- package/src/components/FileExportAsync/index.vue +3 -3
- package/src/components/FileUploadTable/aiCheckDialog.vue +11 -11
- package/src/components/FileUploadTable/index.vue +98 -7
- package/src/components/HandlingAdvice/index.vue +3 -3
- package/src/components/Layout/HeaderWrap/changePwd.vue +2 -2
- package/src/components/Layout/HeaderWrap/index.vue +2 -2
- package/src/components/Layout/HeaderWrap/switchUser.vue +1 -1
- package/src/components/LoginSetting/setItem.vue +16 -16
- package/src/components/LoginTemporary/form.vue +2 -2
- package/src/components/LoginTemporary/indexN.vue +15 -15
- package/src/components/LoginTemporary/retrievePw.vue +4 -4
- package/src/components/MdmSelect/index.vue +3 -3
- package/src/components/Pivot/ConfigSidebar.vue +27 -25
- package/src/components/Pivot/MainToolbar.vue +9 -9
- package/src/components/Pivot/ReportSidebar.vue +4 -4
- package/src/components/Pivot/TableView.vue +8 -11
- package/src/components/Pivot/index.vue +26 -26
- package/src/components/ProFilterView/advancedQuery.vue +57 -63
- package/src/components/ProFilterView/index.vue +26 -26
- package/src/components/SelectDatePickerPro/busiDate.vue +5 -5
- package/src/components/SelectDatePickerPro/halfYearPicker.vue +2 -2
- package/src/components/SelectDatePickerPro/index.vue +24 -16
- package/src/components/SelectDatePickerPro/quarterDatePicker.vue +4 -4
- package/src/components/SelectTree/pro.vue +1 -1
- package/src/components/Statis/index.vue +1 -1
- package/src/components/Statis/statisItem.vue +1 -1
- package/src/components/Table/indexO.vue +1 -1
- package/src/components/TablePro/filterContent.vue +2 -2
- package/src/components/TablePro/filterContent_tree.vue +5 -5
- package/src/components/TablePro/index.js +1 -1
- package/src/components/TableTransfer/index.vue +1 -1
- package/src/components/Upload/index.vue +2 -2
- package/src/components/WornPagination/index.vue +1 -1
- package/src/components/operatingStatus/index.vue +7 -7
- package/src/components/v3/TablePro/filterContent.vue +2 -2
- package/src/components/v3/TablePro/filterContent_tree.vue +5 -5
- package/src/components/v3/TablePro/index.js +1 -1
- package/src/components/v3/UploadList/components/aiCheckDialog.vue +11 -11
- package/src/components/v3/UploadList/index.vue +10 -10
- package/src/i18n.json +8951 -715
- package/src/plugins/SetMenuTree/index.vue +1 -1
- package/src/plugins/SetMenuTree/setmenutree.vue +34 -34
- package/src/utils/amountInWords.js +6 -6
- package/src/utils/auth.js +1 -1
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
<template v-slot="{ row }">
|
|
223
223
|
<slot name="handle" :row="row">
|
|
224
224
|
<el-button
|
|
225
|
-
v-title="!officeStatus ? `缺少插件` : '预览'"
|
|
225
|
+
v-title="!officeStatus ? $lc(`缺少插件`) : $lc('预览')"
|
|
226
226
|
type="text"
|
|
227
227
|
:icon="!officeStatus ? 'n20-icon-yanjing' : 'el-icon-view'"
|
|
228
228
|
:disabled="!row[keys.url]"
|
|
@@ -262,14 +262,16 @@
|
|
|
262
262
|
:on-error="(err, file, fileList) => errorFn(err, file, fileList, this.row, $index)"
|
|
263
263
|
>
|
|
264
264
|
<template slot="trigger">
|
|
265
|
-
<el-button size="small" type="primary"
|
|
265
|
+
<el-button size="small" type="primary">{{ $lc('上传附件') }}</el-button>
|
|
266
266
|
</template>
|
|
267
267
|
</Upload>
|
|
268
|
-
<el-button size="small" type="primary" class="m-l-s" @click="baseVisible = true"
|
|
268
|
+
<el-button size="small" type="primary" class="m-l-s" @click="baseVisible = true">{{
|
|
269
|
+
$lc('选择基础附件')
|
|
270
|
+
}}</el-button>
|
|
269
271
|
</div>
|
|
270
272
|
</Dialog>
|
|
271
273
|
|
|
272
|
-
<Dialog title="基础附件选择" width="85%" max-dialog :visible.sync="baseVisible">
|
|
274
|
+
<Dialog :title="$lc('基础附件选择')" width="85%" max-dialog :visible.sync="baseVisible">
|
|
273
275
|
<el-table
|
|
274
276
|
class="base-table_default"
|
|
275
277
|
:row-style="rowStyle"
|
|
@@ -277,28 +279,28 @@
|
|
|
277
279
|
:data="baseAttnoData"
|
|
278
280
|
border
|
|
279
281
|
>
|
|
280
|
-
<el-table-column label="选择" align="center" width="65">
|
|
282
|
+
<el-table-column :label="$lc('选择')" align="center" width="65">
|
|
281
283
|
<template scope="scope">
|
|
282
284
|
<el-radio v-model="radio" :label="scope.$index" @change.native="getCurrentRow(scope.row)"
|
|
283
285
|
>{{ '' }}
|
|
284
286
|
</el-radio>
|
|
285
287
|
</template>
|
|
286
288
|
</el-table-column>
|
|
287
|
-
<el-table-column prop="recordname" width="140px" show-overflow-tooltip label="文件名称" />
|
|
288
|
-
<el-table-column prop="cltName" width="140px" show-overflow-tooltip label="所属单位" />
|
|
289
|
-
<el-table-column prop="fileVersion" align="center" label="版本号" />
|
|
290
|
-
<el-table-column prop="startValidTime" width="120px" label="起始有效时间" align="center" />
|
|
291
|
-
<el-table-column prop="endValidTime" width="120px" label="截至有效时间" align="center" />
|
|
292
|
-
<el-table-column prop="uploadTime" label="更新时间" width="160px" align="center">
|
|
289
|
+
<el-table-column prop="recordname" width="140px" show-overflow-tooltip :label="$lc('文件名称')" />
|
|
290
|
+
<el-table-column prop="cltName" width="140px" show-overflow-tooltip :label="$lc('所属单位')" />
|
|
291
|
+
<el-table-column prop="fileVersion" align="center" :label="$lc('版本号')" />
|
|
292
|
+
<el-table-column prop="startValidTime" width="120px" :label="$lc('起始有效时间')" align="center" />
|
|
293
|
+
<el-table-column prop="endValidTime" width="120px" :label="$lc('截至有效时间')" align="center" />
|
|
294
|
+
<el-table-column prop="uploadTime" :label="$lc('更新时间')" width="160px" align="center">
|
|
293
295
|
<template v-slot="{ row }">
|
|
294
296
|
{{ dayjs(row.uploadTime).format('YYYY-MM-DD HH:mm:ss') }}
|
|
295
297
|
</template>
|
|
296
298
|
</el-table-column>
|
|
297
|
-
<el-table-column prop="isEnable" label="状态" align="center">
|
|
299
|
+
<el-table-column prop="isEnable" :label="$lc('状态')" align="center">
|
|
298
300
|
<template v-slot="{ row }">
|
|
299
301
|
<i v-if="row.isEnable === '0'" class="el-input__icon n20-icon-yichu color-danger"></i>
|
|
300
302
|
<i v-if="row.isEnable === '1'" class="el-input__icon n20-icon-chenggong color-success"></i>
|
|
301
|
-
<span>{{ row.isEnable === '1' ? '启用' : '禁用' }}</span>
|
|
303
|
+
<span>{{ row.isEnable === '1' ? $lc('启用') : $lc('禁用') }}</span>
|
|
302
304
|
</template>
|
|
303
305
|
</el-table-column>
|
|
304
306
|
</el-table>
|
|
@@ -348,6 +350,7 @@
|
|
|
348
350
|
import _axios from 'axios'
|
|
349
351
|
import dayjs from 'dayjs'
|
|
350
352
|
import 'viewerjs/dist/viewer.css'
|
|
353
|
+
|
|
351
354
|
import auth from '../../utils/auth.js'
|
|
352
355
|
import axios from '../../utils/axios.js'
|
|
353
356
|
import downloadBlob from '../../utils/downloadBlob.js'
|
|
@@ -743,7 +746,7 @@ export default {
|
|
|
743
746
|
// 自行下载
|
|
744
747
|
let filesId = this.selectionList.map((item) => item.beid)
|
|
745
748
|
if (filesId.length === 0) {
|
|
746
|
-
return this.$message.warning('请勾选附件')
|
|
749
|
+
return this.$message.warning($lc('请勾选附件'))
|
|
747
750
|
}
|
|
748
751
|
let data = filesId.map((item) => {
|
|
749
752
|
return {
|
|
@@ -762,7 +765,7 @@ export default {
|
|
|
762
765
|
)
|
|
763
766
|
.then((res) => {
|
|
764
767
|
if (res) {
|
|
765
|
-
downloadBlob(res, '附件压缩包.zip')
|
|
768
|
+
downloadBlob(res, $lc('附件压缩包.zip'))
|
|
766
769
|
}
|
|
767
770
|
})
|
|
768
771
|
},
|
|
@@ -775,7 +778,7 @@ export default {
|
|
|
775
778
|
async deleteRowsFn(rows, update) {
|
|
776
779
|
if (rows.length === 0) {
|
|
777
780
|
this.$message({
|
|
778
|
-
message: '请勾选所需要删除的附件',
|
|
781
|
+
message: $lc('请勾选所需要删除的附件'),
|
|
779
782
|
type: 'warning'
|
|
780
783
|
})
|
|
781
784
|
return
|
|
@@ -795,7 +798,7 @@ export default {
|
|
|
795
798
|
if (res.code === 200) {
|
|
796
799
|
if (!update) {
|
|
797
800
|
this.tableData = this.tableData.filter((item) => filesId.indexOf(item.beid) === -1)
|
|
798
|
-
this.$message.success('删除成功')
|
|
801
|
+
this.$message.success($lc('删除成功'))
|
|
799
802
|
this.callBackFileData(this.tableData)
|
|
800
803
|
}
|
|
801
804
|
}
|
|
@@ -95,7 +95,7 @@ export default {
|
|
|
95
95
|
if (error) {
|
|
96
96
|
this.status = 'error'
|
|
97
97
|
this.closeWaitPop()
|
|
98
|
-
console.error(
|
|
98
|
+
console.error($lc("导出失败"))
|
|
99
99
|
return
|
|
100
100
|
}
|
|
101
101
|
|
|
@@ -120,7 +120,7 @@ export default {
|
|
|
120
120
|
if (error) {
|
|
121
121
|
this.status = 'error'
|
|
122
122
|
this.closeWaitPop()
|
|
123
|
-
console.error(
|
|
123
|
+
console.error($lc("导出失败"))
|
|
124
124
|
return
|
|
125
125
|
}
|
|
126
126
|
|
|
@@ -162,7 +162,7 @@ export default {
|
|
|
162
162
|
this.waitPopV = true
|
|
163
163
|
this.$msgboxPor({
|
|
164
164
|
title: $lc('提示'),
|
|
165
|
-
message:
|
|
165
|
+
message: $lc("您的数据导出时间可能会比较长,是否继续导出?"),
|
|
166
166
|
type: 'warning',
|
|
167
167
|
customClass: `question ${this.waitClass}`,
|
|
168
168
|
confirmButtonText: $lc('继续导出'),
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
<Table :data="tableData" :columns="checkColumns" height="400px" :show-setsize="true" :cell-default="true">
|
|
12
12
|
<el-table-column slot="checkStatus" slot-scope="{ column }" v-bind="column">
|
|
13
13
|
<template slot-scope="{ row }">
|
|
14
|
-
<el-tag v-if="row.checkStatus === '0'" effect="dark" type="warning" size="mini"
|
|
15
|
-
<el-tag v-if="row.checkStatus === '1'" effect="dark" type="success" size="mini"
|
|
14
|
+
<el-tag v-if="row.checkStatus === '0'" effect="dark" type="warning" size="mini">{{ $lc('不通过') }}</el-tag>
|
|
15
|
+
<el-tag v-if="row.checkStatus === '1'" effect="dark" type="success" size="mini">{{ $lc('通过') }}</el-tag>
|
|
16
16
|
</template>
|
|
17
17
|
</el-table-column>
|
|
18
18
|
<el-table-column slot="remark" slot-scope="{ column }" v-bind="column">
|
|
19
19
|
<template slot-scope="{ row }">
|
|
20
20
|
<el-input
|
|
21
21
|
v-model="row.remark"
|
|
22
|
-
placeholder="请输入"
|
|
22
|
+
:placeholder="$lc('请输入')"
|
|
23
23
|
size="normal"
|
|
24
24
|
clearable
|
|
25
25
|
:disabled="readonly || row.status === '1'"
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
</el-table-column>
|
|
29
29
|
</Table>
|
|
30
30
|
<div slot="footer" class="flex-box flex-c flex-v p-t-m" style="border-top: 1px solid var(--border-2, #e5e6eb)">
|
|
31
|
-
<el-button plain @click="cancel"
|
|
32
|
-
<el-button v-if="!readonly" type="primary" @click="save"
|
|
31
|
+
<el-button plain @click="cancel">{{ $lc('取消') }}</el-button>
|
|
32
|
+
<el-button v-if="!readonly" type="primary" @click="save">{{ $lc('确定') }}</el-button>
|
|
33
33
|
</div>
|
|
34
34
|
</Dialog>
|
|
35
35
|
</template>
|
|
@@ -58,13 +58,13 @@ export default {
|
|
|
58
58
|
checkColumns: [
|
|
59
59
|
{
|
|
60
60
|
type: 'index',
|
|
61
|
-
label:
|
|
61
|
+
label: $lc("序号"),
|
|
62
62
|
width: '56',
|
|
63
63
|
align: 'center',
|
|
64
64
|
static: 'pre'
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
|
-
label:
|
|
67
|
+
label: $lc("提示词"),
|
|
68
68
|
prop: 'prompt',
|
|
69
69
|
align: 'center',
|
|
70
70
|
minWidth: '120',
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
'show-overflow-tooltip': true
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
label:
|
|
75
|
+
label: $lc("AI识别结果"),
|
|
76
76
|
prop: 'aiResult',
|
|
77
77
|
align: 'center',
|
|
78
78
|
minWidth: '120',
|
|
@@ -80,7 +80,7 @@ export default {
|
|
|
80
80
|
'show-overflow-tooltip': true
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
|
-
label:
|
|
83
|
+
label: $lc("校验结果"),
|
|
84
84
|
prop: 'checkStatus',
|
|
85
85
|
slotName: 'checkStatus',
|
|
86
86
|
align: 'center',
|
|
@@ -89,7 +89,7 @@ export default {
|
|
|
89
89
|
'show-overflow-tooltip': true
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
|
-
label:
|
|
92
|
+
label: $lc("说明"),
|
|
93
93
|
prop: 'remark',
|
|
94
94
|
slotName: 'remark',
|
|
95
95
|
align: 'center',
|
|
@@ -128,7 +128,7 @@ export default {
|
|
|
128
128
|
list
|
|
129
129
|
)
|
|
130
130
|
if (code === 200) {
|
|
131
|
-
this.$message.success(
|
|
131
|
+
this.$message.success($lc("保存成功"))
|
|
132
132
|
this.visibleP = false
|
|
133
133
|
}
|
|
134
134
|
},
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
<el-button type="text" icon="el-icon-view" :disabled="!row[keys.url]" @click="seeFile(row)" />
|
|
206
206
|
<el-button
|
|
207
207
|
v-if="getOfficeStatus && openAI"
|
|
208
|
-
v-title="'ai识别'"
|
|
208
|
+
v-title="$lc('ai识别')"
|
|
209
209
|
type="text"
|
|
210
210
|
icon="n20-icon-query"
|
|
211
211
|
:disabled="!row[keys.url]"
|
|
@@ -268,7 +268,13 @@
|
|
|
268
268
|
:close-on-click-modal="false"
|
|
269
269
|
:destroy-on-open="true"
|
|
270
270
|
>
|
|
271
|
-
<el-select
|
|
271
|
+
<el-select
|
|
272
|
+
v-if="!autoMatchBatchFileType"
|
|
273
|
+
v-model="bathType"
|
|
274
|
+
class="m-b-s w-100p"
|
|
275
|
+
clearable
|
|
276
|
+
@change="handleBathChange"
|
|
277
|
+
>
|
|
272
278
|
<el-option
|
|
273
279
|
v-for="item in typeOptions"
|
|
274
280
|
:key="item.type"
|
|
@@ -278,7 +284,7 @@
|
|
|
278
284
|
/>
|
|
279
285
|
</el-select>
|
|
280
286
|
<Upload
|
|
281
|
-
v-if="bathType"
|
|
287
|
+
v-if="autoMatchBatchFileType || bathType"
|
|
282
288
|
ref="upload-batch"
|
|
283
289
|
class="n20-upload-drag"
|
|
284
290
|
:msg-type="null"
|
|
@@ -305,7 +311,7 @@
|
|
|
305
311
|
</template>
|
|
306
312
|
</Upload>
|
|
307
313
|
<div class="dialog-footer">
|
|
308
|
-
<el-button type="primary" @click="batchUploadFn">{{ '确认' | $lc }}</el-button>
|
|
314
|
+
<el-button type="primary" :loading="batchUploading" @click="batchUploadFn">{{ '确认' | $lc }}</el-button>
|
|
309
315
|
<el-button plain @click="visibleBatch = false">{{ '取消' | $lc }}</el-button>
|
|
310
316
|
</div>
|
|
311
317
|
</Dialog>
|
|
@@ -434,6 +440,10 @@ export default {
|
|
|
434
440
|
type: Boolean,
|
|
435
441
|
default: false
|
|
436
442
|
},
|
|
443
|
+
autoMatchBatchFileType: {
|
|
444
|
+
type: Boolean,
|
|
445
|
+
default: false
|
|
446
|
+
},
|
|
437
447
|
showBatchPrint: {
|
|
438
448
|
type: Boolean,
|
|
439
449
|
default: false
|
|
@@ -498,6 +508,7 @@ export default {
|
|
|
498
508
|
previewSameOrg: false,
|
|
499
509
|
seeRow: {},
|
|
500
510
|
officeStatus: false,
|
|
511
|
+
batchUploading: false,
|
|
501
512
|
// 批量上传使用的文件数据(避免直接修改计算属性)
|
|
502
513
|
_batchFileData: null
|
|
503
514
|
}
|
|
@@ -618,7 +629,7 @@ export default {
|
|
|
618
629
|
})
|
|
619
630
|
} else {
|
|
620
631
|
if (!this.AIOptions.bussType) {
|
|
621
|
-
this.$message.error(
|
|
632
|
+
this.$message.error($lc("请先配置bussType"))
|
|
622
633
|
return false
|
|
623
634
|
}
|
|
624
635
|
let { data, code } = await axios.post(
|
|
@@ -642,7 +653,7 @@ export default {
|
|
|
642
653
|
// ai识别
|
|
643
654
|
async AiFn(row) {
|
|
644
655
|
if (!this.AIOptions.bussType) {
|
|
645
|
-
this.$message.error(
|
|
656
|
+
this.$message.error($lc("请先配置bussType"))
|
|
646
657
|
return false
|
|
647
658
|
}
|
|
648
659
|
const { data, code } = await axios.post(
|
|
@@ -752,11 +763,91 @@ export default {
|
|
|
752
763
|
data: JSON.stringify(dto)
|
|
753
764
|
}
|
|
754
765
|
},
|
|
755
|
-
batchUploadFn() {
|
|
766
|
+
async batchUploadFn() {
|
|
767
|
+
if (this.autoMatchBatchFileType) {
|
|
768
|
+
await this.autoMatchBatchUpload()
|
|
769
|
+
return
|
|
770
|
+
}
|
|
756
771
|
let $uploadwrap = this.$refs['upload-batch']
|
|
757
772
|
// 直接提交上传,关闭对话框的逻辑在 batchSuccess 回调中处理
|
|
758
773
|
$uploadwrap.submit()
|
|
759
774
|
},
|
|
775
|
+
async autoMatchBatchUpload() {
|
|
776
|
+
let $uploadwrap = this.$refs['upload-batch']
|
|
777
|
+
let uploadFiles = $uploadwrap?.$refs?.upload?.uploadFiles || []
|
|
778
|
+
let files = uploadFiles.filter((item) => item.status === 'ready' && item.raw)
|
|
779
|
+
if (!files.length) {
|
|
780
|
+
this.$message.warning($lc('请先选择上传文件'))
|
|
781
|
+
return
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
try {
|
|
785
|
+
for (let item of files) {
|
|
786
|
+
let result = await $uploadwrap.beforeUploadFn(item.raw)
|
|
787
|
+
if (result === false) {
|
|
788
|
+
return
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
let FD = new FormData()
|
|
793
|
+
files.forEach((item) => {
|
|
794
|
+
FD.append('file', item.raw)
|
|
795
|
+
})
|
|
796
|
+
|
|
797
|
+
let remoteFileUpload = JSON.parse(this.fileData?.data || '{}')
|
|
798
|
+
remoteFileUpload.bussValues = this.typeOptions.map((item) => item.type)
|
|
799
|
+
FD.append('remoteFileUpload', JSON.stringify(remoteFileUpload))
|
|
800
|
+
|
|
801
|
+
this.batchUploading = true
|
|
802
|
+
let { data } = await axios.post(
|
|
803
|
+
this.apiPrefix
|
|
804
|
+
? `${this.apiPrefix}/neams/eamsbaserecord/batchSaveFile`
|
|
805
|
+
: '/neams/eamsbaserecord/batchSaveFile',
|
|
806
|
+
FD,
|
|
807
|
+
{
|
|
808
|
+
headers: Object.assign(auth.setHeaders(this.headers), { 'Content-Type': 'multipart/form-data' }),
|
|
809
|
+
loading: false,
|
|
810
|
+
noMsg: true,
|
|
811
|
+
timeout: 900000
|
|
812
|
+
}
|
|
813
|
+
)
|
|
814
|
+
|
|
815
|
+
let responseList = Array.isArray(data) ? data : []
|
|
816
|
+
let rows = responseList.map((item) => this.buildAutoMatchBatchRow(item))
|
|
817
|
+
this.tableData.splice(0, 0, ...rows)
|
|
818
|
+
let pendingFiles = [...files]
|
|
819
|
+
rows.forEach((row) => {
|
|
820
|
+
let fileIndex = pendingFiles.findIndex((item) => item.raw.name === row[this.keys.name])
|
|
821
|
+
let sourceFile = pendingFiles.splice(fileIndex > -1 ? fileIndex : 0, 1)[0]
|
|
822
|
+
this.$emit('on-success', sourceFile?.raw, row)
|
|
823
|
+
})
|
|
824
|
+
|
|
825
|
+
$uploadwrap.clearFiles()
|
|
826
|
+
$uploadwrap.fileList = []
|
|
827
|
+
this.visibleBatch = false
|
|
828
|
+
} catch (err) {
|
|
829
|
+
this.$message.error(err?.msg || $lc('上传失败'))
|
|
830
|
+
} finally {
|
|
831
|
+
this.batchUploading = false
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
buildAutoMatchBatchRow(item) {
|
|
835
|
+
let userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}')
|
|
836
|
+
let row = {
|
|
837
|
+
...item,
|
|
838
|
+
_name: item.fileName,
|
|
839
|
+
_percent: 100,
|
|
840
|
+
_status: 'success',
|
|
841
|
+
_typeDisabled: false
|
|
842
|
+
}
|
|
843
|
+
row[this.keys.rowKey] = item.beid
|
|
844
|
+
row[this.keys.type] = item.attno
|
|
845
|
+
row[this.keys.name] = item.fileName
|
|
846
|
+
row[this.keys.url] = this.keys.url === this.keys.rowKey ? item.beid : item.filePath || item.beid
|
|
847
|
+
row[this.keys.time] = row[this.keys.time] || dayjs().format('YYYY-MM-DD HH:mm:ss')
|
|
848
|
+
row[this.keys.user] = row[this.keys.user] || userInfo.uname
|
|
849
|
+
return row
|
|
850
|
+
},
|
|
760
851
|
batchSuccess(response, file, fileList) {
|
|
761
852
|
// 创建完整的行对象,初始化状态字段
|
|
762
853
|
let row = {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
/>
|
|
33
33
|
</el-form-item>
|
|
34
34
|
</el-form>
|
|
35
|
-
<ExpandablePane v-if="otherAttDataA.length > 0" title="自定义项" :default-expand="true">
|
|
35
|
+
<ExpandablePane v-if="otherAttDataA.length > 0" :title="$lc('自定义项')" :default-expand="true">
|
|
36
36
|
<el-form ref="approveBtnGroup" label-position="top">
|
|
37
37
|
<div
|
|
38
38
|
class="p-b-s p-t-s"
|
|
@@ -148,7 +148,7 @@ export default {
|
|
|
148
148
|
this.optionsRequired = data.optionsRequired
|
|
149
149
|
|
|
150
150
|
// 设置占位提示
|
|
151
|
-
this.placeholder = data.optionsRequired ?
|
|
151
|
+
this.placeholder = data.optionsRequired ? $lc("请选择或输入意见(必填)") : $lc("请选择或输入意见(选填)")
|
|
152
152
|
// 显示弹窗条件:需要输入意见 或 存在自定义项
|
|
153
153
|
this.visible = data.whether === true || this.otherAttDataA.length > 0
|
|
154
154
|
// 转换意见选项为下拉格式
|
|
@@ -215,7 +215,7 @@ export default {
|
|
|
215
215
|
},
|
|
216
216
|
submit() {
|
|
217
217
|
if (this.whether && this.optionsRequired && !this.reason) {
|
|
218
|
-
this.$message.warning(
|
|
218
|
+
this.$message.warning($lc("请选择或输入意见"))
|
|
219
219
|
return
|
|
220
220
|
}
|
|
221
221
|
const getOtherAttData = this.$refs['showOtherAttNew'] && this.$refs['showOtherAttNew']?.getOtherAttData()
|
|
@@ -127,8 +127,8 @@ export default {
|
|
|
127
127
|
(this.ipInfo = {
|
|
128
128
|
headers: {
|
|
129
129
|
reqIp: '127.0.0.1',
|
|
130
|
-
reqAddr: encodeURIComponent(
|
|
131
|
-
reqCountry: encodeURIComponent(
|
|
130
|
+
reqAddr: encodeURIComponent($lc("内网")),
|
|
131
|
+
reqCountry: encodeURIComponent($lc("中国"))
|
|
132
132
|
}
|
|
133
133
|
})
|
|
134
134
|
)
|
|
@@ -131,8 +131,8 @@
|
|
|
131
131
|
<dialogWrap :title="'语言切换' | $lc" :visible.sync="langV" append-to-body width="560px">
|
|
132
132
|
<div style="min-height: 114px">
|
|
133
133
|
<el-radio-group v-model="langVal" @change="setLang">
|
|
134
|
-
<el-radio label="zh-cn" border
|
|
135
|
-
<el-radio label="zh-hk" border
|
|
134
|
+
<el-radio label="zh-cn" border>{{ $lc('简体中文') }}</el-radio>
|
|
135
|
+
<el-radio label="zh-hk" border>{{ $lc('繁體中文') }}</el-radio>
|
|
136
136
|
<el-radio label="en" border>English</el-radio>
|
|
137
137
|
</el-radio-group>
|
|
138
138
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div>
|
|
3
3
|
<div>
|
|
4
4
|
<el-input v-model="searchValue" class="w-224 m-r" />
|
|
5
|
-
<el-button type="primary" @click="search"
|
|
5
|
+
<el-button type="primary" @click="search">{{ $lc('查询') }}</el-button>
|
|
6
6
|
</div>
|
|
7
7
|
<el-table :data="userListBanck" height="400px" style="width: 100%; margin-top: 8px">
|
|
8
8
|
<el-table-column type="index" :label="'序号' | $lc" />
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
form.LOGIN_BG_TYPE = 'dark'
|
|
60
60
|
}
|
|
61
61
|
"
|
|
62
|
-
|
|
62
|
+
>{{ $lc('恢复默认') }}</el-button
|
|
63
63
|
>
|
|
64
64
|
</div>
|
|
65
65
|
<div class="color-placeholder f-s-s">
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
prop="LOGIN_BG_TYPE"
|
|
72
72
|
:rules="{ required: true, message: $lc('背景模式不能为空'), trigger: 'change' }"
|
|
73
73
|
>
|
|
74
|
-
<label class="m-r"><span class="m-r-ss" style="color: var(--color-danger)">*</span
|
|
74
|
+
<label class="m-r"><span class="m-r-ss" style="color: var(--color-danger)">*</span>{{ $lc('背景模式') }}</label>
|
|
75
75
|
<el-radio-group v-model="form.LOGIN_BG_TYPE">
|
|
76
|
-
<el-radio label="dark"
|
|
77
|
-
<el-radio label="light"
|
|
76
|
+
<el-radio label="dark">{{ $lc('深色背景') }}</el-radio>
|
|
77
|
+
<el-radio label="light">{{ $lc('浅色背景') }}</el-radio>
|
|
78
78
|
</el-radio-group>
|
|
79
79
|
</el-form-item>
|
|
80
80
|
</div>
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
<el-form-item :label="'系统启用设置' | $lc" required class="m-b-0" />
|
|
116
116
|
<div class="bd-l bd-t bd-r m-b">
|
|
117
117
|
<el-table :data="form.SYSTEM_LIST">
|
|
118
|
-
<el-table-column label="序号" align="center" width="100">
|
|
118
|
+
<el-table-column :label="$lc('序号')" align="center" width="100">
|
|
119
119
|
<span slot-scope="scope">{{ '0' + (scope.$index + 1) }}</span>
|
|
120
120
|
</el-table-column>
|
|
121
121
|
<el-table-column :label="'系统名称' | $lc" prop="NAME">
|
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
{{ '0' + (i + 1) }} {{ systemItem.NAME }}
|
|
153
153
|
</div>
|
|
154
154
|
<div style="padding-left: 48px">
|
|
155
|
-
<el-form-item :label="'系统标识图片设置' | $lc" class="is-required">
|
|
155
|
+
<el-form-item :label="$lc('系统标识图片设置') | $lc" class="is-required">
|
|
156
156
|
<div class="login-form-bg-box">
|
|
157
157
|
<img :key="keyS[i]" class="login-preview" :src="systemItem | realUrl" onerror="imgLoad(this)" />
|
|
158
158
|
<div>
|
|
@@ -238,56 +238,56 @@ export default {
|
|
|
238
238
|
SYSTEM_LIST: [
|
|
239
239
|
{
|
|
240
240
|
NO: 'CSZHYW',
|
|
241
|
-
NAME:
|
|
241
|
+
NAME: $lc("财司综合业务系统"),
|
|
242
242
|
ICON: '',
|
|
243
243
|
LOGIN_MODE: [],
|
|
244
244
|
OPEN: true
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
NO: 'CSYWGL',
|
|
248
|
-
NAME:
|
|
248
|
+
NAME: $lc("财司业务管理系统"),
|
|
249
249
|
ICON: '',
|
|
250
250
|
LOGIN_MODE: [],
|
|
251
251
|
OPEN: false
|
|
252
252
|
},
|
|
253
253
|
{
|
|
254
254
|
NO: 'CSFZJC',
|
|
255
|
-
NAME:
|
|
255
|
+
NAME: $lc("财司辅助决策系统"),
|
|
256
256
|
ICON: '',
|
|
257
257
|
LOGIN_MODE: [],
|
|
258
258
|
OPEN: false
|
|
259
259
|
},
|
|
260
260
|
{
|
|
261
261
|
NO: 'CSWY',
|
|
262
|
-
NAME:
|
|
262
|
+
NAME: $lc("财司网银系统"),
|
|
263
263
|
ICON: '',
|
|
264
264
|
LOGIN_MODE: [],
|
|
265
265
|
OPEN: false
|
|
266
266
|
},
|
|
267
267
|
{
|
|
268
268
|
NO: 'JTZL',
|
|
269
|
-
NAME:
|
|
269
|
+
NAME: $lc("财司直连平台系统"),
|
|
270
270
|
ICON: '',
|
|
271
271
|
LOGIN_MODE: [],
|
|
272
272
|
OPEN: false
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
275
|
NO: 'JRWG',
|
|
276
|
-
NAME:
|
|
276
|
+
NAME: $lc("金融网关系统"),
|
|
277
277
|
ICON: '',
|
|
278
278
|
LOGIN_MODE: [],
|
|
279
279
|
OPEN: false
|
|
280
280
|
},
|
|
281
281
|
{
|
|
282
282
|
NO: 'JTSKYWGK',
|
|
283
|
-
NAME:
|
|
283
|
+
NAME: $lc("集团司库业务管控系统"),
|
|
284
284
|
ICON: '',
|
|
285
285
|
LOGIN_MODE: [],
|
|
286
286
|
OPEN: false
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
NO: 'JTSKSJFX',
|
|
290
|
-
NAME:
|
|
290
|
+
NAME: $lc("集团数据分析系统"),
|
|
291
291
|
ICON: '',
|
|
292
292
|
LOGIN_MODE: [],
|
|
293
293
|
OPEN: false
|
|
@@ -331,7 +331,7 @@ export default {
|
|
|
331
331
|
try {
|
|
332
332
|
this.form[k] = k === 'LOGIN_URL' ? obj.pmValue : JSON.parse(obj.pmValue)
|
|
333
333
|
} catch (error) {
|
|
334
|
-
console.error(k +
|
|
334
|
+
console.error(k + $lc("解析错误"))
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
} else {
|
|
@@ -342,7 +342,7 @@ export default {
|
|
|
342
342
|
try {
|
|
343
343
|
this.$set(this.form.SYSTEM_LIST, i, JSON.parse(obj.pmValue))
|
|
344
344
|
} catch (error) {
|
|
345
|
-
console.error('SYSTEM_LIST[' + item.NO +
|
|
345
|
+
console.error('SYSTEM_LIST[' + item.NO + $lc("]解析错误"))
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
348
|
})
|
|
@@ -462,7 +462,7 @@ export default {
|
|
|
462
462
|
this.getAzCount = 0
|
|
463
463
|
resolve()
|
|
464
464
|
} catch (error) {
|
|
465
|
-
console.error(
|
|
465
|
+
console.error($lc("密码加密错误:") + JSON.stringify(data))
|
|
466
466
|
this.authorizationCode(username, password, code) // 再次请求
|
|
467
467
|
.then(resolve)
|
|
468
468
|
.catch(reject)
|
|
@@ -662,7 +662,7 @@ export default {
|
|
|
662
662
|
this.userNo = userInfo.userNo
|
|
663
663
|
sessionStorage.setItem('User_Info', tokenObj.user_name)
|
|
664
664
|
} catch (error) {
|
|
665
|
-
console.error(
|
|
665
|
+
console.error($lc("accessToken解析错误:") + data.accessToken)
|
|
666
666
|
}
|
|
667
667
|
this.loadingSub()
|
|
668
668
|
|