Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
高嵩
2023-03-28 11:23:44 +08:00
29 changed files with 447 additions and 216 deletions
@@ -33,8 +33,11 @@ import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.system.util.StringUtils;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
import com.jero.modules.top.entity.TopProjectEO;
import com.jero.modules.top.service.ITopProjectEOService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -147,6 +150,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private IProjectCertificationInventoryEOService projectCertificationInventoryEOService;
@Autowired
private IProcessInfoDetailEOService processInfoDetailEOService;
/**
* 保存
*
@@ -441,6 +447,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
}
}
setRzlcCertificationEngineerTask(projectLibraryBase);
checkExitData(projectLibraryBase);
saveOrUpdate(projectLibraryBase);
checkVersionOrder(projectLibraryBase.getParentId(),projectLibraryBase.getProjectVersion(),projectLibraryBase.getId());
@@ -666,6 +674,87 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
/**
* 重新设置认证工程师在待办中心的 认证流程的 待办任务。
* @param projectLibraryBase
*/
private void setRzlcCertificationEngineerTask(ProjectLibraryBase projectLibraryBase) {
if(org.apache.commons.lang3.StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())){
List<String> certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(","));
QueryWrapper<ProjectCertificationInventoryEO> pciQueryWrap = new QueryWrapper<>();
pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryBase.getId());
List<ProjectCertificationInventoryEO> pciEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap);
if(CollectionUtils.isNotEmpty(pciEOList)){
// 清单待校核的数据
List<ProjectCertificationInventoryEO> pciToBeCheckedList = pciEOList.stream().filter(pci -> {
boolean flag = false;
if(StringUtils.equals(pci.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
// 如果该项目下清单待校核的数据不为空,给这些认证工程师分配待办任务。
if(CollectionUtils.isNotEmpty(pciToBeCheckedList)){
// 删除待办中心(是这个项目库的 pre-Homo流程的待办任务, 认证工程师接受任务节点的数据)
QueryWrapper<ProcessInfoDetailEO> pidRemoveWrap = new QueryWrapper<>();
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId());
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue());
this.processInfoDetailEOService.remove(pidRemoveWrap);
// 给认证工程师分配任务
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (String userId : certificationEngineerIdList) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(userId);
processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey());
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId());
processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId());
processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
processInfoDetailEOList.add(processInfoDetailEO);
}
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
}
// 结果待提交的数据
List<ProjectCertificationInventoryEO> pciToBeReviewEDList = pciEOList.stream().filter(pci -> {
boolean flag = false;
if(StringUtils.equals(pci.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())){
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(pciToBeReviewEDList)){
// 删除待办中心(是这个项目库的 pre-Homo流程的待办任务, 认证工程师审查 任务节点的数据)
QueryWrapper<ProcessInfoDetailEO> pidRemoveWrap = new QueryWrapper<>();
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId());
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSSC.getKey());
pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue());
this.processInfoDetailEOService.remove(pidRemoveWrap);
// 给认证工程师分配任务
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (String userId : certificationEngineerIdList) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(userId);
processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSSC.getKey());
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId());
processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId());
processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
processInfoDetailEOList.add(processInfoDetailEO);
}
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
}
}
}
}
/**
* 通过id删除
*
+5
View File
@@ -1717,6 +1717,7 @@ module.exports = {
complianceReporting:'Compliance Reporting',
youCanOnlySelectStatusClearSubmit:'You can only select data with a process status of Clear to Submit',
note:'Note: The attachment includes the list of test items and test report. Test standard or technical specification',
notecsv:'Note: CSV format is supported. The value is within 20M',
format:'It supports doc/docx/pdf format and is less than 50M in size',
cantTransferToYourself:"Can't transfer to yourself",
theDataYouInitiate:'The data you selected does not meet the process initiation criteria. Please recheck and initiate',
@@ -1725,4 +1726,8 @@ module.exports = {
noteone:'Note: CSV format is supported. The value is within 20M and the number is 1 to 10',
notetwo:'\n1. Provide the modified or expanded batch of "Announcement" and supporting materials;\n2. Verification materials shall be submitted to ensure that products meet the relevant requirements of national laws and regulations, technologies, standards and technical specifications;\n',
notethree:'Provide supporting materials',
verifyComplianceConfirmReturnReason:'Verify compliance Confirm return reason',
theDeliverablesCannotReferencedPleaseReselect:'The deliverables of this project cannot be referenced, please reselect',
regulationListModuleMaintenance:'Regulation list module maintenance',
regulationListModule:'Regulation list module',
}
+7 -2
View File
@@ -1821,10 +1821,15 @@ module.exports = {
note:':附件包括测试项目清单测试报告测试标准或技术规范',
format:'支持doc/docx/pdf格式,大小50M以内',
cantTransferToYourself:"不能转办给自己",
noteone:':支持CSV格式大小20M以内数量1-10个',
noteone:':支持CSV格式大小20M以内数量1-20个',
notecsv:':支持CSV格式大小20M以内',
theDataYouInitiate:'您所选的数据均不符合流程发起条件请重新检查后发起',
dataWithProcessReleasedCannotBeReset:'流程状态为清单待发布的数据不能被重置',
reasonForReturnOfDesignCompliance:'设计符合性退回原因',
reasonForReturnOfDesignCompliance:'设计符合性确认退回原因',
notetwo:'\n1提供变更或扩展后的公告批次及证明材料;\n2应提交验证材料保障产品符合国家法律法规技术标准及技术规范等相关要求;\n',
notethree:'\n提供证明材料\n',
verifyComplianceConfirmReturnReason:'验证符合性确认退回原因',
theDeliverablesCannotReferencedPleaseReselect:'不能引用本项目的交付物请重新选择',
regulationListModuleMaintenance:'法规清单模块维护',
regulationListModule:'法规清单模块',
}
+5 -5
View File
@@ -133,7 +133,7 @@
// }
// }
// }
this.$message.destroy()
// this.$message.destroy()
},
remove() {
this.fileTypeSatus = true
@@ -153,7 +153,7 @@
})
if (status === 'error') {
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
} else if (status === 'removed') {
this.myfileList = info.fileList
@@ -167,7 +167,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
}
} else if (status === 'done') {
@@ -184,7 +184,7 @@
}
})
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(this.$t('UploadMost'))
return
}
@@ -197,7 +197,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
if (file.response.success) {
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
}
@@ -109,7 +109,7 @@
// this.fileTypeSatus = false;
// }
// }
this.$message.destroy()
// this.$message.destroy()
},
remove() {
this.fileTypeSatus = true
@@ -133,7 +133,7 @@
})
if (status === 'error') {
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
} else if (status === 'removed') {
this.myfileList = info.fileList
@@ -147,7 +147,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
}
} else if (status === 'done') {
@@ -164,7 +164,7 @@
}
})
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(this.$t('UploadMost'))
return
}
@@ -177,7 +177,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
if (file.response.success) {
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
}
@@ -135,7 +135,7 @@ import { mapGetters } from 'vuex'
// this.fileTypeSatus = false;
// }
// }
this.$message.destroy()
// this.$message.destroy()
},
remove() {
this.fileTypeSatus = true
@@ -159,7 +159,7 @@ import { mapGetters } from 'vuex'
})
if (status === 'error') {
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
} else if (status === 'removed') {
this.myfileList = info.fileList
@@ -173,7 +173,7 @@ import { mapGetters } from 'vuex'
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
}
} else if (status === 'done') {
@@ -190,7 +190,7 @@ import { mapGetters } from 'vuex'
}
})
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(this.$t('UploadMost'))
return
}
@@ -203,7 +203,7 @@ import { mapGetters } from 'vuex'
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
if (file.response.success) {
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
}
@@ -132,7 +132,7 @@
// this.fileTypeSatus = false;
// }
// }
this.$message.destroy()
// this.$message.destroy()
},
remove() {
this.fileTypeSatus = true
@@ -152,7 +152,7 @@
})
if (status === 'error') {
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
} else if (status === 'removed') {
this.myfileList = info.fileList
@@ -166,7 +166,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
}
} else if (status === 'done') {
@@ -183,7 +183,7 @@
}
})
this.$emit('uploadSuccess', this.fileList)
this.$message.destroy()
// this.$message.destroy()
this.$message.error(this.$t('UploadMost'))
return
}
@@ -196,7 +196,7 @@
})
this.$emit('uploadSuccess', this.fileList)
if (this.myfileList.length > 0) {
this.$message.destroy()
// this.$message.destroy()
if (file.response.success) {
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
}
@@ -6,7 +6,7 @@
<!-- <a-icon @click="iconClick" type="arrow-left" style="margin-right: 6px;font-size: 26px;"/>-->
<!-- </span>-->
<span>
{{isTrue ? $t('maintainVirtualList'):$t('virtualListDetails')}}
{{isTrue ? $t('regulationListModuleMaintenance'):$t('regulationListModuleMaintenance')}}
</span>
</div>
<div class="Virtual-detail-right">
@@ -23,8 +23,8 @@
<div class="Virtual-detail-content">
<div class="box-title-text-add">
<div class="title-text-add">
<span class="text-left" :title="$t('VirtualListName')">
{{$t('VirtualListName')}}
<span class="text-left" :title="$t('regulationListModule')">
{{$t('regulationListModule')}}
</span>
<span class="text-right" style="margin-right: 100px" :title="$route.query.name">
{{$route.query.name}}
@@ -20,6 +20,7 @@
</div>
<a-form-model-item class="itemModel" prop="bazt">
<j-dict-select-tag class="box-input" v-model="formInline.bazt"
@input="selectchange"
:placeholder="$t('PleaseSelect')+$t('recordstatus')"
:type="'select'"
:triggerChange="false" :dictCode="'recordstatus'"/>
@@ -77,7 +78,7 @@ export default {
visible: false,
confirmLoading: false,
formInline: {
bazt:'',
bazt:undefined,
batjsj:'',
bz:'',
},
@@ -196,6 +197,12 @@ export default {
}
})
},
selectchange(value){
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField('bazt')
})
},
handleCancel() {
this.formInline = {
bazt:undefined,
@@ -13,13 +13,13 @@
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<a-col :span="20">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t ('implementedupgrade')">{{$t('implementedupgrade')}}</span>
</div>
<a-form-model-item class="itemModel" prop="implementedupgrade">
<a-radio-group style="margin-top: 2px" class="box-input" v-model="formInline.implementedupgrade">
<a-radio-group style="margin-top: 2px" class="box-input" v-model="formInline.implementedupgrade" :disabled="disabled">
<a-radio value="0">
{{$t('yes')}}
</a-radio>
@@ -27,16 +27,13 @@
{{$t('not')}}
</a-radio>
</a-radio-group>
<!-- <j-dict-select-tag class="box-input"-->
<!-- :disabled="disabled"-->
<!-- @input="handleInput('implementedupgrade')"-->
<!-- v-model="formInline.implementedupgrade"-->
<!-- :placeholder="$t('PleaseSelect')+$t('implementedupgrade')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="4" v-if="showButton">
<a-button type="primary" @click="isEdit">编辑</a-button>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
@@ -61,11 +58,13 @@
</div>
<a-form-model-item class="itemModel" prop="VINcodelist">
<a-button type="primary" class="button-text"
:disabled="disabled"
@click="clickButtonToUpload('VINcodelist')">
{{ (formInline.VINcodelist === 'null' || formInline.VINcodelist === '' ||
formInline.VINcodelist == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
<p>{{$t('notecsv')}}</p>
</a-form-model-item>
</div>
</a-col>
@@ -75,7 +74,7 @@
{{$t('vehicleshavenotcompletedonlineupgrade')}}
<a-icon class="icon-text" @click="addClick(index)" type="plus-circle"/>
<a-icon class="icon-text" v-if="formInline.dataList.length > 1" @click="deleteClick(index)"
type="minus-circle"/>
type="minus-circle" :disabled="disabled"/>
</div>
<div style='margin-left: 25px'>
<a-row :gutter="24">
@@ -86,6 +85,7 @@
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="disabled"
v-model="item.cause"
:placeholder="$t('PleaseEnter')+$t('cause')"/>
</a-form-model-item>
@@ -101,6 +101,7 @@
<!-- {max: 300,message: $t('inspectionItems') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"-->
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="disabled"
v-model="item.Quantity"
:placeholder="$t('PleaseEnter')+$t('Quantity')"/>
</a-form-model-item>
@@ -118,11 +119,13 @@
<!-- {max: 300,message: $t('inspectionItems') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"-->
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text"
:disabled="disabled"
@click="clickButtonToUpload('VINcodelist')">
{{ (formInline.VINcodelist === 'null' || formInline.VINcodelist === '' ||
formInline.VINcodelist == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
<p style='width: 243px'>{{$t('format')}}</p>
</a-form-model-item>
</div>
</a-col>
@@ -138,6 +141,7 @@
</div>
<a-form-model-item class="itemModel" prop="implementationrecords">
<a-textarea :placeholder="$t('pleaseEnter')+$t('implementationrecords')"
:disabled="disabled"
:rows="2" v-model="formInline.remarks"/>
</a-form-model-item>
</div>
@@ -151,11 +155,12 @@
</div>
<a-form-model-item class="itemModel" prop="VINcodelist">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('VINcodelist')">
@click="clickButtonToUpload('VINcodelist1')">
{{ (formInline.VINcodelist === 'null' || formInline.VINcodelist === '' ||
formInline.VINcodelist == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
<p>{{$t('format')}}</p>
</a-form-model-item>
</div>
</a-col>
@@ -167,7 +172,7 @@
<a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
<uploadFile ref="uploadFile" :acceptcode="acceptcode" @uploadSuccess="uploadSuccess"/>
</div>
</template>
@@ -179,7 +184,6 @@ import { mapGetters } from 'vuex'
export default {
name:"addModel",
props: ['url'],
components:{
uploadFile
},
@@ -187,8 +191,10 @@ export default {
return {
visible: false,
disabled: false,
showButton:false,
formInline: {},
confirmLoading: false,
acceptcode:'',
projectNameList: [],
DeliverableTreeList: [],
rules: {
@@ -219,6 +225,9 @@ export default {
}
],
},
url:{
addModel:''
}
}
},
mounted() {
@@ -226,14 +235,17 @@ export default {
},
methods: {
...mapGetters(['userInfo']),
addModel() {
addModel(flag) {
if(flag=='1')
this.disabled=true
this.showButton=true
this.visible = true
this.formInline = {}
this.formInline.dataList = [{}]
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate()
this.$refs.codeNumber.number()
// this.$refs.codeNumber.number()
})
},
handleCancel() {
@@ -251,17 +263,18 @@ export default {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
let query = JSON.parse(JSON.stringify(this.formInline))
this.confirmLoading = true
postAction(this.url.addModel, query).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
// postAction(this.url.addModel, query).then((res) => {
// if (res.success) {
// this.confirmLoading = false
// this.$message.success(this.$t('OperationSuccessful'))
// } else {
// this.$message.warning(res.message)
// this.confirmLoading = false
// }
// })
this.visible = false
this.$emit('addModelList')
} else {
this.$message.warning(res.message)
this.confirmLoading = false
}
})
}
})
},
@@ -302,6 +315,11 @@ export default {
})
},
clickButtonToUpload(item) {
if(item == 'VINcodelist'){
this.acceptcode = 'csv'
}else {
this.acceptcode = 'doc,docx,pdf'
}
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = item
@@ -325,6 +343,9 @@ export default {
this.formInline[this.uploadName] = attIdList.join(',')
this.formInline = { ...this.formInline }
},
isEdit(){
this.disabled=false
}
}
}
</script>
@@ -141,8 +141,11 @@
@click="detailclick(record)">{{$t('See')}}</a>
<a class="text-operation"
@click="maintenanceClick(record)">{{$t('maintenance')}}</a>
<a class="text-operation"
@click="endUpgrade(record)">{{$t('endUpgrade')}}</a>
@click="endUpgrade(record , '0')" v-if="!onShow">{{$t('endUpgrade')}}</a>
<a class="text-operation"
@click="endUpgrade(record , '1')" v-if="onShow">{{$t('upgradecompletion')}}</a>
<a class="text-operation"
@click="handleExport(record)">{{$t('export')}}</a>
<a class="text-operation"
@@ -164,7 +167,7 @@
</div>
</div>
<maintenance @getList="getList" ref="maintenanceRef"/>
<upgradecompletion ref="upgradecompletionRef"/>
<upgradecompletion ref="upgradecompletionRef" @addModelList="addModelList"/>
</a-card>
</template>
@@ -288,7 +291,7 @@ export default {
align: 'left',
ellipsis: true,
width: 170,
dataIndex: 'cjsj'
dataIndex: 'createTime'
},
{
title: this.$t('remarks'),
@@ -306,7 +309,8 @@ export default {
}
],
userInfoQuery: {},
administrators: false
administrators: false,
onShow:false
}
},
mounted() {
@@ -440,8 +444,8 @@ export default {
downloadFile(this.url.exportData, text + '.xls', query, this.Deselect)
},
// 结束升级
endUpgrade(){
this.$refs.upgradecompletionRef.addModel()
endUpgrade(record,flag){
this.$refs.upgradecompletionRef.addModel(flag)
},
// 查看
detailclick(){
@@ -464,6 +468,9 @@ export default {
handleModule(){
downloadFile('params/paramsInfo/exportTemplate', this.$t('parameterTemplateExportName') + '.xlsx', {})
},
addModelList(){
this.onShow=true
}
}
}
</script>
@@ -23,25 +23,25 @@
style="margin-bottom: 20px"
>
<span slot="functionname" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.gnmc"></a-input>
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.gnmc" :max-length="50"></a-input>
</span>
<span slot="upgradedestinationype" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjmdlx"></a-input>
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjmdlx" :max-length="50"></a-input>
</span>
<span slot="preupgrade" slot-scope="text,record">
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjqbgcs"></a-input>
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjqbgcs" :max-length="500"></a-input>
</span>
<span slot="afterupgrade" slot-scope="text,record">
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjhbgcs"></a-input>
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjhbgcs":max-length="500"></a-input>
</span>
<span slot="functionalchangedescription" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.gnbgms" ></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.gnbgms" :max-length="500"></a-input>
</span>
<span slot="variationofapplicableconditions" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sytjbg"></a-input>
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sytjbg" :max-length="500"></a-input>
</span>
<span slot="upgradetheelectroniccontrollerinvolved" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjsjkzq"></a-input>
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjsjkzq" :max-length="500"></a-input>
</span>
@@ -53,7 +53,11 @@
</span>
</a-table>
<div>
<a-button @click="clickButtonToUpload" type="primary">{{$t('uploadattachment')}}</a-button>
<a-button type="primary" @click="clickButtonToUpload(fileList)">
{{ (fileList === 'null' || fileList === '' ||
fileList == null) ? $t('uploadattachment') : $t('viewUploadedFiles')
}}
</a-button>
<div style='margin-top: 20px'>
<p>{{$t('note')}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;{{$t('format')}}</p>
@@ -64,7 +68,7 @@
<a-button type="primary" style='width: 73px;margin-right: 50px' @click='last'>{{$t('last')}}</a-button>
<a-button type="primary" style='width: 73px' @click='next'>{{$t('next')}}</a-button>
</div>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :acceptcode="'doc,docx,pdf'" @uploadSuccess="uploadSuccess"></uploadFile>
</div>
</template>
@@ -86,6 +90,7 @@ export default {
}
],
fileList:'',
loading: false,
disable:false,
columns: [
@@ -216,14 +221,41 @@ export default {
}
getAction('/ota/otaBaSjSjfzbh/queryByOtaId',{otaIdT:otaIdT,otaId:otaId}).then(res=>{
this.dataSource =res.result.list == null ? {} : res.result.list
this.fileList = res.result.fj
})
},
save(){
postAction('/ota/otaBaSjSjfzbh/add' ,{otaId:localStorage.getItem('otaId')== undefined ? '' :localStorage.getItem('otaId'),list:this.dataSource}).then(res=>{
console.log(res);
this.$message.success(this.$t('SavedSuccessfully'))
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id || data.name)
})
}
this.$forceUpdate()
// /** 赋值给当前对应的表单文件 */
this.fileList = attIdList.join(',')
// this.fileList.certifyingmaterials = this.$t('viewFile')
},
clickButtonToUpload(current) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = current
getAction('sys/common/getFileInfos', { id: current }).then((res) => {
if (res.success) {
this.$refs.uploadFile.perentHandleFunc(res.result)
} else {
this.$refs.uploadFile.perentHandleFunc()
}
})
},
last(){
this.save()
this.$emit('beupgradedonlineup')
@@ -239,20 +271,6 @@ export default {
deleteData(record){
this.dataSource.splice(this.dataSource.indexOf(record),1)
},
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push({
id:item.id,
fileName:item.fileName
})
})
}
/** 赋值给当前对应的表单文件 */
this.fileList.uploadName = attIdList
this.fileList.certifyingmaterials = this.$t('viewFile')
},
}
}
</script>
@@ -12,7 +12,8 @@
<a-form-model-item class="itemModel" prop="dutyTerritory">
<a-input
:placeholder="$t('pleaseEnter')"
v-model.trim="queryParam.rwmc"></a-input>
v-model.trim="queryParam.rwmc"
:max-length="500"></a-input>
</a-form-model-item>
</div>
</a-col>
@@ -108,8 +109,10 @@ export default {
}
this.queryParam.otaId = otaId
postAction('/ota/otaBaSjQtsjxx/add' ,this.queryParam).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
@@ -54,7 +54,8 @@
<a-form-model-item class="itemModel" prop="VINcodelist">
<a-textarea :placeholder="$t('pleaseEnter')+$t('VINcodelist')"
v-model="formInline.vinList"
:rows="4"/>
:rows="4"
:max-length="500"/>
</a-form-model-item>
<!-- <a-form-model-item class="itemModel" prop="VINcodelist">-->
<!-- <a-button type="primary" class="button-text"-->
@@ -72,15 +73,15 @@
<!-- <span class="Required">*</span>-->
<span class="title-text-text"></span>
</div>
<a-form-model-item class="itemModel" prop="VINcodelist">
<a-form-model-item class="itemModel" prop="csv">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('VINcodelist')">
{{ (formInline.VINcodelist === 'null' || formInline.VINcodelist === '' ||
formInline.VINcodelist == null) ? $t('VINcodeupload') : $t('viewUploadedFiles')
@click="clickButtonToUpload('csv')">
{{ (formInline.csv === 'null' || formInline.csv === '' ||
formInline.csv == null) ? $t('VINcodeupload') : $t('viewUploadedFiles')
}}
</a-button>
<p>{{$t('noteone')}}</p>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :acceptcode="'csv'" @uploadSuccess="uploadSuccess"></uploadFile>
</a-form-model-item>
</div>
</a-col>
@@ -139,6 +140,7 @@ export default {
if(res.code==200){
this.formInline.zsl=res.result.zsl
this.formInline.vinList=res.result.vinList
this.formInline.csv=res.result.csv
this.formInline.dateofproduction=[]
this.formInline.dateofproduction.push(res.result.scrqks)
this.formInline.dateofproduction.push(res.result.scrqjs)
@@ -152,6 +154,7 @@ export default {
let obj={}
obj.otaId=localStorage.getItem('otaId')
obj.zsl = this.formInline.zsl
obj.csv = this.formInline.csv
if(this.formInline.dateofproduction){
obj.scrqks = this.formInline.dateofproduction[0]
obj.scrqjs = this.formInline.dateofproduction[1]
@@ -162,7 +165,10 @@ export default {
obj.vinList = this.formInline.vinList
postAction('/ota/otaBaSjSjmbcl/add',obj).then(res=>{
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
next(){
@@ -188,6 +194,25 @@ export default {
}
})
},
/** 上传文件的回调 */
uploadSuccess(data) {
// console.log(data)
let attIdList = []
if(data && data.length>0){
data.map(item => {
attIdList.push(item.id || data.name)
})
/** 赋值给当前对应的表单文件 */
this.formInline.csv = attIdList.join(',')
this.formInline = { ...this.formInline }
// console.log('form',this.formInline)
}else{
this.formInline.csv = ''
this.formInline = { ...this.formInline }
// console.log('form',this.formInline)
}
},
}
}
</script>
@@ -23,39 +23,39 @@
style="margin-bottom: 20px"
>
<span slot="systemname" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.xtmc"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.xtmc" :max-length="50"></a-input>
</span>
<!-- 升级前-->
<span slot="preupgrade" slot-scope="text,record">
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjqbgcs"></a-input>
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjqbgcs" :max-length="500"></a-input>
</span>
<!-- 升级后-->
<span slot="afterupgrade" slot-scope="text,record">
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjhbgcs"></a-input>
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjhbgcs" :max-length="500"></a-input>
</span>
<span slot="nameoftheupgradedelectroniccontroller" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjkzqmc" ></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjkzqmc" :max-length="50"></a-input>
</span>
<span slot="adaptivehardwareversion" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbb"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbb" :max-length="50"></a-input>
</span>
<span slot="beforethesoftwareversionupgraded" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjqrjbb" ></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjqrjbb" :max-length="50"></a-input>
</span>
<span slot="afterthesoftwareversionupgraded" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjhrjbb"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjhrjbb" :max-length="50"></a-input>
</span>
<span slot="beforetheOSversionupgraded" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjqczxt"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjqczxt" :max-length="50"></a-input>
</span>
<span slot="aftertheoperatingsystemversionupgraded" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjhczxt"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjhczxt" :max-length="50"></a-input>
</span>
<span slot="upgradepackageintegrityverificationdata" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjbyzsj" ></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjbyzsj" :max-length="500"></a-input>
</span>
<span slot="upgradepackagesize" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjbdx"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjbdx" :max-length="50"></a-input>
</span>
<span slot="differentialupgradeornot" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sfcfsj"></a-input>
@@ -290,8 +290,10 @@ export default {
},
save(){
postAction('/ota/otaBaSjSjxtbh/add' ,{otaId:localStorage.getItem('otaId')== undefined ? '' :localStorage.getItem('otaId'),list:this.dataSource}).then(res=>{
console.log(res);
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
last(){
@@ -63,7 +63,12 @@
</span>
</a-layout-content>
<a-layout-content style='border: black solid 1px;border-left: none;border-bottom: none;max-width: 428px'>
<a-button style='margin-top: 15%;margin-left: 10%;' @click="clickButtonToUpload" type="primary">{{$t('uploadattachment')}}</a-button>
<a-button type="primary" style='margin-top: 15%;margin-left: 10%;'
@click="clickButtonToUpload('bgfj')">
{{ (form.bgfj === 'null' || form.bgfj === '' ||
form.bgfj == null) ? $t('uploadattachment') : $t('viewUploadedFiles')
}}
</a-button>
<span class="spanone">{{$t('notetwo')}}</span>
<span class="spanone">{{$t('format')}}</span>
</a-layout-content>
@@ -135,7 +140,12 @@
</span>
</div>
<div class='layout-box-three'>
<a-button style='margin-top: 15%;margin-left: 10%;' @click="clickButtonToUpload" type="primary">{{$t('uploadattachment')}}</a-button>
<a-button type="primary" style='margin-top: 15%;margin-left: 10%;'
@click="clickButtonToUpload('clfj')">
{{ (form.clfj === 'null' || form.clfj === '' ||
form.clfj == null) ? $t('uploadattachment') : $t('viewUploadedFiles')
}}
</a-button>
<span class="spanone">{{$t('notethree')}}</span>
<span class="spanone">{{$t('format')}}</span>
</div>
@@ -146,7 +156,7 @@
<a-button type="primary" style='width: 73px;margin-right: 50px' @click='last'>{{$t('last')}}</a-button>
<a-button type="primary" style='width: 73px' @click='next'>{{$t('next')}}</a-button>
</div>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :acceptcode="'doc,docx,pdf'" @uploadSuccess="uploadSuccess"></uploadFile>
</div>
</template>
@@ -331,7 +341,7 @@ this.$forceUpdate()
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = item
getAction('sys/common/getFileInfos', { id: this.formInline[item] }).then((res) => {
getAction('sys/common/getFileInfos', { id: this.form[item] }).then((res) => {
if (res.success) {
this.$refs.uploadFile.perentHandleFunc(res.result)
} else {
@@ -339,33 +349,22 @@ this.$forceUpdate()
}
})
},
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
})
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...queryParam
uploadSuccess(data) {
let attIdList = []
if(data && data.length>0){
data.map(item => {
attIdList.push(item.id || data.name)
})
/** 赋值给当前对应的表单文件 */
this.form[this.uploadName] = attIdList.join(',')
this.form = { ...this.form }
// console.log('form',this.formInline)
}else{
this.form[this.uploadName] = ''
this.form = { ...this.form }
// console.log('form',this.formInline)
}
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.loading = false
}
})
},
getData(){
let otaIdT=localStorage.getItem('otaIdT')
@@ -399,8 +398,10 @@ this.$forceUpdate()
}
this.form.otaId=otaId
postAction('/ota/otaBaSjSjyxpg/add',this.form).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
last(){
@@ -411,20 +412,6 @@ this.$forceUpdate()
this.save()
this.$emit('safetyPrecautionsdown')
},
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push({
id:item.id,
fileName:item.fileName
})
})
}
/** 赋值给当前对应的表单文件 */
this.fileList.uploadName = attIdList
this.fileList.certifyingmaterials = this.$t('viewFile')
},
}
}
</script>
@@ -207,8 +207,11 @@ import ImportFile from '@/components/ImportFileData/index'
otaId=''
}
postAction('/ota/otaBaSjSjmbcx/add',{otaId:otaId,...this.form}).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
if(res.code==200){
localStorage.setItem('otaId', res.result.otaId)
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
next(){
@@ -22,6 +22,7 @@
<a-form-model-item class="itemModel" prop="sjmd">
<a-input class="box-input"
:disabled="disabled"
:max-length="500"
v-model='formInline.sjmd'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -35,6 +36,7 @@
<a-form-model-item class="itemModel" prop="gxbh">
<a-input class="box-input"
:disabled="disabled"
:max-length="500"
v-model='formInline.gxbh'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -48,6 +50,7 @@
<a-form-model-item class="itemModel" prop="sjsj">
<a-input class="box-input"
:disabled="disabled"
:max-length="50"
v-model='formInline.sjsj'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -61,6 +64,7 @@
<a-form-model-item class="itemModel" prop="sjky">
<a-input class="box-input"
:disabled="disabled"
:max-length="50"
v-model='formInline.sjky'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -74,6 +78,7 @@
<a-form-model-item class="itemModel" prop="sjbkygn">
<a-input class="box-input"
:disabled="disabled"
:max-length="50"
v-model='formInline.sjbkygn'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -87,6 +92,7 @@
<a-form-model-item class="itemModel" prop="zdxx">
<a-input class="box-input"
:disabled="disabled"
:max-length="500"
v-model='formInline.zdxx'
:placeholder="$t('pleaseEnter')"></a-input>
</a-form-model-item>
@@ -170,7 +176,7 @@
<a-button type="primary" style='width: 73px;margin-right: 50px' @click='last'>{{$t('last')}}</a-button>
<a-button type="primary" style='width: 73px' @click='next'>{{$t('next')}}</a-button>
</div>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :acceptcode="'doc,docx,pdf'" @uploadSuccess="uploadSuccess"></uploadFile>
</div>
</template>
@@ -252,8 +258,10 @@ export default {
}
this.formInline.otaId = otaId
postAction('/ota/otaBaSjGgnrfs/add' ,this.formInline).then(res=>{
this.$message.success(this.$t('SavedSuccessfully'))
console.log(res);
if(res.code==200){
this.$message.success(this.$t('SavedSuccessfully'))
this.getData()
}
})
},
@@ -35,7 +35,7 @@
</div>
<a-form-model-item class="itemModel">
<a-input
:max-length="500"
:max-length="50"
:disabled="disabled"
class="box-input"
:placeholder="$t('pleaseEnter')"
@@ -53,7 +53,7 @@
<a-form-model-item class="itemModel" prop="djbh">
<a-input
:max-length="500"
:max-length="50"
:disabled="disabled"
class="box-input"
:placeholder="$t('pleaseEnter')"
@@ -89,7 +89,7 @@
:max-length="500"
:disabled="disabled"
class="box-input"
:placeholder="$t('PleaseSelect')"
:placeholder="$t('pleaseEnter')"
v-model="form.ggpc">
</a-input>
</a-form-model-item>
@@ -102,10 +102,10 @@
</div>
<a-form-model-item class="itemModel">
<a-input
:max-length="500"
:max-length="50"
:disabled="disabled"
class="box-input"
:placeholder="$t('PleaseSelect')"
:placeholder="$t('pleaseEnter')"
v-model="form.cpsb">
</a-input>
</a-form-model-item>
@@ -118,10 +118,10 @@
</div>
<a-form-model-item class="itemModel">
<a-input
:max-length="500"
:max-length="50"
:disabled="disabled"
class="box-input"
:placeholder="$t('PleaseSelect')"
:placeholder="$t('pleaseEnter')"
v-model="form.cpmc">
</a-input>
</a-form-model-item>
@@ -135,10 +135,10 @@
</div>
<a-form-model-item class="itemModel">
<a-input
:max-length="500"
:max-length="50"
:disabled="disabled"
class="box-input"
:placeholder="$t('PleaseSelect')"
:placeholder="$t('pleaseEnter')"
v-model="form.cpxh">
</a-input>
</a-form-model-item>
@@ -59,23 +59,23 @@
<a-input :placeholder="$t('ifNot')" :title="record.sytj ? record.sytj:$t('ifNot')" v-model="record.sytj" :max-length="500"></a-input>
</span>
<span slot="functiondeelectronicscription" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="50"></a-input>
</span>
<span slot="electroniccontrollerproductionenterprises" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqscqy" :max-length="500"> </a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqscqy" :max-length="50"> </a-input>
</span>
<span slot="electroniccontrollertypeone" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqxh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqxh" :max-length="50"></a-input>
</span>
<span slot="hardwareversioninformation" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbbxx" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbbxx" :max-length="50"></a-input>
</span>
<span slot="softwaredevelopmententerprise" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="50"></a-input>
</span>
<span slot="operatingsystemversion" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtbbh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtbbh" :max-length="50"></a-input>
</span>
<span slot="inflammatorydata" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.csyzsj" :max-length="500"></a-input>
@@ -218,7 +218,7 @@
<div style='width: 700px'>
<span class='content-text' style='background: #f3f6f6;line-height: 50px;text-align: center;color: #191E29;font-weight: bold'>{{$t('fillincontent')}}</span>
<span v-for='(item,index) in dataSource' class='content-text'>
<a-input v-model="item.val" class="item-input" :placeholder="item.fillincontent" :max-length="500"/>
<a-input v-model="item.val" class="item-input" :placeholder="item.fillincontent" :max-length="50"/>
</span><br>
</div>
</div>
@@ -234,7 +234,7 @@
style="margin-bottom: 20px"
>
<span slot="componentname" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.bjmc" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.bjmc" :max-length="50"></a-input>
</span>
<!-- 可升级-->
<span slot="systemclass" slot-scope="text,record" >
@@ -244,22 +244,22 @@
</a-radio-group>
</span>
<span slot="controllername" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="50"></a-input>
</span>
<span slot="hardwarespecificationmodel" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjggxh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjggxh" :max-length="50"></a-input>
</span>
<span slot="hardwaremanufacturer" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjscqy" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjscqy" :max-length="50"></a-input>
</span>
<span slot="softwareversion" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjbb" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjbb" :max-length="50"></a-input>
</span>
<span slot="softwaredevelopmententerprise" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.rjkfqy" :max-length="50"></a-input>
</span>
<span slot="layoutposition" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.bzwz" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.bzwz" :max-length="50"></a-input>
</span>
<!-- 操作列-->
<span slot="operation" slot-scope="text,record">
@@ -207,7 +207,7 @@ import ImportFile from '@/components/ImportFileData/index'
this.dataSource[2].info= res.result.sjsbcs
this.dataSource[3].info= res.result.xxaqjz
if(res.result.zmclList){
console.log(this.dataSource[0].certifyingmaterials = this.$t('viewFile'))
this.dataSource[0].certifyingmaterials = this.$t('viewFile')
}
this.fileList.uploadName = res.result.zmclList
this.$refs.uploadFile.perentHandleFunc(this.fileList.uploadName)
@@ -229,7 +229,7 @@ export default {
this.dataSource[8].relevantverification=Number(res.result.sjgg)
this.dataSource[9].relevantverification=Number(res.result.sjzt)
if(res.result.zmclList){
console.log(this.dataSource[0].certifyingmaterials = this.$t('viewFile'))
this.dataSource[0].certifyingmaterials = this.$t('viewFile')
}
this.fileList.uploadName = res.result.zmclList
this.$refs.uploadFile.perentHandleFunc(this.fileList.uploadName)
@@ -43,37 +43,37 @@
</a-button>
</span>
<span slot="electronicController" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqmc" :max-length="50"></a-input>
</span>
<span slot="electroniccontrollername" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.aqwzxdj" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.aqwzxdj" :max-length="50"></a-input>
</span>
<span slot="electroniccontrollerproductionenterprises" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqscqy" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqscqy" :max-length="50"></a-input>
</span>
<span slot="electroniccontrollertype" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqxh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.kzqxh" :max-length="50"></a-input>
</span>
<span slot="hardwareversioninformation" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbbxx" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.yjbbxx" :max-length="50"></a-input>
</span>
<span slot="initialsoftwareversionnumber" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.csrjbbh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.csrjbbh" :max-length="50"></a-input>
</span>
<span slot="initialpackageforintegrityinflammatorydata" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.csrjbwzsj" :max-length="500"></a-input>
</span>
<span slot="environmentalprotection" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjsfyx" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.sjsfyx" :max-length="50"></a-input>
</span>
<span slot="operatingsystemtype" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtlx" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtlx" :max-length="50"></a-input>
</span>
<span slot="operatingsystemmanufacturer" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtscqy" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtscqy" :max-length="50"></a-input>
</span>
<span slot="operatingsystemversion" slot-scope="text,record">
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtbbh" :max-length="500"></a-input>
<a-input :placeholder="$t('pleaseEnter')" v-model="record.czxtbbh" :max-length="50"></a-input>
</span>
<!-- 操作列-->
<span slot="operation" slot-scope="text,record" >
@@ -311,6 +311,7 @@ import uploadFileOta from '@/components/uploadFileOta/file'
if(otaIdT==null){
otaIdT=''
}
let randomNum = Math.floor(Math.random()*99999999999+1)
getAction('/ota/otaBaCxKsjxtmccs/queryByOtaId',{otaIdT:otaIdT,otaId:localStorage.getItem('otaId')}).then(res=>{
if(res.code==200){
if(res.result.list.length==0){
@@ -341,8 +342,9 @@ import uploadFileOta from '@/components/uploadFileOta/file'
},
]
}else{
res.result.list.forEach(item =>{
item.sfksj =Number(item.sfksj)
res.result.list.forEach((item,index) =>{
item.sfksj = Number(item.sfksj)
item.key = randomNum + index
})
this.dataSource=res.result.list
this.fileList = res.result.fj
@@ -256,7 +256,7 @@ export default {
align: 'left',
ellipsis: true,
width: 170,
dataIndex: 'cjsj'
dataIndex: 'createTime'
},
{
title: this.$t('remarks'),
@@ -96,16 +96,18 @@
pageNo: 1,
pageSize: 10,
total: 0,
ids: ''
ids: '',
detailedWarningList: []
}
},
mounted() {
},
methods: {
transferModel(ids) {
transferModel(ids, detailedWarningList) {
this.visible = true
this.queryParam = {}
this.detailedWarningList = detailedWarningList
this.selectedRowKeys = []
this.ids = ids.join(',')
this.replacePage()
@@ -154,10 +156,20 @@
handleCancel() {
this.visible = false
},
failedMessageOne(data) {
let detailedWarningList = data
this.$warning({
content: ( < div > { detailedWarningList } < /div>)
})
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
if (selectedRowKeys.join(',') == this.$route.query.id) {
this.$message.warning(this.$t('theDeliverablesCannotReferencedPleaseReselect'))
return
}
this.confirmLoading = true
postAction('/project/projectCertificationInventoryEO/citeDeliverable', {
projectCertificationInventoryIds: this.ids,
projectLibraryId: this.$route.query.id,
@@ -173,6 +185,9 @@
this.visible = false
this.selectedRowKeys = []
this.$emit('referenceDeliverablesListForm')
if (this.detailedWarningList && this.detailedWarningList.length > 0) {
this.failedMessageOne(this.detailedWarningList)
}
} else {
if (res.result) {
this.$message.warning(res.result)
@@ -78,7 +78,8 @@
</div>
<!-- 保存-->
<div @click="preservationClick(1)" v-if="roleSwitchingCode == 2 || roleSwitchingCode == 0" class="operator-text">
<div @click="preservationClick(1)" v-if="roleSwitchingCode == 2 || roleSwitchingCode == 0"
class="operator-text">
<a-icon type="check-circle"/>
{{ $t('preservation') }}
</div>
@@ -687,7 +688,7 @@
title: this.$t('DeliverablesResult'),
align: 'left',
dataIndex: 'deliveryResult',
width: 180,
width: 210,
ellipsis: true,
scopedSlots: { customRender: 'DeliverablesResult' }
},
@@ -1406,17 +1407,45 @@
referenceDeliverablesClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let isTrue
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Results to be submitted') {
isTrue = true
} else {
isTrue = false
this.$message.warning(this.$t('youCanOnlySelectStatusClearSubmit'))
return
let ids = []
let notConditions = []
let notConditionsOne = []
let data = ''
let dataOne = ''
let detailedWarningList= []
if (this.roleSwitchingCode == 20) {
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].dutyPersonName == this.userInfo().username) {
if (this.selectedRowKeysList[i].flowStatus == 'Results to be submitted') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
} else {
notConditionsOne.push(this.selectedRowKeysList[i].inspectionItem)
}
}
} else {
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Results to be submitted') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
}
if (isTrue) {
this.$refs.referenceDeliverablesListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataStatusSubmittedCanBeSelected')
detailedWarningList.push(<div>{data}</div>)
}
if (notConditionsOne && notConditionsOne.length > 0){
dataOne = this.$t('inspectionItems') + '"' + notConditionsOne.join('、')+'"'+this.$t('operationWithoutPermission')
detailedWarningList.push(<div>{dataOne}</div>)
}
if (ids && ids.length > 0) {
this.$refs.referenceDeliverablesListRef.transferModel(ids,detailedWarningList)
} else {
this.failedMessageOne(detailedWarningList)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
@@ -1738,7 +1767,12 @@
content: ( < div > { detailedWarningList } < /div>)
})
},
failedMessageOne(data) {
let detailedWarningList = data
this.$warning({
content: ( < div > { detailedWarningList } < /div>)
})
},
submitTask(value, prompt, ids, notConditions, data) {
let _this = this
this.$confirm({
@@ -782,11 +782,11 @@
</div>
</a-col>
</a-row>
<div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0">
{{$t('listConfirmationRejectionReason')}}
<div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0 && formInline.roleCodeIndex == 0">
{{$t('reasonForReturnOfDesignCompliance')}}
</div>
<div v-if="rejectCauseList && rejectCauseList.length > 0"
<div v-if="rejectCauseList && rejectCauseList.length > 0 && formInline.roleCodeIndex == 0"
v-for="(item,index) in rejectCauseList">
<a-row :gutter="24">
<a-col :span="12">
@@ -827,11 +827,11 @@
</a-row>
</div>
<div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0">
{{$t('taskConfirmationRejectionReason')}}
<div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0 && formInline.roleCodeIndex == 0">
{{$t('verifyComplianceConfirmReturnReason')}}
</div>
<div v-if="rejectCauseListOne && rejectCauseListOne.length > 0"
<div v-if="rejectCauseListOne && rejectCauseListOne.length > 0 && formInline.roleCodeIndex == 0"
v-for="(item,index) in rejectCauseListOne">
<a-row :gutter="24">
<a-col :span="12">
@@ -310,14 +310,14 @@
title: this.$t('configurationItem'),
align: 'left',
dataIndex: 'configItem',
width: 150,
width: 200,
ellipsis: true
},
{
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 150,
width: 200,
ellipsis: true
},
{
@@ -338,14 +338,14 @@
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'deliverableTypeName',
width: 200,
width: 330,
ellipsis: true
},
{
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 200,
width: 250,
scopedSlots: { customRender: 'operation' }
}
],
@@ -544,7 +544,7 @@
</script>
<style lang='less' scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;