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

# Conflicts:
#	jero-web/src/common/lang/en-us.js
#	jero-web/src/common/lang/zh-cn.js
This commit is contained in:
zyx.net
2023-03-16 09:17:15 +08:00
39 changed files with 3319 additions and 538 deletions
@@ -325,3 +325,48 @@ CREATE TABLE `auth_dummy_content_change` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 标签管理 增加认证清单-配置项数据 2023-03-13 未同步生产环境 (由于需求确认 认证清单-配置项为输入框,此数据暂时不用了。)
-- INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `dict_en_name`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1635093263477002242', '认证清单-配置项', 'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4', '认证清单-配置项', 0, 'admin', '2023-03-13 09:39:47', NULL, NULL, NULL, NULL, 1, 0, '1', 1);
--
-- INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1635093344389320705', '1635093263477002242', '配置1', '46c10455e29e4855bb7e5d653b11a51d', '开发环境假数据', 1, 1, 'admin', '2023-03-13 09:40:07', 'admin', '2023-03-13 09:40:46', 1, NULL, NULL, '0', 'pz1');
-- INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1635093406049783810', '1635093263477002242', '配置2', '4718f8eef0434d079b970834a2b9dd69', '开发环境假数据', 2, 1, 'admin', '2023-03-13 09:40:21', 'admin', '2023-03-13 09:40:43', 1, NULL, NULL, '0', 'Pz2');
-- INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1635093480922304513', '1635093263477002242', '配置3', 'd3dd928d93d74e07ad8fa31bffea9641', '开发环境假数据', 3, 1, 'admin', '2023-03-13 09:40:39', NULL, NULL, 1, NULL, NULL, '0', 'Pz3');
-- 认证虚拟清单明细表 增加字段 交付物类型 2023-03-13 未同步生产环境
ALTER TABLE `auth_dummy_inventory_info`
ADD COLUMN `deliverable_type` varchar(255) NULL COMMENT '交付物类型' AFTER `deliverable`;
-- 项目库-认证清单 修改交付物类型字段长度 2023-03-13 未同步生产环境
ALTER TABLE `project_certification_inventory`
MODIFY COLUMN `deliverable_type` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '交付物类型' AFTER `duty_person`;
-- 项目库-认证清单-修改历史表 2023-03-13 未同步生产环境
CREATE TABLE `project_certification_inventory_log` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`content_cn` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作内容-中文',
`content_en` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作内容-英文',
`operator_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作类型',
`project_certification_inventory_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '认证清单数据id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '项目库-认证清单-修改历史表' ROW_FORMAT = Dynamic;
-- 分类字典表增加字段,认证清单-交付物类型使用 2023-03-14 未同步生产环境
ALTER TABLE `sys_category`
ADD COLUMN `value_type` varchar(255) NULL COMMENT '值类型:值对应SysCategoryValueTypeEnum枚举类' AFTER `sort_order`;
-- 增加标签管理数据 认证-交付物类型 2023-03-14 未同步生产环境
INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`, `dict_en_name`, `is_tag_dict`, `is_read_only`, `attribute_type`, `order_num`) VALUES ('1635543933669818369', '认证-交付物类型', 'ren4_zheng4_-_jiao1_fu4_wu4_lei4_xing2', NULL, 0, 'admin', '2023-03-14 15:30:35', NULL, NULL, NULL, NULL, 1, 0, '2', 30);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635544016406659074', '0', 'testCn1', NULL, 'admin', '2023-03-14 15:30:55', 'admin', '2023-03-14 15:35:09', 'A01', '1635543933669818369', NULL, 'testEn1', NULL, 1, NULL, NULL, 1, NULL, 2);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545079494950913', '0', '强检报告(附件)Cn', NULL, 'admin', '2023-03-14 15:35:09', 'admin', '2023-03-14 15:36:01', 'A01', '1635543933669818369', NULL, '强检报告(附件)En', NULL, 1, NULL, NULL, 0, NULL, 3);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545194746036225', '0', 'CCC证书(附件)Cn', NULL, 'admin', '2023-03-14 15:35:36', NULL, NULL, 'A01', '1635543933669818369', NULL, 'CCC证书(附件)En', NULL, 1, NULL, NULL, 0, NULL, 1);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545299360366594', '0', 'E-Mark(附件)Cn', NULL, 'admin', '2023-03-14 15:36:01', NULL, NULL, 'A01', '1635543933669818369', NULL, 'E-Mark(附件)En', NULL, 1, NULL, NULL, 0, NULL, 2);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545372836184066', '0', '自我声明Cn', NULL, 'admin', '2023-03-14 15:36:19', NULL, NULL, 'A01', '1635543933669818369', NULL, '自我生命En', NULL, 1, NULL, NULL, 0, NULL, 4);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545471297470465', '0', '自愿认证Cn', NULL, 'admin', '2023-03-14 15:36:42', NULL, NULL, 'A01', '1635543933669818369', NULL, '自愿认证En', NULL, 1, NULL, NULL, 0, NULL, 5);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545540197302273', '0', '摸底报告Cn', NULL, 'admin', '2023-03-14 15:36:58', 'admin', '2023-03-14 15:37:20', 'A01', '1635543933669818369', NULL, '摸底报告En', NULL, 1, NULL, NULL, 0, NULL, 7);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545630152540161', '0', '工程评估(文本)Cn', NULL, 'admin', '2023-03-14 15:37:20', NULL, NULL, 'A01', '1635543933669818369', NULL, '工程评估(文本)En', NULL, 1, NULL, NULL, 0, NULL, 6);
INSERT INTO `sys_category` (`id`, `pid`, `name`, `code`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `sys_dict_id`, `has_child`, `en_name`, `description`, `is_tag_dict`, `attribute_type`, `is_read_only`, `del_flag`, `item_value`, `sort_order`) VALUES ('1635545748968783874', '0', 'N/A不填Cn', NULL, 'admin', '2023-03-14 15:37:48', NULL, NULL, 'A01', '1635543933669818369', NULL, 'N/A不填En', NULL, 1, NULL, NULL, 0, NULL, 8);
@@ -603,4 +603,14 @@ public class SysCategoryController {
String flag = "evaluation_method"; String flag = "evaluation_method";
return Result.OK(sysCategoryService.getSysCategoryTree(flag)); return Result.OK(sysCategoryService.getSysCategoryTree(flag));
} }
/**
* 只查询交付物类型的树形数据字典
* @return
*/
@GetMapping("/getCertificationDeliverableTree")
public Result getCertificationDeliverableTree() {
String flag = "ren4_zheng4_-_jiao1_fu4_wu4_lei4_xing2";
return Result.OK(sysCategoryService.getSysCategoryTree(flag));
}
} }
@@ -96,6 +96,11 @@ public class SysCategory implements Serializable,Comparable<SysCategory>{
@Dict(dicCode = "attribute_type") @Dict(dicCode = "attribute_type")
private java.lang.String attributeType; private java.lang.String attributeType;
// 值对应SysCategoryValueTypeEnum枚举类
@ApiModelProperty(value = "值类型 1附件 2文本 3不用填")
@Dict(dicCode = "value_type")
private java.lang.String valueType;
/**逻辑删除标识*/ /**逻辑删除标识*/
@TableLogic @TableLogic
public Integer delFlag; public Integer delFlag;
@@ -0,0 +1,34 @@
package com.jero.modules.system.enums;
public enum SysCategoryValueTypeEnum {
FILE("附件","file"),
TEXT("文本","text"),
SELECT("选择","select"),
NA("不用填","N/A"),
;
String name;
String value;
private SysCategoryValueTypeEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@@ -19,7 +19,7 @@
<select id="queryByList" resultType="com.jero.modules.system.entity.SysCategory"> <select id="queryByList" resultType="com.jero.modules.system.entity.SysCategory">
select create_by,create_time,sys_org_code,update_by,update_time,attribute_type,code,sort_order, select create_by,create_time,sys_org_code,update_by,update_time,attribute_type,code,sort_order,
del_flag,description,en_name,has_child,id,is_read_only,is_tag_dict,item_value,name,pid,sys_dict_id del_flag,description,en_name,has_child,id,is_read_only,is_tag_dict,item_value,name,pid,sys_dict_id,value_type
from sys_category from sys_category
where is_tag_dict=1 and sys_dict_id=#{params.sysDictId} and del_flag=0 where is_tag_dict=1 and sys_dict_id=#{params.sysDictId} and del_flag=0
<!--搜索条件:标签名称包含%,单独搜索--> <!--搜索条件:标签名称包含%,单独搜索-->
@@ -275,6 +275,8 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
dictId = sysCategoryMapper.getDictId("deliverable_template"); dictId = sysCategoryMapper.getDictId("deliverable_template");
}else if("evaluation_method".equals(flag)){ }else if("evaluation_method".equals(flag)){
dictId = sysCategoryMapper.getDictId("evaluation_method"); dictId = sysCategoryMapper.getDictId("evaluation_method");
}else if("ren4_zheng4_-_jiao1_fu4_wu4_lei4_xing2".equals(flag)){
dictId = sysCategoryMapper.getDictId("ren4_zheng4_-_jiao1_fu4_wu4_lei4_xing2");
}else{ }else{
dictId = sysCategoryMapper.getFieldInfo("technology_territory"); dictId = sysCategoryMapper.getFieldInfo("technology_territory");
} }
@@ -59,7 +59,8 @@ public class AuthDummyInventoryInfoEOController extends JeroController<AuthDummy
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap()); QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
Page<AuthDummyInventoryInfoEO> page = new Page<AuthDummyInventoryInfoEO>(pageNo, pageSize); Page<AuthDummyInventoryInfoEO> page = new Page<AuthDummyInventoryInfoEO>(pageNo, pageSize);
IPage<AuthDummyInventoryInfoEO> pageList = authDummyInventoryInfoEOService.page(page, queryWrapper); IPage<AuthDummyInventoryInfoEO> pageList = this.authDummyInventoryInfoEOService.page(page, queryWrapper);
this.authDummyInventoryInfoEOService.disposeData(pageList.getRecords(),authDummyInventoryInfoEO.getCut());
return Result.OK(pageList); return Result.OK(pageList);
} }
@@ -71,9 +72,10 @@ public class AuthDummyInventoryInfoEOController extends JeroController<AuthDummy
@AutoLog(value = "认证虚拟清单详情表-列表查询") @AutoLog(value = "认证虚拟清单详情表-列表查询")
@ApiOperation(value="认证虚拟清单详情表-列表查询", notes="认证虚拟清单详情表-列表查询") @ApiOperation(value="认证虚拟清单详情表-列表查询", notes="认证虚拟清单详情表-列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<List<AuthDummyInventoryInfoEO>> queryList() { public Result<List<AuthDummyInventoryInfoEO>> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
List<AuthDummyInventoryInfoEO> list = authDummyInventoryInfoEOService.queryList(); List<AuthDummyInventoryInfoEO> list = this.authDummyInventoryInfoEOService.queryList(authDummyInventoryInfoEO,req);
return Result.OK(list); this.authDummyInventoryInfoEOService.disposeData(list,authDummyInventoryInfoEO.getCut());
return Result.OK(authDummyInventoryInfoEO.getCut(),list);
} }
/** /**
@@ -91,12 +91,23 @@ public class AuthDummyInventoryInfoEO implements Serializable {
@Excel(name = "责任领域", width = 15) @Excel(name = "责任领域", width = 15)
@ApiModelProperty(value = "责任领域") @ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory; private java.lang.String dutyTerritory;
@TableField(exist = false)
// 责任领域名称
private String dutyTerritoryName;
/**交付物*/ /**交付物*/
@Excel(name = "交付物", width = 15) @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物") @ApiModelProperty(value = "交付物")
private java.lang.String deliverable; private java.lang.String deliverable;
/**交付物类型*/
@Excel(name = "交付物类型", width = 15)
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
@TableField(exist = false)
// 交付物类型名称
private String deliverableTypeName;
/**文档库id*/ /**文档库id*/
// @Excel(name = "文档库id", width = 15) // @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id") @ApiModelProperty(value = "文档库id")
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO; import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysCategory;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -63,7 +64,7 @@ public interface IAuthDummyInventoryInfoEOService extends IService<AuthDummyInve
* *
* @return * @return
*/ */
List<AuthDummyInventoryInfoEO> queryList(); List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req);
/** /**
* 复制 * 复制
@@ -103,4 +104,20 @@ public interface IAuthDummyInventoryInfoEOService extends IService<AuthDummyInve
* @param request * @param request
*/ */
void exportTemplate(AuthDummyInventoryInfoEO authDummyInventoryInfoEO, HttpServletResponse response, HttpServletRequest request); void exportTemplate(AuthDummyInventoryInfoEO authDummyInventoryInfoEO, HttpServletResponse response, HttpServletRequest request);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<AuthDummyInventoryInfoEO> datas, String cut);
/**
* 获取责任领域名称
* @param cut
* @param categoryList
* @param technologyTerritoryList
* @return
*/
String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList);
} }
@@ -28,10 +28,12 @@ import com.jero.modules.dummy.entity.DummyInventoryInfoEOEn;
import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl; import com.jero.modules.dummy.service.impl.DummyLogEOServiceImpl;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
import com.jero.modules.split.common.FileUnZip; import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.mapper.SysCategoryMapper; import com.jero.modules.system.mapper.SysCategoryMapper;
import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@@ -114,6 +116,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
@Autowired @Autowired
private IBussDocumentLibraryEOService iBussDocumentLibraryEOService; private IBussDocumentLibraryEOService iBussDocumentLibraryEOService;
@Autowired
private ISysDictItemService sysDictItemService;
/** /**
* 保存 * 保存
* *
@@ -180,8 +185,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
* @return * @return
*/ */
@Override @Override
public List<AuthDummyInventoryInfoEO> queryList() { public List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
return list(); QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.list(queryWrapper);
return authDummyInventoryInfoEOList;
} }
@Override @Override
@@ -260,6 +267,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(StringUtils.isNotEmpty(authDummyInventoryInfoEO.getBussDocumentLibraryId())){ if(StringUtils.isNotEmpty(authDummyInventoryInfoEO.getBussDocumentLibraryId())){
updateAuthDummyEO.setBussDocumentLibraryId(authDummyInventoryInfoEO.getBussDocumentLibraryId()); updateAuthDummyEO.setBussDocumentLibraryId(authDummyInventoryInfoEO.getBussDocumentLibraryId());
} }
if(StringUtils.isNotEmpty(authDummyInventoryInfoEO.getDeliverableType())){
updateAuthDummyEO.setDeliverableType(authDummyInventoryInfoEO.getDeliverableType());
}
updateList.add(updateAuthDummyEO); updateList.add(updateAuthDummyEO);
} }
@@ -1085,4 +1095,44 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
} }
} }
@Override
public void disposeData(List<AuthDummyInventoryInfoEO> datas, String cut) {
if(CollectionUtils.isNotEmpty(datas)){
List<SysCategory> categoryList = this.sysCategoryService.list();
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.getBaseMapper().selectItemsAll();
for (AuthDummyInventoryInfoEO data : datas) {
if(StringUtils.isNotEmpty(data.getDeliverableType())){
String deliverableTypeName = this.getTreeName(cut, categoryList, Arrays.asList(data.getDeliverableType().split(",")));
data.setDeliverableTypeName(deliverableTypeName);
}
if(StringUtils.isNotEmpty(data.getDutyTerritory())){
String dutyTerritoryName = this.sysDictItemService.disposeShowDictItemValue(sysDictItems,data.getDutyTerritory(),cut, ProjectInventoryFieldEnum.DUTY_TERRITORY.getValue());
data.setDutyTerritoryName(dutyTerritoryName);
}
}
}
}
@Override
public String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList) {
StringBuilder sb = new StringBuilder();
for (String technologyTerritory : technologyTerritoryList) {
List<SysCategory> collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList());
if(collect.size() != 0){
if (CutEnum.CN.getValue().equals(cut)) {
sb.append(collect.get(0).getName() + ",");
} else {
sb.append(collect.get(0).getEnName()+ ",");
}
}
}
String technologyTerritoryName = "";
if (StringUtils.isNotBlank(sb)) {
technologyTerritoryName = sb.substring(0, sb.length() - 1);
}
return technologyTerritoryName;
}
} }
@@ -14,7 +14,7 @@ public enum TemplateInfoEnum2 {
CERTIFICATION_MESSAGE6("认证清单-任务提醒,截止日期前第三天","ctp_AAuDmfXC3oJo"), CERTIFICATION_MESSAGE6("认证清单-任务提醒,截止日期前第三天","ctp_AAuDmfXC3oJo"),
CERTIFICATION_MESSAGE7("认证清单-任务提醒,截止日期当天","ctp_AAuDmfXCHc1I"), CERTIFICATION_MESSAGE7("认证清单-任务提醒,截止日期当天","ctp_AAuDmfXCHc1I"),
CERTIFICATION_MESSAGE8("认证清单-任务提醒,已逾期","ctp_AAuDMwOPU71H"), CERTIFICATION_MESSAGE8("认证清单-任务提醒,已逾期","ctp_AAuDMwOPU71H"),
CERTIFICATION_MESSAGE9("认证清单-责任人分发(转办),第二责任人收到消息","ctp_AAuDM8YP6soc"), //CERTIFICATION_MESSAGE9("认证清单-责任人分发(转办),第二责任人收到消息","ctp_AAuDM8YP6soc"),
; ;
String name; String name;
@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO; import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService; import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -58,9 +59,10 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
@RequestParam(name="cut", defaultValue="cn") String cut, @RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap()); QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize); Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize);
IPage<ProjectCertificationInventoryEO> pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut); IPage<ProjectCertificationInventoryEO> pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut);
return Result.OK(pageList); return Result.OK(cut,pageList);
} }
/** /**
@@ -241,4 +243,31 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
public Result<?> expediting(@RequestBody JSONObject json) { public Result<?> expediting(@RequestBody JSONObject json) {
return this.projectCertificationInventoryEOService.expediting(json); return this.projectCertificationInventoryEOService.expediting(json);
} }
@AutoLog(value = "项目库-认证清单表-批量修改配置项")
@ApiOperation(value="项目库-认证清单表-批量修改配置项", notes="项目库-认证清单表-批量修改配置项")
@PostMapping(value = "/updateConfigItemBatch")
public Result<?> updateConfigItemBatch(@RequestBody JSONObject json) {
return this.projectCertificationInventoryEOService.updateConfigItemBatch(json);
}
@ApiOperation(value="项目库-认证清单表-模板下载", notes="项目库-认证清单表-模板下载")
@GetMapping(value = "/exportTemplate")
public void exportTemplate(ProjectCertificationInventoryEO projectCertificationInventoryEO, HttpServletResponse response, HttpServletRequest request) throws Exception {
projectCertificationInventoryEOService.exportTemplate(projectCertificationInventoryEO,response,request);
}
@AutoLog(value = "项目库-认证清单表-调取添加")
@ApiOperation(value="项目库-认证清单表-调取添加", notes="项目库-认证清单表-调取添加")
@PostMapping(value = "/callAdd")
public Result<?> callAdd(@RequestBody JSONObject json) {
return this.projectCertificationInventoryEOService.callAdd(json);
}
@AutoLog(value = "项目库-认证清单表-引用交付物")
@ApiOperation(value="项目库-认证清单表-引用交付物", notes="项目库-认证清单表-引用交付物")
@PostMapping(value = "/citeDeliverable")
public Result<?> citeDeliverable(@RequestBody JSONObject json) {
return this.projectCertificationInventoryEOService.citeDeliverable(json);
}
} }
@@ -0,0 +1,172 @@
package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO;
import com.jero.modules.project.service.IProjectCertificationInventoryLogEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
/**
* @Description: 项目库-认证清单-修改历史表
* @Author: jero-boot
* @Date: 2023-03-13
* @Version: V1.0
*/
@Api(tags="项目库-认证清单-修改历史表")
@RestController
@RequestMapping("/project/projectCertificationInventoryLogEO")
@Slf4j
public class ProjectCertificationInventoryLogEOController extends JeroController<ProjectCertificationInventoryLogEO, IProjectCertificationInventoryLogEOService> {
@Autowired
private IProjectCertificationInventoryLogEOService projectCertificationInventoryLogEOService;
/**
* 分页列表查询
*
* @param projectCertificationInventoryLogEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-分页列表查询")
@ApiOperation(value="项目库-认证清单-修改历史表-分页列表查询", notes="项目库-认证清单-修改历史表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProjectCertificationInventoryLogEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryLogEO, req.getParameterMap());
Page<ProjectCertificationInventoryLogEO> page = new Page<ProjectCertificationInventoryLogEO>(pageNo, pageSize);
queryWrapper.orderByDesc("create_time");
IPage<ProjectCertificationInventoryLogEO> pageList = this.projectCertificationInventoryLogEOService.page(page, queryWrapper);
this.projectCertificationInventoryLogEOService.disposeData(pageList.getRecords(),projectCertificationInventoryLogEO.getCut());
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-列表查询")
@ApiOperation(value="项目库-认证清单-修改历史表-列表查询", notes="项目库-认证清单-修改历史表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProjectCertificationInventoryLogEO>> queryList(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO,HttpServletRequest req) {
List<ProjectCertificationInventoryLogEO> list = this.projectCertificationInventoryLogEOService.queryList(projectCertificationInventoryLogEO,req);
return Result.OK(list);
}
/**
* 添加
*
* @param projectCertificationInventoryLogEO
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-添加")
@ApiOperation(value="项目库-认证清单-修改历史表-添加", notes="项目库-认证清单-修改历史表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO) {
projectCertificationInventoryLogEOService.add(projectCertificationInventoryLogEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param projectCertificationInventoryLogEO
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-编辑")
@ApiOperation(value="项目库-认证清单-修改历史表-编辑", notes="项目库-认证清单-修改历史表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO) {
projectCertificationInventoryLogEOService.editById(projectCertificationInventoryLogEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-通过id删除")
@ApiOperation(value="项目库-认证清单-修改历史表-通过id删除", notes="项目库-认证清单-修改历史表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
projectCertificationInventoryLogEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-批量删除")
@ApiOperation(value="项目库-认证清单-修改历史表-批量删除", notes="项目库-认证清单-修改历史表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.projectCertificationInventoryLogEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "项目库-认证清单-修改历史表-通过id查询")
@ApiOperation(value="项目库-认证清单-修改历史表-通过id查询", notes="项目库-认证清单-修改历史表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO = projectCertificationInventoryLogEOService.queryById(id);
if(projectCertificationInventoryLogEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(projectCertificationInventoryLogEO);
}
/**
* 导出excel
*
* @param request
* @param projectCertificationInventoryLogEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO) {
return super.exportXls(request, projectCertificationInventoryLogEO, ProjectCertificationInventoryLogEO.class, "项目库-认证清单-修改历史表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectCertificationInventoryLogEO.class);
}
}
@@ -75,6 +75,7 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**配置项*/ /**配置项*/
@Excel(name = "配置项", width = 15) @Excel(name = "配置项", width = 15)
@ApiModelProperty(value = "配置项") @ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private java.lang.String configItem; private java.lang.String configItem;
/**WVTA ID*/ /**WVTA ID*/
@@ -94,6 +95,9 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**责任领域名称**/ /**责任领域名称**/
@TableField(exist = false) @TableField(exist = false)
private String dutyTerritoryName; private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**交付物*/ /**交付物*/
@Excel(name = "交付物", width = 15) @Excel(name = "交付物", width = 15)
@@ -125,14 +129,20 @@ public class ProjectCertificationInventoryEO implements Serializable {
@Excel(name = "交付物类型", width = 15) @Excel(name = "交付物类型", width = 15)
@ApiModelProperty(value = "交付物类型") @ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType; private java.lang.String deliverableType;
@TableField(exist = false)
// 交付物类型名称 // 交付物类型名称
@TableField(exist = false)
private String deliverableTypeName; private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物模板*/ /**交付物模板*/
@Excel(name = "交付物模板", width = 15) @Excel(name = "交付物模板", width = 15)
@ApiModelProperty(value = "交付物模板") @ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate; private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
private String deliverableTemplateName;
/**交付结果*/ /**交付结果*/
@Excel(name = "交付结果", width = 15) @Excel(name = "交付结果", width = 15)
@@ -150,8 +160,8 @@ public class ProjectCertificationInventoryEO implements Serializable {
@Excel(name = "流程状态", width = 15) @Excel(name = "流程状态", width = 15)
@ApiModelProperty(value = "流程状态") @ApiModelProperty(value = "流程状态")
private java.lang.String flowStatus; private java.lang.String flowStatus;
@TableField(exist = false)
// 流程状态展示名称 // 流程状态展示名称
@TableField(exist = false)
private String flowStatusName; private String flowStatusName;
/**报告编号*/ /**报告编号*/
@@ -194,4 +204,8 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String roleCode; private String roleCode;
/**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false)
private String valueType;
} }
@@ -0,0 +1,95 @@
package com.jero.modules.project.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 项目库-认证清单-修改历史表
* @Author: jero-boot
* @Date: 2023-03-13
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory_log")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory_log对象", description="项目库-认证清单-修改历史表")
public class ProjectCertificationInventoryLogEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**操作内容-中文*/
@Excel(name = "操作内容-中文", width = 15)
@ApiModelProperty(value = "操作内容-中文")
private java.lang.String contentCn;
/**操作内容-英文*/
@Excel(name = "操作内容-英文", width = 15)
@ApiModelProperty(value = "操作内容-英文")
private java.lang.String contentEn;
/**操作类型*/
@Excel(name = "操作类型", width = 15)
@ApiModelProperty(value = "操作类型")
private String operatorType;
/**认证清单数据id*/
@Excel(name = "认证清单数据id", width = 15)
@ApiModelProperty(value = "认证清单数据id")
private java.lang.String projectCertificationInventoryId;
@TableField(exist = false)
private String cut;
/**操作内容回显**/
@TableField(exist = false)
private String content;
/**操作类型名称**/
@TableField(exist = false)
private String operatorTypeName;
}
@@ -55,6 +55,18 @@ public enum OperatorTypeEnum {
CERTIFICATION_INVENTORY_SDT_EXPEDITING("认证清单-接口人催办","certificationInventorySdtExpediting"), CERTIFICATION_INVENTORY_SDT_EXPEDITING("认证清单-接口人催办","certificationInventorySdtExpediting"),
CERTIFICATION_INVENTORY_STUDIO_WITHDRAW("认证清单-studio撤回","certificationInventoryStudioWithdraw"), CERTIFICATION_INVENTORY_STUDIO_WITHDRAW("认证清单-studio撤回","certificationInventoryStudioWithdraw"),
CERTIFICATION_INVENTORY_STUDIO_RESET("认证清单-studio重置流程","certificationInventoryStudioReset"), CERTIFICATION_INVENTORY_STUDIO_RESET("认证清单-studio重置流程","certificationInventoryStudioReset"),
CERTIFICATION_INVENTORY_EDIT("认证清单-编辑","certificationInventoryEdit"),
CERTIFICATION_INVENTORY_ADD("认证清单-添加","certificationInventoryAdd"),
CERTIFICATION_INVENTORY_CALL("认证清单-调取","certificationInventoryCall"),
CERTIFICATION_INVENTORY_STUDIO_ISSUE("认证清单-studio发布","certificationInventoryStudioIssue"),
CERTIFICATION_INVENTORY_INITIATING_TASK("认证清单-认证工程师发起任务","certificationInventoryInitiatingTask"),
CERTIFICATION_INVENTORY_RETURNED_STUDIO_TASK("认证清单-认证工程师退回至studio任务","certificationInventoryReturnedStudioTask"),
CERTIFICATION_INVENTORY_DUTY_PERSON_ACCEPT_TASK("认证清单-责任人接受任务","certificationInventoryDutyPersonAcceptTask"),
CERTIFICATION_INVENTORY_DUTY_PERSON_REJECT_TASK("认证清单-责任人拒绝任务","certificationInventoryDutyPersonRejectTask"),
CERTIFICATION_INVENTORY_DUTY_PERSON_TRANSFER_TASK("认证清单-责任人转办任务","certificationInventoryDutyPersonTransferTask"),
CERTIFICATION_INVENTORY_DUTY_PERSON_SUBMIT_TASK("认证清单-责任人提交任务","certificationInventoryDutyPersonSubmitTask"),
CERTIFICATION_INVENTORY_REVIEW_THROUGH("认证清单-认证工程师审核通过","certificationInventoryReviewThrough"),
CERTIFICATION_INVENTORY_REVIEW_RETURNED("认证清单-认证工程师审核退回","certificationInventoryReviewReturned"),
; ;
String name; String name;
@@ -0,0 +1,17 @@
package com.jero.modules.project.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 项目库-认证清单-修改历史表
* @Author: jero-boot
* @Date: 2023-03-13
* @Version: V1.0
*/
public interface ProjectCertificationInventoryLogEOMapper extends BaseMapper<ProjectCertificationInventoryLogEO> {
}
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.project.mapper.ProjectCertificationInventoryLogEOMapper">
<resultMap id="ProjectCertificationInventoryLogEOResultMap" type="com.jero.modules.project.entity.ProjectCertificationInventoryLogEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="content" property="content" />
<result column="project_certification_inventory_id" property="projectCertificationInventoryId" />
</resultMap>
</mapper>
@@ -12,6 +12,8 @@ import com.jero.modules.system.entity.SysRole;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO; import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -160,4 +162,33 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
Map<String,Object> getCertificationInventoryLinkHrefFeishu(String projectLibraryId,String PRN_CN,String PRN_EN); Map<String,Object> getCertificationInventoryLinkHrefFeishu(String projectLibraryId,String PRN_CN,String PRN_EN);
Map<String,Object> getStandNameAndItemName(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList); Map<String,Object> getStandNameAndItemName(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList);
/**
* 模板下载
* @param projectCertificationInventoryEO
* @param response
* @param request
*/
void exportTemplate(ProjectCertificationInventoryEO projectCertificationInventoryEO, HttpServletResponse response, HttpServletRequest request);
/**
* 批量修改配置项
* @param json
* @return
*/
Result<?> updateConfigItemBatch(JSONObject json);
/**
* 调取添加
* @param json
* @return
*/
Result<?> callAdd(JSONObject json);
/**
* 引用交付物
* @param json
* @return
*/
Result<?> citeDeliverable(JSONObject json);
} }
@@ -0,0 +1,82 @@
package com.jero.modules.project.service;
import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @Description: 项目库-认证清单-修改历史表
* @Author: jero-boot
* @Date: 2023-03-13
* @Version: V1.0
*/
public interface IProjectCertificationInventoryLogEOService extends IService<ProjectCertificationInventoryLogEO> {
/**
* 保存
*
* @param projectCertificationInventoryLogEO
* @return
*/
void add(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO);
/**
* 更新
*
* @param projectCertificationInventoryLogEO
* @return
*/
void editById(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProjectCertificationInventoryLogEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProjectCertificationInventoryLogEO> queryList(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO, HttpServletRequest req);
/**
* 批量添加认证清单明细操作历史信息
* @param projectCertificationInventoryLogEOList
*/
void insertBatch(List<ProjectCertificationInventoryLogEO> projectCertificationInventoryLogEOList);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<ProjectCertificationInventoryLogEO> datas, String cut);
/**
* 根据认证清单idList删除历史数据
* @param projectCertificationInventoryIdList
*/
void deleteByProjectCertificationInventoryIdList(List<String> projectCertificationInventoryIdList);
}
@@ -0,0 +1,125 @@
package com.jero.modules.project.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryLogEO;
import com.jero.modules.project.mapper.ProjectCertificationInventoryLogEOMapper;
import com.jero.modules.project.service.IProjectCertificationInventoryLogEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: 项目库-认证清单-修改历史表
* @Author: jero-boot
* @Date: 2023-03-13
* @Version: V1.0
*/
@Service
public class ProjectCertificationInventoryLogEOServiceImpl extends ServiceImpl<ProjectCertificationInventoryLogEOMapper, ProjectCertificationInventoryLogEO> implements IProjectCertificationInventoryLogEOService {
/**
* 保存
*
* @param projectCertificationInventoryLogEO
* @return
*/
@Override
public void add(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO) {
Date now = new Date();
projectCertificationInventoryLogEO.setCreateTime(now);
projectCertificationInventoryLogEO.setUpdateTime(now);
save(projectCertificationInventoryLogEO);
}
/**
* 更新
*
* @param projectCertificationInventoryLogEO
* @return
*/
@Override
public void editById(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO) {
Date now = new Date();
projectCertificationInventoryLogEO.setUpdateTime(now);
saveOrUpdate(projectCertificationInventoryLogEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProjectCertificationInventoryLogEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProjectCertificationInventoryLogEO> queryList(ProjectCertificationInventoryLogEO projectCertificationInventoryLogEO, HttpServletRequest req) {
QueryWrapper<ProjectCertificationInventoryLogEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryLogEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
List<ProjectCertificationInventoryLogEO> projectCertificationInventoryLogEOList = this.list(queryWrapper);
this.disposeData(projectCertificationInventoryLogEOList,projectCertificationInventoryLogEO.getCut());
return projectCertificationInventoryLogEOList;
}
@Override
public void insertBatch(List<ProjectCertificationInventoryLogEO> projectCertificationInventoryLogEOList) {
this.saveBatch(projectCertificationInventoryLogEOList);
}
@Override
public void disposeData(List<ProjectCertificationInventoryLogEO> datas, String cut) {
if(CollectionUtils.isNotEmpty(datas)){
for (ProjectCertificationInventoryLogEO data : datas) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
data.setContent(data.getContentCn());
}else {
data.setContent(data.getContentEn());
}
}
}
}
@Override
public void deleteByProjectCertificationInventoryIdList(List<String> projectCertificationInventoryIdList) {
QueryWrapper<ProjectCertificationInventoryLogEO> removeWrap = new QueryWrapper<>();
removeWrap.lambda().in(ProjectCertificationInventoryLogEO::getProjectCertificationInventoryId,projectCertificationInventoryIdList);
this.remove(removeWrap);
}
}
+5
View File
@@ -895,6 +895,7 @@ module.exports = {
pleaseConformityVerification: 'Please complete the data of Conformity verification', pleaseConformityVerification: 'Please complete the data of Conformity verification',
virtualListDetails: 'Virtual List Details', virtualListDetails: 'Virtual List Details',
virtualAuthenticationListDetails: 'Virtual Authentication List Details', virtualAuthenticationListDetails: 'Virtual Authentication List Details',
VirtualAuthenticationList: 'Virtual Authentication List',
maintainVirtualList: 'Maintain Virtual List', maintainVirtualList: 'Maintain Virtual List',
certificationListMaintenance: 'Certification List Maintenance', certificationListMaintenance: 'Certification List Maintenance',
reasonsForRejection: 'Reasons For Rejection', reasonsForRejection: 'Reasons For Rejection',
@@ -1431,6 +1432,10 @@ module.exports = {
onlyDataSelected:'Only data with process status of task to be confirmed, result to be submitted and review to be returned can be selected', onlyDataSelected:'Only data with process status of task to be confirmed, result to be submitted and review to be returned can be selected',
youCannotStatusListToBeReleasedAndApproved:'You cannot select data whose process status is list to be released and approved', youCannotStatusListToBeReleasedAndApproved:'You cannot select data whose process status is list to be released and approved',
batchmodify:'Whether to batch modify', batchmodify:'Whether to batch modify',
onlyDataListReleasedAndCertificationReturnCanSelected:'Only data with the process status of list to be released and certification return can be selected',
type:'type',
select:'select',
onlyDataWithProcessStatusDeleted:'Only data with process status of list to be released and approved can be deleted',
registrationnumber:'Product registration number', registrationnumber:'Product registration number',
noticebatch:'Notice batch', noticebatch:'Notice batch',
producttrademark:'Product Trademark', producttrademark:'Product Trademark',
+5
View File
@@ -907,6 +907,7 @@ module.exports = {
pleaseConformityVerification: '请补全验证符合性确认的数据', pleaseConformityVerification: '请补全验证符合性确认的数据',
virtualListDetails: '虚拟清单详情', virtualListDetails: '虚拟清单详情',
virtualAuthenticationListDetails: '虚拟认证清单详情', virtualAuthenticationListDetails: '虚拟认证清单详情',
VirtualAuthenticationList: '虚拟认证清单',
maintainVirtualList: '维护虚拟清单', maintainVirtualList: '维护虚拟清单',
certificationListMaintenance: '认证清单维护', certificationListMaintenance: '认证清单维护',
reasonsForRejection: '驳回原因', reasonsForRejection: '驳回原因',
@@ -1533,6 +1534,10 @@ module.exports = {
onlyDataSelected:'只能选择流程状态为任务待确认、结果待提交、审查退回的数据', onlyDataSelected:'只能选择流程状态为任务待确认、结果待提交、审查退回的数据',
youCannotStatusListToBeReleasedAndApproved:'不能选择流程状态为清单待发布、审查通过的数据', youCannotStatusListToBeReleasedAndApproved:'不能选择流程状态为清单待发布、审查通过的数据',
batchmodify:'是否批量修改', batchmodify:'是否批量修改',
onlyDataListReleasedAndCertificationReturnCanSelected:'只能选择流程状态为清单待发布和认证退回的数据',
type:'类型',
select:'选择',
onlyDataWithProcessStatusDeleted:'只能删除流程状态为清单待发布和审查通过的数据',
registrationnumber:'产品登记编号', registrationnumber:'产品登记编号',
noticebatch:'《公告》批次', noticebatch:'《公告》批次',
producttrademark:'产品商标', producttrademark:'产品商标',
@@ -542,6 +542,7 @@
// this.gData[0].isLeaf = false // this.gData[0].isLeaf = false
this.defaultExpandedKeys = [this.departId] this.defaultExpandedKeys = [this.departId]
if (num == 1) { if (num == 1) {
console.log(this.personneQuery)
if (this.userName && this.userName.length == 0) { if (this.userName && this.userName.length == 0) {
if (this.personneQuery[this.query.db_field_name + 'Name']) { if (this.personneQuery[this.query.db_field_name + 'Name']) {
this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',') this.userName = this.personneQuery[this.query.db_field_name + 'Name'].split(',')
@@ -55,6 +55,15 @@
<a-form-model-item :label="$t('enName')" prop="enName"> <a-form-model-item :label="$t('enName')" prop="enName">
<a-input v-model.trim="form.enName" :placeholder="$t('PleaseEnterYourEnglishName')"/> <a-input v-model.trim="form.enName" :placeholder="$t('PleaseEnterYourEnglishName')"/>
</a-form-model-item> </a-form-model-item>
<a-form-model-item :label="$t('type')" prop="valueType" v-if="record.id == '1635543933669818369'">
<a-select v-model="form.valueType"
:placeholder="$t('pleaseSelect')"
allowClear>
<a-select-option :value="item.id" v-for="(item, index) in valueTypeList" :key="item.id">
{{item.name}}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item :label="$t('ParentName')" prop="pid" v-if="parentVisible"> <a-form-model-item :label="$t('ParentName')" prop="pid" v-if="parentVisible">
<a-select v-model="form.pid" @change="handleChange" :placeholder="$t('pleaseSelect')" allowClear> <a-select v-model="form.pid" @change="handleChange" :placeholder="$t('pleaseSelect')" allowClear>
<a-select-option :value="item.id" v-for="(item, index) in parentDataPid" :key="item.id"> <a-select-option :value="item.id" v-for="(item, index) in parentDataPid" :key="item.id">
@@ -105,6 +114,24 @@
pageSize: 10 pageSize: 10
},//查询条件 },//查询条件
form: {}, form: {},
valueTypeList:[
{
id:'file',
name:this.$t('enclosure')
},
{
id:'text',
name:this.$t('text')
},
{
id:'select',
name:this.$t('select')
},
{
id:'N/A',
name:'NA'
},
],
newVisible: false, newVisible: false,
rules: { rules: {
name: [ name: [
@@ -112,6 +139,9 @@
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' }, { min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
{ validator: this.test } { validator: this.test }
], ],
valueType:[
{ required: true, message: this.$t('type') + this.$t('cannotEmpty'), trigger: 'change' },
],
itemText: [ itemText: [
{ required: true, message: this.$t('enterName'), trigger: 'blur' }, { required: true, message: this.$t('enterName'), trigger: 'blur' },
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' }, { min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
@@ -147,7 +177,8 @@
editPId: '', editPId: '',
tabletreeDataSource: [], tabletreeDataSource: [],
flag: false, //提交表单标识 flag: false, //提交表单标识
parentDataPid: [] parentDataPid: [],
valueTypeVisible:true
} }
}, },
watch: { watch: {
@@ -73,8 +73,9 @@
<template slot="action" slot-scope="text, record"> <template slot="action" slot-scope="text, record">
<a class="action-dict" @click="handleDicPop(record)">{{$t('DictionaryConfiguration')}}</a> <a class="action-dict" @click="handleDicPop(record)">{{$t('DictionaryConfiguration')}}</a>
<a class="action-edit" @click="actionEdit(record)" v-has="'dict:edit'">{{$t('edit')}}</a> <a class="action-edit" v-if="record.id != '1635543933669818369'" @click="actionEdit(record)" v-has="'dict:edit'">{{$t('edit')}}</a>
<a class="action-delete" href="javascript:;" @click="onDelete(record)" v-has="'dict:logicDelete'">{{$t('delete')}}</a> <a class="action-delete" v-if="record.id != '1635543933669818369'" href="javascript:;" @click="onDelete(record)"
v-has="'dict:logicDelete'">{{$t('delete')}}</a>
</template> </template>
<template slot="describe" slot-scope="text, record"> <template slot="describe" slot-scope="text, record">
<span class="text" :title="text"> <span class="text" :title="text">
@@ -124,7 +125,7 @@
// tabTable, // tabTable,
DicList DicList
}, },
mixins:[ResizeHeader, ResizeColumnProvide], mixins: [ResizeHeader, ResizeColumnProvide],
data() { data() {
return { return {
title: this.$t('add'), title: this.$t('add'),
@@ -244,13 +245,13 @@
this.loading = false this.loading = false
this.total = res.result.total this.total = res.result.total
this.tableData = [...res.result.records] this.tableData = [...res.result.records]
}else{ } else {
this.loading = false this.loading = false
} }
}) })
// .finally(() => { // .finally(() => {
// this.loading = false // this.loading = false
//}) //})
}, },
//查询 //查询
searchQuery() { searchQuery() {
@@ -20,12 +20,16 @@
</div> </div>
<a-form-model-item class="itemModel" prop="serialNumber"> <a-form-model-item class="itemModel" prop="serialNumber">
<a-select :placeholder="$t('PleaseSelect')+$t('regulationNo')" <a-select :placeholder="$t('PleaseSelect')+$t('regulationNo')"
optionFilterProp="label"
@change="serialNumberChange" @change="serialNumberChange"
showSearch
v-model="formInline.bussDocumentLibraryId"> v-model="formInline.bussDocumentLibraryId">
<a-select-option v-for="(item, key) in projectNameList" <a-select-option v-for="(item, key) in projectNameList"
:label="item.serialNumber"
:key="key" :key="key"
:value="item.id"> :value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.serialNumber "> <span style="display: inline-block;width: 100%"
:title=" item.serialNumber ">
{{ item.serialNumber}} {{ item.serialNumber}}
</span> </span>
</a-select-option> </a-select-option>
@@ -93,7 +97,52 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item
class="itemModel"
:prop="'dataList.'+index+'.configItem'"
:rules="[{ required: true, message: $t('configurationItem') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('configurationItem') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]"
>
<a-input class="box-input"
v-model="item.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
<!-- <j-dict-select-tag class="box-input" v-model="item.configItem"-->
<!-- @input="handleInput('dataList.'+index+'.configItem')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.dutyTerritory'"
:rules="[{ required: true, message: $t('areaOfResponsibility') + $t('cannotEmpty'), trigger: 'change'},]"
>
<j-dict-select-tag class="box-input" v-model="item.dutyTerritory"
@input="handleInput('dataList.'+index+'.dutyTerritory')"
@changeQuery="dutyHandleChange(index)"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
@@ -145,65 +194,76 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" <span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div> </div>
<a-form-model-item class="itemModel" <a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.dutyTerritory'" :prop="'dataList.'+index+'.sdt'"
:rules="[{ required: true, message: $t('areaOfResponsibility') + $t('cannotEmpty'), trigger: 'change'},]" :rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]"
> >
<j-dict-select-tag class="box-input" v-model="item.dutyTerritory" <a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
@input="handleInput('dataList.'+index+'.dutyTerritory')" optionFilterProp="label"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" showSearch
:type="'select'" @change="handleInput('dataList.'+index+'.sdt')"
:triggerChange="false" :dictCode="'duty_territory'"/> v-model="item.sdt">
<a-select-option v-for="(val, key) in item.engineeringInterfacePersonList"
:label="val.name"
:key="key"
:value="val.value">
<span style="display: inline-block;width: 100%"
:title=" val.name ">
{{ val.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span> <span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div> </div>
<a-form-model-item class="itemModel-multi" <a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.sdtName'" :prop="'dataList.'+index+'.endTime'"
:rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]" :rules="[{ required: true, message: $t('closingDate') + $t('cannotEmpty'), trigger: 'change'},]"
> >
<PersonnelSelection <a-date-picker class="box-input"
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson'),subscript:index}" :placeholder="$t('PleaseSelect')+$t('closingDate')"
:personneQuery="item" @change="dateChange({db_field_name:'endTime'},index)"
:isSingleChoice="true" format="YYYY-MM-DD"
@change="PersonnelSelectionChange" :disabledDate="disabledDate"
:disabled="disabled" :getCalendarContainer="(trigger) => trigger.parentNode"
v-model="item.sdtName"/> v-model="item.endTime"
style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24"> <!-- <a-row :gutter="24">-->
<a-col :span="12"> <!-- <a-col :span="12">-->
<div class="box-title-text"> <!-- <div class="box-title-text">-->
<div class="title-text"> <!-- <div class="title-text">-->
<span class="Required">*</span> <!-- <span class="Required">*</span>-->
<span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span> <!-- <span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>-->
</div> <!-- </div>-->
<a-form-model-item class="itemModel-multi" <!-- <a-form-model-item class="itemModel-multi"-->
:prop="'dataList.'+index+'.dutyPersonName'" <!-- :prop="'dataList.'+index+'.dutyPersonName'"-->
:rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]" <!-- :rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]"-->
> <!-- >-->
<PersonnelSelection <!-- <PersonnelSelection-->
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}" <!-- :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}"-->
:personneQuery="item" <!-- :personneQuery="item"-->
:isSingleChoice="true" <!-- :isSingleChoice="true"-->
@change="PersonnelSelectionChange" <!-- @change="PersonnelSelectionChange"-->
:disabled="disabled" <!-- :disabled="disabled"-->
v-model="item.dutyPersonName"/> <!-- v-model="item.dutyPersonName"/>-->
</a-form-model-item> <!-- </a-form-model-item>-->
</div> <!-- </div>-->
</a-col> <!-- </a-col>-->
</a-row> <!-- </a-row>-->
</div> </div>
</div> </div>
@@ -240,7 +300,48 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div>
<a-form-model-item
class="itemModel"
:prop="'configItem'"
>
<a-input class="box-input"
v-model="formInline.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.configItem"-->
<!-- @input="handleInput('configItem')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dutyTerritory'"
>
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
@changeQuery="handleChange"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
@@ -260,7 +361,6 @@
class="box-input" class="box-input"
style="width: 100%" style="width: 100%"
:tree-data="DeliverableTreeList" :tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')" :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/> />
</a-form-model-item> </a-form-model-item>
@@ -290,17 +390,25 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" <span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div> </div>
<a-form-model-item class="itemModel" <a-form-model-item class="itemModel"
:prop="'dutyTerritory'" :prop="'sdt'"
> >
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory" <a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
@input="handleInput('dutyTerritory')" optionFilterProp="label"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" showSearch
:type="'select'" v-model="formInline.sdt">
:triggerChange="false" :dictCode="'duty_territory'"/> <a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:label="item.name"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%"
:title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -308,18 +416,19 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span> <span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div> </div>
<a-form-model-item class="itemModel-multi" <a-form-model-item class="itemModel"
:prop="'sdtName'" :prop="'endTime'"
> >
<PersonnelSelection <a-date-picker class="box-input"
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson')}" :placeholder="$t('PleaseSelect')+$t('closingDate')"
:personneQuery="formInline" @change="dateChange({db_field_name:'endTime'})"
:isSingleChoice="true" format="YYYY-MM-DD"
@change="PersonnelSelectionChange" :disabledDate="disabledDate"
:disabled="disabled" :getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.sdtName"/> v-model="formInline.endTime"
style="width: 100%"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -339,6 +448,7 @@
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}" :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}"
:personneQuery="formInline" :personneQuery="formInline"
:isSingleChoice="true" :isSingleChoice="true"
v-if="visible"
@change="PersonnelSelectionChange" @change="PersonnelSelectionChange"
:disabled="disabled" :disabled="disabled"
v-model="formInline.dutyPersonName"/> v-model="formInline.dutyPersonName"/>
@@ -377,6 +487,7 @@
import uploadFile from '@/components/uploadFile/file' import uploadFile from '@/components/uploadFile/file'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage' import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import moment from 'moment'
export default { export default {
name: 'addModel', name: 'addModel',
@@ -437,7 +548,7 @@
trigger: 'change' trigger: 'change'
} }
], ],
sdtName: [ sdt: [
{ {
required: true, required: true,
message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'), message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'),
@@ -450,6 +561,21 @@
message: this.$t('personLiable') + this.$t('cannotEmpty'), message: this.$t('personLiable') + this.$t('cannotEmpty'),
trigger: 'change' trigger: 'change'
} }
],
endTime: [
{
required: true,
message: this.$t('closingDate') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
configItem: [
{ required: true, message: this.$t('configurationItem') + this.$t('cannotEmpty'), trigger: 'blur' },
{
max: 300,
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
] ]
}, },
disabled: false, disabled: false,
@@ -462,7 +588,8 @@
add: '/project/projectCertificationInventoryEO/batchAdd', add: '/project/projectCertificationInventoryEO/batchAdd',
edit: '/project/projectCertificationInventoryEO/edit', edit: '/project/projectCertificationInventoryEO/edit',
list: '/project/projectLawsInventoryEO/list' list: '/project/projectLawsInventoryEO/list'
} },
engineeringInterfacePersonList: []
} }
}, },
mounted() { mounted() {
@@ -471,8 +598,20 @@
}, },
methods: { methods: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
dateChange(item, index) {
if (index) {
this.formInline.dataList[index][item.db_field_name] = this.formInline.dataList[index][item.db_field_name] ? moment(this.formInline.dataList[index][item.db_field_name]).format('YYYY-MM-DD') : ''
} else {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
}
},
getDeliverableTree() { getDeliverableTree() {
getAction('/sys/category/getDeliverableTree', {}).then((res) => { getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) { if (res.success) {
this.DeliverableTreeList = res.result this.DeliverableTreeList = res.result
} else { } else {
@@ -493,15 +632,19 @@
}) })
}, },
editModel(value) { editModel(value) {
this.formInline = {} // this.formInline = {}
this.visible = true this.visible = true
this.formInline = value this.formInline = JSON.parse(JSON.stringify(value))
if (this.formInline.deliverableType) { // if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',') // this.formInline.deliverableType = this.formInline.deliverableType.split(',')
// }
if (value.dutyTerritory) {
this.queryPersonByProject(value.dutyTerritory)
} }
this.getRegulationNo() this.getRegulationNo()
this.title = this.$t('edit') this.title = this.$t('edit')
this.$nextTick(() => { this.$nextTick(() => {
this.formInline = {...this.formInline}
this.$refs.ruleForm.clearValidate() this.$refs.ruleForm.clearValidate()
}) })
}, },
@@ -527,6 +670,7 @@
url = this.url.add url = this.url.add
Action = postAction Action = postAction
query.dataList.forEach(val => { query.dataList.forEach(val => {
delete val.engineeringInterfacePersonList
Object.keys(val).forEach(res => { Object.keys(val).forEach(res => {
if (val[res] && val[res] instanceof Array) { if (val[res] && val[res] instanceof Array) {
val[res] = val[res].join(',') val[res] = val[res].join(',')
@@ -618,8 +762,37 @@
let content = this.projectNameList.filter(res => { let content = this.projectNameList.filter(res => {
return res.id === value return res.id === value
}) })
this.formInline.bussDocumentLibraryId = content[0].id if (content && content.length > 0) {
this.formInline.serialNumber = content[0].serialNumber this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
}
},
handleChange(value) {
this.formInline.sdt = undefined
this.queryPersonByProject(this.formInline.dutyTerritory)
},
dutyHandleChange(index) {
this.formInline.dataList[index].sdt = undefined
this.formInline = {... this.formInline}
this.queryPersonByProject(this.formInline.dataList[index].dutyTerritory, index)
},
queryPersonByProject(row, index) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row
}
getAction('/project/projectRelatedPersonnel/queryPersonByProjectId', query).then((res) => {
if (res.success) {
if (this.formInline.id) {
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || [] //工程接口人
} else {
this.$nextTick(()=>{
this.formInline.dataList[index].engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || []
this.formInline = {...this.formInline}
})
}
}
})
} }
} }
} }
@@ -17,19 +17,15 @@
<span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span> <span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('configurationItem')" <a-input class="box-input"
class="box-input" v-model="formInline.configItem"
allowClear :placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.configItem"> <!-- <j-dict-select-tag class="box-input" v-model="formInline.configItem"-->
<a-select-option v-for="(item, key) in configurationItemList" <!-- @input="handleInput('configItem')"-->
:key="item.key" <!-- :placeholder="$t('PleaseSelect')+$t('configurationItem')"-->
:value="item.value"> <!-- :type="'select'"-->
<span style="display: inline-block;width: 100%" :title=" item.label "> <!-- :triggerChange="false" :dictCode="'ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4'"/>-->
{{ item.label }}
</span>
</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -41,6 +37,7 @@
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory" <j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')" @input="handleInput('dutyTerritory')"
@changeQuery="handleChange"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'" :type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/> :triggerChange="false" :dictCode="'duty_territory'"/>
@@ -58,13 +55,15 @@
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')" <a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
class="box-input" class="box-input"
allowClear allowClear
optionFilterProp="label"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.sdt"> v-model="formInline.sdt">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList" <a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="item.key" :key="item.key"
:label="item.name"
:value="item.value"> :value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label "> <span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.label }} {{ item.name }}
</span> </span>
</a-select-option> </a-select-option>
</a-select> </a-select>
@@ -74,15 +73,20 @@
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span> <span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div> </div>
<a-form-model-item class="itemModel-multi"> <a-form-model-item class="itemModel-multi">
<PersonnelSelection :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}" <!-- tree-checkable-->
:isSingleChoice="true" <a-tree-select
:personneQuery="formInline" tree-node-filter-prop="title"
v-if="visible" v-model="formInline.deliverableType"
@change="PersonnelSelectionChange" :maxTagCount="1"
v-model="formInline.dutyPersonName"/> :getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -91,22 +95,49 @@
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span> <span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'endTime'"
>
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange({db_field_name:'endTime'})"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12" v-if="roleSwitchingCode == 2">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('CertificationProgress')">{{$t('CertificationProgress')}}</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')" <j-dict-select-tag class="box-input" v-model="formInline.certificationProgress"
class="box-input" @input="handleInput('certificationProgress')"
allowClear :placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
:getPopupContainer="triggerNode=> triggerNode.parentNode" :type="'select'"
v-model="formInline.deliverableType"> :triggerChange="false" :dictCode="'certification_progress'"/>
<a-select-option v-for="(item, key) in typeOfDeliverablesList" </a-form-model-item>
:key="item.key" </div>
:value="item.value"> </a-col>
<span style="display: inline-block;width: 100%" :title=" item.label "> </a-row>
{{ item.label }} <a-row :gutter="24" v-if="name == $t('BatchSetting') && roleSwitchingCode == 2">
</span> <a-col :span="24">
</a-select-option> <div class="box-title-text">
</a-select> <div class="title-text">
<span class="title-text-text"
:title="$t('remarks')">{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'certificationProgressRemark'">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('remarks')"
v-model="formInline.certificationProgressRemark" :rows="4"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -122,7 +153,7 @@
export default { export default {
name: 'batSetting', name: 'batSetting',
props: ['url'], props: ['url', 'roleSwitchingCode'],
components: { components: {
PersonnelSelection PersonnelSelection
}, },
@@ -136,14 +167,29 @@
configurationItemList: [], configurationItemList: [],
engineeringInterfacePersonList: [], engineeringInterfacePersonList: [],
typeOfDeliverablesList: [], typeOfDeliverablesList: [],
name: '' name: '',
DeliverableTreeList: []
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
edit(data, name) { edit(data, name) {
this.visible = true this.visible = true
this.getDeliverableTree()
this.$nextTick(() => { this.$nextTick(() => {
this.ids = data || [] this.ids = data || []
this.formInline = {} this.formInline = {}
@@ -163,12 +209,24 @@
}, },
handleOkOne() { handleOkOne() {
let ids = JSON.parse(JSON.stringify(this.ids)) let ids = JSON.parse(JSON.stringify(this.ids))
let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) {
formInline[res] = formInline[res].join(',')
}
})
let query = { let query = {
ids: ids.join(','), ids: ids.join(','),
...this.formInline ...formInline
} }
let url = ''
this.confirmLoading = true this.confirmLoading = true
postAction(this.url.setBatch, query).then((res) => { if (this.name == this.$t('changeSetting')) {
url = '/project/projectCertificationInventoryEO/updateConfigItemBatch'
} else {
url = this.url.setBatch
}
postAction(url, query).then((res) => {
if (res.success) { if (res.success) {
this.$message.success(this.$t('OperationSuccessful')) this.$message.success(this.$t('OperationSuccessful'))
this.visible = false this.visible = false
@@ -217,6 +275,21 @@
}, },
dateChange(item) { dateChange(item) {
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
},
handleChange(value) {
this.formInline.sdt = undefined
this.queryPersonByProject(this.formInline.dutyTerritory)
},
queryPersonByProject(row) {
let query = {
projectId: this.$route.query.id,
dutyTerritory: row
}
getAction('/project/projectRelatedPersonnel/queryPersonByProjectId', query).then((res) => {
if (res.success) {
this.engineeringInterfacePersonList = res.result.engineeringInterfacePersonList || [] //工程接口人
}
})
} }
} }
} }
@@ -40,54 +40,57 @@
<script> <script>
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
export default { export default {
name: 'modifyHistoryList', name: 'modifyHistoryList',
data() { data() {
return { return {
visible:false, visible: false,
dataList:[], dataList: [],
confirmLoading:false, confirmLoading: false,
loading:false, loading: false,
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
url:{ projectCertificationInventoryId: '',
list:'', url: {
list: '/project/projectCertificationInventoryLogEO/page'
}, },
columns:[ columns: [
{ {
title: this.$t('Operator'), title: this.$t('Operator'),
dataIndex: 'Operator', dataIndex: 'createBy',
align: 'left', align: 'left',
ellipsis: true, ellipsis: true,
width: 228 width: 108
}, },
{ {
title: this.$t('operationTime'), title: this.$t('operationTime'),
dataIndex: 'operationTime', dataIndex: 'createTime',
align: 'left', align: 'left',
ellipsis: true, ellipsis: true,
width: 228 width: 148
}, },
{ {
title: this.$t('OperationContent'), title: this.$t('OperationContent'),
dataIndex: 'OperationContent', dataIndex: 'content',
align: 'left', align: 'left',
ellipsis: true, ellipsis: true,
width: 228 width: 528
}, }
], ]
} }
}, },
mounted() { mounted() {
}, },
methods:{ methods: {
handleCancel(){ handleCancel() {
this.visible = false this.visible = false
}, },
getList() { getList(id) {
this.pageNo = 1 this.pageNo = 1
this.visible = true this.visible = true
this.projectCertificationInventoryId = id
this.replacePage() this.replacePage()
}, },
onChange(page, pageSize) { onChange(page, pageSize) {
@@ -99,13 +102,14 @@
this.pageSize = pageSize this.pageSize = pageSize
this.replacePage() this.replacePage()
}, },
replacePage(){ replacePage() {
let query = { let query = {
pageNo: this.pageNo, pageNo: this.pageNo,
pageSize: this.pageSize, pageSize: this.pageSize,
projectCertificationInventoryId: this.projectCertificationInventoryId
} }
this.loading = true this.loading = true
postAction(this.url.list, query).then((res) => { getAction(this.url.list, query).then((res) => {
if (res.success) { if (res.success) {
this.dataList = res.result.records || [] this.dataList = res.result.records || []
this.total = res.result.total this.total = res.result.total
@@ -116,7 +120,7 @@
this.loading = false this.loading = false
} }
}) })
}, }
} }
} }
</script> </script>
@@ -56,7 +56,7 @@
<div class="drawer-bootom-button"> <div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button> <a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button> <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -95,17 +95,19 @@
loading: false, loading: false,
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
total: 0 total: 0,
ids:'',
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
transferModel() { transferModel(ids) {
this.visible = true this.visible = true
this.queryParam = {} this.queryParam = {}
this.selectedRowKeys = [] this.selectedRowKeys = []
this.ids = ids.join(',')
this.replacePage() this.replacePage()
}, },
searchQuery() { searchQuery() {
@@ -151,49 +153,31 @@
}, },
handleCancel() { handleCancel() {
this.visible = false this.visible = false
this.$emit('visible')
}, },
handleSubmit(flag) { handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false postAction('/project/projectCertificationInventoryEO/citeDeliverable', {
this.$emit('transferListForm',selectedRowKeys.join(',')) projectCertificationInventoryIds: this.ids,
this.selectedRowKeys = [] projectLibraryId: this.$route.query.id,
// postAction('project/projectLawsInventoryEO/add', { citeProjectLibraryId: selectedRowKeys.join(',')
// dummyInventoryBaseId: selectedRowKeys.join(','), }).then((res) => {
// projectLibraryId: this.$route.query.id, if (res.success) {
// flag: flag this.confirmLoading = false
// }).then((res) => { this.$message.success(this.$t('OperationSuccessful'))
// if (res.success) { this.visible = false
// this.confirmLoading = false this.selectedRowKeys = []
// // this.$message.success(this.$t('OperationSuccessful')) this.$emit('referenceDeliverablesListForm')
// // this.visible = false } else {
// this.selectedRowKeys = [] this.$message.warning(this.$t('operationFailed'))
// this.$emit('transferListForm',selectedRowKeys.join(',')) this.confirmLoading = false
// } else { }
// // if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') { })
// // this.confirmLoading = false
// // this.getAdd()
// // return
// // }
// this.$message.warning(this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
} else { } else {
this.$message.warning(this.$t('selectLeastOne')) this.$message.warning(this.$t('selectLeastOne'))
} }
}, },
getAdd() {
let _this = this
this.$confirm({
content: _this.$t('TheDoesNotContainData'),
onOk() {
_this.handleSubmit('1')
}
})
}
} }
} }
</script> </script>
@@ -1,76 +1,84 @@
<template> <template>
<a-drawer <div>
:title="$t('Transfer')" <a-drawer
:maskClosable="false" :title="$t('Transfer')"
:width="1000" :maskClosable="false"
placement="right" :width="1000"
:closable="true" placement="right"
@close="handleCancel" :closable="true"
:visible="visible" @close="handleCancel"
style="height: 100%;overflow: auto;padding-bottom: 53px;"> :visible="visible"
<div style="margin-bottom: 60px"> style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div class="table-page-search-wrapper"> <div style="margin-bottom: 60px">
<a-form layout="inline" @keyup.enter.native="searchQuery"> <div class="table-page-search-wrapper">
<a-row :gutter="24"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-col :md="12" :sm="8"> <a-row :gutter="24">
<div class="box-title-text"> <a-col :md="12" :sm="8">
<div class="title-text" :title="$t('VirtualListName')"> <div class="box-title-text">
<span>{{$t('VirtualListName')}}</span> <div class="title-text" :title="$t('VirtualListName')">
<span>{{$t('VirtualListName')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')"
v-model="queryParam.name"></j-input>
</div> </div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')" </a-col>
v-model="queryParam.name"></j-input> <span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24"> <a-col :md="12" :sm="24">
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button> <a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button> <a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col> </a-col>
</span> </span>
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<a-table <a-table
:components="drag(columns,'columns')" :components="drag(columns,'columns')"
:columns="columns" :columns="columns"
rowKey="id" rowKey="id"
:scroll="{x: 800}" :scroll="{x: 800}"
:data-source="dataList" :data-source="dataList"
:pagination="false" :pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:loading="loading"> :loading="loading">
</a-table> </a-table>
<div class="page" v-if="dataList.length > 0"> <div class="page" v-if="dataList.length > 0">
<a-pagination <a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')" :show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper show-quick-jumper
show-size-changer show-size-changer
:page-size.sync="pageSize" :page-size.sync="pageSize"
:total="total" :total="total"
:current="pageNo" :current="pageNo"
@change="onChange" @change="onChange"
@showSizeChange="SizeChange" @showSizeChange="SizeChange"
/> />
</div>
</div> </div>
</div>
<div class="drawer-bootom-button"> <div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button> <a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button> <a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('determine')}}
</div> </a-button>
</a-drawer> </div>
</a-drawer>
<transferListvirtal :url="url" @transferListFormHomo="transferListFormHomo" ref="transferListvirtalRef"/>
</div>
</template> </template>
<script> <script>
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header' import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import transferListvirtal from './transferListvirtal'
export default { export default {
name: 'transferList', name: 'transferList',
components: {}, components: {
transferListvirtal
},
props: ['url'], props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide], mixins: [ResizeHeader, ResizeColumnProvide],
data() { data() {
return { return {
visible: false, visible: false,
@@ -150,7 +158,7 @@
...this.queryParam ...this.queryParam
} }
this.loading = true this.loading = true
postAction('/project/projectLawsInventoryEO/getPageInfoDummy', query).then((res) => { getAction('/authDummy/authDummyInventoryBaseEO/page', query).then((res) => {
if (res.success) { if (res.success) {
this.dataList = res.result.records || [] this.dataList = res.result.records || []
this.total = res.result.total this.total = res.result.total
@@ -160,6 +168,11 @@
} }
}) })
}, },
transferListFormHomo() {
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListForm')
},
onSelectChange(value) { onSelectChange(value) {
this.selectedRowKeys = value this.selectedRowKeys = value
if (this.selectedRowKeys.length > 1) { if (this.selectedRowKeys.length > 1) {
@@ -168,6 +181,7 @@
}, },
handleCancel() { handleCancel() {
this.visible = false this.visible = false
this.selectedRowKeys = []
this.$emit('visible') this.$emit('visible')
}, },
handleSubmit(flag) { handleSubmit(flag) {
@@ -175,8 +189,9 @@
this.confirmLoading = true this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys)) let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(',')) // this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = [] this.$refs.transferListvirtalRef.transferModel(selectedRowKeys.join(','))
// this.selectedRowKeys = []
// postAction('project/projectLawsInventoryEO/add', { // postAction('project/projectLawsInventoryEO/add', {
// dummyInventoryBaseId: selectedRowKeys.join(','), // dummyInventoryBaseId: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id, // projectLibraryId: this.$route.query.id,
@@ -0,0 +1,314 @@
<template>
<a-drawer
:title="$t('Transfer')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></j-input>
</div>
</a-col>
<a-col :md="12" :sm="5">
<div class="box-title-text">
<div class="title-text" :title="$t('category')">
<span>{{$t('category')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('category')"
v-model="queryParam.category"></j-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<a-table
:columns="columns"
rowKey="id"
:scroll="{x: 800,y:600}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:'' }"
:loading="loading">
</a-table>
<!-- <div class="page" v-if="dataList.length > 0">-->
<!-- <a-pagination-->
<!-- :show-total="total => $t('total')+` ${total} `+$t('strip')"-->
<!-- show-quick-jumper-->
<!-- show-size-changer-->
<!-- :page-size.sync="pageSize"-->
<!-- :total="total"-->
<!-- :current="pageNo"-->
<!-- @change="onChange"-->
<!-- @showSizeChange="SizeChange"-->
<!-- />-->
<!-- </div>-->
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit(undefined)" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
export default {
name: 'transferList',
components: {
globalAdvancedQuery
},
props: ['url'],
data() {
return {
visible: false,
queryParam: {},
confirmLoading: false,
selectedRowKeys: [],
columns: [
{
title: this.$t('category'),
align: 'left',
dataIndex: 'category',
width: 150,
ellipsis: true,
},
{
title: this.$t('inspectionItems'),
align: 'left',
dataIndex: 'inspectionItem',
width: 150,
ellipsis: true,
scopedSlots: { customRender: 'inspectionItems' }
},
{
title: 'WVTA ID',
align: 'left',
dataIndex: 'wvtaId',
width: 150,
ellipsis: true,
},
{
title: this.$t('standard'),
align: 'left',
dataIndex: 'serialNumber',
width: 150,
ellipsis: true,
},
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritoryName',
width: 200,
ellipsis: true,
},
{
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'deliverableTypeName',
width: 200,
ellipsis: true,
},
],
fieldList: [
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: 'string',
value: 'inspectionItem',
text: this.$t('inspectionItems'),
},
{
type: '',
value: 'dutyTerritory',
text: this.$t('areaOfResponsibility'),
dictCode: 'duty_territory'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
],
dataList: [],
content: [],
loading: false,
dummyInventoryBaseId:'',
pageNo: 1,
pageSize: 10,
total: 0
}
},
mounted() {
},
methods: {
transferModel(id) {
this.visible = true
this.dummyInventoryBaseId = id
this.queryParam = {}
this.selectedRowKeys = []
this.replacePage()
},
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.replacePage()
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.replacePage()
},
replacePage() {
let query = {
// pageNo: this.pageNo,
// pageSize: this.pageSize,
...this.queryParamQuery,
...this.queryParam,
authDummyInventoryBaseId: this.dummyInventoryBaseId
}
this.loading = true
getAction('/authDummy/authDummyInventoryInfoEO/list', query).then((res) => {
if (res.success) {
this.dataList = res.result || []
this.loading = false
} else {
this.loading = false
}
})
},
onSelectChange(value) {
this.selectedRowKeys = value
// if (this.selectedRowKeys.length > 1) {
// this.selectedRowKeys.shift()
// }
},
handleCancel() {
this.visible = false
},
handleSubmit(flag) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
postAction('project/projectCertificationInventoryEO/callAdd', {
authDummyInventoryBaseId: this.dummyInventoryBaseId,
projectLibraryId: this.$route.query.id,
authDummyInventoryInfoIds: selectedRowKeys.join(','),
}).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListFormHomo')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
}
}
</script>
<style scoped>
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
z-index: 100;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 20%;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 70%;
height: 38px;
margin-top: 2px;
}
.box-button {
height: 38px;
}
</style>
@@ -54,10 +54,10 @@
<a-button class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button> <a-button class="box-button" type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
<a-button class="box-button" style="margin-left: 8px" <a-button class="box-button" style="margin-left: 8px"
@click="searchReset">{{ $t('reset') }}</a-button> @click="searchReset">{{ $t('reset') }}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px"> <!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
{{ !toggleSearchStatus ? $t('open') : $t('away') }} <!-- {{ !toggleSearchStatus ? $t('open') : $t('away') }}-->
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> <!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
</a> <!-- </a>-->
</a-col> </a-col>
</span> </span>
</a-row> </a-row>
@@ -280,18 +280,49 @@
</a> </a>
</span> </span>
<span slot="DeliverablesResult" slot-scope="text,record,index"> <span slot="DeliverablesResult" slot-scope="text,record,index">
<a-button type="primary" class="button-text" <span v-if="(record.flowStatus == 'Results to be submitted' &&
v-if="record.flowStatus == 'Results to be submitted'" record.dutyPersonName == userInfoQuery.username && roleSwitchingCode == 20) ||
@click="clickButtonToUpload('deliveryResult',index)"> record.flowStatus == 'Results to be submitted' && roleSwitchingCode == 21">
<a-button type="primary" class="button-text"
v-if="record.valueType == 'file'"
@click="clickButtonToUpload('deliveryResult',index)">
{{ (record.deliveryResult === 'null' || record.deliveryResult === '' || {{ (record.deliveryResult === 'null' || record.deliveryResult === '' ||
record.deliveryResult == null) ? $t('clickUpload') : $t('viewUploadedFiles') record.deliveryResult == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}} }}
</a-button> </a-button>
<a-input class="box-input-index"
v-else-if="record.valueType == 'text'"
:maxLength="200"
@blur="deliveryBlur"
onkeyup="this.value=this.value.replace(/(^\s+)|(\s+$)/g, '')"
v-model.trim="record.deliveryResult"
:placeholder="$t('PleaseEnter')"/>
<a-radio-group v-else-if="record.valueType == 'select'"
@change="deliveryChange"
v-model="record.deliveryResult">
<a-radio :value="'1'">
{{$t('yes')}}
</a-radio>
<a-radio :value="'2'">
{{$t('not')}}
</a-radio>
</a-radio-group>
<span v-else>--</span>
</span>
<span v-else> <span v-else>
<span class="viewFile" <span class="viewFile"
@click="viewFileClick(record.deliveryResult)" v-if="record.deliveryResult"> @click="viewFileClick(record.deliveryResult)"
v-if="record.deliveryResult && record.valueType == 'file'">
{{$t('viewFile')}} {{$t('viewFile')}}
</span> </span>
<span :title="record.deliveryResult"
v-else-if="record.deliveryResult && record.valueType == 'text'">
{{record.deliveryResult}}
</span>
<span v-else-if="record.deliveryResult && record.valueType == 'select'">
{{record.deliveryResult == '1' ? $t('yes') :$t('not')}}
</span>
<span v-else>--</span> <span v-else>--</span>
</span> </span>
</span> </span>
@@ -347,7 +378,7 @@
</div> </div>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/> <transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<certificationDirectory :isDisplayNum="isDisplayNum" :url="url" ref="certificationDirectoryRef"/> <certificationDirectory :isDisplayNum="isDisplayNum" :url="url" ref="certificationDirectoryRef"/>
<batSetting :url="url" ref="batSettingRef" @batSettingForm="batSettingForm"/> <batSetting :url="url" ref="batSettingRef" :roleSwitchingCode="roleSwitchingCode" @batSettingForm="batSettingForm"/>
<addModel ref="addModelRef" @addModelForm="addModelForm"/> <addModel ref="addModelRef" @addModelForm="addModelForm"/>
<modifyHistory ref="modifyHistoryRef"/> <modifyHistory ref="modifyHistoryRef"/>
<uploadFile ref="uploadFile" :isMultiple="true" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile> <uploadFile ref="uploadFile" :isMultiple="true" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -355,41 +386,41 @@
<referenceDeliverablesList ref="referenceDeliverablesListRef" @referenceDeliverablesListForm="transferListForm"/> <referenceDeliverablesList ref="referenceDeliverablesListRef" @referenceDeliverablesListForm="transferListForm"/>
<SelectedBy ref="SelectedByRef" :title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy> <SelectedBy ref="SelectedByRef" :title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy>
<viewFileModel ref="viewFileModelRef"/> <viewFileModel ref="viewFileModelRef"/>
<a-modal <!-- <a-modal-->
:title="listTitle" <!-- :title="listTitle"-->
:width="500" <!-- :width="500"-->
:visible="visible" <!-- :visible="visible"-->
:confirm-loading="confirmLoading" <!-- :confirm-loading="confirmLoading"-->
:maskClosable="false" <!-- :maskClosable="false"-->
@ok="handleOk" <!-- @ok="handleOk"-->
@cancel="handleCancel" <!-- @cancel="handleCancel"-->
> <!-- >-->
<a-spin :spinning="confirmLoading"> <!-- <a-spin :spinning="confirmLoading">-->
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm"> <!-- <a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">-->
<a-row :gutter="24"> <!-- <a-row :gutter="24">-->
<a-col :span="24"> <!-- <a-col :span="24">-->
<div class="box-title-text-index"> <!-- <div class="box-title-text-index">-->
<div class="title-text-index"> <!-- <div class="title-text-index">-->
<span class="Required">*</span> <!-- <span class="Required">*</span>-->
<span class="title-text-text" <!-- <span class="title-text-text"-->
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span> <!-- :title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>-->
</div> <!-- </div>-->
<a-form-model-item class="itemModel" prop="endTime"> <!-- <a-form-model-item class="itemModel" prop="endTime">-->
<a-date-picker class="box-input" <!-- <a-date-picker class="box-input"-->
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')" <!-- :placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"-->
@change="dateChange({db_field_name:'endTime'})" <!-- @change="dateChange({db_field_name:'endTime'})"-->
format="YYYY-MM-DD" <!-- format="YYYY-MM-DD"-->
:disabledDate="disabledDate" <!-- :disabledDate="disabledDate"-->
:getCalendarContainer="(trigger) => trigger.parentNode" <!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
v-model="formInline.endTime" <!-- v-model="formInline.endTime"-->
style="width: 100%"/> <!-- style="width: 100%"/>-->
</a-form-model-item> <!-- </a-form-model-item>-->
</div> <!-- </div>-->
</a-col> <!-- </a-col>-->
</a-row> <!-- </a-row>-->
</a-form-model> <!-- </a-form-model>-->
</a-spin> <!-- </a-spin>-->
</a-modal> <!-- </a-modal>-->
<a-modal <a-modal
:title="$t('roleSwitching')" :title="$t('roleSwitching')"
:width="500" :width="500"
@@ -473,7 +504,50 @@
'NA': 'notInvolvedColor', 'NA': 'notInvolvedColor',
'Not start': 'submittedColor' 'Not start': 'submittedColor'
}, },
fieldList: [], fieldList: [
{
type: 'string',
value: 'category',
text: this.$t('category')
},
{
type: 'string',
value: 'inspectionItem',
text: this.$t('inspectionItems')
},
{
type: 'string',
value: 'configItem',
text: this.$t('configurationItem')
},
{
type: 'string',
value: 'wvtaId',
text: 'WVTA ID'
},
{
type: 'string',
value: 'serialNumber',
text: this.$t('standardNo')
},
{
type: 'Personnel',
value: 'sdt',
valueName: 'sdtName',
text: this.$t('engineeringInterfacePerson')
},
{
type: 'Personnel',
value: 'dutyPerson',
valueName: 'dutyPersonName',
text: this.$t('personLiable')
},
{
type: 'date',
value: 'endTime',
text: this.$t('closingDate')
}
],
disabled: false, disabled: false,
queryParamQuery: {}, queryParamQuery: {},
formInline: {}, formInline: {},
@@ -589,7 +663,7 @@
align: 'left', align: 'left',
dataIndex: 'deliveryResult', dataIndex: 'deliveryResult',
width: 180, width: 180,
// ellipsis: true, ellipsis: true,
scopedSlots: { customRender: 'DeliverablesResult' } scopedSlots: { customRender: 'DeliverablesResult' }
}, },
{ {
@@ -651,13 +725,15 @@
isDisplayNum: 2, isDisplayNum: 2,
long: '', long: '',
toDoIds: [], toDoIds: [],
toDoNotConditions: [] toDoNotConditions: [],
userInfoQuery: {}
} }
}, },
mounted() { mounted() {
// this.getList() // this.getList()
this.long = localStorage.getItem('language') || 'zh-cn' this.long = localStorage.getItem('language') || 'zh-cn'
this.loading = true this.loading = true
this.userInfoQuery = this.userInfo()
this.getProcessStatus() this.getProcessStatus()
this.getRoleByUserId(() => { this.getRoleByUserId(() => {
this.getAndUserId() this.getAndUserId()
@@ -718,7 +794,7 @@
if (this.roleSwitchingCode == 2) { if (this.roleSwitchingCode == 2) {
this.preservationClick() this.preservationClick()
} }
this.replacePage() this.getList()
}, },
SizeChange(page, pageSize) { SizeChange(page, pageSize) {
this.pageNo = 1 this.pageNo = 1
@@ -726,7 +802,7 @@
if (this.roleSwitchingCode == 2) { if (this.roleSwitchingCode == 2) {
this.preservationClick() this.preservationClick()
} }
this.replacePage() this.getList()
}, },
searchQuery() { searchQuery() {
this.pageNo = 1 this.pageNo = 1
@@ -779,6 +855,11 @@
this.loading = true this.loading = true
getAction(this.url.list, query).then((res) => { getAction(this.url.list, query).then((res) => {
if (res.success) { if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || [] this.dataSource = res.result.records || []
this.total = res.result.total this.total = res.result.total
this.loading = false this.loading = false
@@ -821,42 +902,46 @@
downloadFile(this.url.exportData, this.$route.query.projectName + '.zip', query, this.Deselect) downloadFile(this.url.exportData, this.$route.query.projectName + '.zip', query, this.Deselect)
}, },
handleDel() { handleDel() {
let _this = this
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let _this = this let ids = []
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys)) let notConditions = []
let isTrue = true for (let i = 0; i < this.selectedRowKeysList.length; i++) {
// for (let i = 0; i < this.dataSource.length; i++) { if (this.selectedRowKeysList[i].flowStatus == 'List to be released' ||
// for (let j = 0; j < selectedRowKeys.length; j++) { this.selectedRowKeysList[i].flowStatus == 'Review and pass') {
// if (this.dataSource[i].id == selectedRowKeys[j]) { ids.push(this.selectedRowKeysList[i].id)
// if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') { } else {
// isTrue = true notConditions.push(this.selectedRowKeysList[i].inspectionItem)
// } else { }
// isTrue = false }
// this.$message.warning(this.$t('onlyDeleted')) let data = ''
// return if (notConditions && notConditions.length > 0) {
// } data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataWithProcessStatusDeleted')
// } }
// } if (ids && ids.length > 0) {
// }
if (isTrue) {
this.$confirm({ this.$confirm({
content: _this.$t('ConfirmBatchDeletion'), content: _this.$t('ConfirmBatchDeletion'),
onOk() { onOk() {
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
deleteAction(_this.url.deleteBatch, { deleteAction(_this.url.deleteBatch, {
ids: idList.join(','), ids: ids.join(','),
projectLibraryId: _this.$route.query.id projectLibraryId: _this.$route.query.id
}).then((res) => { }).then((res) => {
if (res.success) { if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = [] _this.selectedRowKeys = []
_this.selectedRowKeysList = []
_this.getList() _this.getList()
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else { } else {
_this.$message.warning(res.message) _this.$message.warning(res.message)
} }
}) })
} }
}) })
} else {
this.failedMessage(data)
} }
} else { } else {
this.$message.warning(this.$t('selectLeastOne')) this.$message.warning(this.$t('selectLeastOne'))
@@ -897,46 +982,93 @@
this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : '' this.formInline[item.db_field_name] = this.formInline[item.db_field_name] ? moment(this.formInline[item.db_field_name]).format('YYYY-MM-DD') : ''
}, },
releaseClick() { releaseClick() {
this.listTitle = this.$t('Deadline') // this.listTitle = this.$t('Deadline')
if (this.selectedRowKeysList.length < 1) { // if (this.selectedRowKeysList.length < 1) {
this.$message.warning(this.$t('selectLeastOne')) // this.$message.warning(this.$t('selectLeastOne'))
// } else {
// this.visible = true
// }
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'List to be released' ||
this.selectedRowKeysList[i].flowStatus == 'Certification returned') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataListReleasedAndCertificationReturnCanSelected')
}
if (ids && ids.length > 0) {
this.releaseData(ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else { } else {
this.visible = true this.$message.warning(this.$t('selectLeastOne'))
} }
}, },
handleOk() { releaseData(ids, notConditions, data) {
this.$refs.ruleForm.validate(valid => { let _this = this
if (valid) { this.$confirm({
let selectedRowKeys = [] content: _this.$t('confirmRelease'),
this.selectedRowKeysList.forEach(res => { onOk() {
selectedRowKeys.push(res.id) postAction('/project/projectCertificationInventoryEO/issue', {
}) ids: ids.join(','),
let query = { projectLibraryId: _this.$route.query.id
ids: selectedRowKeys.join(','), }).then((res) => {
projectLibraryId: this.$route.query.id,
...this.formInline
}
this.confirmLoading = true
postAction('/project/projectCertificationInventoryEO/issue', query).then((res) => {
if (res.success) { if (res.success) {
this.$message.success(this.$t('OperationSuccessful')) _this.$message.success(_this.$t('OperationSuccessful'))
this.visible = false _this.selectedRowKeys = []
this.selectedRowKeys = [] _this.selectedRowKeysList = []
this.confirmLoading = false _this.getList()
this.getList() if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else { } else {
this.$message.warning(res.message) _this.$message.warning(res.message)
this.confirmLoading = false
} }
this.detailedSuccessList = []
}) })
} }
}) })
}, },
handleCancel() { // handleOk() {
this.formInline = {} // this.$refs.ruleForm.validate(valid => {
this.visible = false // if (valid) {
}, // let selectedRowKeys = []
// this.selectedRowKeysList.forEach(res => {
// selectedRowKeys.push(res.id)
// })
// let query = {
// ids: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
// ...this.formInline
// }
// this.confirmLoading = true
// postAction('/project/projectCertificationInventoryEO/issue', query).then((res) => {
// if (res.success) {
// this.$message.success(this.$t('OperationSuccessful'))
// this.visible = false
// this.selectedRowKeys = []
// this.confirmLoading = false
// this.getList()
// } else {
// this.$message.warning(res.message)
// this.confirmLoading = false
// }
// this.detailedSuccessList = []
// })
// }
// })
// },
// handleCancel() {
// this.formInline = {}
// this.visible = false
// },
//撤回 //撤回
withdrawClick() { withdrawClick() {
@@ -1085,8 +1217,8 @@
}, },
transferListForm() { transferListForm() {
this.pageNo = 1 this.pageNo = 1
this.getList()
this.selectedRowKeys = [] this.selectedRowKeys = []
this.getList()
}, },
batSettingForm() { batSettingForm() {
this.pageNo = 1 this.pageNo = 1
@@ -1103,22 +1235,26 @@
}, },
deleteLib(val) { deleteLib(val) {
let _this = this let _this = this
this.$confirm({ if (val.flowStatus == 'List to be released' || val.flowStatus == 'Review and pass') {
content: _this.$t('ConfirmDelete'), this.$confirm({
onOk() { content: _this.$t('ConfirmDelete'),
deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => { onOk() {
if (res.success) { deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => {
_this.$message.success(_this.$t('OperationSuccessful')) if (res.success) {
_this.getList() _this.$message.success(_this.$t('OperationSuccessful'))
} else { _this.getList()
_this.$message.warning(_this.$t('operationFailed')) } else {
} _this.$message.warning(_this.$t('operationFailed'))
}) }
} })
}) }
})
} else {
this.$message.warning(this.$t('onlyDataWithProcessStatusDeleted'))
}
}, },
modifyHistoryClick() { modifyHistoryClick(row) {
this.$refs.modifyHistoryRef.getList() this.$refs.modifyHistoryRef.getList(row.id)
}, },
getRoleByUserId(callback) { getRoleByUserId(callback) {
getAction('/project/projectCertificationInventoryEO/getRoleByUserId', { projectLibraryId: this.$route.query.id }).then((res) => { getAction('/project/projectCertificationInventoryEO/getRoleByUserId', { projectLibraryId: this.$route.query.id }).then((res) => {
@@ -1187,6 +1323,8 @@
this.$message.success(this.$t('OperationSuccessful')) this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false this.confirmLoadingRoleSwitching = false
this.selectedRowKeysList = []
this.selectedRowKeys = []
this.getList() this.getList()
this.$emit('getRoleSwitch', this.roleSwitchingCode) this.$emit('getRoleSwitch', this.roleSwitchingCode)
} else { } else {
@@ -1217,7 +1355,7 @@
//引用交付物 //引用交付物
referenceDeliverablesClick() { referenceDeliverablesClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) { if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.referenceDeliverablesListRef.transferModel() this.$refs.referenceDeliverablesListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else { } else {
this.$message.warning(this.$t('selectLeastOne')) this.$message.warning(this.$t('selectLeastOne'))
} }
@@ -1326,6 +1464,12 @@
this.dataSource = [...this.dataSource] this.dataSource = [...this.dataSource]
this.preservationClick() this.preservationClick()
}, },
deliveryBlur() {
this.preservationClick()
},
deliveryChange() {
this.preservationClick()
},
CertificationProgressClick(val) { CertificationProgressClick(val) {
let item = JSON.parse(JSON.stringify(val)) let item = JSON.parse(JSON.stringify(val))
item.roleCode = this.roleSwitchingCode item.roleCode = this.roleSwitchingCode
@@ -1,28 +1,28 @@
<template> <template>
<a-drawer <div>
:title="$t('add')" <a-drawer
:maskClosable="false" :title="$t('add')"
:width="1000" :maskClosable="false"
placement="right" :width="1000"
:closable="true" placement="right"
@close="handleCancel" :closable="true"
:visible="visible" @close="handleCancel"
style="height: 100%;overflow: auto;padding-bottom: 53px;"> :visible="visible"
<a-spin :spinning="confirmLoading"> style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" :rules="rules" ref="ruleForm"> <a-form-model :model="formInline" :rules="rules" ref="ruleForm">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('regulationNo')">{{$t('regulationNo')}}</span> <span class="title-text-text" :title="$t ('regulationNo')">{{$t('regulationNo')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="regulationNo"> <a-form-model-item class="itemModel" prop="serialNumber">
<j-dict-select-tag class="box-input" <a-input @click.native="serialNumberClick"
:disabled="disabled" class="box-input"
:placeholder="$t('PleaseSelect')+$t('regulationNo')" :placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'" v-model="formInline.serialNumber"></a-input>
:triggerChange="false"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -32,12 +32,14 @@
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span> <span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel" prop="dutyTerritory">
<j-dict-select-tag class="box-input" <j-dict-select-tag class="box-input"
:disabled="disabled" :disabled="disabled"
@input="handleInput('dutyTerritory')"
v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'" :type="'select'"
:triggerChange="false"/> :triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -49,9 +51,9 @@
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span> <span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
</div> </div>
<a-form-model-item class="itemModel"> <a-form-model-item class="itemModel" prop="wvtaId">
<a-input class="box-input" <a-input class="box-input"
v-model='formInline.dddd' v-model='formInline.wvtaId'
:disabled="disabled" :disabled="disabled"
:placeholder="$t('PleaseEnter')+'WVTA ID'"/> :placeholder="$t('PleaseEnter')+'WVTA ID'"/>
</a-form-model-item> </a-form-model-item>
@@ -59,124 +61,182 @@
</a-col> </a-col>
</a-row> </a-row>
<div v-for="(item,index) in formInline.dataList" :key="index"> <div v-for="(item,index) in formInline.dataList" :key="index">
<div class="header-text"> <div class="header-text">
<span>{{$t('itemInformation')}}</span> {{$t('itemInformation')}}
<div class="box-title-text" style="margin-left: 10px"> <a-icon class="icon-text" @click="addClick(index)" type="plus-circle"/>
<a-button @click='addClick(index)' style="margin-right: .8rem" icon="plus"> <a-icon class="icon-text" v-if="formInline.dataList.length > 1" @click="deleteClick(index)"
</a-button> type="minus-circle"/>
<a-button v-if="formInline.dataList.length > 1" @click="deleteClick(index)" type="primary" icon="minus">
</a-button>
</div> </div>
</div> <a-row :gutter="24">
<a-row :gutter="24"> <a-col :span="12">
<a-col :span="12"> <div class="box-title-text">
<div class="box-title-text"> <div class="title-text">
<div class="title-text"> <span class="Required">*</span>
<span class="Required">*</span> <span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span> </div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.category'"
:rules="[{ required: true, message: $t('category') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('category') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"
>
<a-input class="box-input"
v-model="item.category"
:placeholder="$t('PleaseEnter')+$t('category')"/>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel" prop="category"> </a-col>
<a-input class="box-input" <a-col :span="12">
v-model="item.category" <div class="box-title-text">
:disabled="disabled" <div class="title-text">
:placeholder="$t('PleaseSelect')+$t('category')" <span class="Required">*</span>
:type="'select'" <span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
:triggerChange="false"/> </div>
</a-form-model-item> <a-form-model-item class="itemModel"
</div> :prop="'dataList.'+index+'.inspectionItem'"
</a-col> :rules="[{ required: true, message: $t('inspectionItems') + $t('cannotEmpty'), trigger: 'blur'},
<a-col :span="12"> {max: 300,message: $t('inspectionItems') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"
<div class="box-title-text"> >
<div class="title-text"> <a-input class="box-input"
<span class="Required">*</span> v-model="item.inspectionItem"
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span> :placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel" prop="inspectionItems"> </a-col>
<j-dict-select-tag class="box-input" </a-row>
v-model="item.inspectionItems" <a-row :gutter="24">
:disabled="disabled" <a-col :span="12">
:placeholder="$t('PleaseSelect')+$t('inspectionItems')" <div class="box-title-text">
:type="'select'" <div class="title-text">
:triggerChange="false"/> <span class="Required">*</span>
</a-form-model-item> <span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div> </div>
</a-col> <a-form-model-item class="itemModel"
</a-row> :prop="'dataList.'+index+'.configItem'"
<a-row :gutter="24"> :rules="[{ required: true, message: $t('configurationItem') + $t('cannotEmpty'), trigger: 'blur'},
<a-col :span="12"> {max: 300,message: $t('configurationItem') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
<div class="box-title-text"> }]">
<div class="title-text"> <a-input class="box-input"
<span class="Required">*</span> v-model="item.configItem"
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span> :placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel" prop="Deliverables"> </a-col>
<j-dict-select-tag class="box-input" <a-col :span="12">
v-model="item.Deliverables" <div class="box-title-text">
:disabled="disabled" <div class="title-text">
:placeholder="$t('PleaseSelect')+$t('Deliverables')" <span class="Required">*</span>
:type="'select'" <span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
:triggerChange="false"/> </div>
</a-form-model-item> <a-form-model-item class="itemModel"
</div> :prop="'dataList.'+index+'.deliverableType'"
</a-col> :rules="[{ required: true, message: $t('typeOfDeliverables') + $t('cannotEmpty'), trigger: 'change'},]"
</a-row> >
<a-tree-select
tree-node-filter-prop="title"
v-model="item.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</div> </div>
</a-form-model> </a-form-model>
</a-spin> </a-spin>
<div class="drawer-bootom-button"> <div class="drawer-bootom-button">
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button> <a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button> <a-button type="primary" @click="handleSubmit" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div> </div>
</a-drawer> </a-drawer>
<codeNumber ref="codeNumber" @regulation="regulation" />
</div>
</template> </template>
<script> <script>
import codeNumber from './codeNumber'
import { getAction, postAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
import { mapGetters } from 'vuex'
export default { export default {
name:"addModel", name:"addModel",
props: ['url'], props: ['url'],
components:{
codeNumber
},
data() { data() {
return { return {
visible: false, visible: false,
disabled: false, disabled: false,
formInline: {}, formInline: {},
confirmLoading: false, confirmLoading: false,
projectNameList: [],
DeliverableTreeList: [],
rules: { rules: {
regulationNo: [ serialNumber: [
// { {
// required: true, required: true,
// message: this.$t('regulationNo') + this.$t('cannotEmpty'), message: this.$t('entryName') + this.$t('regulationNo'),
// trigger: 'change' trigger: 'change'
// } }
] ],
dutyTerritory: [
{
required: true,
message: this.$t('entryName') + this.$t('areaOfResponsibility'),
trigger: 'change'
}
],
wvtaId: [
{
required: true,
message: 'WVTA ID' + this.$t('regulationNo'),
trigger: 'blur'
},
{
max: 300,
message: 'WVTA ID' + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
}, },
} }
}, },
mounted() {
this.getDeliverableTree()
this.getRegulationNo()
},
methods: { methods: {
...mapGetters(['userInfo']),
addModel() { addModel() {
this.visible = true this.visible = true
this.formInline = {} this.formInline = {}
this.formInline.dataList = [{}] this.formInline.dataList = [{}]
this.formInline = { ...this.formInline }
this.$nextTick(() => { this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate() this.$refs.ruleForm.clearValidate()
this.$refs.codeNumber.number()
}) })
}, },
handleCancel() { handleCancel() {
this.visible = false this.visible = false
}, },
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
handleSubmit() { handleSubmit() {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
if (valid) { if (valid) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
let query = JSON.parse(JSON.stringify(this.formInline)) let query = JSON.parse(JSON.stringify(this.formInline))
query.dataList.forEach(val => {
Object.keys(query).forEach(res => {
if (query[res] && query[res] instanceof Array) {
query[res] = query[res].join(',')
}
})
})
this.confirmLoading = true this.confirmLoading = true
postAction(this.url.addModel, query).then((res) => { postAction(this.url.addModel, query).then((res) => {
if (res.success) { if (res.success) {
@@ -199,6 +259,46 @@ export default {
deleteClick(index) { deleteClick(index) {
this.formInline.dataList.splice(index, 1) this.formInline.dataList.splice(index, 1)
this.formInline = { ...this.formInline } this.formInline = { ...this.formInline }
},
getRegulationNo() {
let query = {
projectLibraryId: this.$route.query.id,
roleCode: 0
}
getAction(this.url.number, query).then((res) => {
if (res.success) {
this.projectNameList = res.result || []
} else {
this.projectNameList = []
}
})
},
serialNumberChange(value) {
let content = this.projectNameList.filter(res => {
return res.id === value
})
this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
},
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
serialNumberClick(){
this.$refs.codeNumber.add()
},
regulation(item,data) {
this.formInline.serialNumber = item
this.formInline.bussDocumentLibraryId = data
this.$nextTick(()=>{
this.formInline = {... this.formInline}
this.$refs.ruleForm.validateField(['serialNumber'])
})
} }
} }
} }
@@ -246,12 +346,7 @@ export default {
.header-text { .header-text {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: 500;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
display: flex;
} }
.drawer-bootom-button { .drawer-bootom-button {
@@ -266,4 +361,9 @@ export default {
background: #fff; background: #fff;
border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;
} }
.icon-text {
font-size: 16px;
margin-right: 4px;
}
</style> </style>
@@ -18,7 +18,6 @@
<a-form-model-item class="itemModel-multi"> <a-form-model-item class="itemModel-multi">
<j-dict-select-tag class="box-input" <j-dict-select-tag class="box-input"
v-model="formInline.dutyTerritory" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'" :type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/> :triggerChange="false" :dictCode="'duty_territory'"/>
@@ -33,20 +32,19 @@
<a-col :span="12"> <a-col :span="12">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span> <span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div> </div>
<a-form-model-item class="itemModel-multi"> <a-form-model-item class="itemModel">
<j-multi-select-tag class="box-input" <a-tree-select
v-model="formInline.deliverable" tree-node-filter-prop="title"
@input="handleInput('deliverable')" v-model="formInline.deliverableType"
:placeholder="$t('PleaseSelect')+$t('Deliverables')" :maxTagCount="1"
:type="'select'" :getPopupContainer="triggerNode=> triggerNode.parentNode"
:triggerChange="false"/> class="box-input"
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"--> style="width: 100%"
<!-- @input="handleInput('attestationType')"--> :tree-data="DeliverableTreeList"
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"--> :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
<!-- :type="'select'"--> />
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -56,7 +54,7 @@
</template> </template>
<script> <script>
import { postAction } from '../../../api/manage' import { getAction, postAction } from '../../../api/manage'
export default { export default {
name: 'batSetting', name: 'batSetting',
@@ -68,10 +66,11 @@ export default {
formInline: {}, formInline: {},
rules: {}, rules: {},
ids: [], ids: [],
DeliverableTreeList: [],
} }
}, },
mounted() { mounted() {
this.getDeliverableTree()
}, },
methods: { methods: {
edit(data) { edit(data) {
@@ -83,8 +82,10 @@ export default {
}, },
handleOk() { handleOk() {
if (this.formInline.dutyTerritory) { if (this.formInline.dutyTerritory) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOnTwo() this.handleOnTwo()
} else { } else {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOkOne() this.handleOkOne()
} }
}, },
@@ -148,10 +149,19 @@ export default {
this.formInline = {} this.formInline = {}
this.visible = false this.visible = false
}, },
handleInput(value) { // handleInput(value) {
this.$nextTick(() => { // this.$nextTick(() => {
this.formInline = { ...this.formInline } // this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value]) // this.$refs.ruleForm.validateField([value])
// })
// },
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
}) })
}, },
} }
@@ -0,0 +1,357 @@
<template>
<div>
<!-- <a-input allowClear-->
<!-- @click="add"-->
<!-- :placeholder="$t('PleaseSelect')+$t('regulationNo')"-->
<!-- v-model="regulation"></a-input>-->
<a-drawer
:title="$t('regulationNo')"
:width="1000"
:visible="visible"
placement="right"
:maskClosable="false"
:closable="true"
@close="handleCancel"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serial_number"></a-input>
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.title"></a-input>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('status')">
<span>{{$t('status')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.state"
:placeholder="$t('PleaseSelect')+$t('status')"
:type="'select'"
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<globalAdvancedQuery ref="globalAdvancedQueryRef"
@handleSuperQuery="handleSuperQuery"
:fieldList="fieldList"/>
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ !toggleSearchStatus ? $t('open') : $t('away') }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div style="width: 100%">
<a-table
:columns="columns"
:components="drag(columns,'columns')"
rowKey="id"
:scroll="{x: 1200}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:loading="loading">
</a-table>
</div>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'codeNumber',
components: {
globalAdvancedQuery
},
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
url: {
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy',
},
selectedRowList: [],
visible:false,
queryParam: {},
regulation: '',
confirmLoading: false,
toggleSearchStatus: false,
columns: [
{
title: this.$t('standard'),
dataIndex: 'serial_number',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('title'),
dataIndex: 'title',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('zoneOfApplication'),
dataIndex: 'region',
align: 'left',
ellipsis: true,
width: 228
},
// {
// title: this.$t('status'),
// dataIndex: 'state',
// align: 'center',
// ellipsis: true
// },
// {
// title: this.$t('technicalField'),
// dataIndex: 'technology_territory',
// align: 'center',
// ellipsis: true
// },
{
title: this.$t('ImplementationDate'),
dataIndex: 'xin1_che1_xing2_shi2_shi1_ri4_qi1',
align: 'left',
ellipsis: true,
width: 228
},
{
title: this.$t('vehicleInProductionDate'),
dataIndex: 'implement_time',
align: 'left',
ellipsis: true,
width: 228
}
// {
// title: this.$t('correspondingStandard'),
// dataIndex: 'corresponding_standard',
// align: 'center',
// ellipsis: true
// }
],
dataList: [],
selectedRowKeys: [],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
fieldList: [],
queryParamQuery: {},
queryConditionVOList: []
}
},
mounted() {
},
methods: {
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
add() {
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
this.queryConditionVOList = []
this.replacePage()
this.queryConditionInventory()
},
// number() {
// this.regulation = ''
// },
searchQuery() {
this.pageNo = 1
this.replacePage()
},
searchReset() {
this.pageNo = 1
this.queryParam = {}
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
this.replacePage()
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
queryConditionInventory() {
let query = {
flag: 1
}
getAction(this.url.queryConditionInventory, query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
replacePage() {
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParam,
queryConditionVOList: JSON.stringify(queryConditionVOList)
}
this.loading = true
postAction(this.url.addModelList, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.dataList = []
this.total = 0
this.loading = false
}
})
},
onSelectChange(value,row) {
this.selectedRowKeys = value
this.selectedRowList = row
},
handleCancel() {
this.visible = false
},
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.replacePage()
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
if (this.selectedRowKeys.length < 2){
let fgid = this.selectedRowList[0].id
let regulationIndex = this.selectedRowList[0].serial_number
this.confirmLoading = false
this.visible = false
this.$emit('regulation',regulationIndex,fgid)
} else {
this.$message.warning(this.$t('OnlyOneSelected'))
this.confirmLoading = false
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
this.confirmLoading = false
}
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.title-text {
width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 100%;
height: 38px;
}
.box-button {
height: 38px;
}
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>
@@ -20,7 +20,7 @@
<a-form-model-item class="itemModel" prop="serialNumber"> <a-form-model-item class="itemModel" prop="serialNumber">
<j-dict-select-tag class="box-input" <j-dict-select-tag class="box-input"
v-model="formInline.serialNumber" v-model="formInline.serialNumber"
:disabled="disabled" :disabled="true"
:placeholder="$t('PleaseSelect')+$t('regulationNo')" :placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'" :type="'select'"
:triggerChange="false"/> :triggerChange="false"/>
@@ -39,7 +39,7 @@
:disabled="disabled" :disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')" :placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'" :type="'select'"
:triggerChange="false"/> :triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -68,12 +68,10 @@
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span> <span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="category"> <a-form-model-item class="itemModel" prop="category">
<j-dict-select-tag class="box-input" <a-input class="box-input"
v-model="formInline.category" v-model="formInline.category"
:disabled="disabled" :disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('category')" :placeholder="$t('PleaseEnter')+$t('category')" />
:type="'select'"
:triggerChange="false"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -84,12 +82,10 @@
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span> <span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="inspectionItem"> <a-form-model-item class="itemModel" prop="inspectionItem">
<j-dict-select-tag class="box-input" <a-input class="box-input"
v-model="formInline.inspectionItem" v-model="formInline.inspectionItem"
:disabled="disabled" :disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('inspectionItems')" :placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
:type="'select'"
:triggerChange="false"/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -99,15 +95,35 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span> <span class="title-text-text" :title="$t('configurationItem')">{{$t('configurationItem')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="deliverable"> <a-form-model-item class="itemModel" prop="configItem">
<j-dict-select-tag class="box-input" <a-input class="box-input"
v-model="formInline.deliverable" v-model="formInline.configItem"
:disabled="disabled" :placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
:placeholder="$t('PleaseSelect')+$t('Deliverables')" </a-form-model-item>
:type="'select'" </div>
:triggerChange="false"/> </a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel"
prop="deliverableType"
:rules="[{ required: true, message: $t('typeOfDeliverables') + $t('cannotEmpty'), trigger: 'change'},]"
>
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.deliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-col> </a-col>
@@ -133,6 +149,7 @@ export default {
confirmLoading: false, confirmLoading: false,
formInline: {}, formInline: {},
disabled: false, disabled: false,
DeliverableTreeList: [],
rules: { rules: {
serialNumber: [ serialNumber: [
{ {
@@ -169,6 +186,18 @@ export default {
trigger: 'change' trigger: 'change'
} }
], ],
configItem: [
{
required: true,
message: this.$t('configurationItem') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 300,
message: this.$t('configurationItem') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
deliverable: [ deliverable: [
{ {
required: true, required: true,
@@ -179,6 +208,9 @@ export default {
} }
} }
}, },
mounted() {
this.getDeliverableTree()
},
methods: { methods: {
handleCancel() { handleCancel() {
this.visible = false this.visible = false
@@ -187,6 +219,9 @@ export default {
this.visible = true this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
this.formInline = item || {} this.formInline = item || {}
if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',')
}
this.$refs.ruleForm.clearValidate() this.$refs.ruleForm.clearValidate()
}) })
}, },
@@ -194,6 +229,11 @@ export default {
this.$refs.ruleForm.validate(valid => { this.$refs.ruleForm.validate(valid => {
if (valid) { if (valid) {
let formInline = JSON.parse(JSON.stringify(this.formInline)) let formInline = JSON.parse(JSON.stringify(this.formInline))
Object.keys(formInline).forEach(res => {
if (formInline[res] && formInline[res] instanceof Array) {
formInline[res] = formInline[res].join(',')
}
})
this.confirmLoading = true this.confirmLoading = true
postAction(this.url.editModel, formInline).then((res) => { postAction(this.url.editModel, formInline).then((res) => {
if (res.success) { if (res.success) {
@@ -212,6 +252,15 @@ export default {
} }
}) })
}, },
getDeliverableTree() {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
this.DeliverableTreeList = []
}
})
},
} }
} }
</script> </script>
@@ -260,12 +260,13 @@ export default {
list: '/authDummy/authDummyInventoryInfoEO/page', list: '/authDummy/authDummyInventoryInfoEO/page',
logList: '',//更新log logList: '',//更新log
exportTemplate: '/authDummy/authDummyInventoryInfoEO/exportTemplate',//模板下载 exportTemplate: '/authDummy/authDummyInventoryInfoEO/exportTemplate',//模板下载
exportData: '',//导出 exportData: '/authDummy/authDummyInventoryInfoEO/exportData',//导出
addModel: '/authDummy/authDummyInventoryInfoEO/add',//添加 addModel: '/authDummy/authDummyInventoryInfoEO/batchAdd',//添加
copyInfo: '/authDummy/authDummyInventoryInfoEO/copyInfoByIds',//复制 copyInfo: '/authDummy/authDummyInventoryInfoEO/copyInfoByIds',//复制
deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除 deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除
editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑 editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑
setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置 setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置
number: '/project/projectLawsInventoryEO/list',
}, },
queryParam: {}, queryParam: {},
orderByField: '', orderByField: '',
@@ -285,6 +286,13 @@ export default {
ellipsis: true, ellipsis: true,
scopedSlots: { customRender: 'inspectionItems' } scopedSlots: { customRender: 'inspectionItems' }
}, },
{
title: this.$t('configurationItem'),
align: 'left',
dataIndex: 'configItem',
width: 150,
ellipsis: true,
},
{ {
title: 'WVTA ID', title: 'WVTA ID',
align: 'left', align: 'left',
@@ -302,14 +310,14 @@ export default {
{ {
title: this.$t('areaOfResponsibility'), title: this.$t('areaOfResponsibility'),
align: 'left', align: 'left',
dataIndex: 'dutyTerritory', dataIndex: 'dutyTerritoryName',
width: 200, width: 200,
ellipsis: true, ellipsis: true,
}, },
{ {
title: this.$t('Deliverables'), title: this.$t('typeOfDeliverables'),
align: 'left', align: 'left',
dataIndex: 'deliverable', dataIndex: 'deliverableTypeName',
width: 200, width: 200,
ellipsis: true, ellipsis: true,
}, },
@@ -392,6 +400,7 @@ export default {
created() { created() {
if (this.$route.query.title == '虚拟认证清单详情') { if (this.$route.query.title == '虚拟认证清单详情') {
document.title = this.$t('virtualAuthenticationListDetails') document.title = this.$t('virtualAuthenticationListDetails')
this.columns.splice(7,1)
} else { } else {
document.title = this.$t('certificationListMaintenance') document.title = this.$t('certificationListMaintenance')
} }
@@ -438,7 +447,7 @@ export default {
}, },
//模板下载 //模板下载
handleModule() { handleModule() {
downloadFile(this.url.exportTemplate, this.$t('VirtualList') + this.$t('importTemplate') + '.xls', {}) downloadFile(this.url.exportTemplate, this.$t('VirtualAuthenticationList') + this.$t('importTemplate') + '.xls', {})
}, },
//调取 //调取
// transferClick() { // transferClick() {
@@ -457,7 +466,7 @@ export default {
ids: selectedRowKeys.join(','), ids: selectedRowKeys.join(','),
dummyInventoryBaseId: this.$route.query.id dummyInventoryBaseId: this.$route.query.id
} }
downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualList') + '.zip', query, this.Deselect) downloadFile(this.url.exportData, this.$route.query.name + this.$t('VirtualAuthenticationList') + '.zip', query, this.Deselect)
}, },
Deselect() { Deselect() {
this.selectedRowKeys = [] this.selectedRowKeys = []
@@ -708,4 +717,7 @@ export default {
color: #000F16; color: #000F16;
} }
::v-deep .ant-table-placeholder {
margin-top: 8px!important;
}
</style> </style>