合并分支 'dev_2nd_20230213' 到 'master'

Dev 2nd 20230213

查看合并请求 laws-nio/laws-weilai!288
This commit is contained in:
高嵩
2023-02-13 17:43:20 +08:00
129 changed files with 2223 additions and 1217 deletions
@@ -8,6 +8,7 @@ import com.jero.modules.head.enums.AffirmFlagEnum;
import com.jero.modules.head.mapper.HeadCustomEOMapper;
import com.jero.modules.head.service.IHeadCustomEOService;
import com.jero.modules.head.vo.HeadCustomVO;
import net.sf.saxon.functions.ConstantFunction;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -27,91 +28,91 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 自定义表头
* @Author: jero-boot
* @Date: 2023-01-05
* @Date: 2023-01-05
* @Version: V1.0
*/
@Service
public class HeadCustomEOServiceImpl extends ServiceImpl<HeadCustomEOMapper, HeadCustomEO> implements IHeadCustomEOService {
/**
* 保存
*
* @param headCustomEOList
* @return
*/
@Override
/**
* 保存
*
* @param headCustomEOList
* @return
*/
@Override
public void add(List<HeadCustomEO> headCustomEOList) {
if(ObjectUtils.isNotEmpty(headCustomEOList)){
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//先删除再新增
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,headCustomEOList.get(0).getModuleFlag());
this.remove(wrapper);
if (ObjectUtils.isNotEmpty(headCustomEOList)) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//先删除再新增
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, headCustomEOList.get(0).getModuleFlag());
this.remove(wrapper);
//一级标题
List<HeadCustomEO> oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
//二级标题
List<HeadCustomEO> twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
//一级标题
List<HeadCustomEO> oneList = headCustomEOList.stream().filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
//二级标题
List<HeadCustomEO> twoList = headCustomEOList.stream().filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
//设计
List<HeadCustomEO> design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(design);
//pre
List<HeadCustomEO> affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(affirm);
//验证
List<HeadCustomEO> verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(verify);
//设计
List<HeadCustomEO> design = twoList.stream().filter(e -> AffirmFlagEnum.DESIGN_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(design);
//pre
List<HeadCustomEO> affirm = twoList.stream().filter(e -> AffirmFlagEnum.AFFIRM_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(affirm);
//验证
List<HeadCustomEO> verify = twoList.stream().filter(e -> AffirmFlagEnum.VERIFY_FLAG.getValue().equals(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(verify);
if(ObjectUtils.isNotEmpty(design)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.DESIGN_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.DESIGN_FLAG.getNameEn());
headCustomEO.setModuleFlag(design.get(0).getModuleFlag());
headCustomEO.setSort(design.get(0).getSort());
headCustomEO.setChildren(design);
oneList.add(headCustomEO);
}
if(ObjectUtils.isNotEmpty(affirm)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.AFFIRM_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.AFFIRM_FLAG.getNameEn());
headCustomEO.setModuleFlag(affirm.get(0).getModuleFlag());
headCustomEO.setSort(affirm.get(0).getSort());
headCustomEO.setChildren(affirm);
oneList.add(headCustomEO);
}
if(ObjectUtils.isNotEmpty(verify)){
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.VERIFY_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.VERIFY_FLAG.getNameEn());
headCustomEO.setModuleFlag(verify.get(0).getModuleFlag());
headCustomEO.setSort(verify.get(0).getSort());
headCustomEO.setChildren(verify);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(design)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.DESIGN_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.DESIGN_FLAG.getNameEn());
headCustomEO.setModuleFlag(design.get(0).getModuleFlag());
headCustomEO.setSort(design.get(0).getSort());
headCustomEO.setChildren(design);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(affirm)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.AFFIRM_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.AFFIRM_FLAG.getNameEn());
headCustomEO.setModuleFlag(affirm.get(0).getModuleFlag());
headCustomEO.setSort(affirm.get(0).getSort());
headCustomEO.setChildren(affirm);
oneList.add(headCustomEO);
}
if (ObjectUtils.isNotEmpty(verify)) {
HeadCustomEO headCustomEO = new HeadCustomEO();
headCustomEO.setHeadFieldCn(AffirmFlagEnum.VERIFY_FLAG.getName());
headCustomEO.setHeadFieldEn(AffirmFlagEnum.VERIFY_FLAG.getNameEn());
headCustomEO.setModuleFlag(verify.get(0).getModuleFlag());
headCustomEO.setSort(verify.get(0).getSort());
headCustomEO.setChildren(verify);
oneList.add(headCustomEO);
}
List<HeadCustomEO> headCustomEOS = new ArrayList<>();
for (HeadCustomEO headCustomEO : oneList) {
//一级标题
String id = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id);
headCustomEOS.add(headCustomEOTemp);
//二级标题
if(ObjectUtils.isNotEmpty(headCustomEO.getChildren())){
for (HeadCustomEO child : headCustomEO.getChildren()) {
String idTemp = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp);
customEO.setParentId(id);
headCustomEOS.add(customEO);
}
}
}
if(ObjectUtils.isNotEmpty(headCustomEOS)){
this.saveBatch(headCustomEOS);
}
}
List<HeadCustomEO> headCustomEOS = new ArrayList<>();
for (HeadCustomEO headCustomEO : oneList) {
//一级标题
String id = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO headCustomEOTemp = getHeadCustomEO(loginUser, headCustomEO, id);
headCustomEOS.add(headCustomEOTemp);
//二级标题
if (ObjectUtils.isNotEmpty(headCustomEO.getChildren())) {
for (HeadCustomEO child : headCustomEO.getChildren()) {
String idTemp = UUID.randomUUID().toString().replace("-", "");
HeadCustomEO customEO = getHeadCustomEO(loginUser, child, idTemp);
customEO.setParentId(id);
headCustomEOS.add(customEO);
}
}
}
if (ObjectUtils.isNotEmpty(headCustomEOS)) {
this.saveBatch(headCustomEOS);
}
}
}
// @Override
// public void add(List<HeadCustomEO> headCustomEOList) {
@@ -144,131 +145,195 @@ public class HeadCustomEOServiceImpl extends ServiceImpl<HeadCustomEOMapper, Hea
// }
// }
@NotNull
private HeadCustomEO getHeadCustomEO(LoginUser loginUser, HeadCustomEO headCustomEO, String id) {
HeadCustomEO headCustomEOTemp = new HeadCustomEO();
headCustomEOTemp.setId(id);
headCustomEOTemp.setHeadFieldCn(headCustomEO.getHeadFieldCn());
headCustomEOTemp.setHeadFieldEn(headCustomEO.getHeadFieldEn());
headCustomEOTemp.setModuleFlag(headCustomEO.getModuleFlag());
headCustomEOTemp.setAffirmFlag(headCustomEO.getAffirmFlag());
headCustomEOTemp.setField(headCustomEO.getField());
headCustomEOTemp.setSort(headCustomEO.getSort());
headCustomEOTemp.setCreateBy(loginUser.getUsername());
headCustomEOTemp.setCreateTime(new Date());
headCustomEOTemp.setUpdateTime(new Date());
return headCustomEOTemp;
}
/**
* 更新
*
* @param headCustomEO
* @return
*/
@Override
public void editById(HeadCustomEO headCustomEO) {
Date now = new Date();
headCustomEO.setUpdateTime(now);
saveOrUpdate(headCustomEO);
@NotNull
private HeadCustomEO getHeadCustomEO(LoginUser loginUser, HeadCustomEO headCustomEO, String id) {
HeadCustomEO headCustomEOTemp = new HeadCustomEO();
headCustomEOTemp.setId(id);
headCustomEOTemp.setHeadFieldCn(headCustomEO.getHeadFieldCn());
headCustomEOTemp.setHeadFieldEn(headCustomEO.getHeadFieldEn());
headCustomEOTemp.setModuleFlag(headCustomEO.getModuleFlag());
headCustomEOTemp.setAffirmFlag(headCustomEO.getAffirmFlag());
headCustomEOTemp.setField(headCustomEO.getField());
headCustomEOTemp.setSort(headCustomEO.getSort());
headCustomEOTemp.setCreateBy(loginUser.getUsername());
headCustomEOTemp.setCreateTime(new Date());
headCustomEOTemp.setUpdateTime(new Date());
return headCustomEOTemp;
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
/**
* 更新
*
* @param headCustomEO
* @return
*/
@Override
public void editById(HeadCustomEO headCustomEO) {
Date now = new Date();
headCustomEO.setUpdateTime(now);
saveOrUpdate(headCustomEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public HeadCustomEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<HeadCustomVO> queryList(String cut,String moduleFlag) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy,loginUser.getUsername()).in(HeadCustomEO::getModuleFlag,moduleFlag);
List<HeadCustomEO> list = this.list(wrapper);
List<HeadCustomVO> headCustomVOOneList = new LinkedList<>();
if(ObjectUtils.isNotEmpty(list)){
//列表表头一级
List<HeadCustomEO> oneList = list.stream()
.filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
//列表表头二级
List<HeadCustomEO> twoList = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
for (HeadCustomEO headCustomEO : oneList) {
HeadCustomVO headCustomVO = new HeadCustomVO();
if(ObjectUtils.isNotEmpty(twoList)){
List<HeadCustomEO> two = twoList.stream()
.filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList());
Collections.sort(two);
List<HeadCustomVO> headCustomVOTwoList = new LinkedList<>();
for (HeadCustomEO customEO : two) {
HeadCustomVO headCustomVOTemp = new HeadCustomVO();
getHeadCustomVO(cut, customEO, headCustomVOTemp);
headCustomVOTwoList.add(headCustomVOTemp);
}
if(ObjectUtils.isNotEmpty(headCustomVOTwoList)){
headCustomVO.setChildren(headCustomVOTwoList);
}
}
getHeadCustomVO(cut, headCustomEO,headCustomVO);
headCustomVOOneList.add(headCustomVO);
}
}
return headCustomVOOneList;
* 列表查询
*
* @return
*/
@Override
public List<HeadCustomVO> queryList(String cut, String moduleFlag) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<HeadCustomEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(HeadCustomEO::getCreateBy, loginUser.getUsername()).in(HeadCustomEO::getModuleFlag, moduleFlag);
List<HeadCustomEO> list = this.list(wrapper);
List<HeadCustomVO> headCustomVOOneList = new LinkedList<>();
if (ObjectUtils.isNotEmpty(list)) {
//列表表头一级
List<HeadCustomEO> oneList = list.stream()
.filter(e -> StringUtils.isBlank(e.getAffirmFlag())).collect(Collectors.toList());
//列表表头二级
List<HeadCustomEO> twoList = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getAffirmFlag())).collect(Collectors.toList());
Collections.sort(oneList);
for (HeadCustomEO headCustomEO : oneList) {
HeadCustomVO headCustomVO = new HeadCustomVO();
if (ObjectUtils.isNotEmpty(twoList)) {
List<HeadCustomEO> two = twoList.stream()
.filter(e -> headCustomEO.getId().equals(e.getParentId())).collect(Collectors.toList());
Collections.sort(two);
List<HeadCustomVO> headCustomVOTwoList = new LinkedList<>();
for (HeadCustomEO customEO : two) {
HeadCustomVO headCustomVOTemp = new HeadCustomVO();
getHeadCustomVO(cut, customEO, headCustomVOTemp);
headCustomVOTwoList.add(headCustomVOTemp);
}
if (ObjectUtils.isNotEmpty(headCustomVOTwoList)) {
headCustomVO.setChildren(headCustomVOTwoList);
}
}
getHeadCustomVO(cut, headCustomEO, headCustomVO);
headCustomVOOneList.add(headCustomVO);
}
}
List<HeadCustomVO> res = new ArrayList<>();
if ("法规清单".equals(moduleFlag) || "虚拟清单详情".equals(moduleFlag) || "维护清单".equals(moduleFlag)) {
res = checkDefaultHead(headCustomVOOneList, cut, moduleFlag);
} else {
res = headCustomVOOneList;
}
return res;
}
@NotNull
private HeadCustomVO getHeadCustomVO(String cut, HeadCustomEO headCustomEO,HeadCustomVO headCustomVO) {
headCustomVO.setDataIndex(headCustomEO.getField());
if(CutEnum.CN.getValue().equals(cut)){
headCustomVO.setTitle(headCustomEO.getHeadFieldCn());
}else{
headCustomVO.setTitle(headCustomEO.getHeadFieldEn());
}
//每个功能模块列表表头固定的列可能不相同,所以需要单独处理(后期变更的时候继续维护此处即可)
if("法规清单".equals(headCustomEO.getModuleFlag())){
if("编号".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("left");
}
if("标题".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("left");
}
if("操作".equals(headCustomEO.getHeadFieldCn())){
headCustomVO.setFixed("right");
}
}
return headCustomVO;
}
/**
* 检查默认表头,如果不存在则添加进列表
*/
private List<HeadCustomVO> checkDefaultHead(List<HeadCustomVO> headCustomVOOneList, String cut, String moduleFlag) {
List<HeadCustomVO> res = new ArrayList<>();
//编号,标题,操作
boolean hasBH = false;
boolean hasBT = false;
boolean hasCZ = false;
for (HeadCustomVO hcVO : headCustomVOOneList) {
if ("编号".equals(hcVO.getTitle()) || "Number".equals(hcVO.getTitle())) {
hasBH = true;
}
if ("标题".equals(hcVO.getTitle())) {
hasBT = true;
}
if ("操作".equals(hcVO.getTitle())) {
hasCZ = true;
}
}
if (!hasBH) {
HeadCustomVO bh = new HeadCustomVO();
bh.setDataIndex("serialNumber");
if (CutEnum.CN.getValue().equals(cut)) {
bh.setTitle("编号");
} else {
bh.setTitle("Number");
}
bh.setFixed("left");
res.add(bh);
}
if (!hasBT) {
HeadCustomVO bt = new HeadCustomVO();
bt.setDataIndex("title");
if (CutEnum.CN.getValue().equals(cut)) {
bt.setTitle("标题");
} else {
bt.setTitle("title");
}
bt.setFixed("left");
res.add(bt);
}
res.addAll(headCustomVOOneList);
if (!hasCZ) {
HeadCustomVO cz = new HeadCustomVO();
cz.setDataIndex("operation");
if (CutEnum.CN.getValue().equals(cut)) {
cz.setTitle("操作");
} else {
cz.setTitle("Operation");
}
cz.setFixed("right");
res.add(cz);
}
return res;
}
@NotNull
private HeadCustomVO getHeadCustomVO(String cut, HeadCustomEO headCustomEO, HeadCustomVO headCustomVO) {
headCustomVO.setDataIndex(headCustomEO.getField());
if (CutEnum.CN.getValue().equals(cut)) {
headCustomVO.setTitle(headCustomEO.getHeadFieldCn());
} else {
headCustomVO.setTitle(headCustomEO.getHeadFieldEn());
}
//每个功能模块列表表头固定的列可能不相同,所以需要单独处理(后期变更的时候继续维护此处即可)
if ("法规清单".equals(headCustomEO.getModuleFlag())) {
if ("编号".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("left");
}
if ("标题".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("left");
}
if ("操作".equals(headCustomEO.getHeadFieldCn())) {
headCustomVO.setFixed("right");
}
}
return headCustomVO;
}
}
@@ -99,7 +99,8 @@
pti.verify_person_charge_feedback as "verifyPersonChargeFeedback",
plb.studio_engineer as "studioEngineer",
plb.target_market as "targetMarket",
pti.id as "projectTaskInventoryId"
pti.id as "projectTaskInventoryId",
plb.project_version as projectVersion
FROM
project_laws_inventory pli
LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id )
@@ -28,7 +28,7 @@
<select id="getInfoList" resultMap="NcrTrackVOResultMap">
SELECT
pni.project_name,plb.target_market,plb.project_version,pyni.year_name,
pli.serial_number,pli.title,pli.duty_territory,pli.create_time,pli.project_library_id,
pli.serial_number,pli.title,pli.duty_territory,pli.create_time,pli.project_library_id,pli.stand_id,
pti.design_flow_task_status,pti.prehomo_flow_task_status,pti.verify_flow_task_status,pti.design_p_id,pti.prehomo_p_id,pti.verify_p_id,pti.id,pti.project_laws_inventory_id,
pli.design_initiator_id,pli.design_duty_id,pli.prehomo_initiator_id,pli.prehomo_duty_id,pli.verify_initiator_id,pli.verify_duty_id
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryRuleEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.document.enums.FieldTypeEnum;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
@@ -24,7 +25,9 @@ import com.jero.modules.project.mapper.ProjectTaskInventoryDetailEOMapper;
import com.jero.modules.project.service.ILawsComplianceBoardService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
@@ -72,6 +75,9 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISysDictService sysDictService;
@Override
public IPage queryPageList(Map<String, Object> params) {
int pageNo = Integer.parseInt(params.get("pageNo").toString());
@@ -181,6 +187,20 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
String cut = (String) params.get("cut");
List<Map<String,Object>> complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params);
if(CollectionUtils.isNotEmpty(complianceResultList)){
for (Map<String, Object> map : complianceResultList) {
//处理相关项目名称
String projectName = String.valueOf(map.get("projectName"));
String yearName = String.valueOf(map.get("yearName"));
String targetMarket = String.valueOf(map.get("targetMarket"));
String projectVersion = String.valueOf(map.get("projectVersion"));
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
targetMarket = getTargetMarket(cut, regionList, targetMarket);
if(ObjectUtils.isEmpty(map.get("projectVersion"))){
map.put("projectName",projectName+"-"+yearName+"-"+targetMarket);
}else{
map.put("projectName",projectName+"-"+yearName+"-"+targetMarket+"-"+projectVersion);
}
}
List<String> projectLawsInventoryIdList = complianceResultList.stream().map(map-> (String) map.get("id")).collect(Collectors.toList());
QueryWrapper<ProjectTaskInventoryDetailEO> taskDetailQueryWrapper = new QueryWrapper<>();
taskDetailQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIdList);
@@ -215,6 +235,34 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
return result;
}
private String getTargetMarket(String cut, List<DictModel> regionList, String targetMarket) {
//适用地区
List<DictModel> dictModelList = new ArrayList<>();
String region = "";
if(com.jero.modules.system.util.StringUtils.isNotBlank(targetMarket)){
for (String s : targetMarket.split(",")) {
List<DictModel> dictModelListTemp = regionList.stream()
.filter(e -> s.equals(e.getValue())).collect(Collectors.toList());
dictModelList.addAll(dictModelListTemp);
}
if(dictModelList.size() != 0){
StringBuilder sb = new StringBuilder();
for (DictModel dictModel : dictModelList) {
if(CutEnum.CN.getValue().equals(cut)){
sb.append(dictModel.getText()+",");
}else{
sb.append(dictModel.getTextEn()+",");
}
}
if(com.jero.modules.system.util.StringUtils.isNotBlank(sb)){
region = sb.substring(0,sb.length()-1);
}
}
}
return region;
}
/**
* 创建任务清单列表数据
* @param complianceResultList
@@ -187,6 +187,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
//设计符合性确认
if(StringUtils.isNotBlank(designPId) && StringUtils.isNotBlank(designFlowTaskStatusName)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getStandId(),
trackVO.getTitle(),
trackVO.getDesignPId(),
trackVO.getDutyTerritory(),
@@ -206,6 +207,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
//PreHomo确认
if(StringUtils.isNotBlank(prehomoPId) && StringUtils.isNotBlank(prehomoFlowTaskStatusName)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getStandId(),
trackVO.getTitle(),
trackVO.getPrehomoPId(),
trackVO.getDutyTerritory(),
@@ -225,6 +227,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
//验证符合性确认
if(StringUtils.isNotBlank(verifyPId) && StringUtils.isNotBlank(verifyFlowTaskStatusName)){
NcrTrackVO ncrTrackVOTemp = entityInfo(trackVO.getSerialNumber(),
trackVO.getStandId(),
trackVO.getTitle(),
trackVO.getVerifyPId(),
trackVO.getDutyTerritory(),
@@ -389,6 +392,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
}
private NcrTrackVO entityInfo(String serialNumber,
String standId,
String title,
String flowType,
String dutyTerritory,
@@ -430,6 +434,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
ncrTrackVO.setUuid(uuid);
ncrTrackVO.setCreateTime(createTime);
ncrTrackVO.setSerialNumber(serialNumber);//编号
ncrTrackVO.setStandId(standId);//id
ncrTrackVO.setTitle(title);//标题
if(StringUtils.isNotBlank(flowType)){
ncrTrackVO.setFlowType(name);//流程类型
@@ -747,9 +747,11 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
+ "-" + projectLibraryBase.getYearName()
+ "-" + targetMarket
+ "-" + projectVersion);
+ "-" + projectLibraryBase.getYearName());
// projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
// + "-" + projectLibraryBase.getYearName()
// + "-" + targetMarket
// + "-" + projectVersion);
}
}
return records;
@@ -41,6 +41,9 @@ public class NcrTrackVO implements Serializable {
//中英文切换
private String cut;
//文档库ID
private String standId;
//编号
@Excel(name = "编号", width = 20)
private String serialNumber;
@@ -440,6 +440,11 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
List<String> userIdList = new ArrayList<>();
datas.forEach(data -> {
String standardInfo = data.getStandardInfo();
if(StringUtils.isNotBlank(standardInfo)){
String standardInfoTemp = standardInfo.replaceAll("", " ");
data.setStandardInfo(standardInfoTemp);
}
//设置上一个操作人。
for (Map.Entry<String, List<ProcessInfoDetailEO>> detailMap : lastAssigneeDetailMap.entrySet()) {
if(StringUtils.equals(data.getId(),detailMap.getKey())){
+17 -2
View File
@@ -185,10 +185,25 @@
.ant-table-thead > tr > th {
background: #f3f6f6!important;
padding: 12px 8px!important;
padding-top: 12px!important;
padding-bottom: 12px!important;
}
.ant-table-tbody > tr > td {
padding: 12px 8px!important;
padding-top: 12px!important;
padding-bottom: 12px!important;
}
.ant-tooltip-inner {
color: #333;
background-color: #fff !important;
}
.ant-tooltip-arrow::before {
background-color: #fff !important;
}
.ant-menu-inline-collapsed-tooltip a {
color: #333 !important;
}
</style>
+4 -2
View File
@@ -129,11 +129,13 @@
.ant-table-thead > tr > th {
background: #f3f6f6!important;
padding: 12px 8px!important;
padding-top: 12px!important;
padding-bottom: 12px!important;
}
.ant-table-tbody > tr > td {
padding: 12px 8px!important;
padding-top: 12px!important;
padding-bottom: 12px!important;
}
.ant-tooltip-inner {
+1 -1
View File
@@ -1476,7 +1476,7 @@ module.exports = {
columnforced:'确认强制撤回?',
brand:'品牌',
allsubitemsitem:'该项目下拥有子项目是否全部删除',
contactTheFounder:'联系创建人',
contactTheFounder:'联系作者',
customize:'自定义表头',
customColumn:'自定义列',
}
@@ -829,6 +829,7 @@
.selectWid {
min-width: 150px;
width: 100%;
}
.inputWid {
@@ -760,6 +760,7 @@
.selectWid {
min-width: 150px;
width: 100%;
}
.inputWid {
+14 -3
View File
@@ -1,12 +1,13 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if="isTrue">
<a-table
class="table"
rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: true}"
:scroll="{x: '100%'}"
:data-source="dataSource"
:loading="loading"
:columns="columns"
@@ -63,6 +64,7 @@
<script>
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'docTable',
@@ -91,6 +93,7 @@
default: ''
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
jsonBody: [],
@@ -102,6 +105,7 @@
dataSource: [],
pageNo: 1,
pageSize: 10,
isTrue: false,
total: 0,
searchParmes: {},
loading: false,
@@ -164,7 +168,8 @@
dataIndex: res.db_field_name,
align: 'left',
ellipsis: true,
sorter: res.sort
sorter: res.sort,
width:170,
})
if (res.click) {
this.columns[index].scopedSlots = {
@@ -196,6 +201,10 @@
scopedSlots: { customRender: 'operation' }
})
}
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},500)
}
})
},
@@ -254,6 +263,8 @@
}
</style>
<style scoped>
@import '~@assets/less/common.less';
.box {
width: 100%;
height: calc(100% - 100px);
+17 -1
View File
@@ -1,9 +1,10 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if='isTrue'>
<a-table
class="table"
rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: '100%'}"
@@ -65,9 +66,11 @@
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'ocrTable',
mixins:[ResizeHeader, ResizeColumnProvide],
props: {
//接口
url: {
@@ -92,6 +95,7 @@
data() {
return {
jsonBody: [],
isTrue:false,
checkboxList: [],
userData: {},
tableAll: false,
@@ -201,9 +205,19 @@
scopedSlots: { customRender: 'operation' }
})
}
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
}
})
},
getDataAdmin(){
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
this.orderByField = sorter.columnKey
@@ -263,6 +277,8 @@
</style>
<style scoped>
@import '~@assets/less/common.less';
.box {
width: 100%;
height: calc(100% - 100px);
@@ -83,7 +83,7 @@
</a-spin>
<div class='drawer-bootom-button' style="margin-top: 4px">
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('confirm') }}</a-button>
</div>
</div>
</template>
@@ -1,12 +1,13 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if="isTrue">
<a-table
class="table"
rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ fixed: true, selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: true}"
:scroll="{x: '100%'}"
:data-source="dataSource"
:loading="loading"
:columns="columns"
@@ -34,12 +35,14 @@
</span>
<span slot="urlClick" slot-scope="text,record">
<a class="text" :title="text" @click="urlClick(text)">
{{text && text.length > 18?text.slice(0,17)+'...':text}}
<!-- {{text && text.length > 18?text.slice(0,17)+'...':text}}-->
{{text}}
</a>
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 18?text.slice(0,17)+'...':text}}
<span :title="text">
<!-- {{text && text.length > 18?text.slice(0,17)+'...':text}}-->
{{text}}
</span>
</span>
</a-table>
@@ -62,6 +65,7 @@
<script>
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'SplitDetailTable',
@@ -94,6 +98,7 @@
default:''
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
jsonBody: [],
@@ -105,6 +110,7 @@
dataSource: [],
pageNo: 1,
pageSize: 10,
isTrue: false,
total: 0,
searchParmes: {},
loading: false,
@@ -173,7 +179,8 @@
dataIndex: res.db_field_name,
align: 'left',
ellipsis: true,
sorter: res.sort
sorter: res.sort,
width: 100
})
if (res.urlClick) {
@@ -181,7 +188,7 @@
customRender: 'urlClick'
}
}else if(res.db_field_name=='iterms_conditions'){
this.columns[index].width='500'
this.columns[index].width= 500
this.columns[index].scopedSlots = {
customRender: 'showContent'
}
@@ -208,6 +215,10 @@
})
}
// console.log('columns',this.columns)
this.isTrue = false
this.$nextTick(()=>{
this.isTrue = true
})
}
})
},
@@ -287,7 +298,7 @@
.table{
.ant-table-row-cell-break-word{
span{
display: block;
//display: block;
width: inherit;
}
@@ -308,6 +319,8 @@
}
</style>
<style lang="less" scoped>
@import'~@assets/less/common.less';
.ant-table td {
white-space: nowrap;
}
@@ -1,9 +1,10 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if="isTrue">
<a-table
class="table"
rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: '100%'}"
@@ -59,6 +60,7 @@
<script>
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'SplitDocTable',
@@ -87,6 +89,7 @@
default: ''
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
jsonBody: [],
@@ -98,6 +101,7 @@
dataSource: [],
pageNo: 1,
pageSize: 10,
isTrue: false,
total: 0,
searchParmes: {},
loading: false,
@@ -193,6 +197,10 @@
scopedSlots: { customRender: 'operation' }
})
}
this.isTrue = false
this.$nextTick(()=>{
this.isTrue = true
})
}
})
},
+18 -1
View File
@@ -1,9 +1,10 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if="isTrue">
<a-table
class="table"
rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: '100%'}"
@@ -65,6 +66,7 @@
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'SplitTable',
@@ -93,6 +95,7 @@
default: ''
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
jsonBody: [],
@@ -104,6 +107,7 @@
dataSource: [],
pageNo: 1,
pageSize: 10,
isTrue: false,
total: 0,
searchParmes: {},
loading: false,
@@ -224,9 +228,19 @@
scopedSlots: { customRender: 'operation' }
})
}
this.isTrue = false
this.$nextTick(()=>{
this.isTrue = true
})
}
})
},
getDataAdmin(){
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
this.orderByField = sorter.columnKey
@@ -291,6 +305,9 @@
}
</style>
<style scoped>
@import '~@assets/less/common.less';
.box {
width: 100%;
height: calc(100% - 100px);
@@ -26,6 +26,7 @@
@searchReset="searchReset"
/>
<a-table
:components="drag(columns,'cloumns')"
:columns="columns"
rowKey="serial_number"
:scroll="{x: 1500}"
@@ -60,6 +61,7 @@
<script>
import { getAction, postAction } from '@/api/manage'
import currencySearch from '@/components/currencySearch/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
@@ -75,6 +77,7 @@
return false
}
},
mixins: [ResizeColumnProvide,ResizeHeader],
data() {
return {
visible: false,
@@ -88,18 +91,21 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
ellipsis: true,
align: 'left'
align: 'left',
width: 480
},
{
title: this.$t('title'),
dataIndex: 'title',
ellipsis: true,
align: 'left'
align: 'left',
width: 480
},
{
title: this.$t('TextStatus'),
dataIndex: 'state',
align: 'left'
align: 'left',
width: 480
}
],
dataList: [],
+9 -4
View File
@@ -5,18 +5,19 @@
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@cancel="visible = false"
@cancel="visible = false;$emit('visible')"
>
<template slot="footer">
<a-button key="back" @click="visible = false">
<a-button key="back" @click="visible = false;$emit('visible')">
{{$t('cancel')}}
</a-button>
</template>
<a-table
class="table"
:components="drag(columns,'columns')"
:columns="columns"
:pagination="false"
:scroll="{y: 420}"
:scroll="{x:'100%',y: 420}"
:data-source="dataSource"
:loading="loading"
>
@@ -46,9 +47,12 @@
<script>
import { getAction, postAction, } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
props:['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
data(){
return{
visible:false,
@@ -65,7 +69,8 @@
dataIndex: 'logContent',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'content' }
scopedSlots: { customRender: 'content' },
width: 664
},
{
title: this.$t('OperationTime'),
@@ -36,6 +36,7 @@
ref='table'
size='middle'
rowKey='id'
:components="drag(columns,'columns')"
:columns='columns'
:dataSource='areaTable'
:pagination='false'
@@ -72,10 +73,12 @@ import { putAction, postAction, getAction, deleteAction ,downloadFile } from '@/
import axios from 'axios'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'diolagArea',
components: {},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
@@ -102,20 +105,23 @@ export default {
title: this.$t('Exporttype'),
align: 'left',
dataIndex: 'exportType',
ellipsis: true
ellipsis: true,
width: 260
},
{
title: this.$t('Exporttime'),
align: 'left',
dataIndex: 'exportTime',
ellipsis: true
ellipsis: true,
width: 260
},
{
title: this.$t('file'),
align: 'left',
dataIndex: 'exportFileName',
scopedSlots: { customRender: 'file' },
ellipsis: true
ellipsis: true,
width: 260
}
],
newVisible: false,
+4 -4
View File
@@ -226,9 +226,9 @@
methods: {
searchQuery() {
if (this.isDefault) {
if (!this.queryParam['WarnTimeText']) {
this.queryParam['WarnTimeText'] = '2'
}
// if (!this.queryParam['WarnTimeText']) {
// this.queryParam['WarnTimeText'] = '2'
// }
let startTime = moment(new Date()).format('YYYY-MM-DD')
let endTime = this.getNowdate()
this.queryParam['WarnTime'] = [startTime, endTime]
@@ -240,7 +240,7 @@
this.queryParam = {}
if (this.isDefault) {
let startTime = moment(new Date()).format('YYYY-MM-DD')
this.queryParam['WarnTimeText'] = '2'
// this.queryParam['WarnTimeText'] = '2'
let endTime = this.getNowdate()
this.queryParam['WarnTime'] = [startTime, endTime]
this.queryParam = { ...this.queryParam }
@@ -0,0 +1,39 @@
<template>
<a-table
:components="drag(columnshistory,'columnshistory')"
class="table"
:columns="columnshistory"
:pagination="false"
:scroll="{x: '100%',y: 400}"
:data-source="dataSourcehistory"
:loading="loading"
>
<span slot="content" slot-scope="text,record">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<span v-html="text"></span>
</a-tooltip>
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 10?text.slice(0,9)+'...':text}}
</span>
</span>
</a-table>
</template>
<script>
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'historyTable.vue',
props:['columnshistory','dataSourcehistory'],
mixins:[ResizeHeader, ResizeColumnProvide],
}
</script>
<style scoped>
</style>
@@ -0,0 +1,39 @@
<template>
<a-table
class="table"
:components="drag(columnshistory,'columnshistory')"
:columns="columnshistory"
:pagination="false"
:scroll="{x: '100%', y: 400}"
:data-source="dataSourcehistory"
:loading="loading"
>
<span slot="content" slot-scope="text,record">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<span v-html="text"></span>
</a-tooltip>
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 10?text.slice(0,9)+'...':text}}
</span>
</span>
</a-table>
</template>
<script>
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'historyTable1',
props:['columnshistory','dataSourcehistory'],
mixins:[ResizeHeader, ResizeColumnProvide],
}
</script>
<style scoped>
</style>
@@ -3,6 +3,7 @@
<div class="box">
<!-- -->
<a-table
:components="drag(columns,'columns',JSON.parse(JSON.stringify(minWidthColumns)))"
class="table"
rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -179,28 +180,29 @@
@ok="handleOk"
@cancel="handleCancel"
>
<a-table
class="table"
:columns="columnshistory"
:pagination="false"
:scroll="{y: 400}"
:data-source="dataSourcehistory"
:loading="loading"
>
<span slot="content" slot-scope="text,record">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<span v-html="text"></span>
</a-tooltip>
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 10?text.slice(0,9)+'...':text}}
</span>
</span>
</a-table>
<historyTable :columnshistory='columnshistory' :dataSourcehistory='dataSourcehistory'></historyTable>
<!-- <a-table-->
<!-- class="table"-->
<!-- :columns="columnshistory"-->
<!-- :pagination="false"-->
<!-- :scroll="{y: 400}"-->
<!-- :data-source="dataSourcehistory"-->
<!-- :loading="loading"-->
<!-- >-->
<!-- <span slot="content" slot-scope="text,record">-->
<!-- <a-tooltip placement="topLeft">-->
<!-- <template slot="title">-->
<!-- <span v-html="text"></span>-->
<!-- </template>-->
<!-- <span v-html="text"></span>-->
<!-- </a-tooltip>-->
<!-- </span>-->
<!-- <span slot="detailText" slot-scope="text,record">-->
<!-- <span class="text" :title="text">-->
<!-- {{text && text.length > 10?text.slice(0,9)+'...':text}}-->
<!-- </span>-->
<!-- </span>-->
<!-- </a-table>-->
<div class="page" v-if="dataSourcehistory.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
@@ -271,11 +273,14 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import axios from 'axios'
import Vue from 'vue'
import VueDraggableResizable from 'vue-draggable-resizable'
// import VueDraggableResizable from 'vue-draggable-resizable'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import historyTable from './historyTable.vue'
export default {
name: 'index',
mixins:[ResizeHeader, ResizeColumnProvide],
props: {
//接口
url: {
@@ -304,48 +309,51 @@
},
components: {
CollectionType,
VueDraggableResizable
// VueDraggableResizable
historyTable
},
data() {
this.components = {
header: {
cell: (h, props, children) => {
const { key, ...restProps } = props
// 此处的this.columns 是定义的table的表头属性变量
const col = this.columns.find((col) => {
const k = col.dataIndex || col.key
return k === key
})
if (!col || !col.width) {
return h('th', { ...restProps }, [...children])
}
const dragProps = {
key: col.dataIndex || col.key,
class: 'table-draggable-handle',
attrs: {
w: 10,
x: col.width,
z: 1,
axis: 'x',
draggable: false,
resizable: false
},
on: {
dragging: (x, y) => {
col.width = Math.max(x, 1)
}
}
}
const drag = h('vue-draggable-resizable', { ...dragProps })
return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag])
}
}
}
// this.components = {
// header: {
// cell: (h, props, children) => {
// const { key, ...restProps } = props
//
// // 此处的this.columns 是定义的table的表头属性变量
//
// const col = this.columns.find((col) => {
// const k = col.dataIndex || col.key
// return k === key
// })
//
// if (!col || !col.width) {
// return h('th', { ...restProps }, [...children])
// }
//
// const dragProps = {
// key: col.dataIndex || col.key,
// class: 'table-draggable-handle',
// attrs: {
// w: 10,
// x: col.width,
// z: 1,
// axis: 'x',
// draggable: false,
// resizable: false
// },
// on: {
// dragging: (x, y) => {
// col.width = Math.max(x, 1)
// }
// }
// }
// const drag = h('vue-draggable-resizable', { ...dragProps })
// return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag])
// }
// }
// }
return {
colIndexs:[],
minWidthColumns:[],
token: Vue.ls.get(ACCESS_TOKEN),
jsonBody: [],
checkboxList: [],
@@ -411,14 +419,15 @@
{
title: this.$t('OperationDetails'),
dataIndex: 'logContent',
align: 'center',
align: 'left',
width: 320,
ellipsis: true,
scopedSlots: { customRender: 'content' }
},
{
title: this.$t('OperationTime'),
dataIndex: 'createTime',
align: 'center',
align: 'left',
ellipsis: true,
width: 180
}
@@ -767,10 +776,10 @@
let num = 0
this.content = []
jsonHead.forEach((res, index) => {
console.log(res)
// console.log(res)
// 配置列
if (res.type) {
console.log('配置')
// console.log('配置')
this.columns.push({
dataIndex: res.db_field_name,
align: 'left',
@@ -834,8 +843,15 @@
}
}
}
if(res.isLock && res.isLock === '0'){
this.colIndexs.push(index)
}
})
this.columns = [...this.columns]
this.colIndexs.forEach((item)=>{
this.minWidthColumns.push([this.columns[item],500])
})
this.$forceUpdate()
}
})
@@ -976,7 +992,7 @@
Object.keys(Obj).forEach((item) => {
if (Obj[item] instanceof Object && Obj[item].controlType !== undefined) {
Obj[item].list.forEach((itemLi) => {
console.log(item)
// console.log(item)
if((this.currentPersonRole == 'homo' || this.currentPersonRole == 'admin') && item == 'referencesCol'){
itemLi.isLock = 0
}else{
@@ -1163,6 +1179,10 @@
text-justify: inter-ideograph;
word-break: break-all
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
<style>
.resize-table-th {
@@ -1,6 +1,6 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if='isTrue'>
<!-- -->
<a-table
class="table"
@@ -11,7 +11,7 @@
:data-source="dataSource"
:loading="loading"
sticky
:components="components"
:components="drag(columns,'columns',JSON.parse(JSON.stringify(minWidthColumns)))"
:columns="columns"
:rowClassName="rowClassName"
@change="tableOnChange"
@@ -168,28 +168,30 @@
@ok="handleOk"
@cancel="handleCancel"
>
<a-table
class="table"
:columns="columnshistory"
:pagination="false"
:scroll="{y: 400}"
:data-source="dataSourcehistory"
:loading="loading"
>
<span slot="content" slot-scope="text,record">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<span v-html="text"></span>
</a-tooltip>
</span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text && text.length > 10?text.slice(0,9)+'...':text}}
</span>
</span>
</a-table>
<history-table1 :columnshistory='columnshistory' :dataSourcehistory='dataSourcehistory'></history-table1>
<!-- :components="drag(columnshistory,'columnshistory')"-->
<!-- <a-table-->
<!-- class="table"-->
<!-- :columns="columnshistory"-->
<!-- :pagination="false"-->
<!-- :scroll="{x: '100%', y: 400}"-->
<!-- :data-source="dataSourcehistory"-->
<!-- :loading="loading"-->
<!-- >-->
<!-- <span slot="content" slot-scope="text,record">-->
<!-- <a-tooltip placement="topLeft">-->
<!-- <template slot="title">-->
<!-- <span v-html="text"></span>-->
<!-- </template>-->
<!-- <span v-html="text"></span>-->
<!-- </a-tooltip>-->
<!-- </span>-->
<!-- <span slot="detailText" slot-scope="text,record">-->
<!-- <span class="text" :title="text">-->
<!-- {{text && text.length > 10?text.slice(0,9)+'...':text}}-->
<!-- </span>-->
<!-- </span>-->
<!-- </a-table>-->
<div class="page" v-if="dataSourcehistory.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
@@ -213,8 +215,10 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import axios from 'axios'
import Vue from 'vue'
import VueDraggableResizable from 'vue-draggable-resizable'
// import VueDraggableResizable from 'vue-draggable-resizable'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import historyTable1 from './historyTable1.vue'
export default {
name: 'index',
@@ -241,48 +245,52 @@
},
components: {
CollectionType,
VueDraggableResizable
// VueDraggableResizable
historyTable1
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
this.components = {
header: {
cell: (h, props, children) => {
const { key, ...restProps } = props
// 此处的this.columns 是定义的table的表头属性变量
const col = this.columns.find((col) => {
const k = col.dataIndex || col.key
return k === key
})
if (!col || !col.width) {
return h('th', { ...restProps }, [...children])
}
const dragProps = {
key: col.dataIndex || col.key,
class: 'table-draggable-handle',
attrs: {
w: 10,
x: col.width,
z: 1,
axis: 'x',
draggable: false,
resizable: false
},
on: {
dragging: (x, y) => {
col.width = Math.max(x, 1)
}
}
}
const drag = h('vue-draggable-resizable', { ...dragProps })
return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag])
}
}
}
// this.components = {
// header: {
// cell: (h, props, children) => {
// const { key, ...restProps } = props
//
// // 此处的this.columns 是定义的table的表头属性变量
//
// const col = this.columns.find((col) => {
// const k = col.dataIndex || col.key
// return k === key
// })
//
// if (!col || !col.width) {
// return h('th', { ...restProps }, [...children])
// }
//
// const dragProps = {
// key: col.dataIndex || col.key,
// class: 'table-draggable-handle',
// attrs: {
// w: 10,
// x: col.width,
// z: 1,
// axis: 'x',
// draggable: false,
// resizable: false
// },
// on: {
// dragging: (x, y) => {
// col.width = Math.max(x, 1)
// }
// }
// }
// const drag = h('vue-draggable-resizable', { ...dragProps })
// return h('th', { ...restProps, class: 'resize-table-th' }, [...children, drag])
// }
// }
// }
return {
colIndexs:[],
minWidthColumns:[],
token: Vue.ls.get(ACCESS_TOKEN),
jsonBody: [],
checkboxList: [],
@@ -297,6 +305,8 @@
pageNo: 1,
pageSize: 100,
pageNohistory: 1,
description:'',
isTrue:false,
pageSizehistory: 10,
pageSizeOptions: ['100', '200'],
total: 0,
@@ -340,14 +350,15 @@
{
title: this.$t('OperationDetails'),
dataIndex: 'logContent',
align: 'center',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'content' }
scopedSlots: { customRender: 'content' },
width: 484
},
{
title: this.$t('remarks'),
dataIndex: 'remarks',
align: 'center',
align: 'left',
ellipsis: true,
width: 180,
scopedSlots: { customRender: 'detailText' }
@@ -355,7 +366,7 @@
{
title: this.$t('OperationTime'),
dataIndex: 'createTime',
align: 'center',
align: 'left',
ellipsis: true,
width: 180
}
@@ -629,8 +640,20 @@
}
}
}
if(res.type){
this.colIndexs.push(index)
}
})
this.columns = [...this.columns]
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
this.columns = [...this.columns]
this.colIndexs.forEach((item)=>{
this.minWidthColumns.push([this.columns[item],500])
})
},300)
console.log(this.columns)
}
})
@@ -861,6 +884,7 @@
}
</style>
<style scoped lang="less">
@import'~@assets/less/common.less';
.inputWid {
min-width: 100px;
height: 38px;
@@ -971,6 +995,10 @@
text-justify: inter-ideograph;
word-break: break-all
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
<style>
.resize-table-th {
+9 -1
View File
@@ -1,12 +1,13 @@
<template>
<div style="height: 100%">
<div class="box">
<div class="box" v-if="isTrue">
<a-table
class="table"
rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
:scroll="{x: '100%'}"
:components="drag(columns,'columns')"
:data-source="dataSource"
:loading="loading"
:rowClassName="rowClassName"
@@ -62,9 +63,11 @@
<script>
import eventBUs from '../../common/event'
import { getAction, postAction } from '@/api/manage'
import {ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
mixins: [ResizeColumnProvide,ResizeHeader],
props: {
//接口
url: {
@@ -97,6 +100,7 @@
dataSource: [],
pageNo: 1,
pageSize: 10,
isTrue:false,
total: 0,
searchParmes: {},
loading: false,
@@ -193,6 +197,10 @@
scopedSlots: { customRender: 'operation' }
})
}
this.isTrue = false
this.$nextTick(()=>{
this.isTrue = true
})
}
})
},
@@ -5,15 +5,16 @@
style="z-index: 1007"
:visible="visibleFile"
:maskClosable="false"
@cancel="visibleFile = false"
@cancel="visibleFile = false;$emit('visible')"
>
<template slot="footer">
<a-button key="back" @click="visibleFile = false">
<a-button key="back" @click="visibleFile = false;$emit('visible')">
{{$t('cancel')}}
</a-button>
</template>
<a-table
class="table"
:components="drag(columnsFile,'columnsFile')"
:columns="columnsFile"
:pagination="false"
:scroll="{x:500,y: 400}"
@@ -39,10 +40,11 @@
import { Base64 } from 'js-base64'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'viewFileModel',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
dataSourceFile: [],
+64 -15
View File
@@ -5,8 +5,10 @@ const events = {
move: 'mousemove',
stop: 'mouseup'
}
let tableAll = [] // 单个页面存放多个表格的columns
var columnsAll = []
var columnsKey = ''
let minColumn = [] // 存放设置最小宽的列及宽度
const DragHandler = {
name: 'nio-drag-handler',
//获取混入的方法(重新设置表头宽度)
@@ -85,28 +87,65 @@ const DragHandler = {
return h('div', { class: 'nio-drag-handler', on: { mousedown: this.handleMouseDown } }, [line])
}
}
const ResizeHeaderOne = function(val, name) {
const ResizeHeaderOne = function(val, name ,minWidths) {
columnsAll = val
columnsKey = name
minColumn = minWidths
if(tableAll.indexOf(val) === -1){
tableAll.push(val)
}
return (h, props, children) => {
const { key, column, ...restProps } = props
let col = {}
// 处理多级表头
col = getRenderCoL(key, val)
// col = getRenderCoL(key, val)
col = getRenderCoL(key, columnsAll)
let content = [].concat(children)
if (col ) {
const handlerVNode = h(DragHandler, {
props: {
width: col.width,
minWidth: Math.min(col.width, 100),
column: col
if (col) {
let handlerVNode;
if(minColumn && minWidths !== undefined && minColumn.length>0){
// 存放所有需要手动设置最小宽度的列的dataIndex
let colsdataIndex = []
minColumn.forEach((item)=>{
colsdataIndex.push(item[0].dataIndex)
handlerVNode = h(DragHandler, {
props: {
width: col.width,
minWidth: Math.min(item[1]),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
})
// 不需要手动设置最小宽度的列
if(colsdataIndex.indexOf(col.dataIndex) === -1){
handlerVNode = h(DragHandler, {
props: {
width: col.width,
minWidth: Math.min(col.width, 100),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
}
}, [])
content = content.concat(
handlerVNode
)
}else{
handlerVNode = h(DragHandler, {
props: {
width: col.width,
minWidth: Math.min(col.width, 100),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
}
}
console.log(restProps)
console.log(restProps,11)
let className = ''
if ((restProps.attrs && restProps.attrs.colSpan && restProps.attrs.colSpan == 1) || (restProps.attrs && restProps.attrs.colSpan && restProps.attrs.colSpan > 0)){
className = ' second'
@@ -120,10 +159,12 @@ const ResizeHeaderOne = function(val, name) {
}
export const ResizeHeader = {
methods: {
drag(columns, name) {
drag(columns, name ,minWidths) {
console.log(minWidths)
return {
header: {
cell: ResizeHeaderOne(columns, name)
// minWidths : 最小宽度 => [[需要设置的列,最小宽],[需要设置的列,最小宽],...]
cell: ResizeHeaderOne(columns, name,minWidths)
}
}
}
@@ -197,6 +238,14 @@ export const ResizeColumnProvide = {
},
methods: {
_resizeColumn(w, column) {
console.log(column)
tableAll.forEach(item=>{
item.forEach((i)=>{
if(i === column && i.dataIndex === column.dataIndex){
columnsAll = item
}
})
})
this.moving = true
let time = setTimeout(() => {
this.moving = false
+278
View File
@@ -0,0 +1,278 @@
import _ from 'lodash'
const events = {
start: 'mousedown',
move: 'mousemove',
stop: 'mouseup'
}
let istableAll = [] // 单个页面存放多个表格的columns
var tablecolumnsAll = []
var tablecolumnsKey = ''
let tableminColumn = [] // 存放设置最小宽的列及宽度
const tableDragHandler = {
name: 'nio-drag-handler',
//获取混入的方法(重新设置表头宽度)
inject: ['onResizeColumn'],
props: {
column: { type: Object, required: true },
minWidth: { type: Number, required: true }
},
data() {
return {
dragging: false,
thWidth: 0,// 列头的宽度,用于计算
startX: 0,
moveEvent: {
remove: function() {
}
},
stopEvent: {
remove: function() {
}
}
}
},
//销毁监听
tablebeforeDestroy() {
this.removeEvents()
},
methods: {
//鼠标开始拖拽
tablehandleMouseDown(e) {
e.stopPropagation()
e.preventDefault()
this.tablehandleStart(e)
},
tablehandleStart(e) {
console.log(e)
this.dragging = true
this.removeEvents()
this.thWidth = this.$el.parentNode.getBoundingClientRect().width
if (e instanceof MouseEvent && e.which !== 1) {
return
}
if (e.stopPropagation) e.stopPropagation()
this.startX = e.pageX
this.moveEvent = addEventListenerWrap(document.documentElement, events.move, this.handleMove)
this.stopEvent = addEventListenerWrap(document.documentElement, events.stop, this.handleStop)
},
handleMove(e) {
this.updateWidth(e)
},
handleStop(e) {
this.dragging = false
this.updateWidth(e)
this.removeEvents()
},
updateWidth(e) {
let pageX = e.pageX
const tmpDeltaX = this.startX - pageX
let w = Math.max(this.thWidth - tmpDeltaX, this.minWidth)
w = Math.min(w, Infinity)
this.onResizeColumn(w, this.column)
},
removeEvents() {
this.moveEvent.remove()
this.stopEvent.remove()
}
},
//渲染div 绑定拖拽
render(h) {
const line = h('div', { class: 'nio-drag-handler-line' }, [])
return h('div', { class: 'nio-drag-handler', on: { mousedown: this.tablehandleMouseDown } }, [line])
}
}
const tableResizeHeaderOne = function(val, name ,minWidths) {
tablecolumnsAll = val
tablecolumnsKey = name
tableminColumn = minWidths
if(istableAll.indexOf(val) === -1){
istableAll.push(val)
}
return (h, props, children) => {
const { key, column, ...restProps } = props
let col = {}
// 处理多级表头
// col = getRenderCoL(key, val)
col = getRenderCoL(key, tablecolumnsAll)
let content = [].concat(children)
if (col) {
let handlerVNode;
if(tableminColumn && minWidths !== undefined && tableminColumn.length>0){
// 存放所有需要手动设置最小宽度的列的dataIndex
let colsdataIndex = []
tableminColumn.forEach((item)=>{
colsdataIndex.push(item[0].dataIndex)
handlerVNode = h(tableDragHandler, {
props: {
width: col.width,
minWidth: Math.min(item[1]),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
})
// 不需要手动设置最小宽度的列
if(colsdataIndex.indexOf(col.dataIndex) === -1){
handlerVNode = h(tableDragHandler, {
props: {
width: col.width,
minWidth: Math.min(col.width, 100),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
}
}else{
handlerVNode = h(tableDragHandler, {
props: {
width: col.width,
minWidth: Math.min(col.width, 100),
column: col
}
}, [])
content = content.concat(
handlerVNode
)
}
}
return h('th', {
key,
props: { col },
...Object.assign({}, restProps, { class: (restProps.class || '') + ' nio-header-th' })
}, content)
}
}
export const tableResizeHeader = {
methods: {
tabledrag(columns, name ,minWidths) {
console.log(minWidths)
return {
header: {
// minWidths : 最小宽度 => [[需要设置的列,最小宽],[需要设置的列,最小宽],...]
cell: tableResizeHeaderOne(columns, name,minWidths)
}
}
}
}
}
const getRenderCoL = (key, tbCols) => {
let result = ''
_.forEach(tbCols, (item) => {
if (item.children) {
result = getRenderCoL(key, item.children)
return !result
} else {
const k = item.dataIndex || item.key
if (k === key) {
result = item
return false
}
}
})
return result
}
//拖拽的节流方法
const throttle2 = (fn, delay) => {
let valid = true
return (...args) => {
if (!valid) {
return
}
valid = false
setTimeout(() => {
fn(...args)
valid = true
}, delay)
}
}
//对table组件进行重构的核心方法组件
//监听鼠标移动的方法
function addEventListenerWrap(target, eventType, cb) {
if (target && target.addEventListener) {
target.addEventListener(eventType, cb)
}
return {
remove: () => {
if (target && target.removeEventListener) {
target.removeEventListener(eventType, cb)
}
}
}
}
//在table组件中混入的一个方法 provide => onResizeColumn
//目的是在table重写中(tableDragHandler方法)
//可以用到构造的onResizeColumn方法(重新设置表头的宽度)
export const tableResizeColumnProvide = {
name: 'ResizeColumnProvideMixin',
provide() {
return {
onResizeColumn: this.onResizeColumn
}
},
data() {
const onResizeColumn = throttle2(this._resizeColumn, 30)
return {
moving: false, //这个属性是为了在拖拽时 阻止表头触发排序的功能
onResizeColumn
}
},
methods: {
_resizeColumn(w, column) {
console.log(column)
istableAll.forEach(item=>{
item.forEach((i)=>{
if(i === column && i.dataIndex === column.dataIndex){
tablecolumnsAll = item
}
})
})
this.moving = true
let time = setTimeout(() => {
this.moving = false
clearTimeout(time)
}, 2000)
//在拖拽时找到对应表头 重新设置表头的宽度
let num = -1
let numOne = -1
for (let i = 0; i < tablecolumnsAll.length; i++) {
if (tablecolumnsAll[i].dataIndex === column.dataIndex) {
num = i
break
}
if (tablecolumnsAll[i].children && tablecolumnsAll[i].children.length > 0) {
for (let j = 0; j < tablecolumnsAll[i].children.length; j++) {
if (tablecolumnsAll[i].children[j].dataIndex === column.dataIndex) {
num = i
numOne = j
break
}
}
}
}
// const matchedIndex = columns.findIndex(item => item.dataIndex === column.dataIndex)
// console.log(matchedIndex)
// columns[matchedIndex].width = w
if (numOne > -1) {
tablecolumnsAll[num].children[numOne].width = w
} else {
tablecolumnsAll[num].width = w
}
this[tablecolumnsKey] = tablecolumnsAll
}
}
}
@@ -26,8 +26,10 @@
</div>
</div>
<a-table
v-if="isTrue"
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 320px)'}"
@@ -71,7 +73,7 @@
</div>
</div>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"></uploadFile>
<viewFileModel ref="viewFileModelRef"/>
<viewFileModel ref="viewFileModelRef" @visible="sVisible"/>
</div>
</template>
@@ -81,6 +83,7 @@
import { getAction, putAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import { postAction } from '../../../../api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'evaluationResultsList',
@@ -88,12 +91,14 @@
uploadFile,
viewFileModel
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
loading: false,
total: 0,
pageSize: 10,
pageNo: 1,
isTrue: true,
flag: false,
dataSource: [],
formInline: {},
@@ -173,6 +178,9 @@
},
methods: {
...mapGetters(['userInfo']),
sVisible(){
this.getDataAdmin()
},
clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
@@ -218,7 +226,7 @@
actiProcInstId: this.actiProcInstId
}
downloadFile('/lawsOpinionGather/lawsOpinionAssessmentResultEO/exportXls',
this.$route.query.serialNumber + ' ' + this.$t('evaluationResults') + '.zip', query)
this.$route.query.serialNumber+ ' ' +this.$t('evaluationResults') + '.zip', query)
},
getData() {
this.formInline = JSON.parse(JSON.stringify(this.$route.query))
@@ -260,6 +268,12 @@
seeFileClick(item) {
this.$refs.viewFileModelRef.clickButtonToUpload(item)
},
getDataAdmin(){
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
},
endProcessClick() {
let query = {
ids: this.$route.query.id
@@ -279,7 +293,7 @@
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -385,6 +399,10 @@
text-align: right;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
.operator-text-index {
display: inline-block;
/*margin-right: 16px;*/
@@ -13,6 +13,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -137,6 +138,7 @@
import moment from 'moment'
import eventBUs from '../../../../common/event'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'initiatingProcess',
@@ -147,6 +149,7 @@
footerProcess,
PersonnelSelection
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('regulatoryEngineer') + this.$t('initiatingProcess'),
@@ -100,6 +100,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 260px)'}"
@@ -141,9 +142,11 @@
<script>
import { getAction, postAction, deleteAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
//url传参严格按照当前命名
@@ -462,4 +465,8 @@
::v-deep .ant-table-body {
background: transparent !important;
}
::v-deep .ant-table-placeholder {
margin-top: 8px !important;
}
</style>
@@ -17,6 +17,7 @@
</div>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
:data-source="dataList"
@@ -54,12 +55,14 @@
<script>
import { getAction, postAction, deleteAction } from '@/api/manage'
import classificationMaintenanceAdd from './classificationMaintenanceAdd'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'classificationMaintenanceModel',
components: {
classificationMaintenanceAdd
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
url: {
@@ -60,6 +60,7 @@
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
:rowKey="(record)=>JSON.stringify(record)"
:scroll="{x: 1200}"
@@ -93,6 +94,7 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'listAddModel',
@@ -100,6 +102,7 @@
globalAdvancedQuery
},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -113,31 +116,36 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
}
],
dataList: [],
@@ -674,7 +674,7 @@
}
</style>
<style scoped lang="less">
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -3,7 +3,7 @@
<div class="search-detail-wrap">
<div class="box-content-left">
<div class="classification">{{$t('classification')}}:</div>
<template v-for="tag in tagList">
<template v-for='tag in tagList.slice(0,4)' v-if='!toggleSearchStatus'>
<a-checkable-tag
:key="tag.id"
:title="tag.problemLabel"
@@ -13,6 +13,24 @@
{{ tag.problemLabel }}
</a-checkable-tag>
</template>
<template v-for='tag in tagList' v-if='toggleSearchStatus'>
<a-checkable-tag
:key="tag.id"
:title="tag.problemLabel"
:checked="selectedTags.indexOf(tag.id) > -1"
@change="checked => handleChange(tag.id, checked)"
>
{{ tag.problemLabel }}
</a-checkable-tag>
</template>
<div style='display: inline-block;margin-bottom: 7px;'>
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a @click="handleToggleSearch">
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</div>
</div>
<div class="box-content-content">
<div class="box-content-content-index"
@@ -207,6 +225,7 @@
total: 0,
selectedTags: [],
loading: false,
toggleSearchStatus: false,
queryBase: {},
pageSize: 10,
queryForm: {},
@@ -444,6 +463,9 @@
this.$refs.problemKnowledgeBaseListViewRef.getData(JSON.parse(JSON.stringify(val)))
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
}
}
}
</script>
@@ -1,6 +1,6 @@
<template>
<a-card :bordered="false">
<a-tabs v-model="tabModel" @change="callback">
<a-tabs v-model="tabModel" @change="callback" style="margin-top: -27px;">
<a-tab-pane :key="$t('problemKnowledgeBase')" :tab="$t('problemKnowledgeBase')">
<problemKnowledgeBaseList v-if="tabModel == $t('problemKnowledgeBase')" ref="problemKnowledgeBaseListRef"/>
</a-tab-pane>
@@ -73,6 +73,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -130,6 +131,7 @@
import fillAdd from './modules/fillAdd'
import moment from 'moment'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'RegulationMonthlyFill',
@@ -137,6 +139,7 @@
fillTable,
fillAdd
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
//url传参严格按照当前命名
@@ -216,7 +219,7 @@
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 190,
width: 230,
scopedSlots: { customRender: 'operation' }
}
],
@@ -35,6 +35,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -88,12 +89,14 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'RegulationMonthlyManagement',
components: {
managementAdd
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
//url传参严格按照当前命名
@@ -61,6 +61,7 @@
</div>
<div style="width: 100%">
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 1200}"
@@ -96,12 +97,14 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'addModel',
components: {
globalAdvancedQuery
},
mixins:[ResizeHeader, ResizeColumnProvide],
props: {
},
data() {
@@ -116,19 +119,22 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
// {
// title: this.$t('status'),
@@ -146,13 +152,15 @@
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
}
// {
// title: this.$t('correspondingStandard'),
@@ -22,6 +22,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:500}"
@@ -55,12 +56,14 @@
<script>
import fillTableAdd from './fillTableAdd'
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'fillTable',
components: {
fillTableAdd
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -84,6 +84,7 @@
</div>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
:scroll="{x: '100%'}"
:data-source="dataList"
@@ -131,6 +132,7 @@
import PersonnelSelection from '@/components/PersonnelSelection/index'
import ImportFile from '@/components/ImportFile/index'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'TermInformation',
@@ -139,6 +141,7 @@
ImportFile
},
props: ['gatherResultList'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
url: {
@@ -158,25 +161,29 @@
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'left',
ellipsis: true
ellipsis: true,
width: 234
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'left',
scopedSlots: { customRender: 'clauseContent' }
scopedSlots: { customRender: 'clauseContent' },
width: 234
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethods',
align: 'left',
scopedSlots: { customRender: 'evaluationMethod' }
scopedSlots: { customRender: 'evaluationMethod' },
width: 234
},
{
title: this.$t('Assessor'),
dataIndex: 'Assessor',
align: 'left',
scopedSlots: { customRender: 'Assessor' }
scopedSlots: { customRender: 'Assessor' },
width: 234
},
{
title: this.$t('operation'),
@@ -92,6 +92,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 260px)'}"
@@ -130,6 +131,7 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import viewFileModel from '@/components/viewFileModel/index'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'evaluationResultsClause',
@@ -137,6 +139,7 @@
PersonnelSelection,
viewFileModel
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
queryParam: {},
@@ -161,70 +164,70 @@
{
title: this.$t('clauseNo'),
dataIndex: 'itemNum',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'center',
align: 'left',
width: 260,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('Assessor'),
dataIndex: 'evaluatorName',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethodsName',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResultName',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
},
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'technicalFileName',
align: 'center',
align: 'left',
ellipsis: true,
width: 260
},
{
title: this.$t('chapter'),
dataIndex: 'section',
align: 'center',
align: 'left',
ellipsis: true,
width: 260
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
align: 'left',
ellipsis: true,
width: 260
},
{
title: this.$t('enclosure'),
dataIndex: 'accessoryFile',
align: 'center',
align: 'left',
ellipsis: true,
width: 160,
scopedSlots: { customRender: 'accessoryFile' }
@@ -232,7 +235,7 @@
{
title: this.$t('feedbackTime'),
dataIndex: 'feedbackTime',
align: 'center',
align: 'left',
ellipsis: true,
width: 160
}
@@ -327,7 +330,7 @@
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -57,6 +57,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:350}"
@@ -85,6 +86,7 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import viewFileModel from '@/components/viewFileModel/index'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'evaluationResultsWhole',
@@ -92,6 +94,7 @@
PersonnelSelection,
viewFileModel
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
queryParam: {},
@@ -156,6 +159,7 @@
title: this.$t('problemDescription'),
dataIndex: 'issueOrSuggest',
align: 'left',
width: 573,
ellipsis: true
},
{
@@ -264,7 +268,7 @@
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -433,6 +437,10 @@
/deep/.ant-table-column-title{
font-weight: bold!important;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
<style>
.box-clause .ant-card-body {
@@ -14,6 +14,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -244,6 +245,7 @@
import moment from 'moment'
import eventBUs from '../../../../common/event'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'evaluationInitiationProcess',
@@ -256,6 +258,7 @@
standardDecompositionSheet,
TermInformation
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('regulatoryEngineer') + this.$t('initiatingProcess'),
@@ -103,6 +103,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 140px)'}"
@@ -181,12 +182,14 @@
import { getAction, postAction, deleteAction } from '@/api/manage'
import processInformation from './components/processInformation'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {
processInformation
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
//url传参严格按照当前命名
@@ -585,4 +588,8 @@
::v-deep .ant-table-body {
background: transparent !important;
}
::v-deep .ant-table-placeholder {
margin-top: 8px !important;
}
</style>
@@ -34,6 +34,7 @@
</div>
<a-table
:components="drag(columns,'columns')"
ref="table"
rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -55,10 +56,11 @@
<script>
import { getAction, putAction, deleteAction } from '@/api/manage'
import { JeroListMixin } from '@/mixins/JeroListMixin'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'customContentList',
mixins: [JeroListMixin],
mixins: [JeroListMixin,ResizeHeader, ResizeColumnProvide],
data() {
return {
queryParam: {},
@@ -69,6 +71,7 @@
align: 'left',
dataIndex: 'msgContent',
ellipsis: true,
width: 700,
scopedSlots: { customRender: 'msgContent' }
},
{
@@ -57,6 +57,7 @@
</div>
<div class="colloction-table">
<a-table
:components="drag(columns,'columns')"
ref="table"
size="middle"
rowKey="id"
@@ -102,12 +103,13 @@
<script>
import { getAction, postAction, deleteAction, putAction } from '@/api/manage'
import problemKnowledgeBaseList from './components/problemKnowledgeBaseList'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'collection',
components: {
problemKnowledgeBaseList
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
selectedRowKeys: [],
@@ -323,7 +325,7 @@
}
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.collection {
.collection-search-wrapper {
@@ -369,6 +371,16 @@
height: 38px;
}
///deep/ .nio-drag-handler {
// position: absolute;
// right: 0;
// top: 0;
// height: 100%;
// width: 1px;
// z-index: 1;
// border-left: 1px #e8e8e8 solid;
//}
::v-deep .ant-card-body {
padding: 0 24px!important;
}
@@ -177,9 +177,10 @@
>
<a-table
class="table"
:components="drag(columns,'columns')"
:columns="columns"
:pagination="false"
:scroll="{y: 400}"
:scroll="{x: '100%',y: 400}"
:data-source="dataSource"
:loading="loading"
>
@@ -217,7 +218,7 @@
class="table"
:columns="columnsRelated"
:pagination="false"
:scroll="{y: 400}"
:scroll="{x: '100%',y: 400}"
:data-source="dataSourceRelated"
:loading="loading"
>
@@ -273,12 +274,14 @@
import { Base64 } from 'js-base64'
import uploadFile from '@/components/uploadFile/file'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'docIndex',
components: {
uploadFile
},
mixins: [ResizeColumnProvide,ResizeHeader],
data() {
return {
url: {
@@ -295,7 +298,8 @@
dataIndex: 'title',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'operation' }
scopedSlots: { customRender: 'operation' },
width: 544
}
],
columnsFile: [
@@ -333,7 +337,8 @@
dataIndex: 'content',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'content' }
scopedSlots: { customRender: 'content' },
width: 484
},
{
title: this.$t('ModificationTime'),
@@ -828,4 +833,8 @@
///deep/.table .ant-table-tbody > tr > td {
// color: #040B29 ;
//}
/deep/ .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
@@ -69,6 +69,7 @@
@actionSynchron="actionSynchron"
:url="url"
showAction
ref='tableAdmin'
@actionDown="actionDown"
@onSelectChange="onSelectChange"
@actionDelete="actionDelete"
@@ -441,7 +442,7 @@
},
docVisible(val){
this.drawVisible=val
this.$refs.tableAdmin.getDataAdmin()
},
//文件详情跳转
detailClick(val){
@@ -24,6 +24,7 @@
:flag="'3'"
:OperationList="OperationList"
showAction
ref='tableAdmin'
@onSelectChange="onSelectChange"
@backDocument="backDocument"
@deleteDetail="deleteDetail"
@@ -249,6 +250,7 @@
if (num == 1){
eventBUs.$emit('searchGetData')
}
this.$refs.tableAdmin.getDataAdmin()
},
iVisible(val,num) {
this.importsVisible = val
@@ -60,6 +60,7 @@
</div>
<div class="colloction-table">
<a-table
:components="drag(columns,'columns')"
ref="table"
size="middle"
rowKey="id"
@@ -101,12 +102,14 @@
<script>
import { getAction, postAction, deleteAction, putAction } from '@/api/manage'
import SubArea from './module/SubArea'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'subscribtion',
components: {
SubArea
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
selectedRowKeys: [],
@@ -336,7 +339,7 @@
}
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.subscribtion {
.subscribtion-search-wrapper {
@@ -379,6 +382,16 @@
.box-button {
height: 38px;
}
///deep/ .nio-drag-handler {
// position: absolute;
// right: 0;
// top: 0;
// height: 100%;
// width: 1px;
// z-index: 1;
// border-left: 1px #e8e8e8 solid;
//}
</style>
<style lang="less">
.subscribtion {
@@ -65,11 +65,12 @@
ref="table"
size="middle"
rowKey="id"
:components="drag(columns,'columns')"
:columns="columns"
:dataSource="areaTable"
:pagination="false"
:loading="loading"
:scroll="{x: 600}"
:scroll="{x: '100%'}"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<a slot="name" slot-scope="text">{{ text }}</a>
@@ -95,11 +96,14 @@
<script>
import { putAction,postAction,getAction,deleteAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'diolagArea',
components:{
},
mixins:[ResizeHeader, ResizeColumnProvide],
data(){
return{
title:this.$t('add'),
@@ -2,6 +2,7 @@
<div class="list-table">
<a-table :data-source="tableData" :scroll="{x: 900}"
:columns="columns" rowKey="id"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:pagination="false"
class="tag-con-table">
@@ -27,6 +28,8 @@
</template>
<script>
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'listTable',
props:{
@@ -34,6 +37,7 @@
total:Number,
queryParams: Object
},
mixins:[ResizeHeader, ResizeColumnProvide],
data(){
return{
// tableData:[],
@@ -3,6 +3,7 @@
<div class="tree-table-content">
<a-table
class="tree-table-con"
:components="drag(columns,'columns')"
:columns="columns"
:data-source="tabData"
rowKey="id"
@@ -35,6 +36,8 @@
<script>
import { getAction, postAction, deleteAction, putAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'treeTable',
props:{
@@ -47,6 +50,7 @@
default: true
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data(){
return{
loading:false, //搜索条件
@@ -56,18 +60,21 @@
dataIndex: 'name',
key: 'name',
ellipsis: true,
width: 100
},
{
title: this.$t('enName'),
dataIndex: 'enName',
key: 'enName',
ellipsis: true,
width: 100
},
{
title: this.$t('describe'),
dataIndex: 'description',
key: 'description',
ellipsis: true,
width: 100
},
{
title: this.$t('operation'),
@@ -4,6 +4,8 @@
ref="table"
size="middle"
rowKey="id"
:scroll="{x: '100%'}"
:components="drag(columns,'columns')"
:columns="columns"
:dataSource="tableData"
:pagination="false"
@@ -31,8 +33,11 @@
</template>
<script>
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'tabTable',
mixins:[ResizeHeader, ResizeColumnProvide],
data(){
return{
queryParams:{
@@ -92,6 +97,8 @@
</script>
<style lang="less" scoped>
@import'~@assets/less/common.less';
.tab-table{
.action-edit{
margin-right: 10px;
@@ -67,6 +67,7 @@
<a-table :data-source="tableData" rowKey="id" :columns="columns"
:scroll="{x: true}"
:components="drag(columns,'columns')"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :pagination="false"
:loading="loading" class="tag-con-table">
@@ -115,6 +116,7 @@
import DicList from '../dialog/DicList'
import Vue from 'vue'
import { UI_CACHE_DB_DICT_DATA } from '@/store/mutation-types'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'tagContent',
@@ -122,6 +124,7 @@
// tabTable,
DicList
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('add'),
@@ -42,18 +42,7 @@
</span>
</a-row>
</a-form>
<a-table
ref="table"
size="middle"
:loading="loadingLeft"
:pagination="false"
:scroll="{x: '100%',y:340}"
rowKey="id"
:data-source="dataSourceLeft"
:row-selection="{ selectedRowKeys: selectedRowKeysLeft, onChange: onSelectChangeLeft,columnTitle:' ' }"
:columns="columns"
>
</a-table>
<table-left :tablecolumns='tablecolumns' :dataSourceLeft='dataSourceLeft' :loadingLeft='loadingLeft' :selectedRowKeysLeft='selectedRowKeysLeft' :onSelectChangeLeft='onSelectChangeLeft'></table-left>
<div class="page">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
@@ -111,6 +100,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loadingRight"
:pagination="false"
:scroll="{x: '100%',y:340}"
@@ -174,9 +164,15 @@
import { getAction, postAction, deleteAction ,downloadFile} from '@/api/manage'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import tableLeft from './tableLeft'
export default {
name: 'initiateDocumentComparison',
mixins:[ResizeHeader, ResizeColumnProvide],
components:{
tableLeft
},
data() {
return {
loading: false,
@@ -219,25 +215,67 @@
title: this.$t('standard'),
align: 'left',
ellipsis: true,
dataIndex: 'serialNumber'
dataIndex: 'serialNumber',
width: 79
},
{
title: this.$t('title'),
align: 'left',
ellipsis: true,
dataIndex: 'title'
dataIndex: 'title',
width: 79
},
{
title: this.$t('TextStatus'),
align: 'left',
ellipsis: true,
dataIndex: 'fileType'
dataIndex: 'fileType',
width: 79
},
{
title: this.$t('fileName'),
align: 'left',
ellipsis: true,
dataIndex: 'fileName'
dataIndex: 'fileName',
width: 79
}
],
tablecolumns: [
{
title: this.$t('number'),
align: 'left',
width: 70,
customRender: function(t, r, index) {
return parseInt(index) + 1
}
},
{
title: this.$t('standard'),
align: 'left',
ellipsis: true,
dataIndex: 'serialNumber',
width: 79
},
{
title: this.$t('title'),
align: 'left',
ellipsis: true,
dataIndex: 'title',
width: 79
},
{
title: this.$t('TextStatus'),
align: 'left',
ellipsis: true,
dataIndex: 'fileType',
width: 79
},
{
title: this.$t('fileName'),
align: 'left',
ellipsis: true,
dataIndex: 'fileName',
width: 79
}
],
dataSourceLeft: [],
@@ -434,7 +472,7 @@
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -611,4 +649,8 @@
color: #040B29;
cursor: pointer;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
@@ -0,0 +1,33 @@
<template>
<a-table
ref="table"
size="middle"
:components="tabledrag(tablecolumns,'tablecolumns')"
:loading="loadingLeft"
:pagination="false"
:scroll="{x: '100%',y:340}"
rowKey="id"
:data-source="dataSourceLeft"
:row-selection="{ selectedRowKeys: selectedRowKeysLeft, onChange: onSelectChangeLeft,columnTitle:' ' }"
:columns="tablecolumns"
>
</a-table>
</template>
<script>
import { tableResizeHeader, tableResizeColumnProvide } from '@/mixins/tableheader'
export default {
name: 'tableLeft',
mixins:[tableResizeHeader, tableResizeColumnProvide],
props:['tablecolumns',
'dataSourceLeft',
'loadingLeft',
'selectedRowKeysLeft',
'onSelectChangeLeft']
}
</script>
<style scoped>
</style>
@@ -55,6 +55,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 280px)'}"
@@ -111,10 +112,12 @@
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
//url传参严格按照当前命名
@@ -46,6 +46,7 @@
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: '100%',y:'calc(100vh - 440px)'}"
@@ -105,10 +106,12 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'RetrieveFilesList',
components: {},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -147,31 +150,36 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true
ellipsis: true,
width: 163
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true
ellipsis: true,
width: 163
},
{
title: this.$t('TextStatus'),
dataIndex: 'state',
align: 'left',
ellipsis: true
ellipsis: true,
width: 162
},
{
title: this.$t('fileName'),
dataIndex: 'file_name',
align: 'left',
ellipsis: true
ellipsis: true,
width: 163
},
{
title: this.$t('textInformation'),
dataIndex: 'text_info',
align: 'left',
ellipsis: true
ellipsis: true,
width: 163
}
],
dataList: [],
@@ -257,6 +265,7 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
@@ -74,8 +74,10 @@
</div>
<div>
<a-table
v-if="isTrue"
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 140px)'}"
@@ -128,7 +130,7 @@
</div>
</div>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
<RetrieveFilesList ref="RetrieveFilesListRef" @RetrieveFilesListForm="RetrieveFilesListForm"/>
<RetrieveFilesList ref="RetrieveFilesListRef" @RetrieveFilesListForm="RetrieveFilesListForm" @visible='sVisible'/>
</a-card>
</template>
@@ -138,6 +140,7 @@
import RetrieveFilesList from './components/RetrieveFilesList'
import eventBUs from '../../../common/event'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
@@ -145,8 +148,10 @@
addModel,
RetrieveFilesList
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
isTrue: true,
//url传参严格按照当前命名
url: {
list: '/docTranslation/docTranslationEO/page',
@@ -249,6 +254,9 @@
},
methods: {
...mapGetters(['userInfo']),
sVisible(){
this.getDataAdmin()
},
addModelForm() {
this.pageNo = 1
this.getList()
@@ -360,6 +368,12 @@
RetrieveFilesClick() {
this.$refs.RetrieveFilesListRef.addModel()
},
getDataAdmin(){
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
},
BatchDelete() {
if (this.selectedRowKeys.length > 0) {
let _this = this
@@ -482,4 +496,8 @@
::v-deep .ant-table-body {
background: transparent !important;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
@@ -88,6 +88,7 @@
ref="table"
size="middle"
@change="tableOnChange"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -239,12 +240,14 @@
import moment from 'moment'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'DocumentLibrary',
components: {
libraryPush
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
searchOption: [],
@@ -738,6 +741,7 @@
}
</style>
<style lang="less" scoped>
@import'~@assets/less/common.less';
.search-con-text {
@@ -62,6 +62,7 @@
<div style="width: 100%">
<a-table
:columns="columns"
:components="drag(columns,'columns')"
rowKey="id"
:scroll="{x: 1200}"
:data-source="dataList"
@@ -96,6 +97,7 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'addModel',
@@ -108,6 +110,7 @@
default: {}
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -120,19 +123,22 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
// {
// title: this.$t('status'),
@@ -150,13 +156,15 @@
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
}
// {
// title: this.$t('correspondingStandard'),
@@ -250,6 +258,7 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
@@ -737,6 +737,7 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
@@ -31,6 +31,7 @@
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
@@ -63,11 +64,13 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'transferList',
components: {},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -78,26 +81,30 @@
{
title: this.$t('VirtualListName'),
dataIndex: 'name',
align: 'center',
ellipsis: true
align: 'left',
ellipsis: true,
width: 223
},
{
title: this.$t('instructionForUse'),
dataIndex: 'useExplain',
align: 'center',
ellipsis: true
align: 'left',
ellipsis: true,
width: 223
},
{
title: this.$t('updateTime'),
dataIndex: 'updateTime',
align: 'center',
ellipsis: true
align: 'left',
ellipsis: true,
width: 223
},
{
title: this.$t('creater'),
dataIndex: 'createBy',
align: 'center',
ellipsis: true
align: 'left',
ellipsis: true,
width: 223
}
],
dataList: [],
@@ -161,6 +168,7 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit(flag) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
@@ -126,7 +126,31 @@
<a-icon type="setting"/>
{{$t('batSetting')}}
</div>
<!-- 自定义表头-->
<!-- 调取-->
<!-- v-if="isTrue"-->
<div @click="transferClick"
v-has="'dummyInventoryInfo:copyInfoByIds'"
class="operator-text" >
<a-icon type="profile"/>
{{$t('Transfer')}}
</div>
<!-- 添加-->
<!-- v-if="isTrue"-->
<div @click="handleAdd"
v-has="'dummyInventoryInfo:add'"
class="operator-text" >
<a-icon type="plus"/>
{{$t('add')}}
</div>
<!-- 删除-->
<!-- v-if="isTrue"-->
<div @click="handleDel"
v-has="'dummyInventoryInfo:deleteBatch'"
class="operator-text" >
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
<!-- 自定义表头-->
<a-popconfirm :visible="customizevisible" overlayClassName='popconfirmmize' placement="bottomRight" >
<template slot="title" id="popconfirmmize">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
@@ -153,32 +177,8 @@
{{ $t('customize') }}
</div>
</a-popconfirm>
<!-- 调取-->
<!-- v-if="isTrue"-->
<div @click="transferClick"
v-has="'dummyInventoryInfo:copyInfoByIds'"
class="operator-text" >
<a-icon type="profile"/>
{{$t('Transfer')}}
</div>
<!-- 添加-->
<!-- v-if="isTrue"-->
<div @click="handleAdd"
v-has="'dummyInventoryInfo:add'"
class="operator-text" >
<a-icon type="plus"/>
{{$t('add')}}
</div>
<!-- 删除-->
<!-- v-if="isTrue"-->
<div @click="handleDel"
v-has="'dummyInventoryInfo:deleteBatch'"
class="operator-text" >
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
</div>
<div style="width: 100%">
<div style="width: 100%" v-if="istable">
<a-table
ref="table"
:loading="loading"
@@ -255,10 +255,10 @@
</a-card>
</div>
</div>
<addModel :url="url" ref="addModelRef" @addModelList="addModelList"/>
<editModel :url="url" ref="editModelRef" @editModelList="editModelList"/>
<UpdateLog :url="url" ref="UpdateLogRef"/>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<addModel :url="url" ref="addModelRef" @addModelList="addModelList" @visible='sVisible'/>
<editModel :url="url" ref="editModelRef" @editModelList="editModelList" @visible='sVisible'/>
<UpdateLog :url="url" ref="UpdateLogRef" @visible='sVisible'/>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef" @visible='sVisible'/>
<transferListvirtal :url="url" @transferListFormHomo="transferListFormHomo" ref="transferListvirtalRef"/>
<batSetting :url="url" ref="batSettingRef" @batSettingList="batSettingList"/>
<a-modal
@@ -306,9 +306,9 @@
import transferList from './transferList'
import transferListvirtal from './transferListvirtal'
import { getAction, postAction, downloadFile } from '@/api/manage'
import {ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
import { ResizeHeader,ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'virtualListDetails',
@@ -331,6 +331,7 @@
visibleFile: false,
transferList: false,
orderBy: '1',
istable: true,
orderByField: '',
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
@@ -1330,11 +1331,18 @@
}
}
}
this.isTruee = false
this.$nextTick(()=>{
this.isTruee = true
})
return columnResult
}
},
methods: {
...mapGetters(['userInfo']),
sVisible(){
this.getDataAdmin()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
@@ -1368,6 +1376,12 @@
transferClick() {
this.$refs.transferListRef.transferModel()
},
getDataAdmin(){
this.isTrue = false
setTimeout(()=>{
this.isTrue = true
},100)
},
//导出
handleExport() {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
@@ -1729,7 +1743,7 @@
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
.doc-detail {
background: #fff;
@@ -1925,7 +1939,7 @@
//}
::v-deep .ant-table-body-inner {
padding-bottom: 16px;
padding-bottom: 9px;
}
::v-deep .ant-table-scroll .ant-table-header::-webkit-scrollbar {
@@ -51,6 +51,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -160,6 +161,7 @@
import tableDragResize from '@/mixins/tableDragResize'
import setCreator from '@/components/setCreator/index'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
@@ -167,7 +169,7 @@
VueDraggableResizable,
setCreator
},
mixins: [tableDragResize],
mixins: [tableDragResize, ResizeHeader, ResizeColumnProvide],
data() {
return {
loading: false,
@@ -219,21 +221,21 @@
title: this.$t('VirtualListName'),
align: 'left',
dataIndex: 'name',
width: '25%',
width: 260,
ellipsis: true,
scopedSlots: { customRender: 'VirtualListName' }
},
{
title: this.$t('listStatus'),
align: 'left',
width: '25%',
width: 260,
ellipsis: true,
dataIndex: 'state_dictText'
},
{
title: this.$t('creater'),
align: 'left',
width: '25%',
width: 260,
ellipsis: true,
dataIndex: 'createBy'
},
@@ -133,6 +133,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
rowKey="id"
@@ -296,6 +297,7 @@
import eventBUs from '@/common/event'
import { mapGetters } from 'vuex'
import PersonnelSelection from '@/components/PersonnelSelection/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'SplitDetail',
@@ -306,6 +308,7 @@
globalAdvancedQuery
// ImportFile
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -52,6 +52,7 @@
size="middle"
:loading="loading"
:pagination="false"
:components="drag(columns,'columns')"
:scroll="{x: '100%',y:'calc(100vh - 130px)'}"
rowKey="id"
:data-source="dataSource"
@@ -120,11 +121,14 @@ import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {
addModel,
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
@@ -180,6 +184,7 @@ export default {
ellipsis: true,
dataIndex: 'description',
// scopedSlots: { customRender: 'titleName' }
width: 192
},
// {
// title: this.$t('zoneOfApplication'),
@@ -535,4 +540,8 @@ export default {
::v-deep .ant-table-body {
background: transparent!important;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
@@ -34,6 +34,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 158px)'}"
@@ -43,9 +44,9 @@
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
>
<span slot="projectName" slot-scope="text,record" :title="text">
{{ text && text.length > 20 ? text.slice(0, 19) + '...' : text }}
</span>
<!-- <span slot="projectName" slot-scope="text,record" :title="text">-->
<!-- {{ text && text.length > 20 ? text.slice(0, 19) + '...' : text }}-->
<!-- </span>-->
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="handlecody(record)" v-has="'params:report:history'">{{$t('Exporthistory')}}</a>
<a class="text-operation" @click="deleteLib(record)" v-has="'report:detail:list'">{{$t('See')}}</a>
@@ -110,12 +111,14 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {
ExportHistory
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
token: Vue.ls.get(ACCESS_TOKEN),
@@ -157,7 +160,7 @@
{
title: this.$t('entryName'),
align: 'left',
width: '17%',
width: 210,
dataIndex: 'projectName',
sorter:true,
scopedSlots: { customRender: 'projectName' }
@@ -165,11 +168,13 @@
{
title: this.$t('ListTitle'),
align: 'left',
dataIndex: 'title'
width: 380,
dataIndex: 'title',
},
{
title: this.$t('Version'),
align: 'left',
width: 382,
dataIndex: 'version'
},
{
@@ -483,4 +488,14 @@
::v-deep .ant-table-body {
background: transparent!important;
}
::v-deep .ant-table-row-cell-break-word{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important
}
</style>
@@ -46,6 +46,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 160px)'}"
@@ -114,11 +115,14 @@ import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '../../../common/event'
import Vue from 'vue'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {
addModel,
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
@@ -166,7 +170,7 @@ export default {
dataIndex: 'templateName',
sorter:true,
ellipsis: true,
width: 300,
width: 201,
scopedSlots: { customRender: 'templateName' }
},
{
@@ -174,7 +178,7 @@ export default {
align: 'left',
dataIndex: 'description',
ellipsis: true,
width: 300,
width: 192,
scopedSlots: { customRender: 'projectName' }
},
{
@@ -70,6 +70,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 130px)'}"
@@ -113,12 +114,15 @@ import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import ImportFileOnlyList from '@/components/ImportFileOnlyList/index'
import Vue from 'vue'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'index',
components: {
addModel,
ImportFileOnlyList
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
certCategoryParamsInfoEOList: [],
@@ -174,6 +178,7 @@ export default {
align: 'left',
dataIndex: 'description',
ellipsis: true,
width: 180,
// scopedSlots: { customRender: 'titleName' }
},
{
@@ -527,4 +532,8 @@ export default {
::v-deep .ant-table-body {
background: transparent!important;
}
::v-deep .ant-table-placeholder{
margin-top: 8px !important;
}
</style>
@@ -7,6 +7,7 @@
</div>
<div style="width: 100%">
<a-table
:components="drag(columns,'columns')"
ref="table"
:loading="loading"
:pagination="false"
@@ -26,9 +27,11 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'circulationHistory',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
dataSource: [],
@@ -44,32 +47,32 @@
title: this.$t('OperationNode'),
dataIndex: 'name',
align: 'left',
width:'20%',
width:200,
},
{
title: this.$t('Operator'),
dataIndex: 'assignee',
align: 'left',
width:'20%',
width:200,
},
{
title: this.$t('result'),
dataIndex: 'approvalResult',
align: 'left',
width:'20%',
width:200,
scopedSlots: { customRender: 'approvalResult' }
},
{
title: this.$t('opinion'),
dataIndex: 'approvalOpinion',
align: 'left',
width:'20%',
width:200,
},
{
title: this.$t('OperationTime'),
dataIndex: 'createTime',
align: 'left',
width:'20%',
width:200,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
}
@@ -29,6 +29,7 @@
</div>
<a-table
ref="table"
:components="drag(columnsAll,'columnsAll')"
:loading="loading"
:pagination="false"
:scroll="{x: 1600}"
@@ -320,6 +321,7 @@
import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'engineeringConfirmation',
@@ -328,6 +330,7 @@
uploadFile,
viewFileModel
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
loading: false,
@@ -404,39 +407,45 @@
{
title: 'ID',
dataIndex: 'serialNumber',
align: 'left'
align: 'left',
width: 235
},
{
title: this.$t('completedBy'),
dataIndex: 'createBy',
ellipsis: true,
align: 'left'
align: 'left',
width: 235
},
{
title: this.$t('completedTime'),
dataIndex: 'createTime',
ellipsis: true,
align: 'left'
align: 'left',
width: 235
},
{
title: this.$t('feedbackFromTheEngineer'),
dataIndex: 'engineerFeedbackContent',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'engineerFeedbackContent' }
scopedSlots: { customRender: 'engineerFeedbackContent' },
width: 235
},
{
title: this.$t('Deliverables'),
dataIndex: 'fileId',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'Deliverables' }
scopedSlots: { customRender: 'Deliverables' },
width: 235
},
{
title: this.$t('replyFromProjectContactPerson'),
dataIndex: 'engineeringInterfacePersonReply',
ellipsis: true,
align: 'left'
align: 'left',
width: 235
},
{
title: this.$t('operation'),
@@ -141,70 +141,70 @@
{
title: this.$t('clauseNo'),
dataIndex: 'itemNum',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'center',
align: 'left',
width: 280,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethodsName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResult',
align: 'center',
align: 'left',
width: 180,
scopedSlots: { customRender: 'complianceResults' }
},
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'technicalFileName',
align: 'center',
align: 'left',
width: 280,
scopedSlots: { customRender: 'nameTechnicalDocument' }
},
{
title: this.$t('chapter'),
dataIndex: 'section',
align: 'center',
align: 'left',
width: 180,
scopedSlots: { customRender: 'chapter' }
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
align: 'left',
width: 180,
scopedSlots: { customRender: 'opinion' }
},
{
title: this.$t('enclosure'),
dataIndex: 'accessoryFile',
align: 'center',
align: 'left',
width: 180,
scopedSlots: { customRender: 'enclosure' }
},
{
title: this.$t('sponsorFeedback'),
dataIndex: 'sponsorFeedback',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'sponsorFeedbackIndex' }
@@ -214,35 +214,35 @@
{
title: this.$t('clauseNo'),
dataIndex: 'itemNum',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'center',
align: 'left',
width: 280,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethodsName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResult',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'Results' }
@@ -250,28 +250,28 @@
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'technicalFileName',
align: 'center',
align: 'left',
width: 280,
ellipsis: true
},
{
title: this.$t('chapter'),
dataIndex: 'section',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('enclosure'),
dataIndex: 'accessoryFile',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'accessoryFile' }
@@ -279,7 +279,7 @@
{
title: this.$t('sponsorFeedback'),
dataIndex: 'sponsorFeedback',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'sponsorFeedback' }
@@ -289,35 +289,35 @@
{
title: this.$t('clauseNo'),
dataIndex: 'itemNum',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'center',
align: 'left',
width: 280,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethodsName',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResult',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'Results' }
@@ -325,28 +325,28 @@
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'technicalFileName',
align: 'center',
align: 'left',
width: 280,
ellipsis: true
},
{
title: this.$t('chapter'),
dataIndex: 'section',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
align: 'left',
width: 180,
ellipsis: true
},
{
title: this.$t('enclosure'),
dataIndex: 'accessoryFile',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'accessoryFile' }
@@ -354,7 +354,7 @@
{
title: this.$t('sponsorFeedback'),
dataIndex: 'sponsorFeedback',
align: 'center',
align: 'left',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'sponsorFeedbackIndex' }
@@ -8,6 +8,7 @@
<div style="width: 100%">
<a-table
ref="table"
:components="drag(columnsAll,'columnsAll')"
:loading="loading"
:pagination="false"
:scroll="{x: '100%'}"
@@ -23,6 +24,7 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'regulatoryCirculationHistory',
@@ -32,6 +34,7 @@
default: false
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
dataSource: [],
@@ -41,35 +44,35 @@
title: this.$t('OperationContent'),
dataIndex: 'taskDefinitionKeyName',
align: 'left',
width: '20%',
width: 370,
ellipsis: true
},
{
title: this.$t('opinion'),
dataIndex: 'approvalOpinion',
align: 'left',
width: '20%',
width: 370,
ellipsis: true
},
{
title: this.$t('Operator'),
dataIndex: 'createBy',
align: 'left',
width: '20%',
width: 370,
ellipsis: true
},
{
title: this.$t('role'),
dataIndex: 'operatorRoleName',
align: 'left',
width: '20%',
width: 370,
ellipsis: true
},
{
title: this.$t('OperationTime'),
dataIndex: 'createTime',
align: 'left',
width: '20%',
width: 370,
ellipsis: true,
customRender: function(t, r, index) {
return moment(t).format('YYYY-MM-DD HH:mm:ss')
@@ -1,6 +1,7 @@
<template>
<div style="width: 100%;padding: 0 24px 24px 24px">
<a-table
:components="drag(columns,'columns')"
ref="table"
:loading="loading"
:pagination="false"
@@ -58,6 +59,7 @@
import { Base64 } from 'js-base64'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'standardContentList',
@@ -67,6 +69,7 @@
default: {}
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
dataSource: [],
@@ -175,6 +178,7 @@
remark: this.standardContentListQuery.verifyRemark
})
}
},
methods: {
...mapGetters(['userInfo']),
@@ -8,6 +8,7 @@
<div style="width: 100%">
<a-table
ref="table"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: true}"
@@ -26,9 +27,11 @@
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { Base64 } from 'js-base64'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'circulationHistory',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
dataSource: [],
@@ -45,23 +48,27 @@
{
title: this.$t('OperationNode'),
dataIndex: 'name',
align: 'left'
align: 'left',
width: 470
},
{
title: this.$t('Operator'),
dataIndex: 'assignee',
align: 'left'
align: 'left',
width: 270
},
{
title: this.$t('result'),
dataIndex: 'reviewResult',
align: 'left',
scopedSlots: { customRender: 'reviewResult' }
scopedSlots: { customRender: 'reviewResult' },
width: 270
},
{
title: this.$t('opinion'),
dataIndex: 'approvalOpinion',
align: 'left'
align: 'left',
width: 270
},
{
title: this.$t('operationTime'),
@@ -9,6 +9,7 @@
</div>
</div>
<a-table
:components="drag(columns,'columns')"
class="table"
key="id"
:pagination="false"
@@ -103,10 +104,12 @@
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import eventBUs from '../../../common/event'
import moment from 'moment'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'ProcessClassification',
components: {},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
tableDataLoading: false,
@@ -33,6 +33,17 @@
v-model="formInline.paramsName"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('certificationCategory')">-->
@@ -45,17 +56,6 @@
<!-- </div>-->
<!-- </a-col>-->
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
<span>{{$t('NareaOfResponsibility')}}</span>
</div>
<j-multi-select-tag class="box-input" v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('NareaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('dre')">
@@ -112,12 +112,12 @@
class="taskTable"
:loading="loading"
:pagination="false"
:scroll="{x: true,y:'calc(100vh - 335px)'}"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
:data-source="dataSource"
rowKey="id"
@change="tableOnChange"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
:columns="columns" :components="drag(columns,'columns',JSON.parse(JSON.stringify([[columns[3],200],[columns[4],200],[columns[5],200]])))"
>
<div slot="standardInformation" slot-scope="text,result" class="box-left">
<div class="content">
@@ -234,6 +234,7 @@
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import { mapGetters } from 'vuex'
import store from '@/store/'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'TaskList',
@@ -246,6 +247,7 @@
taskBatSetting
},
props: ['isDisplayNum', 'areaOfResponsibility'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -936,6 +938,10 @@
/deep/ .ant-table-tbody > tr > td {
padding: 16px 16px!important;
}
::v-deep .ant-table-placeholder {
margin-top: 8px !important;
}
</style>
<style>
.box-input .ant-select-selection {
@@ -45,6 +45,7 @@
ref='table'
size='middle'
rowKey='id'
:components="drag(columns,'columns')"
:columns='columns'
:dataSource='dataSource'
:pagination='false'
@@ -138,6 +139,7 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import eventBUs from '@/common/event'
import store from '@/store/'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'TaskParameterCollection',
@@ -148,6 +150,7 @@
HistoricalVersion,
ProjectCollectionParameters
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
columns: [
@@ -17,6 +17,7 @@
</div>
</div>
<a-table
:components="drag(columns,'columnsAll')"
:columns="columns"
:scroll="{x: 900}"
:data-source="dataList"
@@ -67,6 +68,7 @@
import { getAction, postAction, deleteAction } from '@/api/manage'
import certificationDirectoryAdd from './certificationDirectoryAdd'
import viewFileModel from '@/components/viewFileModel/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'certificationDirectory',
@@ -75,6 +77,7 @@
viewFileModel
},
props: ['isDisplayNum'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -86,45 +89,52 @@
title: this.$t('directoryName'),
dataIndex: 'directoryName',
align: 'left',
ellipsis: true
ellipsis: true,
width: 132
},
{
title: this.$t('batch'),
dataIndex: 'lot',
align: 'left',
ellipsis: true
ellipsis: true,
width: 132
},
{
title: this.$t('catalogFile'),
dataIndex: 'directoryFile',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'operationFile' }
scopedSlots: { customRender: 'operationFile' },
width: 132
},
{
title: this.$t('testScheme'),
dataIndex: 'experimentFile',
align: 'left',
ellipsis: true,
scopedSlots: { customRender: 'operationFile' }
scopedSlots: { customRender: 'operationFile' },
width: 132
},
{
title: this.$t('testReportLocation'),
dataIndex: 'detectionReportLocation',
align: 'left',
ellipsis: true
ellipsis: true,
width: 132
},
{
title: this.$t('explain'),
dataIndex: 'explainInfo',
align: 'left',
ellipsis: true
ellipsis: true,
width: 132
},
{
title: this.$t('uploadTime'),
dataIndex: 'uploadTime',
align: 'left',
ellipsis: true
ellipsis: true,
width: 130
},
{
title: this.$t('operation'),
@@ -7,6 +7,7 @@
<div id="main-right">
<a-table
ref="table"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: true}"
@@ -27,6 +28,7 @@
import * as echarts from 'echarts'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import responsibilityList from './responsibilityList'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'certificationProgress',
@@ -39,6 +41,7 @@
default: []
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
loading: false,
@@ -50,28 +53,33 @@
columns: [
{
title: this.$t('notInvolved'),
align: 'center',
dataIndex: 'notInvolved'
align: 'left',
dataIndex: 'notInvolved',
width: 102
},
{
title: this.$t('toBeStarted'),
align: 'center',
dataIndex: 'toBeStarted'
align: 'left',
dataIndex: 'toBeStarted',
width: 102
},
{
title: this.$t('inProgress'),
align: 'center',
dataIndex: 'inProgress'
align: 'left',
dataIndex: 'inProgress',
width: 102
},
{
title: this.$t('experimentFailed'),
align: 'center',
dataIndex: 'experimentFailed'
align: 'left',
dataIndex: 'experimentFailed',
width: 122
},
{
title: this.$t('experimentPassed'),
align: 'center',
dataIndex: 'experimentPassed'
align: 'left',
dataIndex: 'experimentPassed',
width: 122
}
]
}
@@ -14,6 +14,7 @@
<div id="main-right">
<a-table
ref="table"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: true}"
@@ -34,6 +35,7 @@
import * as echarts from 'echarts'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import responsibilityList from './responsibilityList'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'CurrentStatusOfTheProjectEcharts',
@@ -46,6 +48,7 @@
default: []
}
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
loading: false,
@@ -57,23 +60,27 @@
columns: [
{
title: this.$t('red'),
align: 'center',
dataIndex: 'redCount'
align: 'left',
dataIndex: 'redCount',
width: 139
},
{
title: this.$t('yellow'),
align: 'center',
dataIndex: 'yellowCount'
align: 'left',
dataIndex: 'yellowCount',
width: 139
},
{
title: this.$t('green'),
align: 'center',
dataIndex: 'greenCount'
align: 'left',
dataIndex: 'greenCount',
width: 139
},
{
title: this.$t('blue'),
align: 'center',
dataIndex: 'blueCount'
align: 'left',
dataIndex: 'blueCount',
width: 139
}
]
}
@@ -10,6 +10,7 @@
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<a-table
:components="drag(columns,'columns')"
:columns="columns"
:rowKey="record=> record.key"
:scroll="{x: 800}"
@@ -41,486 +42,187 @@
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'transferList',
components: {},
props: ['url'],
data() {
return {
visible: false,
queryParam: {},
confirmLoading: false,
selectedRowKeys: [],
selectedRows: [],
columns: [
{
title: this.$t('customColumn'),
dataIndex: 'name',
align: 'left',
ellipsis: true
},
],
dataList: [
{
sort: '1',
name: this.$t('standard'),
headFieldCn:'编号',
headFieldEn:'Number',
field: 'serialNumber',
key: 1,
moduleFlag:'法规清单',
status:1,
},
{
sort: '2',
name: this.$t('title'),
headFieldCn:'标题',
headFieldEn:'title',
field: 'title',
key: 2,
moduleFlag:'法规清单',
status:2,
},
{
sort: '',
name: this.$t('subtitle'),
headFieldCn:'子标题',
headFieldEn:'Sub-title',
field: 'subtitle',
key: 3,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('listConfirmationStatus'),
headFieldCn:'清单确认状态',
headFieldEn:'List Confirmation Status',
field: 'inventoryAffirmStatusName',
key: 4,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('taskAffirmStatus'),
headFieldCn:'任务确认状态',
headFieldEn:'Task Confirmation Status',
field: 'taskAffirmStatusName',
key: 5,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('zoneOfApplication'),
headFieldCn:'适用地区',
headFieldEn:'Area',
field: 'region_dictText',
key: 6,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('correspondingStandard'),
headFieldCn:'对应标准',
headFieldEn:'Compare EU/CN',
field: 'correspondingStandard',
key: 7,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('implementationCategory'),
headFieldCn:'实施类别',
headFieldEn:'Usage',
field: 'implementType_dictText',
key: 8,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('ImplementationDate'),
headFieldCn:'标准实施日期',
headFieldEn:'New Type Execution Date',
field: 'xin1Che1Xing2Shi2Shi1Ri4Qi1',
key: 9,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('vehicleInProductionDate'),
headFieldCn:'在产车实施日期',
headFieldEn:'New Vehicle Execution Date',
field: 'implementTime',
key: 10,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('certificationType'),
headFieldCn:'认证类型',
headFieldEn:'Certification Type',
field: 'attestationType_dictText',
key: 11,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('certificationLevel'),
headFieldCn:'认证级别',
headFieldEn:'Certification Level',
field: 'attestationRank_dictText',
key: 12,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('applicableSupplement'),
headFieldCn:'适用增补件',
headFieldEn:'Applicable Supplement',
field: 'applicableSupplement',
key: 13,
moduleFlag:'法规清单',
},
{
sort: '',
name: 'WVTA ID',
headFieldCn:'WVTA ID',
headFieldEn:'WVTA ID',
field: 'wvtaId',
key: 14,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('areaOfResponsibility'),
headFieldCn:'责任领域',
headFieldEn:'Responsible Field',
field: 'dutyTerritory_dictText',
key: 15,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('regulatoryEngineer'),
headFieldCn:'法规工程师',
headFieldEn:'Regulation Engineer',
field: 'regulationOwnerName',
key: 16,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('certifiedEngineer'),
headFieldCn:'认证工程师',
headFieldEn:'Homo Engineer',
field: 'homologationEngineerName',
key: 17,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('engineeringInterfacePerson'),
headFieldCn:'工程接口人',
headFieldEn:'Eng. Interface',
field: 'engineeringInterfacePersonName',
key: 18,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('remarks'),
headFieldCn:'备注',
headFieldEn:'Comments',
field: 'remark',
key: 19,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('confirmationOfDesignConformity') + '/' + this.$t('Deliverables'),
headFieldCn:'交付物',
headFieldEn:'Deliverables',
field: 'designDeliverableTemplateName',
affirmFlag:'1',
key: 20,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('confirmationOfDesignConformity') + '/' + this.$t('Sponsor'),
headFieldCn:'发起人',
headFieldEn:'Creator',
field: 'designInitiatorName',
affirmFlag:'1',
key: 21,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('confirmationOfDesignConformity') + '/' + this.$t('personLiable'),
headFieldCn:'责任人',
headFieldEn:'Assignee',
field: 'designDutyName',
affirmFlag:'1',
key: 22,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('confirmationOfDesignConformity') + '/' + this.$t('TaskCutOffTime'),
headFieldCn:'截止时间',
headFieldEn:'Due Date',
field: 'designDueDate',
affirmFlag:'1',
key: 23,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('confirmationOfDesignConformity') + '/' + this.$t('descriptionDeliverables'),
headFieldCn:'交付物说明',
headFieldEn:'Instruction',
field: 'designRemark',
affirmFlag:'1',
key: 24,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('PrehomoConfirmation') + '/' + this.$t('Deliverables'),
headFieldCn:'交付物',
headFieldEn:'Deliverables',
field: 'prehomoDeliverableTemplateName',
affirmFlag:'2',
key: 25,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('PrehomoConfirmation') + '/' + this.$t('Sponsor'),
headFieldCn:'发起人',
headFieldEn:'Creator',
field: 'prehomoInitiatorName',
affirmFlag:'2',
key:26,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('PrehomoConfirmation') + '/' + this.$t('personLiable'),
headFieldCn:'责任人',
headFieldEn:'Assignee',
field: 'prehomoDutyName',
affirmFlag:'2',
key: 27,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('PrehomoConfirmation') + '/' + this.$t('TaskCutOffTime'),
headFieldCn:'截止时间',
headFieldEn:'Due Date',
field: 'prehomoDueDate',
affirmFlag:'2',
key: 28,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('PrehomoConfirmation') + '/' + this.$t('descriptionDeliverables'),
headFieldCn:'交付物说明',
headFieldEn:'Instruction',
field: 'prehomoRemark',
affirmFlag:'2',
key: 29,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('verificationAndConformityconfirmation') + '/' + this.$t('Deliverables'),
headFieldCn:'交付物',
headFieldEn:'Deliverables',
field: 'verifyDeliverableTemplateName',
affirmFlag:'3',
key: 30,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('verificationAndConformityconfirmation') + '/' + this.$t('Sponsor'),
headFieldCn:'发起人',
headFieldEn:'Creator',
field: 'verifyInitiatorName',
affirmFlag:'3',
key: 31,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('verificationAndConformityconfirmation') + '/' + this.$t('personLiable'),
headFieldCn:'责任人',
headFieldEn:'Assignee',
field: 'verifyDutyName',
affirmFlag:'3',
key: 32,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('verificationAndConformityconfirmation') + '/' + this.$t('TaskCutOffTime'),
headFieldCn:'截止时间',
headFieldEn:'Due Date',
field: 'verifyDueDate',
affirmFlag:'3',
key: 33,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('verificationAndConformityconfirmation') + '/' + this.$t('descriptionDeliverables'),
headFieldCn:'交付物说明',
headFieldEn:'Instruction',
field: 'verifyRemark',
affirmFlag:'3',
key: 34,
moduleFlag:'法规清单',
},
{
sort: '',
name: this.$t('operation'),
headFieldCn:'操作',
headFieldEn:'Operation',
key: 35,
moduleFlag:'法规清单',
status:2,
},
],
content: [],
columnsAll:[],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0
}
},
mounted() {
},
methods: {
transferModel(val) {
this.visible = true
this.queryParam = {}
this.columnsAll = val
// this.$nextTick(() => {
// this.selectedRowKeys = []
// this.selectedRows = []
// })
//
// this.getCheckboxProps()
},
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
export default {
name: 'transferList',
components: {},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
queryParam: {},
confirmLoading: false,
selectedRowKeys: [],
columns: [
{
title: this.$t('customColumn'),
dataIndex: 'name',
align: 'left',
ellipsis: true,
width: 884
},
],
dataList: [
{
orderBy: '1',
name: '1',
id: '1',
status:1,
},
{
orderBy: '2',
name: '2',
id: '12',
status:2,
},
{
orderBy: '3',
name: '3',
id: '13',
},
{
orderBy: '4',
name: '4',
id: '15',
},
{
orderBy: '5',
name: '4',
id: '16',
},
{
orderBy: '6',
name: '4',
id: '17',
},
{
orderBy: '7',
name: '4',
id: '18',
},
{
orderBy: '8',
name: '4',
id: '19',
status:2,
},
],
content: [],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0
}
this.loading = true
postAction(this.url.transferUrl, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.loading = false
},
mounted() {
},
methods: {
transferModel() {
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
// this.replacePage()
},
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam
}
})
},
onSelectChange(value, rows) {
this.selectedRowKeys = value
this.selectedRows = rows
// if (this.selectedRowKeys.length > 1) {
// this.selectedRowKeys.shift()
// }
},
getCheckboxProps(record) {
let titleList = []
this.columnsAll.forEach((item) => {
if(item.children){
item.children.forEach((val) => {
titleList.push(item.dataIndex,val.dataIndex)
})
}else {
titleList.push(item.dataIndex)
}
})
console.log(titleList)
return ({
props: {
//当状态是1或者2的时候执行disable
disabled: record.status === 1 || record.status === 2,
defaultChecked: titleList.includes(record.field)
}
})
},
handleCancel() {
this.visible = false
},
handleSubmit(flag) {
// if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
// let selectedRows = JSON.parse(JSON.stringify(this.selectedRows))
// this.confirmLoading = false
// this.$emit('transferListForm',selectedRowKeys.join(','))
// this.selectedRowKeys = []
this.selectedRows.forEach((item,index) => {
item.sort = index + 1
})
let headCustomEOList = JSON.parse(JSON.stringify(this.selectedRows))
let query ={
headCustomEOList :headCustomEOList
}
postAction('head/headCustomEO/add', query).then((res) => {
this.loading = true
postAction(this.url.transferUrl, query).then((res) => {
if (res.success) {
this.confirmLoading = false
this.visible = false
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('customizeListForm')
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
this.visible = false
this.loading = false
}
})
},
getAdd() {
let _this = this
this.$confirm({
content: _this.$t('TheDoesNotContainData'),
onOk() {
_this.handleSubmit('1')
},
onSelectChange(value) {
this.selectedRowKeys = value
// if (this.selectedRowKeys.length > 1) {
// this.selectedRowKeys.shift()
// }
},
getCheckboxProps(record) {
console.log(record.status, 'status');
return ({
props: {
//当状态是1或者2的时候执行disable
disabled: record.status === 1 || record.status === 2
}
})
},
handleCancel() {
this.visible = false
},
handleSubmit(flag) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = []
// postAction(this.url.addModel, {
// dummyInventoryBaseId: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
// flag: flag
// }).then((res) => {
// if (res.success) {
// this.confirmLoading = false
// this.$message.success(this.$t('OperationSuccessful'))
// this.visible = false
// this.selectedRowKeys = []
// this.$emit('transferListForm')
// } else {
// if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') {
// this.confirmLoading = false
// this.getAdd()
// return
// }
// this.$message.warning(this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
})
},
getAdd() {
let _this = this
this.$confirm({
content: _this.$t('TheDoesNotContainData'),
onOk() {
_this.handleSubmit('1')
}
})
}
}
}
}
</script>
<style scoped>
@@ -14,9 +14,10 @@
</template>
<a-table
class="table"
:components="drag(columns,'columns')"
:columns="columns"
:pagination="false"
:scroll="{y: 400}"
:scroll="{x:'100%',y: 400}"
:data-source="dataSource"
:loading="loading"
>
@@ -29,9 +30,11 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'historicalVersionList',
mixins: [ResizeColumnProvide, ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -46,13 +49,15 @@
title: this.$t('versionName'),
dataIndex: 'versionsName',
align: 'left',
ellipsis: true
ellipsis: true,
width: 362
},
{
title: this.$t('finalizationTime'),
dataIndex: 'createTime',
align: 'left',
ellipsis: true
ellipsis: true,
width: 362
},
{
title: this.$t('operation'),
@@ -60,6 +60,7 @@
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 1200}"
@@ -93,6 +94,7 @@
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'listAddModel',
@@ -100,6 +102,7 @@
globalAdvancedQuery
},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -112,19 +115,22 @@
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
// {
// title: this.$t('status'),
@@ -142,13 +148,15 @@
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true
ellipsis: true,
width: 228
},
// {
// title: this.$t('correspondingStandard'),
@@ -24,7 +24,6 @@
v-model="queryParam.title"></j-input>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('areaOfResponsibility')">
@@ -36,6 +35,7 @@
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('listConfirmationStatus')">
@@ -97,6 +97,34 @@
<div class="table-operator"
v-if="(isRoleSwitching && !isDisplay) || (!isDisplay && roleSwitchingList.length > 1) || isDisplay"
style="overflow:hidden;margin-bottom: 20px">
<div style="float: right;margin-top: 1px; margin-left: 20px">
<a-popconfirm :visible="customizevisible" overlayClassName='popconfirmmize' placement="bottomRight" >
<template slot="title" id="popconfirmmize">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
<a-checkbox
style='margin-bottom: 22px;'
v-if="customizeList && customizeList.length"
v-model="checkAll"
:indeterminate="indeterminate"
@change="onCheckAllChange"
>{{$t('selectAll')}}
</a-checkbox>
<a-checkbox-group @change="onChange" v-model="checkedList" class="customize-text">
<a-checkbox class="customize-text-title" :disabled='item.disabled' v-for="(item, key) in customizeList" :key="key" :value="item.field">{{ item.name }}
</a-checkbox>
</a-checkbox-group>
<div class="drawer-bootom-button">
<a-button @click="cancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</div>
</template>
<div class="operator-text" style="position: relative" @click='getcustomize'>
<a-icon type="setting"/>
{{ $t('customize') }}
</div>
</a-popconfirm>
</div>
<div style="float: left;margin-bottom: 0px;margin-left: 20px" v-if="isDisplay">
<div class="operator-text" @click="initiateListConfirmationcClick('清单')">
<a-icon type="solution"/>
@@ -107,7 +135,7 @@
{{ $t('initiateTaskConfirmation') }}
</div>
</div>
<div style="float: right;margin-top: 1px;" v-if="isDisplay">
<div style="float: right;margin-top: 1px;;margin-right: 20px" v-if="isDisplay">
<a-popconfirm overlayClassName='popconfirm' placement="bottomRight">
<template slot="title" id="popconfirm">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
@@ -161,32 +189,6 @@
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
</div>
</a-popconfirm>
<a-popconfirm :visible="customizevisible" overlayClassName='popconfirmmize' placement="bottomRight" >
<template slot="title" id="popconfirmmize">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
<a-checkbox
style='margin-bottom: 22px;'
v-if="customizeList && customizeList.length"
v-model="checkAll"
:indeterminate="indeterminate"
@change="onCheckAllChange"
>{{$t('selectAll')}}
</a-checkbox>
<a-checkbox-group @change="onChange" v-model="checkedList" class="customize-text">
<a-checkbox class="customize-text-title" :disabled='item.disabled' v-for="(item, key) in customizeList" :key="key" :value="item.field">{{ item.name }}
</a-checkbox>
</a-checkbox-group>
<div class="drawer-bootom-button">
<a-button @click="cancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</div>
</template>
<div class="operator-text" style="position: relative" @click='getcustomize'>
<a-icon type="setting"/>
{{ $t('customize') }}
</div>
</a-popconfirm>
<!-- <div class="operator-text" @click="customizeClick">-->
<!-- <a-icon type="setting"/>-->
<!-- {{ $t('customize') }}-->
@@ -210,7 +212,7 @@
{{ $t('roleSwitching') }}
</div>
</div>
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 0px">
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 0px;margin-right: 20px">
<div @click="handleExport" v-has="'projectLawsInventory:exportData'"
v-if="isRoleSwitching || formInlineRoleSwitching.roleSwitchingCode == '12'"
class="operator-text">
@@ -244,7 +246,7 @@
class="customizetable"
:loading="loading"
:pagination="false"
:scroll="{x: '100%',y:'calc(100vh - 356px)'}"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
rowKey="id"
:data-source="dataSource"
@change="tableOnChange"
@@ -813,7 +815,7 @@
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 240,
width: 200,
scopedSlots: { customRender: 'operation' }
},
{
@@ -105,6 +105,7 @@
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"-->
<a-table
class="table"
:components="drag(columns,'columnsAll')"
:columns="columns"
rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@@ -270,6 +271,7 @@
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import ImportFile from '@/components/ImportFile/index'
import { mapGetters } from 'vuex'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'listOfRelevantPersonnel',
@@ -278,6 +280,7 @@
ImportFile,
personBatting
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
toggleSearchStatus: false,
@@ -288,31 +291,36 @@
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritory_dictText',
ellipsis: true
ellipsis: true,
width: 153
},
{
align: 'left',
dataIndex: 'lawEngineerName',
slots: { title: 'regulatoryEngineer' },
ellipsis: true
ellipsis: true,
width: 153
},
{
align: 'left',
slots: { title: 'engineeringInterfacePerson' },
dataIndex: 'engineeringInterfacePersonName',
ellipsis: true
ellipsis: true,
width: 153
},
{
align: 'left',
slots: { title: 'certifiedEngineer' },
dataIndex: 'certificationEngineerName',
ellipsis: true
ellipsis: true,
width: 153
},
{
title: this.$t('remarks'),
align: 'left',
dataIndex: 'remark',
ellipsis: true
ellipsis: true,
width: 153
},
{
title: this.$t('operation'),
@@ -689,4 +697,8 @@
/*/deep/.table .ant-table-tbody > tr > td {*/
/* color: #040B29 ;*/
/*}*/
.table {
margin-bottom: 60px;
}
</style>
@@ -51,6 +51,7 @@
<a-table
ref="table"
size="middle"
:components="drag(columns,'columns')"
:loading="loading"
rowKey="uuid"
:pagination="false"
@@ -60,11 +61,16 @@
:data-source="dataSource"
:columns="columns"
>
<span slot="standard" slot-scope="text,result">
<span slot="ProcessType" slot-scope="text,result">
<a @click="standardClick(result)" class="textName" :title="text">
{{text}}
</a>
</span>
<span slot="standard" slot-scope="text,result">
<a @click="standardhdClick(result)" class="textName" :title="text">
{{text}}
</a>
</span>
</a-table>
</div>
<div class="page" v-if="dataSource.length > 0">
@@ -85,9 +91,11 @@
<script>
import { getAction, postAction, downloadFile, deleteAction,downloadFilePost } from '@/api/manage'
import store from '@/store/'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'nonConformance',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
queryParam: {},
@@ -111,13 +119,13 @@
align: 'left',
dataIndex: 'title',
ellipsis: true,
width: 180,
scopedSlots: { customRender: 'standard' }
width: 180
},
{
title: this.$t('ProcessType'),
align: 'left',
dataIndex: 'flowType',
scopedSlots: { customRender: 'ProcessType' },
ellipsis: true,
sorter:true,
width: 180
@@ -253,6 +261,15 @@
}
})
},
standardhdClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: row.standId
}
})
window.open(newUrl.href, '_blank')
},
standardClick(val) {
let num = val.prcType
let query = {
@@ -20,6 +20,7 @@
</div>
<a-table
ref="table"
:components="drag(columns,'columns')"
:loading="loading"
:pagination="false"
:scroll="{x: true,y:400}"
@@ -36,9 +37,11 @@
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'responsibilityList',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -55,7 +58,7 @@
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'dutyTerritoryName',
align: 'center',
align: 'left',
width: 400,
ellipsis: true,
scopedSlots: { customRender: 'areaOfResponsibility' }
@@ -63,7 +66,7 @@
{
title: this.$t('Quantity'),
dataIndex: 'amount',
align: 'center',
align: 'left',
ellipsis: true,
width: 300
}
@@ -13,7 +13,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('confirmationOfRegulationsList')">
{{$t('confirmationOfRegulationsList')}}</span>
</div>
@@ -32,7 +32,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('regulatoryTaskConfirmation')">
{{$t('regulatoryTaskConfirmation')}}</span>
</div>
@@ -51,7 +51,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('confirmationOfDesignConformity')">
{{$t('confirmationOfDesignConformity')}}</span>
</div>
@@ -70,7 +70,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('preHomoCompletion')">
{{$t('preHomoCompletion')}}</span>
</div>
@@ -89,7 +89,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationStart')">
{{$t('certificationStart')}}</span>
</div>
@@ -109,7 +109,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('certificationEnd')">
{{$t('certificationEnd')}}</span>
</div>
@@ -129,7 +129,7 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('verificationAndConformityconfirmation')">
{{$t('verificationAndConformityconfirmation')}}</span>
</div>
@@ -163,55 +163,55 @@
confirmLoading: false,
formInline: {},
rules: {
listConfirmation: [
{
required: true,
message: this.$t('confirmationOfRegulationsList') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
legalTaskConfirmation: [
{
required: true,
message: this.$t('regulatoryTaskConfirmation') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
designDeadline: [
{
required: true,
message: this.$t('confirmationOfDesignConformity') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
prehomoDeadline: [
{
required: true,
message: this.$t('preHomoCompletion') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
attestationStartTime: [
{
required: true,
message: this.$t('certificationStart') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
attestationEndTime: [
{
required: true,
message: this.$t('certificationEnd') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
verifyDeadline: [
{
required: true,
message: this.$t('verificationConfirmationDeadline') + this.$t('cannotEmpty'),
trigger: 'change'
}
]
// listConfirmation: [
// {
// required: true,
// message: this.$t('confirmationOfRegulationsList') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// legalTaskConfirmation: [
// {
// required: true,
// message: this.$t('regulatoryTaskConfirmation') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// designDeadline: [
// {
// required: true,
// message: this.$t('confirmationOfDesignConformity') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// prehomoDeadline: [
// {
// required: true,
// message: this.$t('preHomoCompletion') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// attestationStartTime: [
// {
// required: true,
// message: this.$t('certificationStart') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// attestationEndTime: [
// {
// required: true,
// message: this.$t('certificationEnd') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ],
// verifyDeadline: [
// {
// required: true,
// message: this.$t('verificationConfirmationDeadline') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
// ]
},
ids: []
}
@@ -31,6 +31,7 @@
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 1000}"
@@ -63,11 +64,13 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'transferList',
components: {},
props: ['url'],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -79,25 +82,29 @@
title: this.$t('VirtualListName'),
dataIndex: 'name',
align: 'left',
ellipsis: true
ellipsis: true,
width: 235
},
{
title: this.$t('instructionForUse'),
dataIndex: 'useExplain',
align: 'left',
ellipsis: true
ellipsis: true,
width: 235
},
{
title: this.$t('updateTime'),
dataIndex: 'updateTime',
align: 'left',
ellipsis: true
ellipsis: true,
width: 235
},
{
title: this.$t('creater'),
dataIndex: 'createBy',
align: 'left',
ellipsis: true
ellipsis: true,
width: 235
}
],
dataList: [],
@@ -31,6 +31,7 @@
<!-- </a-form>-->
<!-- </div>-->
<a-table
:components="drag(columns,'columns')"
:columns="columns"
:rowKey="(record)=>JSON.stringify(record)"
:scroll="{x: '100%',y:500}"
@@ -63,9 +64,11 @@
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'versionStatistics',
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -39,6 +39,7 @@
ref='table'
size='middle'
rowKey='id'
:components="drag(columns,'columns')"
:columns='columns'
:dataSource='areaTable'
:pagination='false'
@@ -72,12 +73,14 @@ import axios from 'axios'
import Vue from 'vue'
import ParameterTemplate from '../dialog/ParameterTemplate'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'diolagArea',
components: {
ParameterTemplate
},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
@@ -91,13 +94,15 @@ export default {
title: this.$t('zoneOfApplication'),
dataIndex: 'region_dictText',
align: 'left',
ellipsis: true
ellipsis: true,
width: 296
},
{
title: this.$t('parameterTemplate'),
align: 'left',
dataIndex: 'paramsTemplateName',
ellipsis: true
ellipsis: true,
width: 296
}
],
newVisible: false,
@@ -148,6 +148,7 @@
ref='table'
size='middle'
rowKey='id'
:components="drag(columns,'columns')"
:columns='columns'
:dataSource='areaTable'
:pagination='false'
@@ -178,10 +179,12 @@
<script>
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'diolagArea',
components: {},
mixins:[ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('add'),
@@ -193,15 +196,17 @@
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region_dictText',
key: 'showArea',
// key: 'showArea',
align: 'left',
ellipsis: true
ellipsis: true,
width: 363
},
{
title: this.$t('parameterTemplate'),
align: 'left',
dataIndex: 'paramsTemplateName',
ellipsis: true
ellipsis: true,
width: 363
}
],
projectVersionList: [],

Some files were not shown because too many files have changed in this diff Show More