合并分支 'fix_20230524' 到 'master'

Fix 20230524

查看合并请求 laws-nio/laws-weilai!332
This commit is contained in:
高嵩
2023-06-08 19:44:04 +08:00
35 changed files with 979 additions and 403 deletions
@@ -127,7 +127,11 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
@Cacheable(value = CacheConstant.SYS_DICT_CACHE,key = "#code+':'+#key+#cut")
public String queryDictTextByKeyEn(String code, String key,String cut) {
log.debug("无缓存dictText的时候调用这里!");
return sysDictMapper.queryDictTextByKeyEn(code, key);
if (CutEnum.CN.getValue().equals(cut)) {
return sysDictMapper.queryDictTextByKey(code, key);
}else{
return sysDictMapper.queryDictTextByKeyEn(code, key);
}
}
/**
@@ -12,6 +12,8 @@ import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.extRepo.entity.ExtRepoData;
import com.jero.modules.ota.entity.OtaBaCxList;
import com.jero.modules.ota.service.IOtaBaCxListService;
import com.jero.modules.ota.utils.ComparisonUtil;
import com.jero.modules.system.service.ISysDictService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -26,6 +28,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -43,6 +46,8 @@ import java.util.Map;
public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxListService> {
@Autowired
private IOtaBaCxListService otaBaCxListService;
@Autowired
private ISysDictService sysDictService;
/**
* 分页列表查询
@@ -94,7 +99,23 @@ public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxL
}
queryWrapper.orderByDesc(OtaBaCxList::getCreateTime);
IPage<OtaBaCxList> pageList = otaBaCxListService.page(page, queryWrapper);
return Result.OK(pageList);
for (OtaBaCxList pa : pageList.getRecords()) {
pa.setBazt_dictText(sysDictService.queryDictTextByKeyEn("recordstatus", pa.getBazt(), req.getParameter("cut")));
}
Map<String, Object> resMap = new HashMap<>();
resMap.put("list", pageList);
//有审批周期的数据
int days = 0;
int spzqSum = 0;
List<OtaBaCxList> list = otaBaCxListService.list(queryWrapper);
for (OtaBaCxList cx : list) {
if (StringUtils.isNotEmpty(cx.getSpzq())) {
days++;
spzqSum += Integer.parseInt(cx.getSpzq());
}
}
resMap.put("pjspzq", days == 0 ? 0 : Math.floor(spzqSum / days));
return Result.OK(resMap);
}
/**
@@ -219,9 +240,10 @@ public class OtaBaCxListController extends JeroController<OtaBaCxList, IOtaBaCxL
String ids = json.getString("ids");
String bazt = json.getString("bazt");
String batjsj = json.getString("batjsj");
String tgthsj = json.getString("tgthsj");
String bz = json.getString("bz");
String cut = json.getString("cut");
otaBaCxListService.batchRecord(ids, bazt, batjsj, bz, cut);
otaBaCxListService.batchRecord(ids, bazt, batjsj,tgthsj, bz, cut);
return Result.OK("备案维护成功!");
}
@@ -12,6 +12,8 @@ import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.ota.entity.OtaBaCxList;
import com.jero.modules.ota.entity.OtaBaSjList;
import com.jero.modules.ota.service.IOtaBaSjListService;
import com.jero.modules.ota.utils.ComparisonUtil;
import com.jero.modules.system.service.ISysDictService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -25,7 +27,9 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -41,6 +45,8 @@ import java.util.List;
public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjListService> {
@Autowired
private IOtaBaSjListService otaBaSjListService;
@Autowired
private ISysDictService sysDictService;
/**
* 分页列表查询
@@ -90,8 +96,24 @@ public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjL
}
queryWrapper.orderByDesc(OtaBaSjList::getCreateTime);
IPage<OtaBaSjList> pageList = otaBaSjListService.page(page, queryWrapper);
this.otaBaSjListService.disposeData(pageList.getRecords(),otaBaSjList);
return Result.OK(pageList);
for (OtaBaSjList pa : pageList.getRecords()) {
pa.setBazt_dictText(sysDictService.queryDictTextByKeyEn("recordstatus", pa.getBazt(), req.getParameter("cut")));
}
this.otaBaSjListService.disposeData(pageList.getRecords(), otaBaSjList);
Map<String, Object> resMap = new HashMap<>();
resMap.put("list", pageList);
//有审批周期的数据
int days = 0;
int spzqSum = 0;
List<OtaBaSjList> list = otaBaSjListService.list(queryWrapper);
for (OtaBaSjList sj : list) {
if (StringUtils.isNotEmpty(sj.getSpzq())) {
days++;
spzqSum += Integer.parseInt(sj.getSpzq());
}
}
resMap.put("pjspzq", days == 0 ? 0 : Math.floor(spzqSum / days));
return Result.OK(resMap);
}
/**
@@ -215,9 +237,10 @@ public class OtaBaSjListController extends JeroController<OtaBaSjList, IOtaBaSjL
String ids = json.getString("ids");
String bazt = json.getString("bazt");
String batjsj = json.getString("batjsj");
String tgthsj = json.getString("tgthsj");
String bz = json.getString("bz");
String cut = json.getString("cut");
otaBaSjListService.batchRecord(ids, bazt, batjsj, bz, cut);
otaBaSjListService.batchRecord(ids, bazt, batjsj, tgthsj, bz, cut);
return Result.OK("备案维护成功!");
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -97,6 +98,9 @@ public class OtaBaCxList implements Serializable {
@Dict(dicCode = "recordstatus")
private java.lang.String bazt;
@TableField(exist = false)
private java.lang.String bazt_dictText;
/**备案提交时间*/
@Excel(name = "备案提交时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@@ -126,6 +130,22 @@ public class OtaBaCxList implements Serializable {
@ApiModelProperty(value = "在线升级驾驶附件")
private java.lang.String zxsjjsfj;
/**通过退回时间*/
@Excel(name = "通过退回时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "通过退回时间")
private java.util.Date tgthsj;
/**审批周期*/
@Excel(name = "审批周期", width = 15)
@ApiModelProperty(value = "审批周期")
private java.lang.String spzq;
public void updateData(OtaBaCxJbxx otaBaCxJbxx){
this.cpdjbh = otaBaCxJbxx.getDjbh();
this.ggpc = otaBaCxJbxx.getGgpc();
@@ -125,6 +125,9 @@ public class OtaBaSjList implements Serializable {
@Dict(dicCode = "recordstatus")
private java.lang.String bazt;
@TableField(exist = false)
private java.lang.String bazt_dictText;
/**
* 备案提交时间
*/
@@ -168,6 +171,18 @@ public class OtaBaSjList implements Serializable {
@TableField(exist = false)
private String rwmc;
/**通过退回时间*/
@Excel(name = "通过退回时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "通过退回时间")
private java.util.Date tgthsj;
/**审批周期*/
@Excel(name = "审批周期", width = 15)
@ApiModelProperty(value = "审批周期")
private java.lang.String spzq;
public void updateData(OtaBaSjSjmbcx otaBaSjSjmbcx) {
this.cpdjbh = otaBaSjSjmbcx.getBabh();
this.ggpc = otaBaSjSjmbcx.getBapc();
@@ -64,7 +64,7 @@ public interface IOtaBaCxListService extends IService<OtaBaCxList> {
/**
* 备案维护
*/
void batchRecord(String ids, String bazt, String batjsj, String bz, String cut);
void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut);
void exportTemplate(HttpServletResponse response, HttpServletRequest request);
@@ -66,7 +66,7 @@ public interface IOtaBaSjListService extends IService<OtaBaSjList> {
/**
* 备案维护
*/
void batchRecord(String ids, String bazt, String batjsj, String bz, String cut);
void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut);
void exportTemplate(HttpServletResponse response, HttpServletRequest request) throws Exception;
@@ -63,17 +63,17 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
* @return
*/
public OtaBaCxJbxx add(OtaBaCxJbxx otaBaCxJbxx) throws Exception {
String ggpc = otaBaCxJbxx.getGgpc();
String djbh = otaBaCxJbxx.getDjbh();
//对比填写记录用的
OtaBaCxJbxx otaBaCxJbxxOld = new OtaBaCxJbxx();
Date now = new Date();
OtaBaCxList otaBaCxList;
if (StringUtils.isEmpty(otaBaCxJbxx.getOtaId())) {
if (StringUtils.isNotEmpty(ggpc)) {
if (StringUtils.isNotEmpty(djbh)) {
List<OtaBaCxJbxx> xxList = this.list();
for (OtaBaCxJbxx xx : xxList) {
if (ggpc.equals(xx.getGgpc())) {
throw new JeroBootException("公告批次重复");
if (djbh.equals(xx.getDjbh())) {
throw new JeroBootException("产品登记编号重复");
}
}
}
@@ -87,11 +87,11 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
otaBaCxJbxx.setCreateTime(now);
} else {
otaBaCxJbxxOld = this.getByOtaId(otaBaCxJbxx.getOtaId());
if (StringUtils.isNotEmpty(ggpc)) {
if (StringUtils.isNotEmpty(djbh)) {
List<OtaBaCxJbxx> xxList = this.list();
for (OtaBaCxJbxx xx : xxList) {
if (!xx.getOtaId().equals(otaBaCxJbxx.getOtaId()) && ggpc.equals(xx.getGgpc())) {
throw new JeroBootException("公告批次重复");
if (!xx.getOtaId().equals(otaBaCxJbxx.getOtaId()) && djbh.equals(xx.getDjbh())) {
throw new JeroBootException("产品登记编号重复");
}
}
}
@@ -241,26 +241,25 @@ public class OtaBaCxJbxxServiceImpl extends ServiceImpl<OtaBaCxJbxxMapper, OtaBa
if (cpbh.length() > 500) {
throw new JeroBootException("产品登记编号字数超过500");
}
jbxx.setDjbh(cpbh);
row = s.getRow(4);
cell = row.getCell(1);
String ggpc = ImportFileUtil.getCellValue(cell, wb);
if (StringUtils.isNotEmpty(ggpc)) {
if (StringUtils.isNotEmpty(cpbh)) {
List<OtaBaCxJbxx> xxList = this.list();
for (OtaBaCxJbxx xx : xxList) {
if (ggpc.equals(xx.getGgpc())) {
throw new JeroBootException("公告批次重复");
if (cpbh.equals(xx.getDjbh())) {
throw new JeroBootException("产品登记编号重复");
}
}
}
jbxx.setGgpc(ggpc);
jbxx.setDjbh(cpbh);
row = s.getRow(1);
cell = row.getCell(1);
jbxx.setQymc(ImportFileUtil.getCellValue(cell, wb));
row = s.getRow(3);
cell = row.getCell(1);
jbxx.setCplb(ImportFileUtil.getCellValueDict(cell, wb, "product_category", sysDictService, cut));
row = s.getRow(4);
cell = row.getCell(1);
jbxx.setGgpc(ImportFileUtil.getCellValue(cell, wb));
row = s.getRow(5);
cell = row.getCell(1);
jbxx.setCpsb(ImportFileUtil.getCellValue(cell, wb));
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -152,15 +153,33 @@ public class OtaBaCxListServiceImpl extends ServiceImpl<OtaBaCxListMapper, OtaBa
* 备案维护
*/
@Override
public void batchRecord(String ids, String bazt, String batjsj, String bz, String cut) {
public void batchRecord(String ids, String bazt, String batjsj, String tgthsj,String bz, String cut) {
try {
if (StringUtils.isNotEmpty(ids)) {
String[] idList = ids.split(",");
for (String id : idList) {
OtaBaCxList otaBaCxList = this.queryById(id);
otaBaCxList.setBazt(bazt);
otaBaCxList.setBatjsj(sdf.parse(batjsj));
otaBaCxList.setBatjsj(null);
if (StringUtils.isNotEmpty(batjsj)) {
otaBaCxList.setBatjsj(sdf.parse(batjsj));
}
otaBaCxList.setTgthsj(null);
if (StringUtils.isNotEmpty(tgthsj)) {
otaBaCxList.setTgthsj(sdf.parse(tgthsj));
}
otaBaCxList.setSpzq(null);
if(null != otaBaCxList.getBatjsj() && null != otaBaCxList.getTgthsj()){
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(otaBaCxList.getBatjsj());
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(otaBaCxList.getTgthsj());
int daysDifference = (int) Math.floor((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / (1000 * 60 * 60 * 24));
otaBaCxList.setSpzq(String.valueOf(daysDifference));
}
otaBaCxList.setBz(bz);
this.deleteById(otaBaCxList.getId());
this.saveOrUpdate(otaBaCxList);
//添加历史记录数据
OtaBaCxLsjl lsjl = new OtaBaCxLsjl();
@@ -141,7 +141,7 @@ public class OtaBaSjGnxtwhServiceImpl extends ServiceImpl<OtaBaSjGnxtwhMapper, O
for (OtaBaSjGnxtwh wh : list) {
String[] strs = wh.getDykzq().split(",");
for (String str : strs) {
if (str.equals(kzq)) {
if (kzq.contains(str)) {
return wh.getGnxt();
}
}
@@ -1,6 +1,7 @@
package com.jero.modules.ota.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.ota.entity.OtaBaSjList;
@@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -67,6 +69,10 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
@Autowired
private IOtaBaSjQtsjxxService otaBaSjQtsjxxService;
@Override
public <E extends IPage<OtaBaSjList>> E page(E page) {
return super.page(page);
}
/**
* 保存
@@ -150,15 +156,33 @@ public class OtaBaSjListServiceImpl extends ServiceImpl<OtaBaSjListMapper, OtaBa
* 备案维护
*/
@Override
public void batchRecord(String ids, String bazt, String batjsj, String bz, String cut) {
public void batchRecord(String ids, String bazt, String batjsj,String tgthsj, String bz, String cut) {
try {
if (StringUtils.isNotEmpty(ids)) {
String[] idList = ids.split(",");
for (String id : idList) {
OtaBaSjList otaBaSjList = this.queryById(id);
otaBaSjList.setBazt(bazt);
otaBaSjList.setBatjsj(sdf.parse(batjsj));
otaBaSjList.setBatjsj(null);
if (StringUtils.isNotEmpty(batjsj)) {
otaBaSjList.setBatjsj(sdf.parse(batjsj));
}
otaBaSjList.setTgthsj(null);
if (StringUtils.isNotEmpty(tgthsj)) {
otaBaSjList.setTgthsj(sdf.parse(tgthsj));
}
otaBaSjList.setSpzq(null);
if(null != otaBaSjList.getBatjsj() && null != otaBaSjList.getTgthsj()){
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(otaBaSjList.getBatjsj());
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(otaBaSjList.getTgthsj());
int daysDifference = (int) Math.floor((calendar2.getTimeInMillis() - calendar1.getTimeInMillis()) / (1000 * 60 * 60 * 24));
otaBaSjList.setSpzq(String.valueOf(daysDifference));
}
otaBaSjList.setBz(bz);
this.deleteById(otaBaSjList.getId());
this.saveOrUpdate(otaBaSjList);
//添加历史记录数据
OtaBaSjLsjl lsjl = new OtaBaSjLsjl();
@@ -31,9 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -262,19 +260,35 @@ public class OtaBaSjSjmbclServiceImpl extends ServiceImpl<OtaBaSjSjmbclMapper, O
mbcl.setVinList(vinList.get(0).getVin() + "-" + vinList.get(vinList.size() - 1).getVin());
//生成VIN码文件
LinkedHashMap map = new LinkedHashMap();
map.put("1", "VIN");
List exportData = new ArrayList<Map>();
Map vrow = null;
for (int i = 0; i < vinList.size(); i++) {
vrow = new LinkedHashMap<String, String>();
vrow.put("1", vinList.get(i).getVin());
exportData.add(vrow);
}
// LinkedHashMap map = new LinkedHashMap();
// map.put("1", "VIN");
// List exportData = new ArrayList<Map>();
// Map vrow = null;
// for (int i = 0; i < vinList.size(); i++) {
// vrow = new LinkedHashMap<String, String>();
// vrow.put("1", vinList.get(i).getVin());
// exportData.add(vrow);
// }
// String fileName = "VIN码.csv";
// File file = CSVUtil.createCSVFile(exportData, map, uploadPath + System.currentTimeMillis(), fileName);
// String filePath = uploadPath + "/" + file.getName();
String fileName = "VIN码.csv";
File file = CSVUtil.createCSVFile(exportData, map, uploadPath + System.currentTimeMillis(), fileName);
String filePath = uploadPath + "/" + file.getName();
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(file), "/ota", "", CutEnum.CN.getValue());
File csvFileDir = new File(uploadPath + System.currentTimeMillis());
csvFileDir.mkdirs();
File csvFile = new File(csvFileDir.getAbsolutePath() + "/" + fileName);
try (BufferedWriter writer = new BufferedWriter(new FileWriter(csvFile))) {
// 写入数据
for (VinObj data : vinList) {
String row = data.getVin();
writer.write(row);
writer.newLine();
}
} catch (IOException e) {
System.err.println("生成CSV文件失败:" + e.getMessage());
}
OSSFile ossFile = ossFileService.uploadLocalOfCos(ImportFileUtil.createMfileByFile(csvFile), "/ota", "", CutEnum.CN.getValue());
mbcl.setCsv(ossFile.getId());
}
}
@@ -19,6 +19,7 @@ import com.jero.modules.ota.utils.ComparisonUtil;
import com.jero.modules.ota.utils.ImportFileUtil;
import com.jero.modules.project.util.WordUtil;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.service.ISysDictService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -193,6 +194,17 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
if (ObjectUtil.isEmpty(res)) {
res = getByOtaId(otaIdT);
}
if (ObjectUtil.isNotEmpty(res)) {
Collections.sort(res, (arg0, arg1) -> {
if (null == arg0.getXtmc()) {
arg0.setXtmc("");
}
if (null == arg1.getXtmc()) {
arg1.setXtmc("");
}
return arg0.getXtmc().compareTo(arg1.getXtmc());
});
}
JSONObject json = new JSONObject();
json.put("list", res);
return json;
@@ -257,13 +269,15 @@ public class OtaBaSjSjxtbhServiceImpl extends ServiceImpl<OtaBaSjSjxtbhMapper, O
List<String> oldYjbbList = otaBaSjSjxtbh.stream().map(OtaBaSjSjxtbh::getYjbb).distinct().collect(Collectors.toList());
List<String> oldTempFileNameList = new ArrayList<>();
oldYjbbList.forEach(sjSjxtbh -> {
oldTempFileNameList.add(sjSjxtbh.replaceAll("","") + ".docx");
if (StringUtils.isNotEmpty(sjSjxtbh)) {
oldTempFileNameList.add(sjSjxtbh.replaceAll("", "") + ".docx");
}
});
int tempFileIndex = 1;
String tempFilePath = uploadPath + "tempFile" + "/" + otaId;
File tempFile = new File(tempFilePath);
if(!tempFile.exists()){
if (!tempFile.exists()) {
tempFile.mkdirs();
}
List<String> tempFileNames = new ArrayList<>();
@@ -389,27 +389,28 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
for(ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList){
if(allList.size()>0){
if(!allList.contains(dutyPerson)){
if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue())){
if(relatedPersonnel.getEngineeringInterfacePerson() != null){
String engineeringInterfacePerson = dutyPerson+","+relatedPersonnel.getEngineeringInterfacePerson();
relatedPersonnel.setEngineeringInterfacePerson(engineeringInterfacePerson);
}else {
relatedPersonnel.setEngineeringInterfacePerson(dutyPerson);
}
}else if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.REGULATI_ENGINEER.getValue())){
if(relatedPersonnel.getEngineerLawSet() != null){
String engineerLawSet = dutyPerson+","+relatedPersonnel.getEngineerLawSet();
relatedPersonnel.setEngineerLawSet(engineerLawSet);
}else {
relatedPersonnel.setEngineerLawSet(dutyPerson);
}
}else if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())){
if(relatedPersonnel.getEngineerAttSet() !=null){
String engineerAttSet = dutyPerson+","+relatedPersonnel.getEngineerAttSet();
relatedPersonnel.setEngineerAttSet(engineerAttSet);
}else {
relatedPersonnel.setEngineerAttSet(dutyPerson);
if (StringUtils.isNotEmpty(roleCode)) {
if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue())){
if(relatedPersonnel.getEngineeringInterfacePerson() != null){
String engineeringInterfacePerson = dutyPerson+","+relatedPersonnel.getEngineeringInterfacePerson();
relatedPersonnel.setEngineeringInterfacePerson(engineeringInterfacePerson);
}else {
relatedPersonnel.setEngineeringInterfacePerson(dutyPerson);
}
}else if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.REGULATI_ENGINEER.getValue())){
if(relatedPersonnel.getEngineerLawSet() != null){
String engineerLawSet = dutyPerson+","+relatedPersonnel.getEngineerLawSet();
relatedPersonnel.setEngineerLawSet(engineerLawSet);
}else {
relatedPersonnel.setEngineerLawSet(dutyPerson);
}
}else if(roleCode.equals(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())){
if(relatedPersonnel.getEngineerAttSet() !=null){
String engineerAttSet = dutyPerson+","+relatedPersonnel.getEngineerAttSet();
relatedPersonnel.setEngineerAttSet(engineerAttSet);
}else {
relatedPersonnel.setEngineerAttSet(dutyPerson);
}
}
}
}
+9 -1
View File
@@ -1271,7 +1271,7 @@ module.exports = {
turnOnAutoMatch:'Turn On Auto Match',
Adjustareasofresponsibility:'Adjust areas of responsibility',
regulatoryTechnicalAssessment:'Regulatory Technical Assessment',
punctuationmark:'You can only enter English punctuation marks except the # sign and commas',
punctuationmark:'You can only enter English punctuation marks except the # sign',
created: 'Time of Creation',
updated:'Last Updated',
OpenOne:'Open',
@@ -1840,4 +1840,12 @@ module.exports = {
toResubmit:'To Resubmit',
selectDesignConformanceAsConformance:'Select Design Conformance verification process state as Conformance or Verify conformance verification process state as conformance obtained data',
submissionProcess:'Submission Process',
localapproval1:'Local Approval1',
localapproval2:'Local Approval2',
averageapprovalperiod:'Average approval period',
day:'day',
passreturntime:'Pass/return time',
approvalcycle:'Approval cycle(day)',
transittime:'Transit Time',
returntime:'Return time',
}
+9 -1
View File
@@ -1376,7 +1376,7 @@ module.exports = {
regulatoryTechnicalAssessment: '法规技术评估',
OpenOne: '公开',
Privacy: '私密',
punctuationmark: '只能输入除#和逗号外的英文标点符号',
punctuationmark: '只能输入除#号外的英文标点符号',
created: '创建时间',
updated: '更新时间',
optionDropDownBox: '下拉选择',
@@ -1941,4 +1941,12 @@ module.exports = {
toResubmit:'重新提交',
selectDesignConformanceAsConformance:'请选择设计符合性确认流程状态为符合或验证符合性确认流程状态为符合的数据',
submissionProcess:'提交流程',
localapproval1:'地方批准1',
localapproval2:'地方批准2',
averageapprovalperiod:'平均审批周期',
day:'天',
passreturntime:'通过/退回时间',
approvalcycle:'审批周期()',
transittime:'通过时间',
returntime:'退回时间',
}
@@ -30,11 +30,11 @@
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('filingtime')">
{{$t('filingtime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="batjsj">
<a-form-model-item class="itemModel" :prop="!propflag?'batjsj':''" :key="propflag">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('filingtime')"
@change="dateChange({db_field_name:'batjsj'})"
@@ -46,6 +46,44 @@
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-if='transittime'>
<div class="box-title-text">
<div class="title-text">
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('transittime')">
{{$t('transittime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="tgthsj">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('transittime')"
@change="dateChange({db_field_name:'tgthsj'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.tgthsj"
:disabled="false"
style="width: 90%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-if='returntime'>
<div class="box-title-text">
<div class="title-text">
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('returntime')">
{{$t('returntime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="tgthsj">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('returntime')"
@change="dateChange({db_field_name:'tgthsj'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.tgthsj"
:disabled="false"
style="width: 90%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
@@ -77,9 +115,13 @@ export default {
return {
visible: false,
confirmLoading: false,
transittime:false,
returntime:false,
propflag: false,
formInline: {
bazt:undefined,
batjsj:'',
tgthsj:'',
bz:'',
},
rules: {
@@ -99,7 +141,14 @@ export default {
],
bz: [
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
]
],
tgthsj: [
{
required: true,
message: this.$t('cannotEmpty'),
trigger: 'change'
}
],
// listConfirmation: [
// {
// required: true,
@@ -161,16 +210,43 @@ export default {
this.ids = row.join(',')
this.formInline = {
bazt:undefined,
tgthsj:'',
batjsj:'',
bz:'',
}
this.propflag = true
this.transittime = false
this.returntime = false
}else{
this.formInline.bazt = row.bazt ? row.bazt : undefined
this.formInline.batjsj = row.batjsj
this.formInline.tgthsj = row.tgthsj
this.formInline.bz = row.bz
this.ids = row.id
if (this.formInline.bazt == 1) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if (this.formInline.bazt == 2) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if(this.formInline.bazt == 4){
this.propflag = false
this.transittime = true
this.returntime = false
} else if(this.formInline.bazt == 5){
this.propflag = false
this.returntime = true
this.transittime = false
}else{
this.propflag = false
this.transittime = false
this.returntime = false
}
}
this.visible = true
this.$nextTick(() => {
this.$refs.ruleForm.clearValidate()
})
@@ -197,7 +273,29 @@ export default {
}
})
},
selectchange(value){
selectchange(value) {
console.log(value)
if (value == 1) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if (value == 2) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if(value == 4){
this.propflag = false
this.transittime = true
this.returntime = false
} else if(value == 5){
this.propflag = false
this.returntime = true
this.transittime = false
}else{
this.propflag = false
this.transittime = false
this.returntime = false
}
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField('bazt')
@@ -91,36 +91,36 @@
</div>
<div class="table-operator">
<div @click="createvehicleandfunctionrecords"
v-has="'regulatoryAndTechnicalAssessment:initiationProcess'"
v-has="'otasj:cjcxjgnba'"
class="operator-text">
<a-icon type="plus"/>
{{$t('createanupgradeactivityrecord')}}
</div>
<div @click="citeforrecord"
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
v-has="'otasj:yyba'"
class="operator-text">
<a-icon type="solution"/>
{{$t('citeforrecord')}}
</div>
<div @click="maintenanceallClick()"
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
v-has="'otasj:sjwh'"
class="operator-text">
<a-icon type="setting"/>
{{$t('datamaintenance')}}
</div>
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
<div v-has="'otasj:sjdr'"
class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true"
:accept="'.zip'" @getList="getList"/>
</div>
<div @click="handleModule"
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
v-has="'otasj:mbxz'"
class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
<div @click="gnxtwhClick"
v-has="'regulatoryAndTechnicalAssessment:batchDelete'"
v-has="'otasj:onxtwh'"
class="operator-text">
<a-icon type="solution"/>
{{$t('gnxtwh')}}
@@ -159,6 +159,9 @@
@click="deleteData(record)">{{$t('delete')}}</a>
</span>
</a-table>
<div>
{{$t('averageapprovalperiod')}} : {{number}}{{$t('day')}}
</div>
<div class="page" v-if="dataSource && dataSource.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
@@ -205,6 +208,7 @@ export default {
importZipUrl: '/ota/otaBaSjList/importData',//导入
},
number:'',
visible: false,
loading: false,
toggleSearchStatus: false,
@@ -301,9 +305,23 @@ export default {
title: this.$t('filingtime'),
align: 'left',
ellipsis: true,
width: 140,
width: 170,
dataIndex: 'batjsj'
},
{
title: this.$t('passreturntime'),
align: 'left',
ellipsis: true,
width: 170,
dataIndex: 'tgthsj'
},
{
title: this.$t('approvalcycle'),
align: 'left',
ellipsis: true,
width: 140,
dataIndex: 'spzq'
},
{
title: this.$t('createTime'),
align: 'left',
@@ -374,13 +392,14 @@ export default {
this.loading = true
getAction('/ota/otaBaSjList/page', query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
if (res.result.list.current > 1 && res.result.list.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.dataSource = res.result.list.records || []
this.number = res.result.pjspzq
this.total = res.result.list.total
this.loading = false
} else {
this.loading = false
@@ -2,10 +2,10 @@
<!-- 第五页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -2,10 +2,10 @@
<!-- 第二页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -2,10 +2,10 @@
<!-- 第四页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -2,10 +2,10 @@
<!-- 第三页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -136,11 +136,29 @@
</tr>
<tr>
<td colspan="2" align="left" height="50px">{{$t('upgradeactivityprovidesuserconfirmationoptions')}}</td>
<td height="50px">
<a-radio-group style='margin-left: 40px;' v-model="form.yhqr">
<a-radio :value="1"> {{ $t('yes') }} </a-radio>
<a-radio :value="2"> {{ $t('not') }} </a-radio>
</a-radio-group>
<td :height="qrheight" style='position: relative'>
<div>
<a-radio-group class='box-input-qr' @change='qrchange' v-model="form.yhqr">
<a-radio :value="'1'"> {{ $t('yes') }} </a-radio>
<a-radio :value="'2'"> {{ $t('not') }} </a-radio>
</a-radio-group>
</div>
<div v-if='flagqr'>
<j-dict-select-tag class="box-input2"
v-model="form.flagqr"
:disabled="disable"
dictCode="O_T_A_-_sheng1_ji2_ying3_xiang3_ping2_gu1_-_sheng1_ji2_que4_ren4"
:placeholder="$t('PleaseSelect')"
:type="'select'"
@input="handleInput(form.flagqr)"
:triggerChange="false"/>
</div>
<div v-if='flagqrqt'>
<a-input class="box-input-qr2"
v-model="form.qttext"
:title="form.qttext ? form.qttext : $t('PleaseEnter')"
:placeholder="$t('PleaseEnter')"></a-input>
</div>
</td>
</tr>
<tr>
@@ -200,6 +218,8 @@ export default {
importZipUrl: '/ota/otaBaSjSjyxpg/importData?otaId=' + localStorage.getItem('otaId'),//导入
},
flag:false,
flagqr:false,
flagqrqt:false,
loading: false,
disable:false,
columns: [
@@ -329,6 +349,7 @@ export default {
scopedSlots: { customRender: 'operation' }
}
],
qrheight:'50px',
form:{
sjmd:'',
}
@@ -397,6 +418,25 @@ this.$forceUpdate()
}else{
this.flag = false
}
if(this.form.yhqr == '1'){
this.flagqr = true
this.qrheight = '100px'
}else{
this.flagqr = false
this.qrheight = '50px'
}
if(this.form.yhqr == '1' && this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
}else if(this.form.yhqr == '1' && this.form.flagqr != '344a3320beba45afb3718c59b7a7144a'){
this.flagqr = true
this.flagqrqt = false
this.qrheight = '100px'
}else {
this.flagqrqt = false
this.flagqr = false
this.qrheight = '50px'
}
})
},
save(){
@@ -426,19 +466,35 @@ this.$forceUpdate()
changeQuery(val) {
if(val.indexOf('将车辆置于安全状态') != -1 || val.indexOf('Put the vehicle in a safe position') != -1){
this.flag = true
// let long = localStorage.getItem('language')
// let cut = ''
// if (long && long == 'zh-cn') {
this.form.aqjzWbk = '车辆保持在功能受限制状态,此状态下车辆无法行驶,保证其处于安全状态'
// } else if (long && long == 'en-us') {
// this.form.aqjzWbk = 'The vehicle remains in a functionally restricted state, in which the vehicle cannot be driven to ensure that it is in a safe state'
// }
// this.getData()
}else{
this.flag = false
this.form.aqjzWbk = ''
}
},
qrchange(val){
if(val.target.value == '1'){
this.qrheight = '100px'
this.flagqr = true
if(this.form.flagqr == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
}
}else{
this.qrheight = '50px'
this.flagqr = false
this.flagqrqt = false
}
},
handleInput(val){
if(val == '344a3320beba45afb3718c59b7a7144a'){
this.qrheight = '150px'
this.flagqrqt = true
}else {
this.qrheight = '100px'
this.flagqrqt = false
}
},
}
}
</script>
@@ -475,6 +531,15 @@ this.$forceUpdate()
margin-left: 40px;
top: 4px;
}
.box-input-qr {
//display: inline-block;
width: calc(100% - 80px);
position: absolute;
top: 16px;
height: 38px;
margin-left: 40px;
//top: 4px;
}
.box-input2 {
//display: inline-block;
width: calc(100% - 80px);
@@ -483,6 +548,14 @@ this.$forceUpdate()
margin-left: 40px;
top: 50px;
}
.box-input-qr2 {
//display: inline-block;
width: calc(100% - 80px);
position: absolute;
height: 38px;
margin-left: 40px;
top: 95px;
}
::v-deep .ant-table-row-cell-ellipsis .ant-table-column-title {
white-space: pre-wrap!important;
}
@@ -2,11 +2,11 @@
<!-- 第一页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'"
@getList="getData" />
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download" />
{{ $t('templateDownload') }}
</div>
@@ -2,10 +2,10 @@
<!-- 第六页 -->
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otasjxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otasjxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -1,10 +1,10 @@
<template>
<div class="box">
<div class="table-operator">
<div class="operator-text">
<div v-has="'otacxxx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getData"/>
</div>
<div @click='handleModule' class="operator-text">
<div v-has="'otacxxx:mbxz'" @click='handleModule' class="operator-text">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
@@ -30,17 +30,56 @@
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('filingtime')">
{{$t('filingtime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="batjsj">
<a-form-model-item class="itemModel" :prop="!propflag?'batjsj':''" :key="propflag">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('filingtime')"
@change="dateChange({db_field_name:'batjsj'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.batjsj"
:disabled="false"
style="width: 90%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-if='transittime'>
<div class="box-title-text">
<div class="title-text">
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('transittime')">
{{$t('transittime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="tgthsj">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('transittime')"
@change="dateChange({db_field_name:'tgthsj'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.tgthsj"
:disabled="false"
style="width: 90%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="24" v-if='returntime'>
<div class="box-title-text">
<div class="title-text">
<span v-if='!propflag' class="Required">*</span>
<span class="title-text-text" :title="$t('returntime')">
{{$t('returntime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="tgthsj">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('returntime')"
@change="dateChange({db_field_name:'tgthsj'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.tgthsj"
:disabled="false"
style="width: 90%"/>
</a-form-model-item>
</div>
@@ -79,8 +118,12 @@ export default {
formInline: {
bazt:undefined,
batjsj:'',
tgthsj:'',
bz:'',
},
transittime:false,
returntime:false,
propflag: false,
rules: {
bazt: [
{
@@ -98,7 +141,14 @@ export default {
],
bz: [
{ min: 1, max: 500, message: this.$t('cantExeed') + '500' + this.$t('characters'), trigger: 'blur' }
]
],
tgthsj: [
{
required: true,
message: this.$t('cannotEmpty'),
trigger: 'change'
}
],
// designDeadline: [
// {
// required: true,
@@ -147,13 +197,39 @@ export default {
this.formInline = {
bazt:undefined,
batjsj:'',
tgthsj:'',
bz:'',
}
this.propflag = true
this.transittime = false
this.returntime = false
}else{
this.formInline.bazt = row.bazt ? row.bazt : undefined
this.formInline.batjsj = row.batjsj
this.formInline.tgthsj = row.tgthsj
this.formInline.bz = row.bz
this.ids = row.id
if (this.formInline.bazt == 1) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if (this.formInline.bazt == 2) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if(this.formInline.bazt == 4){
this.propflag = false
this.transittime = true
this.returntime = false
} else if(this.formInline.bazt == 5){
this.propflag = false
this.returntime = true
this.transittime = false
}else{
this.propflag = false
this.transittime = false
this.returntime = false
}
}
this.visible = true
this.$nextTick(() => {
@@ -183,6 +259,27 @@ export default {
})
},
selectchange(value){
if (value == 1) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if (value == 2) {
this.propflag = true
this.transittime = false
this.returntime = false
} else if(value == 4){
this.propflag = false
this.transittime = true
this.returntime = false
} else if(value == 5){
this.propflag = false
this.returntime = true
this.transittime = false
}else{
this.propflag = false
this.transittime = false
this.returntime = false
}
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField('bazt')
@@ -90,23 +90,23 @@
</a-form>
</div>
<div class="table-operator">
<div @click="createvehicleandfunctionrecords" v-has="'regulatoryAndTechnicalAssessment:initiationProcess'"
<div @click="createvehicleandfunctionrecords" v-has="'otacx:cjcxjgnba'"
class="operator-text">
<a-icon type="plus" />
{{ $t('createvehicleandfunctionrecords') }}
</div>
<div @click="citeforrecord" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
<div @click="citeforrecord" v-has="'otacx:yyba'" class="operator-text">
<a-icon type="solution" />
{{ $t('citeforrecord') }}
</div>
<div @click="maintenanceallClick()" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
<div @click="maintenanceallClick()" v-has="'otacx:sjwh'" class="operator-text">
<a-icon type="setting" />
{{ $t('datamaintenance') }}
</div>
<div v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
<div v-has="'otacx:sjdr'" class="operator-text">
<ImportFile :url="url" :dummyInventoryBaseId="$route.query.id" :isTrue="true" :accept="'.zip'" @getList="getList"/>
</div>
<div @click="handleModule" v-has="'regulatoryAndTechnicalAssessment:batchDelete'" class="operator-text">
<div @click="handleModule" v-has="'otacx:mbxz'" class="operator-text">
<a-icon type="download" />
{{ $t('templateDownload') }}
</div>
@@ -126,6 +126,9 @@
@click="deleteData(record)">{{ $t('delete') }}</a>
</span>
</a-table>
<div>
{{$t('averageapprovalperiod')}} : {{number}}{{$t('day')}}
</div>
<div class="page" v-if="dataSource && dataSource.length > 0">
<a-pagination :show-total="total => $t('total') + ` ${total} ` + $t('strip')" show-quick-jumper show-size-changer
:page-size.sync="pageSize" :total="total" :current="pageNo" @change="pageOnChange"
@@ -159,6 +162,7 @@ export default {
exportData: '/ota/otaBaCxList/exportData',
importZipUrl: '/ota/otaBaCxList/importData',//导入
},
number:'',
visible: false,
loading: false,
toggleSearchStatus: false,
@@ -251,6 +255,20 @@ export default {
width: 140,
dataIndex: 'batjsj'
},
{
title: this.$t('passreturntime'),
align: 'left',
ellipsis: true,
width: 170,
dataIndex: 'tgthsj'
},
{
title: this.$t('approvalcycle'),
align: 'left',
ellipsis: true,
width: 140,
dataIndex: 'spzq'
},
{
title: this.$t('createTime'),
align: 'left',
@@ -321,13 +339,14 @@ export default {
this.loading = true
getAction('/ota/otaBaCxList/page', query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
if (res.result.list.current > 1 && res.result.list.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.dataSource = res.result.list.records || []
this.number = res.result.pjspzq
this.total = res.result.list.total
this.loading = false
} else {
this.loading = false
@@ -152,7 +152,7 @@ export default {
{ required: true, message: this.$t('PleaseEnter')+this.$t('MergeSeparator'), trigger: 'change' },
{ min:1, max: 1, message: this.$t('onlyone'), trigger: 'blur' },
{
pattern: /^[\`\~\!\@\$\%\^\&\*\(\)\_\+\-\= \[\]\{\}\\\|\;\'\'\:\"\"\\.\/\<\>\?]+$/,
pattern: /^[\`\~\!\@\$\%\^\&\*\(\)\_\+\-\= \[\]\{\}\\\|\;\'\'\:\"\"\\.\/\<\>\?\,]+$/,
message: this.$t('punctuationmark'),
trigger: 'blur'
}
@@ -92,6 +92,11 @@
<a-icon type="check-circle"/>
{{$t('preservation')}}
</div>
<!-- 导出-->
<div @click="handleExport" class="operator-text" v-has="'report:detail:export:normal'">
<a-icon type="export"/>
{{$t('dataExport')}}
</div>
<div @click="ConventionalExport" class="operator-text" v-has="'report:detail:export:normal'">
<a-icon type="export" :rotate="-90"/>
{{$t('ConventionalExport')}}
@@ -182,7 +187,7 @@
</template>
<script>
import { getAction, postAction } from '../../../api/manage'
import { downloadFile, getAction, postAction } from '../../../api/manage'
import axios from 'axios'
import TableCollection from '@/components/tableCollection/index1'
import conventionalModel from './commponts/conventionalmodle'
@@ -668,6 +673,27 @@
listReset() {
this.formInline = {}
},
//导出
handleExport() {
this.$message.success(this.$t('Intheexport'))
let long = localStorage.getItem('language')
this.cut = ''
if (long && long === 'zh-cn') {
this.cut = 'cn'
} else if (long && long === 'en-us') {
this.cut = 'en'
}
let query = {
paramsManifestId: this.paramsManifest.id,
paramsTemplateId: this.$route.query.paramsTemplateId,
paramsTemplatePublishVersion: 1,
cut: this.cut,
userTypes: this.currentPersonRole,
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')'
}
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
downloadFile('/params/collectManifest/exportAll', name, query, this.selectClear)
},
ConventionalExport() {
this.$refs.conventionalModel.addModel()
},
@@ -10,282 +10,355 @@
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G0">
G0</span>
</div>
<a-form-model-item class="itemModel" prop="zero">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G0'"
@change="dateChange({db_field_name:'zero'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.zero"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G1">
G1</span>
</div>
<a-form-model-item class="itemModel" prop="one">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G1'"
@change="dateChange({db_field_name:'one'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.one"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G2">
G2</span>
</div>
<a-form-model-item class="itemModel" prop="two">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G2'"
@change="dateChange({db_field_name:'two'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.two"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G3">
G3</span>
</div>
<a-form-model-item class="itemModel" prop="three">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G3'"
@change="dateChange({db_field_name:'three'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.three"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G4">
G4</span>
</div>
<a-form-model-item class="itemModel" prop="four">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G4'"
@change="dateChange({db_field_name:'four'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.four"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G5">
G5</span>
</div>
<a-form-model-item class="itemModel" prop="five">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G5'"
@change="dateChange({db_field_name:'five'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.five"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G6">
G6</span>
</div>
<a-form-model-item class="itemModel" prop="six">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G6'"
@change="dateChange({db_field_name:'six'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.six"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="MP">
MP</span>
</div>
<a-form-model-item class="itemModel" prop="mp">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'MP'"
@change="dateChange({db_field_name:'mp'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.mp"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G7">
G7</span>
</div>
<a-form-model-item class="itemModel" prop="seven">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G7'"
@change="dateChange({db_field_name:'seven'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.seven"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('listPublishing')">
{{$t('listPublishing')}}</span>
</div>
<a-form-model-item class="itemModel" prop="listConfirmation">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('listPublishing')+$t('time')"
@change="dateChange({db_field_name:'listConfirmation'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.listConfirmation"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('responsibilityConfirmation')">
{{$t('responsibilityConfirmation')}}</span>
</div>
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('responsibilityConfirmation')+$t('time')"
@change="dateChange({db_field_name:'legalTaskConfirmation'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.legalTaskConfirmation"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('designVerification')">
{{$t('designVerification')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('designVerification')+$t('time')"
@change="dateChange({db_field_name:'designDeadline'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.designDeadline"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('getStarted')">
{{$t('getStarted')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('getStarted')+$t('time')"
@change="dateChange({db_field_name:'prehomoDeadline'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.prehomoDeadline"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationStartOne')">
{{$t('certificationStartOne')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationStartTime">
<a-date-picker class="box-input"
:disabledDate='this.disabledRegistrationStartDate'
:placeholder="$t('PleaseSelect')+$t('certificationStartOne')+$t('time')"
@change="dateChange({db_field_name:'attestationStartTime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.attestationStartTime"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationSubmission')">
{{$t('certificationSubmission')}}</span>
</div>
<a-form-model-item class="itemModel" prop="certificationSubmission">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('certificationSubmission')+$t('time')"
@change="dateChange({db_field_name:'certificationSubmission'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.certificationSubmission"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationEnd')">
{{$t('certificationEnd')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationEndTime">
<a-date-picker class="box-input"
:disabledDate='this.disabledRegistrationEndDate'
:placeholder="$t('PleaseSelect')+$t('certificationEnd')+$t('time')"
@change="dateChange({db_field_name:'attestationEndTime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.attestationEndTime"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('verificationAndVerification')">
{{$t('verificationAndVerification')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('verificationAndVerification')+$t('time')"
@change="dateChange({db_field_name:'verifyDeadline'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.verifyDeadline"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G0">
G0</span>
</div>
<a-form-model-item class="itemModel" prop="zero">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G0'"
@change="dateChange({db_field_name:'zero'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.zero"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G1">
G1</span>
</div>
<a-form-model-item class="itemModel" prop="one">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G1'"
@change="dateChange({db_field_name:'one'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.one"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G2">
G2</span>
</div>
<a-form-model-item class="itemModel" prop="two">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G2'"
@change="dateChange({db_field_name:'two'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.two"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G3">
G3</span>
</div>
<a-form-model-item class="itemModel" prop="three">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G3'"
@change="dateChange({db_field_name:'three'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.three"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G4">
G4</span>
</div>
<a-form-model-item class="itemModel" prop="four">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G4'"
@change="dateChange({db_field_name:'four'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.four"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G5">
G5</span>
</div>
<a-form-model-item class="itemModel" prop="five">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G5'"
@change="dateChange({db_field_name:'five'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.five"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G6">
G6</span>
</div>
<a-form-model-item class="itemModel" prop="six">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G6'"
@change="dateChange({db_field_name:'six'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.six"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" title="G7">
G7</span>
</div>
<a-form-model-item class="itemModel" prop="seven">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+'G7'"
@change="dateChange({db_field_name:'seven'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.seven"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('listPublishing')">
{{$t('listPublishing')}}</span>
</div>
<a-form-model-item class="itemModel" prop="listConfirmation">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('listPublishing')+$t('time')"
@change="dateChange({db_field_name:'listConfirmation'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.listConfirmation"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('responsibilityConfirmation')">
{{$t('responsibilityConfirmation')}}</span>
</div>
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('responsibilityConfirmation')+$t('time')"
@change="dateChange({db_field_name:'legalTaskConfirmation'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.legalTaskConfirmation"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('designVerification')">
{{$t('designVerification')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('designVerification')+$t('time')"
@change="dateChange({db_field_name:'designDeadline'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.designDeadline"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('getStarted')">
{{$t('getStarted')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('getStarted')+$t('time')"
@change="dateChange({db_field_name:'prehomoDeadline'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.prehomoDeadline"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationStartOne')">
{{$t('certificationStartOne')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationStartTime">
<a-date-picker class="box-input"
:disabledDate='this.disabledRegistrationStartDate'
:placeholder="$t('PleaseSelect')+$t('certificationStartOne')+$t('time')"
@change="dateChange({db_field_name:'attestationStartTime'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.attestationStartTime"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationSubmission')">
{{$t('certificationSubmission')}}</span>
</div>
<a-form-model-item class="itemModel" prop="certificationSubmission">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('certificationSubmission')+$t('time')"
@change="dateChange({db_field_name:'certificationSubmission'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.certificationSubmission"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationEnd')">
{{$t('certificationEnd')}}</span>
<span class="title-text-text" :title="$t('localapproval1')">
{{$t('localapproval1')}}</span>
</div>
<a-form-model-item class="itemModel" prop="attestationEndTime">
<a-date-picker class="box-input"
:disabledDate='this.disabledRegistrationEndDate'
:placeholder="$t('PleaseSelect')+$t('certificationEnd')+$t('time')"
@change="dateChange({db_field_name:'attestationEndTime'})"
:placeholder="$t('PleaseSelect')+$t('localapproval1')+$t('time')"
@change="dateChange({db_field_name:'localapproval1'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.attestationEndTime"
v-model="formInline.localapproval1"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>
@@ -295,16 +368,16 @@
<div class="box-title-text">
<div class="title-text">
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('verificationAndVerification')">
{{$t('verificationAndVerification')}}</span>
<span class="title-text-text" :title="$t('localapproval2')">
{{$t('localapproval2')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyDeadline">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('verificationAndVerification')+$t('time')"
@change="dateChange({db_field_name:'verifyDeadline'})"
:placeholder="$t('PleaseSelect')+$t('localapproval2')+$t('time')"
@change="dateChange({db_field_name:'localapproval2'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.verifyDeadline"
v-model="formInline.localapproval2"
:disabled="false"
style="width: 100%"/>
</a-form-model-item>