Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH
This commit is contained in:
+8
@@ -226,4 +226,12 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
|
||||
* @param userInfoList
|
||||
*/
|
||||
void sendMessageByTemplateId(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS,String templeteId,List<String> userIdList,List<SysUser> userInfoList);
|
||||
|
||||
/**
|
||||
* 数据唯一校验。
|
||||
* @param projectCertificationInventoryEOList
|
||||
* @param cut
|
||||
* @return
|
||||
*/
|
||||
List<ProjectCertificationInventoryEO> dataUniqueCheck(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList, String cut,List<String> result);
|
||||
}
|
||||
|
||||
+127
-15
@@ -128,6 +128,8 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
private BussDocumentLibraryEOMapper bussDocumentLibraryEOMapper;
|
||||
@Autowired
|
||||
private IProjectUserPermissionService projectUserPermissionService;
|
||||
@Autowired
|
||||
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
|
||||
|
||||
|
||||
@Value(value = "${jero.backUrl}")
|
||||
@@ -292,12 +294,20 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
|
||||
@Override
|
||||
public Result<?> batchAdd(JSONObject json) {
|
||||
String cut = json.getString("cut");
|
||||
List<String> result = new ArrayList<>();
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
result.add("添加成功!");
|
||||
}else {
|
||||
result.add("Successfully added!");
|
||||
}
|
||||
try {
|
||||
String serialNumber = json.getString("serialNumber");
|
||||
String wvtaId = json.getString("wvtaId");
|
||||
String bussDocumentLibraryId = json.getString("bussDocumentLibraryId");
|
||||
String projectLibraryId = json.getString("projectLibraryId");
|
||||
|
||||
|
||||
JSONArray dataList = json.getJSONArray("dataList");
|
||||
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = new ArrayList<>();
|
||||
ProjectCertificationInventoryEO projectCertificationInventoryEO = null;
|
||||
@@ -310,13 +320,15 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
|
||||
projectCertificationInventoryEOList.add(projectCertificationInventoryEO);
|
||||
}
|
||||
// 处理提示信息, 类别+检验项目+配置项+编号+责任领域 作为唯一检验
|
||||
List<ProjectCertificationInventoryEO> saveDataList = this.dataUniqueCheck(projectCertificationInventoryEOList,cut,result);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(projectCertificationInventoryEOList)){
|
||||
this.saveBatch(projectCertificationInventoryEOList);
|
||||
if(CollectionUtils.isNotEmpty(saveDataList)){
|
||||
this.saveBatch(saveDataList);
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<ProjectCertificationInventoryLogEO> projectCertificationInventoryLogEOList = new ArrayList<>();
|
||||
for (ProjectCertificationInventoryEO certificationInventoryEO : projectCertificationInventoryEOList) {
|
||||
for (ProjectCertificationInventoryEO certificationInventoryEO : saveDataList) {
|
||||
StringBuilder contentCnSb = new StringBuilder();
|
||||
contentCnSb.append("\"").append(currentUser.getUsername()).append("\"").append(" 添加了 ");
|
||||
contentCnSb.append("\"").append(certificationInventoryEO.getCategory()).append("\"").append(" ");
|
||||
@@ -343,7 +355,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
}catch (Exception ex){
|
||||
throw new JeroBootException("添加失败!");
|
||||
}
|
||||
return Result.OK("添加成功!");
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -477,6 +489,61 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理提示信息
|
||||
* @param projectCertificationInventoryEOList
|
||||
* @param cut
|
||||
* @param result
|
||||
*/
|
||||
@Override
|
||||
public List<ProjectCertificationInventoryEO> dataUniqueCheck(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList, String cut,List<String> result) {
|
||||
List<ProjectCertificationInventoryEO> pciSaveList = new ArrayList<>();
|
||||
|
||||
List<ProjectCertificationInventoryEO> allDataList = this.list();
|
||||
// 重复数据数组
|
||||
List<ProjectCertificationInventoryEO> duplicateDataList = allDataList.stream().filter(data -> {
|
||||
boolean flag = false;
|
||||
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
|
||||
boolean categoryFlag = StringUtils.equals(projectCertificationInventoryEO.getCategory(), data.getCategory());
|
||||
boolean inspectionItemFlag = StringUtils.equals(projectCertificationInventoryEO.getInspectionItem(), data.getInspectionItem());
|
||||
boolean configItemFlag = StringUtils.equals(projectCertificationInventoryEO.getConfigItem(), data.getConfigItem());
|
||||
boolean serialNumberFlag = StringUtils.equals(projectCertificationInventoryEO.getSerialNumber(), data.getSerialNumber());
|
||||
boolean dutyTerritoryFlag = StringUtils.equals(projectCertificationInventoryEO.getDutyTerritory(), data.getDutyTerritory());
|
||||
// 类别+检验项目+配置项+编号+责任领域 作为唯一检验
|
||||
if(categoryFlag && inspectionItemFlag && configItemFlag && serialNumberFlag && dutyTerritoryFlag){
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
if(CollectionUtils.isNotEmpty(duplicateDataList)){
|
||||
if (StringUtils.equals(cut, CutEnum.CN.getValue())) {
|
||||
result.add("您所选的数据中包含当前项目中已包含的条目信息,已为您过滤添加。");
|
||||
}else {
|
||||
result.add("The data you have selected contains item information already included in the current project, which has been filtered and added for you.");
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤重复的数据
|
||||
pciSaveList = projectCertificationInventoryEOList.stream().filter(pciEO -> {
|
||||
boolean flag = true;
|
||||
for (ProjectCertificationInventoryEO allData : allDataList) {
|
||||
boolean categoryFlag = StringUtils.equals(pciEO.getCategory(), allData.getCategory());
|
||||
boolean inspectionItemFlag = StringUtils.equals(pciEO.getInspectionItem(), allData.getInspectionItem());
|
||||
boolean configItemFlag = StringUtils.equals(pciEO.getConfigItem(), allData.getConfigItem());
|
||||
boolean serialNumberFlag = StringUtils.equals(pciEO.getSerialNumber(), allData.getSerialNumber());
|
||||
boolean dutyTerritoryFlag = StringUtils.equals(pciEO.getDutyTerritory(), allData.getDutyTerritory());
|
||||
// 类别+检验项目+配置项+编号+责任领域 作为唯一检验
|
||||
if(categoryFlag && inspectionItemFlag && configItemFlag && serialNumberFlag && dutyTerritoryFlag){
|
||||
flag = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
return pciSaveList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void importDisposeData(List<ProjectCertificationInventoryEO> datas, String cut) {
|
||||
if(CollectionUtils.isNotEmpty(datas)){
|
||||
@@ -2585,6 +2652,14 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
|
||||
@Override
|
||||
public Result<?> callAdd(JSONObject json) {
|
||||
String cut = json.getString("cut");
|
||||
List<String> result = new ArrayList<>();
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
result.add("调取成功!");
|
||||
}else {
|
||||
result.add("Successfully retrieved!");
|
||||
}
|
||||
|
||||
String authDummyInventoryBaseId = json.getString("authDummyInventoryBaseId");
|
||||
if(StringUtils.isEmpty(authDummyInventoryBaseId)){
|
||||
throw new JeroBootException("请选择一个认证虚拟清单进行操作!");
|
||||
@@ -2602,21 +2677,58 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.authDummyInventoryInfoEOService.list(authDummyInfoQueryWrap);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(authDummyInventoryInfoEOList)){
|
||||
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = new ArrayList<>();
|
||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : authDummyInventoryInfoEOList) {
|
||||
ProjectCertificationInventoryEO projectCertificationInventoryEOTemp = new ProjectCertificationInventoryEO();
|
||||
BeanUtils.copyProperties(authDummyInventoryInfoEO,projectCertificationInventoryEOTemp);
|
||||
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
|
||||
lawsInventoryEOQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
|
||||
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryEOQueryWrap);
|
||||
|
||||
projectCertificationInventoryEOTemp.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
projectCertificationInventoryEOTemp.setProjectLibraryId(projectLibraryId);
|
||||
projectCertificationInventoryEOTemp.setFlowStatus(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
|
||||
projectCertificationInventoryEOList.add(projectCertificationInventoryEOTemp);
|
||||
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = new ArrayList<>();
|
||||
|
||||
List<String> noSerialNumberList = new ArrayList<>();
|
||||
|
||||
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : authDummyInventoryInfoEOList) {
|
||||
if(CollectionUtils.isEmpty(projectLawsInventoryEOList)){
|
||||
break;
|
||||
}
|
||||
|
||||
// 根据选择调取的数据法规编号,跟当前项目中 法规清单数据法规编号对比,如果有,则加入,如果没有,则不加入。
|
||||
List<ProjectLawsInventoryEO> lawsInventoryEOListTemp = projectLawsInventoryEOList.stream().filter(lawsInventoryEO -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(authDummyInventoryInfoEO.getSerialNumber(), lawsInventoryEO.getSerialNumber())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(lawsInventoryEOListTemp)){
|
||||
ProjectCertificationInventoryEO projectCertificationInventoryEOTemp = new ProjectCertificationInventoryEO();
|
||||
BeanUtils.copyProperties(authDummyInventoryInfoEO,projectCertificationInventoryEOTemp);
|
||||
|
||||
projectCertificationInventoryEOTemp.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
projectCertificationInventoryEOTemp.setProjectLibraryId(projectLibraryId);
|
||||
projectCertificationInventoryEOTemp.setFlowStatus(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
|
||||
projectCertificationInventoryEOList.add(projectCertificationInventoryEOTemp);
|
||||
}else {
|
||||
noSerialNumberList.add(authDummyInventoryInfoEO.getSerialNumber());
|
||||
}
|
||||
}
|
||||
this.saveBatch(projectCertificationInventoryEOList);
|
||||
|
||||
|
||||
if(CollectionUtils.isNotEmpty(noSerialNumberList)){
|
||||
// 判断调取的数据中,是否有 在当前项目库法规清单中 没有的编号
|
||||
if (StringUtils.equals(cut, CutEnum.CN.getValue())) {
|
||||
result.add("您所选的数据中包含当前项目中不包含的法规编号信息,已为您过滤添加。");
|
||||
}else {
|
||||
result.add("The data you have selected contains regulatory number information that is not included in the current project, and has been filtered and added for you.");
|
||||
}
|
||||
}
|
||||
|
||||
List<ProjectCertificationInventoryEO> saveDataList = this.dataUniqueCheck(projectCertificationInventoryEOList, cut, result);
|
||||
|
||||
this.saveBatch(saveDataList);
|
||||
Date now = new Date();
|
||||
//设置权限 先删后加
|
||||
List<ProjectUserPermission> adds = new ArrayList<>();
|
||||
for (ProjectCertificationInventoryEO pci: projectCertificationInventoryEOList) {
|
||||
for (ProjectCertificationInventoryEO pci: saveDataList) {
|
||||
if (ObjectUtils.isNotEmpty(pci.getSdt())) {
|
||||
setProjectCertificationInventoryPermission(pci.getSdt(), pci.getProjectLibraryId(), pci.getId(), now, adds, ProjectUserLocationEnum.PROJECT_CERTIFICATION_INVENTORY_SDT.getValue());
|
||||
}
|
||||
@@ -2629,7 +2741,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
|
||||
}
|
||||
}
|
||||
|
||||
return Result.OK("调取成功!");
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1719,4 +1719,6 @@ module.exports = {
|
||||
note:'Note: The attachment includes the list of test items and test report. Test standard or technical specification',
|
||||
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',
|
||||
dataWithProcessReleasedCannotBeReset:'Data with a process status of list to be released cannot be reset',
|
||||
}
|
||||
@@ -77,7 +77,7 @@ module.exports = {
|
||||
yes: '是',
|
||||
not: '否',
|
||||
have:'有',
|
||||
|
||||
|
||||
notOnlyRz: '否',
|
||||
EnterValue: '请输入值',
|
||||
SavedQuery: '保存的查询',
|
||||
@@ -1618,7 +1618,7 @@ module.exports = {
|
||||
thetargetvehicleofthisupgrade:'本次升级的目标车辆',
|
||||
upgradeimpactassessment:'升级影响评估',
|
||||
upgradehavechanged:'本次升级的系统名称与参数变化',
|
||||
auxiliaryupgradehavechanged:'本次升级的架势辅助功能名称与参数变化',
|
||||
auxiliaryupgradehavechanged:'本次升级的驾驶辅助功能名称与参数变化',
|
||||
usernotification:'用户告知内容及方式',
|
||||
informationaboutotherupgradetasks:'其他升级任务信息',
|
||||
totalquantity:'总数量(辆)',
|
||||
@@ -1735,7 +1735,7 @@ module.exports = {
|
||||
upgradeactivitiesaffectvehiclesafety:'升级活动是否影响车辆安全',
|
||||
upgradeactivityprovidesuserconfirmationoptions:'升级活动是否提供用户确认选项',
|
||||
upgradepackagetest:'升级包测试(可多选)',
|
||||
reliabilityofonlineupgradeactivities:'是杏已验证确认在线升级活动的安全性和可靠性',
|
||||
reliabilityofonlineupgradeactivities:'是否已验证确认在线升级活动的安全性和可靠性',
|
||||
adjustmentofchangedBulletinparameters:'已变更《公告》参数的对应调整(如有)',
|
||||
preupgrade:'升级前',
|
||||
afterupgrade:'升级后',
|
||||
@@ -1746,8 +1746,8 @@ module.exports = {
|
||||
beforetheOSversionupgraded:'操作系统版本号升级前',
|
||||
aftertheoperatingsystemversionupgraded:'操作系统版本号升级后',
|
||||
initialpackageforintegrityinflammatorydata:'初始软件包的完整性验证数据(需统一哈希算法并说明,例如SM3:d192e819d6990624f40e3585106ee134)',
|
||||
upgradepackageintegrityverificationdata:'升级包完整性验证数据',
|
||||
upgradepackagesize:'升级包大小',
|
||||
upgradepackageintegrityverificationdata:'升级包完整性验证数据(需统一哈希算法并说明,例如SM3:d192e819d6990624f40e3585106ee134)',
|
||||
upgradepackagesize:'升级包大小(MB)',
|
||||
differentialupgradeornot:'是否差分升级',
|
||||
upgradedestinationype:'升级目的类型',
|
||||
functionalchangedescription:'功能变更描述',
|
||||
@@ -1821,4 +1821,6 @@ module.exports = {
|
||||
note:'注:附件包括测试项目清单、测试报告.测试标准或技术规范',
|
||||
format:'支持doc/docx/pdf格式,大小50M以内',
|
||||
cantTransferToYourself:"不能转办给自己",
|
||||
theDataYouInitiate:'您所选的数据,均不符合流程发起条件,请重新检查后发起',
|
||||
dataWithProcessReleasedCannotBeReset:'流程状态为清单待发布的数据不能被重置',
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
name="file"
|
||||
:file-list="myfileList"
|
||||
:multiple="true"
|
||||
:action="uploadAction+'?state='+2+'&cut='+cut"
|
||||
:action="actionUrl"
|
||||
:headers="headers"
|
||||
@preview="preview"
|
||||
:before-upload="beforeUpload"
|
||||
@@ -26,127 +26,118 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'file',
|
||||
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile','detailDate','accept'],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
title: this.$t('clickUpload'),
|
||||
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
|
||||
state: undefined,
|
||||
myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl,
|
||||
upDataList: [],
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
fileList: [],
|
||||
myfileList: [],
|
||||
isLoding: false,
|
||||
cut: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
this.headers = { 'X-Access-Token': token }
|
||||
this.containerId = 'container-ty-' + new Date().getTime()
|
||||
},
|
||||
mounted() {
|
||||
// console.log(this.detailDate,'lldetailDate')
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long == 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long == 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
perentHandleFunc(data) {
|
||||
this.myfileList = data
|
||||
if (data && data.length > 0) {
|
||||
this.myfileList.forEach((res) => {
|
||||
res.name = res.fileName
|
||||
res.uid = res.id
|
||||
})
|
||||
} else {
|
||||
this.myfileList = []
|
||||
export default {
|
||||
name: 'file',
|
||||
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile', 'detailDate', 'accept', 'isParameter'],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
title: this.$t('clickUpload'),
|
||||
uploadAction: window._CONFIG['domianURL'] + '/sys/common/upload',
|
||||
state: undefined,
|
||||
myuploadAction: window._CONFIG['domianURL'] + this.thisFileUploadUrl,
|
||||
upDataList: [],
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
fileList: [],
|
||||
myfileList: [],
|
||||
isLoding: false,
|
||||
cut: ''
|
||||
}
|
||||
},
|
||||
beforeUpload(file) {
|
||||
|
||||
console.log(file)
|
||||
// let thisFileType = this.thisFileType.replace(/\s+/g, "");
|
||||
this.fileTypeSatus = true
|
||||
//TODO 客户要求不拦截文件
|
||||
// if(file.type){
|
||||
// if (thisFileType.indexOf(file.type) != -1) {
|
||||
// this.fileTypeSatus = true;
|
||||
// }else{
|
||||
// this.fileTypeSatus = false;
|
||||
// }
|
||||
// }else{
|
||||
// if(file.name.slice(file.name.length - 3 , file.name.length) == 'rar'){
|
||||
// this.fileTypeSatus = true
|
||||
// }else if(file.type == 'application/x-zip-compressed'){
|
||||
// this.fileTypeSatus = true
|
||||
// }else{
|
||||
// this.fileTypeSatus = false;
|
||||
// }
|
||||
// }
|
||||
this.$message.destroy()
|
||||
},
|
||||
remove() {
|
||||
this.fileTypeSatus = true
|
||||
},
|
||||
mypreview(item) {
|
||||
let url = window._CONFIG['domianPreviewURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1)
|
||||
window.open(url, '_blank')
|
||||
},
|
||||
handleChange(info) {
|
||||
if(info.fileList.length > 1) {
|
||||
this.$message.warning(this.$t('onlyOnefileUploaded'))
|
||||
return
|
||||
}
|
||||
let { file } = info
|
||||
const status = info.file.status
|
||||
info.fileList.forEach((val, index) => {
|
||||
if (val.response && !val.response.result) {
|
||||
this.$message.error(val.response.message)
|
||||
info.fileList.splice(index, 1)
|
||||
computed: {
|
||||
actionUrl() {
|
||||
if (this.isParameter) {
|
||||
return this.uploadAction + '?state=' + 3 + '&cut=' + this.cut
|
||||
} else {
|
||||
return this.uploadAction + '?state=' + 2 + '&cut=' + this.cut
|
||||
}
|
||||
})
|
||||
if (status === 'error') {
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
this.headers = { 'X-Access-Token': token }
|
||||
this.containerId = 'container-ty-' + new Date().getTime()
|
||||
},
|
||||
mounted() {
|
||||
// console.log(this.detailDate,'lldetailDate')
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long == 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long == 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
perentHandleFunc(data) {
|
||||
this.myfileList = data
|
||||
if (data && data.length > 0) {
|
||||
this.myfileList.forEach((res) => {
|
||||
res.name = res.fileName
|
||||
res.uid = res.id
|
||||
})
|
||||
} else {
|
||||
this.myfileList = []
|
||||
}
|
||||
},
|
||||
beforeUpload(file) {
|
||||
|
||||
console.log(file)
|
||||
// let thisFileType = this.thisFileType.replace(/\s+/g, "");
|
||||
this.fileTypeSatus = true
|
||||
//TODO 客户要求不拦截文件
|
||||
// if(file.type){
|
||||
// if (thisFileType.indexOf(file.type) != -1) {
|
||||
// this.fileTypeSatus = true;
|
||||
// }else{
|
||||
// this.fileTypeSatus = false;
|
||||
// }
|
||||
// }else{
|
||||
// if(file.name.slice(file.name.length - 3 , file.name.length) == 'rar'){
|
||||
// this.fileTypeSatus = true
|
||||
// }else if(file.type == 'application/x-zip-compressed'){
|
||||
// this.fileTypeSatus = true
|
||||
// }else{
|
||||
// this.fileTypeSatus = false;
|
||||
// }
|
||||
// }
|
||||
this.$message.destroy()
|
||||
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
|
||||
} else if (status === 'removed') {
|
||||
this.myfileList = info.fileList
|
||||
this.fileList = []
|
||||
this.myfileList.forEach((res) => {
|
||||
if (res.response) {
|
||||
this.fileList.push(res.response.result)
|
||||
} else {
|
||||
this.fileList.push(res)
|
||||
},
|
||||
remove() {
|
||||
this.fileTypeSatus = true
|
||||
},
|
||||
mypreview(item) {
|
||||
let url = window._CONFIG['domianPreviewURL'] + '?url=' + encodeURIComponent(this.downLoadFileUrl + '/' + item.ext1)
|
||||
window.open(url, '_blank')
|
||||
},
|
||||
handleChange(info) {
|
||||
if (info.fileList.length > 1) {
|
||||
this.$message.warning(this.$t('onlyOnefileUploaded'))
|
||||
return
|
||||
}
|
||||
let { file } = info
|
||||
const status = info.file.status
|
||||
info.fileList.forEach((val, index) => {
|
||||
if (val.response && !val.response.result) {
|
||||
this.$message.error(val.response.message)
|
||||
info.fileList.splice(index, 1)
|
||||
}
|
||||
})
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
if (this.myfileList.length > 0) {
|
||||
if (status === 'error') {
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
this.$message.destroy()
|
||||
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
|
||||
}
|
||||
} else if (status === 'done') {
|
||||
this.fileList = []
|
||||
this.myfileList = info.fileList
|
||||
if (info.fileList.length > 20) {
|
||||
info.fileList.splice(20)
|
||||
this.$message.error(`${info.file.name}` + this.$t('FileUploadFailed'))
|
||||
} else if (status === 'removed') {
|
||||
this.myfileList = info.fileList
|
||||
this.fileList = []
|
||||
this.myfileList.forEach((res) => {
|
||||
if (res.response) {
|
||||
this.fileList.push(res.response.result)
|
||||
@@ -155,66 +146,84 @@ export default {
|
||||
}
|
||||
})
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
this.$message.destroy()
|
||||
this.$message.error(this.$t('UploadMost'))
|
||||
return
|
||||
}
|
||||
this.myfileList.forEach((res) => {
|
||||
if (res.response) {
|
||||
this.fileList.push(res.response.result)
|
||||
} else {
|
||||
this.fileList.push(res)
|
||||
if (this.myfileList.length > 0) {
|
||||
this.$message.destroy()
|
||||
this.$message.success(`${info.file.name}` + this.$t('DeletedSuccessfully'))
|
||||
}
|
||||
})
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
if (this.myfileList.length > 0) {
|
||||
this.$message.destroy()
|
||||
if (file.response.success) {
|
||||
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
|
||||
} else if (status === 'done') {
|
||||
this.fileList = []
|
||||
this.myfileList = info.fileList
|
||||
if (info.fileList.length > 20) {
|
||||
info.fileList.splice(20)
|
||||
this.myfileList = info.fileList
|
||||
this.myfileList.forEach((res) => {
|
||||
if (res.response) {
|
||||
this.fileList.push(res.response.result)
|
||||
} else {
|
||||
this.fileList.push(res)
|
||||
}
|
||||
})
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
this.$message.destroy()
|
||||
this.$message.error(this.$t('UploadMost'))
|
||||
return
|
||||
}
|
||||
this.myfileList.forEach((res) => {
|
||||
if (res.response) {
|
||||
this.fileList.push(res.response.result)
|
||||
} else {
|
||||
this.fileList.push(res)
|
||||
}
|
||||
})
|
||||
this.$emit('uploadSuccess', this.fileList)
|
||||
if (this.myfileList.length > 0) {
|
||||
this.$message.destroy()
|
||||
if (file.response.success) {
|
||||
this.$message.success(`${info.file.name}` + this.$t('FileUploadedSuccessfully'))
|
||||
}
|
||||
}
|
||||
} else if (status === 'uploading') {
|
||||
this.myfileList = info.fileList
|
||||
// this.$message.success(`${info.file.name} 文件上传成功。`);
|
||||
}
|
||||
} else if (status === 'uploading') {
|
||||
this.myfileList = info.fileList
|
||||
// this.$message.success(`${info.file.name} 文件上传成功。`);
|
||||
}
|
||||
},
|
||||
resetFileList() {
|
||||
this.myfileList = []
|
||||
this.fileList = []
|
||||
},
|
||||
preview(file) {
|
||||
let fileQuery = file.response ? file.response.result : file
|
||||
let fileName = fileQuery.fileName
|
||||
let index1 = fileName.lastIndexOf('.')
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
// if (fileSuffix === '.pdf') {
|
||||
// window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
// } else if (fileSuffix === '.docx') {
|
||||
// let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
// window.open(url, '_blank')
|
||||
// } else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') {
|
||||
// let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
// window.open(url, '_blank')
|
||||
// } else {
|
||||
},
|
||||
resetFileList() {
|
||||
this.myfileList = []
|
||||
this.fileList = []
|
||||
},
|
||||
preview(file) {
|
||||
let fileQuery = file.response ? file.response.result : file
|
||||
let fileName = fileQuery.fileName
|
||||
let index1 = fileName.lastIndexOf('.')
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
// if (fileSuffix === '.pdf') {
|
||||
// window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
// } else if (fileSuffix === '.docx') {
|
||||
// let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
// window.open(url, '_blank')
|
||||
// } else if (fileSuffix === '.xlsx' || fileSuffix === '.xls') {
|
||||
// let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
// window.open(url, '_blank')
|
||||
// } else {
|
||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.ant-upload-list-item-name {
|
||||
color: rgba(0, 0, 0, 0.65) !important;
|
||||
}
|
||||
.ant-upload-list-item-name {
|
||||
color: rgba(0, 0, 0, 0.65) !important;
|
||||
}
|
||||
|
||||
.action-upload {
|
||||
font-size: 67px;
|
||||
color: #c0c4cc;
|
||||
}
|
||||
.action-upload {
|
||||
font-size: 67px;
|
||||
color: #c0c4cc;
|
||||
}
|
||||
|
||||
.uploadFile {
|
||||
.uploadFile {
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
export default {
|
||||
name: 'file',
|
||||
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile', 'isMultiple', 'restrictUploads', 'Uploadable'],
|
||||
props: ['disableds', 'disabled','acceptcode', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile', 'isMultiple', 'restrictUploads', 'Uploadable'],
|
||||
data() {
|
||||
return {
|
||||
visible: false,
|
||||
@@ -88,6 +88,16 @@
|
||||
// let thisFileType = this.thisFileType.replace(/\s+/g, "");
|
||||
console.log(file)
|
||||
this.fileTypeSatus = true
|
||||
//根据格式拦截
|
||||
if(this.acceptcode){
|
||||
let fileNames = file.name.split('.')
|
||||
let fileType = fileNames[fileNames.length - 1].toLocaleLowerCase()
|
||||
let extList = this.acceptcode.split(',')
|
||||
if (!extList.find((item) => item == fileType)) {
|
||||
this.$message.error(this.$t('uploadOnly') + this.acceptcode + this.$t('type'))
|
||||
return false
|
||||
}
|
||||
}
|
||||
if (this.isMultiple) {
|
||||
if ((this.myfileList && this.myfileList.length == 1) || this.myfileList && this.myfileList.length > 1) {
|
||||
this.$message.warning(this.$t('onlyOnefileUploaded'))
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.batjsj"
|
||||
:disabled="false"
|
||||
style="width: 100%"/>
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -52,9 +52,10 @@
|
||||
<span class="title-text-text" :title="$t('remarks')">
|
||||
{{$t('remarks')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="remarks">
|
||||
<a-form-model-item class="itemModel" prop="bz">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
|
||||
v-model="formInline.bz"
|
||||
style="width: 90%"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -95,6 +96,9 @@ export default {
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
bz: [
|
||||
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||
]
|
||||
// listConfirmation: [
|
||||
// {
|
||||
// required: true,
|
||||
@@ -154,6 +158,11 @@ export default {
|
||||
edit(row) {
|
||||
if(row instanceof Array){
|
||||
this.ids = row.join(',')
|
||||
this.formInline = {
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
bz:'',
|
||||
}
|
||||
}else{
|
||||
this.formInline.bazt = row.bazt ? row.bazt : undefined
|
||||
this.formInline.batjsj = row.batjsj
|
||||
@@ -189,7 +198,7 @@ export default {
|
||||
},
|
||||
handleCancel() {
|
||||
this.formInline = {
|
||||
bazt:'',
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
bz:'',}
|
||||
this.ids = ''
|
||||
@@ -274,7 +283,7 @@ export default {
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
width: 100%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.itemModel {
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true"
|
||||
:accept="'.zip'"/>
|
||||
:accept="'.zip'" @getList="getList"/>
|
||||
</div>
|
||||
<div @click="handleModule"
|
||||
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
|
||||
@@ -235,7 +235,7 @@ export default {
|
||||
],
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('registrationnumber'),
|
||||
title: this.$t('upgraderegistrationnumber'),
|
||||
align: 'left',
|
||||
dataIndex: 'cpdjbh',
|
||||
ellipsis: true,
|
||||
|
||||
+3
-25
@@ -3,7 +3,7 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
@@ -43,18 +43,13 @@
|
||||
<span slot="upgradetheelectroniccontrollerinvolved" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sjsjkzq"></a-input>
|
||||
</span>
|
||||
<span slot="functiondescription" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.gnbgms"></a-input>
|
||||
</span>
|
||||
<span slot="applicationconditions" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sytjbg"></a-input>
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
<!-- 操作列-->
|
||||
<span slot="operation" slot-scope="text,record">
|
||||
<a class="text-operation" @click="addlineAtBot">{{$t('add')}}</a>
|
||||
<a class="text-operation" @click="deleteData(record)">{{$t('delete')}}</a>
|
||||
<a class="text-operation" @click="deleteData(record)" v-if="dataSource.length > 1">{{$t('delete')}}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div>
|
||||
@@ -155,23 +150,6 @@ export default {
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'upgradetheelectroniccontrollerinvolved' },
|
||||
},
|
||||
{
|
||||
title: this.$t('functiondescription'),
|
||||
align: 'left',
|
||||
dataIndex: 'functiondescription',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'functiondescription' },
|
||||
},
|
||||
{
|
||||
title: this.$t('applicationconditions'),
|
||||
align: 'left',
|
||||
dataIndex: 'applicationconditions',
|
||||
ellipsis: true,
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'applicationconditions' },
|
||||
},
|
||||
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
align: 'left',
|
||||
|
||||
+2
-1
@@ -3,7 +3,7 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
@@ -79,6 +79,7 @@
|
||||
formInline.VINcodelist == null) ? $t('clickUpload') : $t('viewUploadedFiles')
|
||||
}}
|
||||
</a-button>
|
||||
<p>支持cxv格式,大下20M以内,数量1-10个</p>
|
||||
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
@@ -63,7 +63,7 @@
|
||||
<!-- 操作列-->
|
||||
<span slot="operation" slot-scope="text,record">
|
||||
<a class="text-operation" @click="addlineAtBot">{{$t('addcontroller')}}</a>
|
||||
<a class="text-operation" @click="deleteData(record)">{{$t('delete')}}</a>
|
||||
<a class="text-operation" @click="deleteData(record)" v-if="dataSource.length > 1">{{$t('delete')}}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
<div>
|
||||
|
||||
+13
-6
@@ -3,7 +3,7 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
@@ -478,8 +478,12 @@ this.$forceUpdate()
|
||||
border-bottom: none;
|
||||
vertical-align: top;
|
||||
overflow: hidden; /*超出部分隐藏*/
|
||||
text-overflow: ellipsis; /*超出部分省略号表示*/
|
||||
white-space: nowrap;
|
||||
// text-overflow: ellipsis; /*超出部分省略号表示*/
|
||||
white-space: wrap;
|
||||
display: flex;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
line-height: 1.3;
|
||||
}
|
||||
//::v-deep .sider .ant-layout-sider .ant-layout-sider-dark{
|
||||
// min-width: 723px !important;
|
||||
@@ -511,14 +515,17 @@ this.$forceUpdate()
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
line-height: 1.3;
|
||||
border: black solid 1px;
|
||||
vertical-align: top;
|
||||
border-right: none;
|
||||
border-bottom: none;
|
||||
overflow: hidden; /*超出部分隐藏*/
|
||||
text-overflow: ellipsis; /*超出部分省略号表示*/
|
||||
white-space: nowrap;
|
||||
// text-overflow: ellipsis; /*超出部分省略号表示*/
|
||||
white-space: wrap;
|
||||
display: flex;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.sider-span{
|
||||
display: inline-block;
|
||||
|
||||
+10
-5
@@ -3,13 +3,14 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
{{$t('templateDownload')}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form-model class="formAdd" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
@@ -58,7 +59,7 @@
|
||||
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text-add">
|
||||
<div class="title-text-add">
|
||||
<div class="title-text-add plus">
|
||||
<span class="title-text-text" :title="$t('Modelandfunctionrecord')">{{$t('Modelandfunctionrecord')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="dutyTerritory">
|
||||
@@ -288,9 +289,9 @@ import ImportFile from '@/components/ImportFileData/index'
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin-right: 16px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
// white-space: nowrap;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
margin-top: 3px;
|
||||
@@ -336,4 +337,8 @@ import ImportFile from '@/components/ImportFileData/index'
|
||||
.bootom-button{
|
||||
text-align: center!important;
|
||||
}
|
||||
.plus{
|
||||
margin-top: 5px;
|
||||
line-height: 1.4 !important;
|
||||
}
|
||||
</style>
|
||||
+5
-2
@@ -3,7 +3,7 @@
|
||||
<div class="box">
|
||||
<div class="table-operator">
|
||||
<div class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
|
||||
</div>
|
||||
<div @click='handleModule' class="operator-text">
|
||||
<a-icon type="download"/>
|
||||
@@ -260,7 +260,10 @@ export default {
|
||||
display: flex;
|
||||
|
||||
}
|
||||
|
||||
h1{
|
||||
font-weight: 700;
|
||||
font-style: 20px;
|
||||
}
|
||||
.title-text-add {
|
||||
width: 440px;
|
||||
text-align: right;
|
||||
|
||||
@@ -50,13 +50,13 @@
|
||||
</span>
|
||||
<!-- 技术参数-->
|
||||
<span slot="technicalparameters" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjggcs" :max-length="500"></a-input>
|
||||
<a-input :placeholder="$t('ifNot')" :title="record.sjggcs ? record.sjggcs : $t('ifNot')" v-model="record.sjggcs" :max-length="500"></a-input>
|
||||
</span>
|
||||
<span slot="functiondescription" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.gnms" :max-length="500"></a-input>
|
||||
<a-input :placeholder="$t('ifNot')" :title="record.gnms ? record.gnms:$t('ifNot')" v-model="record.gnms" :max-length="500"></a-input>
|
||||
</span>
|
||||
<span slot="applicationconditions" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('pleaseEnter')" :title="$t('ifNot')" v-model="record.sytj" :max-length="500"></a-input>
|
||||
<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>
|
||||
@@ -87,14 +87,12 @@
|
||||
<a v-if="dataSource.length >1" class="text-operation" @click="deleteData(record)">{{$t('delete')}}</a>
|
||||
</span>
|
||||
</a-table>
|
||||
|
||||
<div style="display: inline-block;">
|
||||
<span style="margin-right: 10px;">证明材料:</span>
|
||||
<div>
|
||||
<a-button @click="clickButtonToUpload(fileList)" type="primary"> {{ (fileList === 'null' || fileList === '' ||
|
||||
fileList == null) ? $t('clickUpload') : $t('viewUploadedFiles')
|
||||
}}</a-button>
|
||||
|
||||
<div style='margin: 20px 0px 0px 70px'>
|
||||
<div style='margin-top: 20px'>
|
||||
<p>{{ $t('note') }}</p>
|
||||
<p> {{ $t('format') }}</p>
|
||||
</div>
|
||||
@@ -137,7 +135,7 @@ import ImportFile from '@/components/ImportFileData/index'
|
||||
gnmc:'车道偏离预警(LDW)',
|
||||
},
|
||||
{
|
||||
gnmc:'盲区监测(BSD)',
|
||||
gnmc:'百区监测(BSD)',
|
||||
},
|
||||
{
|
||||
gnmc:'驾驶员疲劳监测(DFM)',
|
||||
|
||||
+13
-9
@@ -1145,7 +1145,7 @@ button{
|
||||
line-height: 50px;
|
||||
}
|
||||
.text-box-three{
|
||||
isplay: inline-block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: #e8e8e8 solid 1px;
|
||||
width: 100%;
|
||||
@@ -1153,7 +1153,7 @@ button{
|
||||
line-height: 250px;
|
||||
}
|
||||
.text-box-four{
|
||||
isplay: inline-block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: #e8e8e8 solid 1px;
|
||||
width: 100%;
|
||||
@@ -1161,15 +1161,18 @@ button{
|
||||
line-height: 600px;
|
||||
}
|
||||
.four-text-text{
|
||||
isplay: inline-block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: #e8e8e8 solid 1px;
|
||||
width: 50%;
|
||||
height: 600px;
|
||||
line-height: 600px;
|
||||
line-height: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.four-text{
|
||||
isplay: inline-block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: #e8e8e8 solid 1px;
|
||||
width: 50%;
|
||||
@@ -1177,7 +1180,7 @@ button{
|
||||
line-height: 150px;
|
||||
}
|
||||
.text-box-five{
|
||||
isplay: inline-block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
border: #e8e8e8 solid 1px;
|
||||
width: 100%;
|
||||
@@ -1185,9 +1188,10 @@ button{
|
||||
line-height: 100px;
|
||||
}
|
||||
span{
|
||||
overflow: hidden; /*超出部分隐藏*/
|
||||
text-overflow: ellipsis; /*超出部分省略号表示*/
|
||||
white-space: nowrap;
|
||||
/* overflow: hidden; /*超出部分隐藏*/
|
||||
/* text-overflow: ellipsis; 超出部分省略号表示 */
|
||||
white-space: wrap;
|
||||
/* word-wrap: normal; */
|
||||
}
|
||||
.item-input{
|
||||
margin-top: 9px;
|
||||
|
||||
+1
-1
@@ -47,7 +47,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>
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</span>
|
||||
<!-- 技术参数-->
|
||||
<span slot="technicalparameters" slot-scope="text,record">
|
||||
<a-input :placeholder="$t('ifNot')" :title="$t('ifNot')" v-model="record.sjbgcs" :max-length="500"></a-input>
|
||||
<a-input :placeholder="$t('ifNot')" :title="record.sjbgcs ? record.sjbgcs : $t('ifNot')" v-model="record.sjbgcs" :max-length="500"></a-input>
|
||||
</span>
|
||||
<!-- 上传附件-->
|
||||
<span slot="architecturetopologydiagram" slot-scope="text,record">
|
||||
@@ -99,7 +99,7 @@
|
||||
<a-button type="primary" style='width: 73px' @click='next'>{{$t('next')}}</a-button>
|
||||
</div>
|
||||
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
|
||||
<uploadFileOta ref="uploadFileOta" @uploadSuccess="uploadSuccessOta"></uploadFileOta>
|
||||
<uploadFileOta ref="uploadFileOta" :acceptcode="'doc,docx,pdf'" @uploadSuccess="uploadSuccessOta"></uploadFileOta>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -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'"/>
|
||||
@@ -40,7 +41,7 @@
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.batjsj"
|
||||
style="width: 100%"/>
|
||||
style="width: 90%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -51,9 +52,10 @@
|
||||
<span class="title-text-text" :title="$t('remarks')">
|
||||
{{$t('remarks')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="remarks">
|
||||
<a-form-model-item class="itemModel" prop="bz">
|
||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('remarks')"
|
||||
v-model="formInline.bz"
|
||||
style="width: 90%"
|
||||
:rows="4"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -75,7 +77,7 @@ export default {
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
formInline: {
|
||||
bazt:'',
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
bz:'',
|
||||
},
|
||||
@@ -94,6 +96,9 @@ export default {
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
bz: [
|
||||
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
|
||||
]
|
||||
// designDeadline: [
|
||||
// {
|
||||
// required: true,
|
||||
@@ -139,6 +144,11 @@ export default {
|
||||
edit(row) {
|
||||
if(row instanceof Array){
|
||||
this.ids = row.join(',')
|
||||
this.formInline = {
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
bz:'',
|
||||
}
|
||||
}else{
|
||||
this.formInline.bazt = row.bazt ? row.bazt : undefined
|
||||
this.formInline.batjsj = row.batjsj
|
||||
@@ -172,9 +182,15 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
selectchange(value){
|
||||
this.$nextTick(() => {
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.validateField('bazt')
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.formInline = {
|
||||
bazt:'',
|
||||
bazt:undefined,
|
||||
batjsj:'',
|
||||
bz:'',}
|
||||
this.ids = ''
|
||||
@@ -259,7 +275,7 @@ export default {
|
||||
.box-input {
|
||||
display: inline-block;
|
||||
height: 38px;
|
||||
width: 100%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.itemModel {
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('upgraderegistrationnumber')">
|
||||
<span>{{ $t('upgraderegistrationnumber') }}</span>
|
||||
<div class="title-text" :title="$t('registrationnumber')">
|
||||
<span>{{ $t('registrationnumber') }}</span>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter') + $t('upgraderegistrationnumber')"
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter') + $t('registrationnumber')"
|
||||
v-model="queryParam.cpdjbh"></a-input>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -104,7 +104,7 @@
|
||||
{{ $t('datamaintenance') }}
|
||||
</div>
|
||||
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" />
|
||||
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getList"/>
|
||||
</div>
|
||||
<div @click="handleModule" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
|
||||
<a-icon type="download" />
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<uploadFileChange ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFileChange>
|
||||
<uploadFileChange :isParameter="true" ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFileChange>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -402,6 +402,7 @@
|
||||
<SelectedBy ref="SelectedByRef" :isSingleChoice="true"
|
||||
:title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy>
|
||||
<viewFileModel ref="viewFileModelRef"/>
|
||||
<JLoading :loading="JTextLoading">{{ $t('Submitting') }}</JLoading>
|
||||
<!-- <a-modal-->
|
||||
<!-- :title="listTitle"-->
|
||||
<!-- :width="500"-->
|
||||
@@ -514,6 +515,7 @@
|
||||
pageNo: 1,
|
||||
pageSize: 50,
|
||||
total: 0,
|
||||
JTextLoading: false,
|
||||
CertificationColor: {
|
||||
'Test passed': 'accordColor',
|
||||
'Test failed': 'nonConformityColor',
|
||||
@@ -973,25 +975,49 @@
|
||||
processResetClick() {
|
||||
let _this = this
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
this.$confirm({
|
||||
content: _this.$t('confirmResetProcess'),
|
||||
onOk() {
|
||||
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
|
||||
postAction('/project/projectCertificationInventoryEO/resetFlow', {
|
||||
ids: idList.join(','),
|
||||
projectLibraryId: _this.$route.query.id,
|
||||
operatorType: 'certificationInventoryStudioReset'
|
||||
}).then((res) => {
|
||||
if (res.success) {
|
||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
||||
_this.selectedRowKeys = []
|
||||
_this.getList()
|
||||
} else {
|
||||
_this.$message.warning(res.message)
|
||||
}
|
||||
})
|
||||
let ids = []
|
||||
let notConditions = []
|
||||
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
|
||||
if (this.selectedRowKeysList[i].flowStatus == 'List to be released') {
|
||||
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
|
||||
} else {
|
||||
ids.push(this.selectedRowKeysList[i].id)
|
||||
}
|
||||
})
|
||||
}
|
||||
let data = ''
|
||||
if (notConditions && notConditions.length > 0) {
|
||||
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('dataWithProcessReleasedCannotBeReset')
|
||||
}
|
||||
if (ids && ids.length > 0) {
|
||||
this.$confirm({
|
||||
content: _this.$t('confirmResetProcess'),
|
||||
onOk() {
|
||||
_this.JTextLoading = true
|
||||
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
|
||||
postAction('/project/projectCertificationInventoryEO/resetFlow', {
|
||||
ids: idList.join(','),
|
||||
projectLibraryId: _this.$route.query.id,
|
||||
operatorType: 'certificationInventoryStudioReset'
|
||||
}).then((res) => {
|
||||
if (res.success) {
|
||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
||||
_this.selectedRowKeys = []
|
||||
_this.getList()
|
||||
if (notConditions && notConditions.length > 0) {
|
||||
_this.failedMessage(data)
|
||||
}
|
||||
_this.JTextLoading = false
|
||||
} else {
|
||||
_this.$message.warning(res.message)
|
||||
_this.JTextLoading = false
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.failedMessage(data)
|
||||
this.JTextLoading = false
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
|
||||
@@ -1528,7 +1528,7 @@
|
||||
_this.selectedRowKeys = []
|
||||
_this.getList()
|
||||
if (detailedWarningList && detailedWarningList.length > 0) {
|
||||
this.promptInformation(detailedWarningList)
|
||||
_this.promptInformation(detailedWarningList)
|
||||
}
|
||||
} else {
|
||||
_this.$message.warning(_this.$t('operationFailed'))
|
||||
@@ -1689,19 +1689,20 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
content.push(this.dataSource[i])
|
||||
// content.push(this.dataSource[i])
|
||||
isTrue = true
|
||||
}
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < content.length; i++) {
|
||||
if (content[i].designFlowStatus == 'List to be released' &&
|
||||
content[i].verifyFlowStatus == 'List to be released') {
|
||||
isTrue = false
|
||||
|
||||
} else {
|
||||
isTrue = true
|
||||
}
|
||||
}
|
||||
// for (let i = 0; i < content.length; i++) {
|
||||
// if (content[i].designFlowStatus == 'List to be released' &&
|
||||
// content[i].verifyFlowStatus == 'List to be released') {
|
||||
// isTrue = false
|
||||
//
|
||||
// } else {
|
||||
// isTrue = true
|
||||
// }
|
||||
// }
|
||||
if (isTrue) {
|
||||
this.changeInterface(selectedRowKeys)
|
||||
}
|
||||
@@ -2389,9 +2390,11 @@
|
||||
_this.detailedWarningList.push(
|
||||
< div > { dataList[i].serialNumber + _this.$t('pleaseSelectTheDataverificationVerified') } < /div>)
|
||||
}
|
||||
|
||||
}
|
||||
if (this.requestsNum == 0) {
|
||||
_this.promptInformation(_this.detailedWarningList)
|
||||
this.$message.warning(_this.$t('theDataYouInitiate'))
|
||||
// _this.promptInformation(_this.detailedWarningList)
|
||||
this.JTextLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user