From fecc568c3d6b0866ec386f54c37f4bd265f5041d Mon Sep 17 00:00:00 2001 From: "zyx.net" Date: Mon, 9 Oct 2023 14:09:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=BA=93=E6=96=B0=E5=A2=9E=E5=BC=B9=E6=A1=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jero-web/src/common/lang/en-us.js | 27 + jero-web/src/common/lang/zh-cn.js | 27 + .../components/addModel.vue | 731 ++++++++++++++---- 3 files changed, 614 insertions(+), 171 deletions(-) diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 9e94e6906..3158a6629 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1982,4 +1982,31 @@ module.exports = { matchempty:'The match is empty', onlyDataProcessStatusDeleted:'Data can only be deleted if the process status is task ready, approved, or rejected by the responsible person', platformitemhasbeenassociated:'A platform item has been associated', + power:'power', + producer:'producer', + Nameplatelabel:'Nameplate label', + Batteryfilingrecord:'Battery filing record', + Modelinformation:'Model information', + Batterynationalcode:'Battery national code', + Recordnformation:'Record information', + Electriccellproductionenterprises:'Electric cell production enterprises', + Assemblymanufacturer:'Assembly manufacturer', + PartNumberCN:'Part Number (Domestic)', + PartNumberEU:'Part Number (Foreign)', + bitfilecode:'24-bit file code', + Vendorcode:'Vendor code', + Productclasscode:'Product class code', + Batterytypecode:'Battery type code', + Specificationcode:'Specification code', + Traceinformationcode:'Trace information code', + Productionyearmonthdateserialnumber:'Production year month date serial number', + dimension:'dimension(mm)', + Ratedcapacity:'Rated capacity(Ah)', + Nominalvoltage:'Nominal voltage(V)', + Ratedmass:'Rated mass(kg)', + Numbercontainedmodules:'Number of contained modules', + Moduleseriesparallelmode:'Module series parallel mode', + modulspecificationcodeused:'The module or monomer specification code used', + Coolingmode:'Cooling mode', + Filingcompletiontime:'Filing completion time', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 2e896649a..7ab96d38a 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -3938,4 +3938,31 @@ module.exports = { Processdetails:'流程详情', matchempty:'匹配项为空', platformitemhasbeenassociated:'已关联平台件项目', + power:'功率', + producer:'生产商', + Nameplatelabel:'铭牌标签', + Batteryfilingrecord:'电池备案记录', + Modelinformation:'型号信息', + Batterynationalcode:'电池国标码', + Recordnformation:'备案信息', + Electriccellproductionenterprises:'电芯生产企业', + Assemblymanufacturer:'总成生产企业', + PartNumberCN:'零件号(国内)', + PartNumberEU:'零件号(国外)', + bitfilecode:'24位备案码', + Vendorcode:'供应商代码', + Productclasscode:'产品类型代码', + Batterytypecode:'电池类型代码', + Specificationcode:'规格代码', + Traceinformationcode:'追溯信息代码', + Productionyearmonthdateserialnumber:'生产年月日序列号', + dimension:'尺寸(mm)', + Ratedcapacity:'额定容量(Ah)', + Nominalvoltage:'标称电压(V)', + Ratedmass:'额定质量(kg)', + Numbercontainedmodules:'包含模块个数', + Moduleseriesparallelmode:'模块串并联方式', + modulspecificationcodeused:'所用模块或单体规格代码', + Coolingmode:'冷却方式', + Filingcompletiontime:'备案完成时间', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue index fd768320a..69b9bd99c 100644 --- a/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue +++ b/jero-web/src/views/projectManagement/platformItemLibraryDetails/components/addModel.vue @@ -11,16 +11,49 @@ style="height: 100%;overflow: auto;padding-bottom: 53px;"> + +
+ {{$t('basicInformationOfParameters')}} +
* - {{$t('entryName')}} + {{$t('power')}}
- - + + + +
+
+ +
+
+ * + {{$t('producer')}} +
+ + + +
+
+
+ + +
+
+ * + {{$t('targetMarket')}} +
+ +
@@ -45,25 +78,41 @@
- {{$t('configurationItem')}} + {{$t('projectStatus')}}
- - + +
- {{$t('certificationProgram')}} + * + {{$t('statisticalNodes')}}
- - + + + + + {{ item.key }} + + +
@@ -72,19 +121,80 @@
- {{$t('dehicleDevelopmentPlan')}} + + {{$t('regulatoryEngineer')}}
- - + +
+
+
+ {{$t('engineeringInterfacePerson')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Nameplatelabel')}} +
+ +
+ +
+ +
+ +
+
+
+ + example + +
+
+
+
+
+ + + + + + + + + + + + + + + + +
{{$t('explain')}} @@ -93,151 +203,306 @@ + :rows="4"/> + +
+ + + +
+ {{$t('Batteryfilingrecord')}} +
+ +
+ {{$t('Modelinformation')}} +
+ + +
+
+ {{$t('productModel')}} +
+ + + +
+
+ +
+
+ {{$t('Electriccellproductionenterprises')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Assemblymanufacturer')}} +
+ + + +
+
+ +
+
+ {{$t('PartNumberCN')}} +
+ + + +
+
+
+ + +
+
+ {{$t('PartNumberEU')}} +
+ + + +
+
+
+ +
+ {{$t('Batterynationalcode')}} +
+ + +
+
+ {{$t('bitfilecode')}} +
+ + + +
+
+ +
+
+ {{$t('Vendorcode') + '(1~3)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Productclasscode') + '(4)'}} +
+ + + +
+
+ +
+
+ {{$t('Batterytypecode') + '(5)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Specificationcode') + '(6~7)'}} +
+ + + +
+
+ +
+
+ {{$t('Traceinformationcode') + '(8~14)'}} +
+ + + +
+
+
+ + +
+
+ {{$t('Productionyearmonthdateserialnumber') + '(15~20)'}} +
+ + + +
+
+
+ +
+ {{$t('Recordnformation')}} +
+ + +
+
+ {{$t('dimension')}} +
+ + + +
+
+ +
+
+ {{$t('Ratedcapacity')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Nominalvoltage')}} +
+ + + +
+
+ +
+
+ {{$t('Ratedmass')}} +
+ + + +
+
+
+ + +
+
+ {{$t('Numbercontainedmodules')}} +
+ + + +
+
+ +
+
+ {{$t('Moduleseriesparallelmode')}} +
+ + + +
+
+
+ + +
+
+ {{$t('modulspecificationcodeused')}} +
+ + + +
+
+ +
+
+ {{$t('Coolingmode')}} +
+ + + +
+
+
+ +
+ {{$t('remarks')}} +
+ + +
+
+ {{$t('Filingcompletiontime')}} +
+ + + +
+
+
+ + +
+
+ {{$t('remarks')}} +
+ +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -251,6 +516,16 @@ import PersonnelSelection from '@/components/PersonnelSelection/index' import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import { mapGetters } from 'vuex' + import moment from 'moment' + + function getBase64(file) { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = () => resolve(reader.result) + reader.onerror = (error) => reject(error) + }) + } export default { name: 'addModel', @@ -324,6 +599,30 @@ trigger: 'blur' } ], + power:[ + { + required: true, + message: this.$t('power') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 200, + message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'), + trigger: 'blur' + } + ], + producer:[ + { + required: true, + message: this.$t('producer') + this.$t('cannotEmpty'), + trigger: 'blur' + }, + { + max: 200, + message: this.$t('DigitalPlatform') + this.$t('cannotExceed') + 200 + this.$t('Characters'), + trigger: 'blur' + } + ], digitalPlatform: [ { max: 200, @@ -345,6 +644,13 @@ trigger: 'change' } ], + targetMarket: [ + { + required: true, + message: this.$t('targetMarket') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], brand: [ { required: true, @@ -371,24 +677,82 @@ trigger: 'change' } ], - certificationEngineerName: [ + dutyTerritory: [ { - max: 100, - message: this.$t('certifiedEngineer') + this.$t('cannotExceed') + 100 + this.$t('Characters'), + required: true, + message: this.$t('statisticalNodes') + this.$t('cannotEmpty'), trigger: 'change' } - ] + ], + regulationOwnerIdName: [ + { + required: true, + message: this.$t('regulatoryEngineer') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], + designDutyIdName: [ + { + required: true, + message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'), + trigger: 'change' + } + ], }, disabled: false, + previewVisible: false, + previewImage: '', + cut: '', + fileList: [], projectNameList: [], - title: '' + firstLevelDutyTerritoryList:[], + title: '', + uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload', + state: undefined, + myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl, + upDataList: [], + downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download', + downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download', } }, mounted() { this.getNameList() + let long = localStorage.getItem('language') + this.cut = '' + if (long && long == 'zh-cn') { + this.cut = 'cn' + } else if (long && long == 'en-us') { + this.cut = 'en' + } }, methods: { ...mapGetters(['userInfo']), + handleCancelimg() { + this.previewVisible = false; + }, + async handlePreview(file) { + if (!file.url && !file.preview) { + file.preview = await getBase64(file.originFileObj); + } + this.previewImage = file.url || file.preview; + this.previewVisible = true; + }, + handleChange({ fileList }) { + this.fileList = fileList; + console.log(this.fileList) + }, + getFirstLevelDutyTerritory() { + getAction('/sys/dictItem/getFirstLevelDutyTerritory', {}).then((res) => { + if (res.success) { + this.firstLevelDutyTerritoryList = res.result + } else { + this.firstLevelDutyTerritoryList = [] + } + }) + }, + dateChange(item) { + this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' + }, getNameList(value) { getAction('project/projectNameInfoEO/list', {}).then((res) => { if (res.success) { @@ -411,8 +775,9 @@ this.title = this.$t('add') this.formInline = {} this.getNameList() - this.formInline.studioEngineerName = this.userInfo().username - this.formInline.studioEngineer = this.userInfo().id + this.getFirstLevelDutyTerritory() + this.formInline.regulationOwnerIdName = this.userInfo().username + this.formInline.regulationOwnerId = this.userInfo().id this.formInline.projectVersion = '00' this.formInline = { ...this.formInline } this.$nextTick(() => { @@ -582,7 +947,31 @@ height: 40px; margin-bottom: 24px; } + .itemModelimg { + width: calc(100% - 130px); + display: inline-block; + margin-top: 2px; + margin-bottom: 24px; + } + .header-text { + font-size: 16px; + color: #000000; + font-weight: bold; + } + .header-title-text{ + font-size: 16px; + color: #000000; + line-height: 50px; + margin: 0 19px; + } + .header-title{ + background: #F5F6F7; + width: 100%; + height: 50px; + margin-top: 10px; + margin-bottom: 10px; + } .Required { color: red; margin-right: 4px;