n20-common-lib 2.22.60 → 2.22.62
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/nstc-g6/components/Calendar/src/main.vue +1 -1
- package/nstc-g6/components/Form/AutocompleteCustom/index.vue +3 -1
- package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +5 -4
- package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +18 -15
- package/nstc-g6/components/Form/Component.vue +1 -1
- package/nstc-g6/components/Form/ComponentSecond.vue +1 -1
- package/nstc-g6/components/Form/DatepickerCustom/index.vue +3 -3
- package/nstc-g6/components/Form/InputAndDialog/src/main.vue +5 -4
- package/nstc-g6/components/Form/InputCustom/index.vue +3 -2
- package/nstc-g6/components/Form/IntervalinputCustom/index.vue +2 -1
- package/nstc-g6/components/Form/ItemSecond.vue +2 -2
- package/nstc-g6/components/Form/SelectAccount/src/main.vue +9 -8
- package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +5 -4
- package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +7 -6
- package/nstc-g6/components/Form/SelectCustom/index.vue +3 -2
- package/nstc-g6/components/Form/SelectSubject/src/main.vue +8 -7
- package/nstc-g6/components/Form/SelectindialogCustom/index.vue +3 -2
- package/nstc-g6/components/Form/UploadCustom/index.vue +4 -3
- package/nstc-g6/components/Form/configs.js +2 -1
- package/nstc-g6/components/Form/configsSecond.js +2 -1
- package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +15 -18
- package/nstc-g6/components/FormGroup/src/main.vue +9 -6
- package/nstc-g6/components/FormGroup/src/validate.js +3 -1
- package/nstc-g6/components/InputTag/InputTag.vue +1 -1
- package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +5 -4
- package/nstc-g6/components/NstcDialog/NstcDialog.vue +5 -2
- package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +5 -3
- package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +5 -4
- package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +32 -30
- package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +17 -15
- package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +3 -2
- package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +18 -16
- package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +17 -15
- package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +39 -37
- package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +3 -1
- package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +5 -4
- package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +16 -15
- package/nstc-g6/components/NstcForm/Component.vue +1 -1
- package/nstc-g6/components/NstcForm/ComponentSecond.vue +1 -1
- package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +3 -3
- package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +5 -4
- package/nstc-g6/components/NstcForm/InputCustom/index.vue +3 -2
- package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +2 -1
- package/nstc-g6/components/NstcForm/ItemSecond.vue +2 -2
- package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +11 -10
- package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +5 -4
- package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +9 -8
- package/nstc-g6/components/NstcForm/SelectCustom/index.vue +3 -2
- package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +10 -9
- package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +4 -3
- package/nstc-g6/components/NstcForm/UploadCustom/index.vue +4 -3
- package/nstc-g6/components/NstcForm/configs.js +2 -1
- package/nstc-g6/components/NstcForm/configsSecond.js +2 -1
- package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +15 -14
- package/nstc-g6/components/NstcPagination/NstcPagination.vue +9 -7
- package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +3 -1
- package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +6 -5
- package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +4 -3
- package/nstc-g6/components/NstcTable/NstcTable.vue +3 -2
- package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +16 -14
- package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +3 -1
- package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +36 -32
- package/nstc-g6/components/Search/NstcSearch.vue +8 -6
- package/nstc-g6/components/approvelTwo/main.vue +6 -5
- package/nstc-g6/components/approvelTwo/progress.vue +2 -2
- package/nstc-g6/index.js +3 -1
- package/nstc-g6/utils/dateAndValidator.js +8 -6
- package/nstc-g6/utils/vendor/Export2Zip.js +2 -1
- package/package.json +1 -1
- package/src/components/AIButton/index.vue +1 -1
- package/src/components/ApprovalButtons/index.vue +1 -1
- package/src/components/ApprovalButtons/indexApp.vue +1 -1
- package/src/components/ApprovalButtons/selectSpr.vue +2 -2
- package/src/components/ApprovalButtons/showOtherAttrNew.vue +1 -1
- package/src/components/ApprovalRecord/approvalImg.vue +1 -1
- package/src/components/AttachmentPass/index.vue +1 -1
- package/src/components/DateSelect/index.vue +1 -1
- package/src/components/DateSelect/quarterDatePicker.vue +15 -12
- package/src/components/DynamicField/DynamicFieldOptions.vue +1 -1
- package/src/components/DynamicField/tableList.vue +1 -1
- package/src/components/ElectronicArchive/index.vue +3 -3
- package/src/components/FileUploadTable/FileUploadTableV3.vue +1 -1
- package/src/components/FileUploadTable/index.vue +95 -37
- package/src/components/LoginSetting/index.vue +19 -9
- package/src/components/LoginTemporary/form.vue +2 -4
- package/src/components/LoginTemporary/index.vue +1 -1
- package/src/components/LoginTemporary/retrievePw.vue +8 -8
- package/src/components/SelectDatePickerPro/halfYearPicker.vue +14 -8
- package/src/components/SelectDatePickerPro/index.vue +1 -1
- package/src/components/SelectDatePickerPro/quarterDatePicker.vue +17 -13
- package/src/components/TableSetSize/index.vue +2 -2
- package/src/components/operatingStatus/index.vue +1 -1
- package/src/i18n.json +742 -28
- package/src/plugins/Print/print-js/src/js/init.js +2 -1
- package/src/plugins/SetMenuTree/setmenutree.vue +3 -3
- package/src/plugins/SetMenuTree/utils.js +2 -1
- package/src/plugins/Sign/Itrus/index.js +3 -1
- package/src/plugins/Sign/Itrus/sign_3720.js +5 -1
- package/src/plugins/Sign/NetSM3/index.js +3 -1
- package/src/plugins/Sign/SkfSign/index.js +3 -1
- package/src/plugins/Sign/bjca/index.js +3 -1
- package/src/plugins/Sign/hnca/index.js +1 -2
- package/src/plugins/Sign/kySign/index.js +3 -1
- package/src/plugins/Sign/netca/netca.base.1.1.0.js +6 -1
- package/src/plugins/Sign/sign.js +4 -2
- package/src/plugins/Sign/signV3/sign.js +4 -2
- package/src/plugins/Sign/sign_back.js +3 -1
- package/src/utils/xls2json.js +2 -1
- package/src/utils/xlsx2json.js +2 -1
|
@@ -32,11 +32,15 @@
|
|
|
32
32
|
:height="height"
|
|
33
33
|
border
|
|
34
34
|
@selection-change="(selection) => (selectionList = selection)"
|
|
35
|
-
@sort-change="onSortChange"
|
|
36
35
|
>
|
|
37
36
|
<slot name="selection-column">
|
|
38
37
|
<el-table-column type="selection" width="50" align="center" />
|
|
39
38
|
</slot>
|
|
39
|
+
<el-table-column :label="'排序' | $lc" width="50" align="center">
|
|
40
|
+
<template slot-scope="{ row }">
|
|
41
|
+
<i class="n20-icon-tuodong file-upload-table__drag-handle" :data-row-key="row[keys.rowKey]"></i>
|
|
42
|
+
</template>
|
|
43
|
+
</el-table-column>
|
|
40
44
|
<template v-if="dataPorp.slotHeader">
|
|
41
45
|
<el-table-column
|
|
42
46
|
v-for="item in dataPorp.slotHeader"
|
|
@@ -294,7 +298,7 @@
|
|
|
294
298
|
:multiple="true"
|
|
295
299
|
:show-file-list="true"
|
|
296
300
|
:action="apiPrefix ? apiPrefix + action : action"
|
|
297
|
-
:data="
|
|
301
|
+
:data="batchFileData || fileData"
|
|
298
302
|
:headers="headers"
|
|
299
303
|
:accept="fileAccept"
|
|
300
304
|
:size="fileSize"
|
|
@@ -320,13 +324,15 @@
|
|
|
320
324
|
</template>
|
|
321
325
|
|
|
322
326
|
<script>
|
|
323
|
-
import aiCheckDialog from './aiCheckDialog.vue'
|
|
324
|
-
import getJsonc from '../../assets/getJsonc.js'
|
|
325
327
|
import _axios from 'axios'
|
|
326
328
|
import dayjs from 'dayjs'
|
|
329
|
+
import Sortable from 'sortablejs'
|
|
330
|
+
import 'viewerjs/dist/viewer.css'
|
|
327
331
|
import XEUtils from 'xe-utils'
|
|
328
332
|
|
|
329
|
-
import '
|
|
333
|
+
import aiCheckDialog from './aiCheckDialog.vue'
|
|
334
|
+
|
|
335
|
+
import getJsonc from '../../assets/getJsonc.js'
|
|
330
336
|
import auth from '../../utils/auth'
|
|
331
337
|
import axios from '../../utils/axios'
|
|
332
338
|
import { $lc } from '../../utils/i18n/index'
|
|
@@ -514,7 +520,8 @@ export default {
|
|
|
514
520
|
officeStatus: false,
|
|
515
521
|
batchUploading: false,
|
|
516
522
|
// 批量上传使用的文件数据(避免直接修改计算属性)
|
|
517
|
-
|
|
523
|
+
batchFileData: null,
|
|
524
|
+
sortable: null
|
|
518
525
|
}
|
|
519
526
|
},
|
|
520
527
|
computed: {
|
|
@@ -557,32 +564,65 @@ export default {
|
|
|
557
564
|
},
|
|
558
565
|
immediate: true,
|
|
559
566
|
deep: true
|
|
567
|
+
},
|
|
568
|
+
tableKey() {
|
|
569
|
+
this.initSortable()
|
|
560
570
|
}
|
|
561
571
|
},
|
|
562
572
|
mounted() {
|
|
563
573
|
this.getConfiguration()
|
|
574
|
+
this.initSortable()
|
|
575
|
+
},
|
|
576
|
+
beforeDestroy() {
|
|
577
|
+
this.destroySortable()
|
|
564
578
|
},
|
|
565
579
|
methods: {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
580
|
+
initSortable() {
|
|
581
|
+
this.$nextTick(() => {
|
|
582
|
+
this.destroySortable()
|
|
583
|
+
|
|
584
|
+
const $tbody = this.$refs.elTable?.$el?.querySelector('.el-table__body-wrapper > table > tbody')
|
|
585
|
+
if (!$tbody) {
|
|
586
|
+
return
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
this.sortable = Sortable.create($tbody, {
|
|
590
|
+
handle: '.file-upload-table__drag-handle',
|
|
591
|
+
ghostClass: 'file-upload-table__sortable-ghost',
|
|
592
|
+
setData(dataTransfer) {
|
|
593
|
+
dataTransfer.setData('Text', '')
|
|
594
|
+
},
|
|
595
|
+
onEnd: ({ oldIndex, newIndex }) => {
|
|
596
|
+
if (
|
|
597
|
+
oldIndex === newIndex ||
|
|
598
|
+
oldIndex === undefined ||
|
|
599
|
+
newIndex === undefined ||
|
|
600
|
+
oldIndex < 0 ||
|
|
601
|
+
newIndex < 0
|
|
602
|
+
) {
|
|
603
|
+
return
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
const targetRow = this.tableData.splice(oldIndex, 1)[0]
|
|
607
|
+
if (!targetRow) {
|
|
608
|
+
return
|
|
609
|
+
}
|
|
610
|
+
this.tableData.splice(newIndex, 0, targetRow)
|
|
611
|
+
// 先调用保存排序接口,确保即使 $emit 抛出异常也能执行
|
|
612
|
+
this.saveFileSort().catch(() => {
|
|
613
|
+
this.$message.error($lc('附件排序保存失败'))
|
|
614
|
+
})
|
|
615
|
+
this.$emit('sort', this.tableData.slice())
|
|
616
|
+
}
|
|
617
|
+
})
|
|
584
618
|
})
|
|
585
619
|
},
|
|
620
|
+
destroySortable() {
|
|
621
|
+
if (this.sortable) {
|
|
622
|
+
this.sortable.destroy()
|
|
623
|
+
this.sortable = null
|
|
624
|
+
}
|
|
625
|
+
},
|
|
586
626
|
async saveFileSort() {
|
|
587
627
|
const sortList = this.tableData
|
|
588
628
|
.map((row, index) => ({
|
|
@@ -595,9 +635,12 @@ export default {
|
|
|
595
635
|
return
|
|
596
636
|
}
|
|
597
637
|
|
|
638
|
+
// 排序请求每次数据不同,跳过 axios 请求去重和 loading,
|
|
639
|
+
// 避免短时间内第二次拖拽排序被错误合并到第一次请求
|
|
598
640
|
await axios.post(
|
|
599
641
|
this.apiPrefix ? `${this.apiPrefix}/neams/eamsbaserecord/fileSort` : '/neams/eamsbaserecord/fileSort',
|
|
600
|
-
sortList
|
|
642
|
+
sortList,
|
|
643
|
+
{ loading: false }
|
|
601
644
|
)
|
|
602
645
|
},
|
|
603
646
|
// ai校验取消
|
|
@@ -633,7 +676,7 @@ export default {
|
|
|
633
676
|
})
|
|
634
677
|
} else {
|
|
635
678
|
if (!this.AIOptions.bussType) {
|
|
636
|
-
this.$message.error($lc(
|
|
679
|
+
this.$message.error($lc('请先配置bussType'))
|
|
637
680
|
return false
|
|
638
681
|
}
|
|
639
682
|
let { data, code } = await axios.post(
|
|
@@ -657,7 +700,7 @@ export default {
|
|
|
657
700
|
// ai识别
|
|
658
701
|
async AiFn(row) {
|
|
659
702
|
if (!this.AIOptions.bussType) {
|
|
660
|
-
this.$message.error($lc(
|
|
703
|
+
this.$message.error($lc('请先配置bussType'))
|
|
661
704
|
return false
|
|
662
705
|
}
|
|
663
706
|
const { data, code } = await axios.post(
|
|
@@ -744,7 +787,7 @@ export default {
|
|
|
744
787
|
if (code === 200) {
|
|
745
788
|
let aDom = document.createElement('a')
|
|
746
789
|
aDom.href = data
|
|
747
|
-
aDom.download = '
|
|
790
|
+
aDom.download = `${$lc('批量附件')}.pdf`
|
|
748
791
|
aDom.click()
|
|
749
792
|
|
|
750
793
|
this.$nextTick(() => {
|
|
@@ -762,7 +805,7 @@ export default {
|
|
|
762
805
|
let fileData = this.fileData || {}
|
|
763
806
|
let dto = JSON.parse(fileData.data || '{}')
|
|
764
807
|
dto[this.keys.type] = this.bathType
|
|
765
|
-
this.
|
|
808
|
+
this.batchFileData = {
|
|
766
809
|
...fileData,
|
|
767
810
|
data: JSON.stringify(dto)
|
|
768
811
|
}
|
|
@@ -826,11 +869,7 @@ export default {
|
|
|
826
869
|
return
|
|
827
870
|
}
|
|
828
871
|
let placeholderIndex = this.tableData.findIndex(
|
|
829
|
-
(item) =>
|
|
830
|
-
item[this.keys.type] === type &&
|
|
831
|
-
!item[this.keys.url] &&
|
|
832
|
-
!item[this.keys.name] &&
|
|
833
|
-
!item._name
|
|
872
|
+
(item) => item[this.keys.type] === type && !item[this.keys.url] && !item[this.keys.name] && !item._name
|
|
834
873
|
)
|
|
835
874
|
if (placeholderIndex > -1) {
|
|
836
875
|
this.tableData.splice(placeholderIndex, 1)
|
|
@@ -1010,9 +1049,11 @@ export default {
|
|
|
1010
1049
|
type: 'error',
|
|
1011
1050
|
confirmButtonText: $lc('确认'),
|
|
1012
1051
|
cancelButtonText: $lc('取消')
|
|
1013
|
-
})
|
|
1014
|
-
|
|
1015
|
-
|
|
1052
|
+
})
|
|
1053
|
+
.then(() => {
|
|
1054
|
+
this.$emit('delete-rows', this.selectionList)
|
|
1055
|
+
})
|
|
1056
|
+
.catch(() => undefined)
|
|
1016
1057
|
},
|
|
1017
1058
|
|
|
1018
1059
|
async getFileInfo(row, type) {
|
|
@@ -1246,4 +1287,21 @@ export default {
|
|
|
1246
1287
|
right: 46px;
|
|
1247
1288
|
top: 10px;
|
|
1248
1289
|
}
|
|
1290
|
+
|
|
1291
|
+
.file-upload-table__drag-handle {
|
|
1292
|
+
display: inline-block;
|
|
1293
|
+
color: #909399;
|
|
1294
|
+
font-size: 16px;
|
|
1295
|
+
cursor: move;
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.file-upload-table__drag-handle:hover {
|
|
1299
|
+
color: #606266;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
.file-upload-table__sortable-ghost {
|
|
1303
|
+
opacity: 0.8;
|
|
1304
|
+
color: #fff !important;
|
|
1305
|
+
background: #42b983 !important;
|
|
1306
|
+
}
|
|
1249
1307
|
</style>
|
|
@@ -150,7 +150,7 @@ export default {
|
|
|
150
150
|
})
|
|
151
151
|
for (const i of _this.checkedList) {
|
|
152
152
|
if (!this.LOGIN_MODE) this.LOGIN_MODE = i
|
|
153
|
-
else this.LOGIN_MODE +=
|
|
153
|
+
else this.LOGIN_MODE += ',' + i
|
|
154
154
|
}
|
|
155
155
|
},
|
|
156
156
|
getdata(list) {
|
|
@@ -159,7 +159,7 @@ export default {
|
|
|
159
159
|
if (i.pmName === 'LOGIN_MODE') {
|
|
160
160
|
_this.LOGIN_MODE = i.pmValue
|
|
161
161
|
_this.LOGIN_MODE_ID = i.pmId
|
|
162
|
-
_this.checkedList = i.pmValue.split(
|
|
162
|
+
_this.checkedList = i.pmValue.split(',')
|
|
163
163
|
} else if (i.pmName === 'MAIN_PAGE_TEXT') {
|
|
164
164
|
_this.loginModel.MAIN_PAGE_TEXT = i.pmValue
|
|
165
165
|
_this.MAIN_PAGE_TEXT_ID = i.pmId
|
|
@@ -202,7 +202,9 @@ export default {
|
|
|
202
202
|
if (type) {
|
|
203
203
|
if (this.imgSize < size) {
|
|
204
204
|
await this.$confirm(
|
|
205
|
-
|
|
205
|
+
`${$lc('当前图片尺寸大于建议大小(')}${screen.width}*${screen.height}${$lc(
|
|
206
|
+
'),将以填充的方式进行处理,是否继续?'
|
|
207
|
+
)}`,
|
|
206
208
|
$lc("提示"),
|
|
207
209
|
{
|
|
208
210
|
type: 'warning'
|
|
@@ -211,7 +213,9 @@ export default {
|
|
|
211
213
|
this.$refs.bgUpload.$refs.upload.submit()
|
|
212
214
|
} else if (this.imgSize >= size) {
|
|
213
215
|
await this.$confirm(
|
|
214
|
-
|
|
216
|
+
`${$lc('当前图片尺寸小于建议大小(')}${screen.width}*${screen.height}${$lc(
|
|
217
|
+
'),可能会发生失真,是否继续?'
|
|
218
|
+
)}`,
|
|
215
219
|
$lc("提示"),
|
|
216
220
|
{
|
|
217
221
|
type: 'warning'
|
|
@@ -222,7 +226,9 @@ export default {
|
|
|
222
226
|
} else {
|
|
223
227
|
if (this.logoSize < size) {
|
|
224
228
|
await this.$confirm(
|
|
225
|
-
|
|
229
|
+
`${$lc('当前图片尺寸大于建议大小(')}108*30px${$lc(
|
|
230
|
+
'),将以填充的方式进行处理,是否继续?'
|
|
231
|
+
)}`,
|
|
226
232
|
$lc("提示"),
|
|
227
233
|
{
|
|
228
234
|
type: 'warning'
|
|
@@ -230,9 +236,13 @@ export default {
|
|
|
230
236
|
)
|
|
231
237
|
this.$refs.logUpload.$refs.upload.submit()
|
|
232
238
|
} else if (this.logoSize >= size) {
|
|
233
|
-
await this.$confirm(
|
|
234
|
-
|
|
235
|
-
|
|
239
|
+
await this.$confirm(
|
|
240
|
+
`${$lc('当前图片尺寸小于建议大小(')}108*30px${$lc('),可能会发生失真,是否继续?')}`,
|
|
241
|
+
$lc("提示"),
|
|
242
|
+
{
|
|
243
|
+
type: 'warning'
|
|
244
|
+
}
|
|
245
|
+
)
|
|
236
246
|
this.$refs.logUpload.$refs.upload.submit()
|
|
237
247
|
}
|
|
238
248
|
}
|
|
@@ -318,7 +328,7 @@ export default {
|
|
|
318
328
|
}
|
|
319
329
|
for (const i of e) {
|
|
320
330
|
if (!this.LOGIN_MODE) this.LOGIN_MODE = i
|
|
321
|
-
else this.LOGIN_MODE +=
|
|
331
|
+
else this.LOGIN_MODE += ',' + i
|
|
322
332
|
}
|
|
323
333
|
}
|
|
324
334
|
}
|
|
@@ -404,9 +404,7 @@ export default {
|
|
|
404
404
|
{ loading: this.loadingSub }
|
|
405
405
|
)
|
|
406
406
|
.then(() => {
|
|
407
|
-
this.$message.success(
|
|
408
|
-
`${typeName}: ${this.form[type]} 验证码发送成功`
|
|
409
|
-
)
|
|
407
|
+
this.$message.success(`${typeName}: ${this.form[type]} ${$lc('验证码发送成功')}`)
|
|
410
408
|
})
|
|
411
409
|
.catch(() => {
|
|
412
410
|
clearTimeout(this.setTimeNum)
|
|
@@ -471,7 +469,7 @@ export default {
|
|
|
471
469
|
})
|
|
472
470
|
} else {
|
|
473
471
|
// 当重新请求大于3次,抛出错误
|
|
474
|
-
this.$message.warning(
|
|
472
|
+
this.$message.warning($lc('登录失败,请重新登录!'))
|
|
475
473
|
this.getAzCount = 0
|
|
476
474
|
reject()
|
|
477
475
|
}
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
<el-form-item class="m-b" :label="'账号' | $lc">
|
|
32
32
|
<el-input v-model="username" :placeholder="'请输入账号' | $lc" />
|
|
33
33
|
</el-form-item>
|
|
34
|
-
<el-form-item class="m-b" :label="$lc('
|
|
34
|
+
<el-form-item class="m-b" :label="$lc('UK验证')" prop="code">
|
|
35
35
|
<br />
|
|
36
36
|
<div v-if="checkCert" class="filed-tips">{{ '该账号未开启UK校验!' | $lc }}</div>
|
|
37
37
|
<div v-if="ukCode !== 1">
|
|
38
38
|
<div :class="ukCode ? 'success-tips' : 'filed-tips'">
|
|
39
|
-
{{ ukCode ? '验证成功!' : '验证失败!' }}
|
|
39
|
+
{{ $lc(ukCode ? '验证成功!' : '验证失败!') }}
|
|
40
40
|
</div>
|
|
41
41
|
<div v-show="!ukCode" class="filed-tips">{{ '自助找回密码失败,请联系管理员' | $lc }}</div>
|
|
42
42
|
</div>
|
|
@@ -80,19 +80,19 @@ export default {
|
|
|
80
80
|
const lengthToFirstPassword = (rule, value, callback) => {
|
|
81
81
|
if (value) {
|
|
82
82
|
if (this.dataForm.maxLength < value.length || this.dataForm.minLength > value.length) {
|
|
83
|
-
callback(new Error(
|
|
83
|
+
callback(new Error(`${$lc('密码长度为')}${this.dataForm.minLength}-${this.dataForm.maxLength}!`))
|
|
84
84
|
} else if (
|
|
85
85
|
Number(this.dataForm.passwordStrength) === 2 &&
|
|
86
86
|
!/^(((?=.*[0-9])(?=.*[a-zA-Z])|(?=.*[0-9])(?=.*[^\s0-9a-zA-Z])|(?=.*[a-zA-Z])(?=.*[^\s0-9a-zA-Z]))[^\s]+)$/.test(
|
|
87
87
|
value
|
|
88
88
|
)
|
|
89
89
|
) {
|
|
90
|
-
callback(new Error(
|
|
90
|
+
callback(new Error($lc('密码至少包括数字,字母,特殊符号其中两种')))
|
|
91
91
|
} else if (
|
|
92
92
|
Number(this.dataForm.passwordStrength) === 3 &&
|
|
93
93
|
!/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{0,}$/.test(value)
|
|
94
94
|
) {
|
|
95
|
-
callback(new Error(
|
|
95
|
+
callback(new Error($lc('密码同时包括包括数字,字母,特殊符号三种')))
|
|
96
96
|
} else {
|
|
97
97
|
callback()
|
|
98
98
|
}
|
|
@@ -216,12 +216,12 @@ export default {
|
|
|
216
216
|
noMsg: true
|
|
217
217
|
})
|
|
218
218
|
.then(() => {
|
|
219
|
-
this.$message.success(`${typeName}: ${this.updateForm[type]}
|
|
219
|
+
this.$message.success(`${typeName}: ${this.updateForm[type]} ${$lc('验证码发送成功')}`)
|
|
220
220
|
})
|
|
221
221
|
.catch(() => {
|
|
222
222
|
clearTimeout(this.setTimeNum)
|
|
223
223
|
this.codeNum = $lc("验证码")
|
|
224
|
-
this.$message.warning(`${typeName}: ${this.updateForm[type]}
|
|
224
|
+
this.$message.warning(`${typeName}: ${this.updateForm[type]} ${$lc('验证码发送失败')}`)
|
|
225
225
|
})
|
|
226
226
|
}
|
|
227
227
|
})
|
|
@@ -269,7 +269,7 @@ export default {
|
|
|
269
269
|
data.sign = this.sign
|
|
270
270
|
data.certDn = this.certDn
|
|
271
271
|
axios.post(`/bems/prod_1.0/uas/api/authorization/password/reset`, data, { loading: false }).then((res) => {
|
|
272
|
-
this.$message.success(
|
|
272
|
+
this.$message.success($lc('密码更新成功!'))
|
|
273
273
|
this.type = 'phone'
|
|
274
274
|
})
|
|
275
275
|
})
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
<div class="el-date-picker__header el-date-picker__header--bordered">
|
|
12
12
|
<button
|
|
13
13
|
type="button"
|
|
14
|
-
aria-label="前一年"
|
|
14
|
+
:aria-label="$lc('前一年')"
|
|
15
15
|
class="el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"
|
|
16
16
|
@click="prev"
|
|
17
17
|
></button>
|
|
18
|
-
<span role="button" class="el-date-picker__header-label" @click="handleYear">{{ year }}
|
|
18
|
+
<span role="button" class="el-date-picker__header-label" @click="handleYear">{{ formatYear(year) }}</span>
|
|
19
19
|
<button
|
|
20
20
|
type="button"
|
|
21
|
-
aria-label="后一年"
|
|
21
|
+
:aria-label="$lc('后一年')"
|
|
22
22
|
class="el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"
|
|
23
23
|
@click="next"
|
|
24
24
|
></button>
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
class="half-year-picker__btn"
|
|
31
31
|
:class="halfYear === 1 ? 'isactive' : ''"
|
|
32
32
|
@click="selectHalfYear(0)"
|
|
33
|
-
>{{ year
|
|
33
|
+
>{{ formatHalfYear(year, true) }}</el-button
|
|
34
34
|
>
|
|
35
35
|
<el-button
|
|
36
36
|
type="text"
|
|
37
37
|
class="half-year-picker__btn"
|
|
38
38
|
:class="halfYear === 2 ? 'isactive' : ''"
|
|
39
39
|
@click="selectHalfYear(1)"
|
|
40
|
-
>{{ year
|
|
40
|
+
>{{ formatHalfYear(year, false) }}</el-button
|
|
41
41
|
>
|
|
42
42
|
</div>
|
|
43
43
|
<div v-else class="n20-quarter-date-picker__year__grid">
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
:class="year === item ? 'color-primary' : ''"
|
|
50
50
|
class="n20-quarter-date-picker__btn"
|
|
51
51
|
@click="selectYear(item)"
|
|
52
|
-
>{{ item }}
|
|
52
|
+
>{{ formatYear(item) }}</el-button
|
|
53
53
|
>
|
|
54
54
|
</div>
|
|
55
55
|
</div>
|
|
@@ -104,7 +104,7 @@ export default {
|
|
|
104
104
|
const [, year, startMonth] = startDateMatch
|
|
105
105
|
this.year = year
|
|
106
106
|
this.halfYear = startMonth === '01' ? 1 : 2
|
|
107
|
-
this.showValue =
|
|
107
|
+
this.showValue = this.formatHalfYear(year, startMonth === '01')
|
|
108
108
|
} else {
|
|
109
109
|
this.showValue = ''
|
|
110
110
|
}
|
|
@@ -113,6 +113,12 @@ export default {
|
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
methods: {
|
|
116
|
+
formatYear(year) {
|
|
117
|
+
return $lc('YEAR年').replace('YEAR', year)
|
|
118
|
+
},
|
|
119
|
+
formatHalfYear(year, firstHalf) {
|
|
120
|
+
return $lc(firstHalf ? 'YEAR年上半年' : 'YEAR年下半年').replace('YEAR', year)
|
|
121
|
+
},
|
|
116
122
|
selectYear(i) {
|
|
117
123
|
this.year = i
|
|
118
124
|
this.isHalfYear = true
|
|
@@ -133,7 +139,7 @@ export default {
|
|
|
133
139
|
this.halfYear = i + 1
|
|
134
140
|
let arr = [`${this.year}-${i === 0 ? '01' : '07'}`, `${this.year}-${i === 0 ? '06' : '12'}`]
|
|
135
141
|
this.showHalfYear = false
|
|
136
|
-
this.showValue =
|
|
142
|
+
this.showValue = this.formatHalfYear(this.year, i === 0)
|
|
137
143
|
// 6月最后一天是30 12月最后一天是31
|
|
138
144
|
this.$emit('input', { startDate: arr[0] + '-01', endDate: i === 0 ? arr[1] + '-30' : arr[1] + '-31' })
|
|
139
145
|
this.$emit('change', { startDate: arr[0] + '-01', endDate: i === 0 ? arr[1] + '-30' : arr[1] + '-31' })
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
<div class="el-date-picker__header el-date-picker__header--bordered">
|
|
13
13
|
<button
|
|
14
14
|
type="button"
|
|
15
|
-
aria-label="前一年"
|
|
15
|
+
:aria-label="$lc('前一年')"
|
|
16
16
|
class="el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left"
|
|
17
17
|
@click="prev"
|
|
18
18
|
></button>
|
|
19
|
-
<span role="button" class="el-date-picker__header-label" @click="handleYear">{{ year }}
|
|
19
|
+
<span role="button" class="el-date-picker__header-label" @click="handleYear">{{ formatYear(year) }}</span>
|
|
20
20
|
<button
|
|
21
21
|
type="button"
|
|
22
|
-
aria-label="后一年"
|
|
22
|
+
:aria-label="$lc('后一年')"
|
|
23
23
|
class="el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right"
|
|
24
24
|
@click="next"
|
|
25
25
|
></button>
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
class="n20-quarter-date-picker__btn"
|
|
35
35
|
:class="this.season == 1 ? 'isactive' : ''"
|
|
36
36
|
@click="selectSeason(0)"
|
|
37
|
-
>{{ year
|
|
37
|
+
>{{ formatQuarter(year, 1) }}</el-button
|
|
38
38
|
>
|
|
39
39
|
<el-button
|
|
40
40
|
type="text"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
class="n20-quarter-date-picker__btn"
|
|
44
44
|
:class="this.season == 2 ? 'isactive' : ''"
|
|
45
45
|
@click="selectSeason(1)"
|
|
46
|
-
>{{ year
|
|
46
|
+
>{{ formatQuarter(year, 2) }}</el-button
|
|
47
47
|
>
|
|
48
48
|
<el-button
|
|
49
49
|
type="text"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
class="n20-quarter-date-picker__btn"
|
|
53
53
|
:class="this.season == 3 ? 'isactive' : ''"
|
|
54
54
|
@click="selectSeason(2)"
|
|
55
|
-
>{{ year
|
|
55
|
+
>{{ formatQuarter(year, 3) }}</el-button
|
|
56
56
|
>
|
|
57
57
|
<el-button
|
|
58
58
|
:disabled="isDisabled(year, '4')"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
class="n20-quarter-date-picker__btn"
|
|
62
62
|
:class="this.season == 4 ? 'isactive' : ''"
|
|
63
63
|
@click="selectSeason(3)"
|
|
64
|
-
>{{ year
|
|
64
|
+
>{{ formatQuarter(year, 4) }}</el-button
|
|
65
65
|
>
|
|
66
66
|
</div>
|
|
67
67
|
<div v-else class="n20-quarter-date-picker__year__grid">
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
:class="year === item ? 'color-primary' : ''"
|
|
74
74
|
class="n20-quarter-date-picker__btn"
|
|
75
75
|
@click="selectYear(item)"
|
|
76
|
-
>{{ item }}
|
|
76
|
+
>{{ formatYear(item) }}</el-button
|
|
77
77
|
>
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
@@ -153,8 +153,9 @@ export default {
|
|
|
153
153
|
showValue: {
|
|
154
154
|
set(value) {
|
|
155
155
|
if (value) {
|
|
156
|
-
const regex = /(\d{4})
|
|
156
|
+
const regex = /(\d{4})\s*年\s*第?([1-4])季度/
|
|
157
157
|
const match = value.match(regex)
|
|
158
|
+
if (!match) return
|
|
158
159
|
const [, year, quarter] = match
|
|
159
160
|
switch (quarter) {
|
|
160
161
|
case '1':
|
|
@@ -178,9 +179,7 @@ export default {
|
|
|
178
179
|
},
|
|
179
180
|
get() {
|
|
180
181
|
if (this.value.startDate && this.value.endDate) {
|
|
181
|
-
return
|
|
182
|
-
dayjs(this.value.endDate).quarter()
|
|
183
|
-
)}季度`
|
|
182
|
+
return this.formatQuarter(dayjs(this.value.startDate).year(), dayjs(this.value.endDate).quarter())
|
|
184
183
|
} else {
|
|
185
184
|
return ''
|
|
186
185
|
}
|
|
@@ -192,6 +191,12 @@ export default {
|
|
|
192
191
|
// this.getDefaultTime()
|
|
193
192
|
},
|
|
194
193
|
methods: {
|
|
194
|
+
formatYear(year) {
|
|
195
|
+
return $lc('YEAR年').replace('YEAR', year)
|
|
196
|
+
},
|
|
197
|
+
formatQuarter(year, quarter) {
|
|
198
|
+
return $lc('YEAR年第QUARTER季度').replace('YEAR', year).replace('QUARTER', quarter)
|
|
199
|
+
},
|
|
195
200
|
getChinese(val) {
|
|
196
201
|
let value = ''
|
|
197
202
|
switch (val) {
|
|
@@ -234,7 +239,6 @@ export default {
|
|
|
234
239
|
that.season = i + 1
|
|
235
240
|
let arr = that.valueArr[i].split(' - ')
|
|
236
241
|
that.showSeason = false
|
|
237
|
-
this.showValue = `${this.year} 年 ${this.season} 季度`
|
|
238
242
|
that.$emit('input', { startDate: this.year + '-' + arr[0], endDate: this.year + '-' + arr[1] })
|
|
239
243
|
that.$emit('change', { startDate: this.year + '-' + arr[0], endDate: this.year + '-' + arr[1] }) // 每次选择时间都将当前选择时间发送到父组件
|
|
240
244
|
},
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
<div class="el-table-set-size flex-box">
|
|
3
3
|
<div class="el-table-set-size-item m-r-0" :class="sizeC === 'mini' && 'active'" @click="setSize('mini')">
|
|
4
4
|
<img class="icon-mini" src="./mini.png" />
|
|
5
|
-
<div class="text-mini">{{
|
|
5
|
+
<div class="text-mini">{{ $lc('小行距') }}</div>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="el-table-set-size-item" :class="sizeC === 'small' && 'active'" @click="setSize('small')">
|
|
8
8
|
<img class="icon-small" src="./small.png" />
|
|
9
|
-
<div class="text-small">{{
|
|
9
|
+
<div class="text-small">{{ $lc('中行距') }}</div>
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
12
12
|
</template>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<el-carousel-item v-for="tip in tips" :key="tip.id">
|
|
4
4
|
<div v-if="tip.isShow === '1'" v-title:br="list" :class="`tip_color_${tip.style || 'default'}`">
|
|
5
5
|
{{ tip.busNname }}{{ enumData[tip.busState] }}{{ tip.busCode.includes('CENTER') ? '(' + tip.currency + ')' : ''
|
|
6
|
-
}}{{ tip.isError === '1' ? '
|
|
6
|
+
}}{{ tip.isError === '1' ? $lc('(有异常)') : '' }}
|
|
7
7
|
</div>
|
|
8
8
|
</el-carousel-item>
|
|
9
9
|
</el-carousel>
|