From e5655ba28bd53c5c302983771b89fb22c1aa178a Mon Sep 17 00:00:00 2001 From: "zyx.net" Date: Thu, 28 Sep 2023 16:40:57 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BA=93=20=E8=AE=A4=E8=AF=81=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../certificationList/components/addModel.vue | 1 + .../components/certificationList/index.vue | 31 ++++++++------ .../components/dealtWith.vue | 2 + .../components/designCompliance.vue | 4 ++ .../components/projectInformation.vue | 41 ++++++++++++++----- 5 files changed, 55 insertions(+), 24 deletions(-) diff --git a/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue b/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue index 633656b76..d25284a75 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/components/addModel.vue @@ -868,6 +868,7 @@ this.formInline = {} this.dutyTerritoryList = [] this.visible = true + this.flowdisabled = false this.personnelVisible = true value.dutyDepart = value.dutyDepart ? value.dutyDepart.split(',') : [] value.dutyTerritory = value.dutyTerritory ? value.dutyTerritory.split(',') : [] diff --git a/jero-web/src/views/projectManagement/components/certificationList/index.vue b/jero-web/src/views/projectManagement/components/certificationList/index.vue index 91c1a32d1..80400b7d4 100644 --- a/jero-web/src/views/projectManagement/components/certificationList/index.vue +++ b/jero-web/src/views/projectManagement/components/certificationList/index.vue @@ -1707,19 +1707,24 @@ deleteLib(val) { let _this = this if (val.flowStatus == 'List to be released' || val.flowStatus == 'Review and pass') { - this.$confirm({ - content: _this.$t('ConfirmDelete'), - onOk() { - deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => { - if (res.success) { - _this.$message.success(_this.$t('OperationSuccessful')) - _this.getList() - } else { - _this.$message.warning(_this.$t('operationFailed')) - } - }) - } - }) + console.log(val) + if(val.projectCertificationInventoryEOS && (val.projectCertificationInventoryEOS.length > 0 || val.projectCertificationInventoryEOS !== null)){ + this.$message.warning(val.serialNumber + this.$t('platformitemhasbeenassociated')) + }else{ + this.$confirm({ + content: _this.$t('ConfirmDelete'), + onOk() { + deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => { + if (res.success) { + _this.$message.success(_this.$t('OperationSuccessful')) + _this.getList() + } else { + _this.$message.warning(_this.$t('operationFailed')) + } + }) + } + }) + } } else { this.$message.warning(this.$t('onlyDataWithProcessStatusDeleted')) } diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/dealtWith.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/dealtWith.vue index 765c8d342..570ee3989 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/dealtWith.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/dealtWith.vue @@ -318,6 +318,7 @@ projectName: row.projectName, targetMarket: row.targetMarket, projectNameId: row.projectNameId, + platform:row.platform, primaryKeyId: row.primaryKeyId, PersonChargeFeedback: row.personChargeFeedback } @@ -376,6 +377,7 @@ query = { router: row.router, taskIds: row.taskId, + platform:row.platform, actiProcInstId: row.actiProcInstId, id: row.projectLibraryId, projectLibraryId: row.projectLibraryId, diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue index c55695f3e..a5623af7c 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/designCompliance.vue @@ -20,6 +20,7 @@ :title="$t('basicInformation')" :projectInformationList="projectInformationList" :url="url" + :platform="this.queryData.platform" :projectInformationId="this.queryBy.projectLibraryId" :queryProject="queryProject" /> @@ -294,6 +295,9 @@ getAction(this.url.queryProjectLawsInventoryInfoById, query).then((res) => { if (res.success) { this.queryProject = res.result[0] || {} + if(this.queryData.platform){ + this.queryProject.platform = this.queryData.platform + } // if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr') { // this.queryProject.endTime = this.queryData.endTime // } diff --git a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/projectInformation.vue b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/projectInformation.vue index f3719541d..e88c17ea3 100644 --- a/jero-web/src/views/toDoCenter/projectRegulationTasks/components/projectInformation.vue +++ b/jero-web/src/views/toDoCenter/projectRegulationTasks/components/projectInformation.vue @@ -55,6 +55,10 @@ type: String, default: '' }, + platform: { + type: String, + default: '' + }, queryProject: { type: Object, default: {} @@ -101,17 +105,32 @@ }, RelatedItemsClick(item) { - let newUrl = this.$router.resolve({ - path: '/ProjectDetails', - query: { - id: item.projectLibraryId, - projectName: item.projectName+'-'+item.projectVersion, - projectNameId: item.projectNameId, - targetMarket: item.targetMarket, - studioEngineer: item.studioEngineer - } - }) - window.open(newUrl.href, '_blank') + if(this.platform == 'YES'){ + let newUrl = this.$router.resolve({ + path: '/platformItemLibraryDetails', + query: { + id: item.projectLibraryId, + projectName: item.projectName+'-'+item.projectVersion, + projectNameId: item.projectName, + targetMarket: item.targetMarket, + studioEngineer: item.studioEngineer + } + }) + window.open(newUrl.href, '_blank') + }else{ + let newUrl = this.$router.resolve({ + path: '/ProjectDetails', + query: { + id: item.projectLibraryId, + projectName: item.projectName+'-'+item.projectVersion, + projectNameId: item.projectNameId, + targetMarket: item.targetMarket, + studioEngineer: item.studioEngineer + } + }) + window.open(newUrl.href, '_blank') + } + }, } } From 20ea7b8230ed33fe7cfe07c9581f60b6e0b21c8f Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 28 Sep 2023 17:05:42 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9C=AA=E7=AC=A6=E5=90=88=E9=A1=B9?= =?UTF-8?q?=E8=B7=9F=E8=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/mapper/xml/NcrTrackMapper.xml | 4 +++- .../service/impl/NcrTrackServiceImpl.java | 21 ++++++++++++------- .../jero/modules/project/vo/NcrTrackVO.java | 4 ++++ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml index a700a3eaa..b513a9e93 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/NcrTrackMapper.xml @@ -31,6 +31,8 @@ pni.project_name, plb.target_market, plb.project_version, + plb.project_name_id, + plb.platform, pyni.year_name, pli.serial_number, pli.title, @@ -62,7 +64,7 @@ LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id where - plb.platform is null + 1=1 +
+ {{$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;