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`)
) 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";
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")
private java.lang.String attributeType;
// 值对应SysCategoryValueTypeEnum枚举类
@ApiModelProperty(value = "值类型 1附件 2文本 3不用填")
@Dict(dicCode = "value_type")
private java.lang.String valueType;
/**逻辑删除标识*/
@TableLogic
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 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
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");
}else if("evaluation_method".equals(flag)){
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{
dictId = sysCategoryMapper.getFieldInfo("technology_territory");
}
@@ -59,7 +59,8 @@ public class AuthDummyInventoryInfoEOController extends JeroController<AuthDummy
HttpServletRequest req) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
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);
}
@@ -71,9 +72,10 @@ public class AuthDummyInventoryInfoEOController extends JeroController<AuthDummy
@AutoLog(value = "认证虚拟清单详情表-列表查询")
@ApiOperation(value="认证虚拟清单详情表-列表查询", notes="认证虚拟清单详情表-列表查询")
@GetMapping(value = "/list")
public Result<List<AuthDummyInventoryInfoEO>> queryList() {
List<AuthDummyInventoryInfoEO> list = authDummyInventoryInfoEOService.queryList();
return Result.OK(list);
public Result<List<AuthDummyInventoryInfoEO>> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
List<AuthDummyInventoryInfoEO> list = this.authDummyInventoryInfoEOService.queryList(authDummyInventoryInfoEO,req);
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)
@ApiModelProperty(value = "责任领域")
private java.lang.String dutyTerritory;
@TableField(exist = false)
// 责任领域名称
private String dutyTerritoryName;
/**交付物*/
@Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private java.lang.String deliverable;
/**交付物类型*/
@Excel(name = "交付物类型", width = 15)
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
@TableField(exist = false)
// 交付物类型名称
private String deliverableTypeName;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.system.entity.SysCategory;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@@ -63,7 +64,7 @@ public interface IAuthDummyInventoryInfoEOService extends IService<AuthDummyInve
*
* @return
*/
List<AuthDummyInventoryInfoEO> queryList();
List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req);
/**
* 复制
@@ -103,4 +104,20 @@ public interface IAuthDummyInventoryInfoEOService extends IService<AuthDummyInve
* @param 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.oss.entity.OSSFile;
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.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
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.SysDictItemServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
@@ -114,6 +116,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
@Autowired
private IBussDocumentLibraryEOService iBussDocumentLibraryEOService;
@Autowired
private ISysDictItemService sysDictItemService;
/**
* 保存
*
@@ -180,8 +185,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
* @return
*/
@Override
public List<AuthDummyInventoryInfoEO> queryList() {
return list();
public List<AuthDummyInventoryInfoEO> queryList(AuthDummyInventoryInfoEO authDummyInventoryInfoEO,HttpServletRequest req) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(authDummyInventoryInfoEO, req.getParameterMap());
List<AuthDummyInventoryInfoEO> authDummyInventoryInfoEOList = this.list(queryWrapper);
return authDummyInventoryInfoEOList;
}
@Override
@@ -260,6 +267,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(StringUtils.isNotEmpty(authDummyInventoryInfoEO.getBussDocumentLibraryId())){
updateAuthDummyEO.setBussDocumentLibraryId(authDummyInventoryInfoEO.getBussDocumentLibraryId());
}
if(StringUtils.isNotEmpty(authDummyInventoryInfoEO.getDeliverableType())){
updateAuthDummyEO.setDeliverableType(authDummyInventoryInfoEO.getDeliverableType());
}
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_MESSAGE7("认证清单-任务提醒,截止日期当天","ctp_AAuDmfXCHc1I"),
CERTIFICATION_MESSAGE8("认证清单-任务提醒,已逾期","ctp_AAuDMwOPU71H"),
CERTIFICATION_MESSAGE9("认证清单-责任人分发(转办),第二责任人收到消息","ctp_AAuDM8YP6soc"),
//CERTIFICATION_MESSAGE9("认证清单-责任人分发(转办),第二责任人收到消息","ctp_AAuDM8YP6soc"),
;
String name;
@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -58,9 +59,10 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize);
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) {
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)
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private java.lang.String configItem;
/**WVTA ID*/
@@ -94,6 +95,9 @@ public class ProjectCertificationInventoryEO implements Serializable {
/**责任领域名称**/
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**交付物*/
@Excel(name = "交付物", width = 15)
@@ -125,14 +129,20 @@ public class ProjectCertificationInventoryEO implements Serializable {
@Excel(name = "交付物类型", width = 15)
@ApiModelProperty(value = "交付物类型")
private java.lang.String deliverableType;
@TableField(exist = false)
// 交付物类型名称
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物模板*/
@Excel(name = "交付物模板", width = 15)
@ApiModelProperty(value = "交付物模板")
private java.lang.String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
private String deliverableTemplateName;
/**交付结果*/
@Excel(name = "交付结果", width = 15)
@@ -150,8 +160,8 @@ public class ProjectCertificationInventoryEO implements Serializable {
@Excel(name = "流程状态", width = 15)
@ApiModelProperty(value = "流程状态")
private java.lang.String flowStatus;
@TableField(exist = false)
// 流程状态展示名称
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
@@ -194,4 +204,8 @@ public class ProjectCertificationInventoryEO implements Serializable {
@TableField(exist = false)
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_STUDIO_WITHDRAW("认证清单-studio撤回","certificationInventoryStudioWithdraw"),
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;
@@ -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.ProcessInfoEO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
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> 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',
virtualListDetails: 'Virtual List Details',
virtualAuthenticationListDetails: 'Virtual Authentication List Details',
VirtualAuthenticationList: 'Virtual Authentication List',
maintainVirtualList: 'Maintain Virtual List',
certificationListMaintenance: 'Certification List Maintenance',
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',
youCannotStatusListToBeReleasedAndApproved:'You cannot select data whose process status is list to be released and approved',
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',
noticebatch:'Notice batch',
producttrademark:'Product Trademark',
+5
View File
@@ -907,6 +907,7 @@ module.exports = {
pleaseConformityVerification: '请补全验证符合性确认的数据',
virtualListDetails: '虚拟清单详情',
virtualAuthenticationListDetails: '虚拟认证清单详情',
VirtualAuthenticationList: '虚拟认证清单',
maintainVirtualList: '维护虚拟清单',
certificationListMaintenance: '认证清单维护',
reasonsForRejection: '驳回原因',
@@ -1533,6 +1534,10 @@ module.exports = {
onlyDataSelected:'只能选择流程状态为任务待确认结果待提交审查退回的数据',
youCannotStatusListToBeReleasedAndApproved:'不能选择流程状态为清单待发布审查通过的数据',
batchmodify:'是否批量修改',
onlyDataListReleasedAndCertificationReturnCanSelected:'只能选择流程状态为清单待发布和认证退回的数据',
type:'类型',
select:'选择',
onlyDataWithProcessStatusDeleted:'只能删除流程状态为清单待发布和审查通过的数据',
registrationnumber:'产品登记编号',
noticebatch:'公告批次',
producttrademark:'产品商标',
@@ -542,6 +542,7 @@
// this.gData[0].isLeaf = false
this.defaultExpandedKeys = [this.departId]
if (num == 1) {
console.log(this.personneQuery)
if (this.userName && this.userName.length == 0) {
if (this.personneQuery[this.query.db_field_name + 'Name']) {
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-input v-model.trim="form.enName" :placeholder="$t('PleaseEnterYourEnglishName')"/>
</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-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">
@@ -105,6 +114,24 @@
pageSize: 10
},//查询条件
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,
rules: {
name: [
@@ -112,6 +139,9 @@
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
{ validator: this.test }
],
valueType:[
{ required: true, message: this.$t('type') + this.$t('cannotEmpty'), trigger: 'change' },
],
itemText: [
{ required: true, message: this.$t('enterName'), trigger: 'blur' },
{ min: 1, max: 100, message: this.$t('cantExeed') + '100' + this.$t('characters'), trigger: 'blur' },
@@ -147,7 +177,8 @@
editPId: '',
tabletreeDataSource: [],
flag: false, //提交表单标识
parentDataPid: []
parentDataPid: [],
valueTypeVisible:true
}
},
watch: {
@@ -73,8 +73,9 @@
<template slot="action" slot-scope="text, record">
<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-delete" href="javascript:;" @click="onDelete(record)" v-has="'dict:logicDelete'">{{$t('delete')}}</a>
<a class="action-edit" v-if="record.id != '1635543933669818369'" @click="actionEdit(record)" v-has="'dict:edit'">{{$t('edit')}}</a>
<a class="action-delete" v-if="record.id != '1635543933669818369'" href="javascript:;" @click="onDelete(record)"
v-has="'dict:logicDelete'">{{$t('delete')}}</a>
</template>
<template slot="describe" slot-scope="text, record">
<span class="text" :title="text">
@@ -124,7 +125,7 @@
// tabTable,
DicList
},
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
title: this.$t('add'),
@@ -244,13 +245,13 @@
this.loading = false
this.total = res.result.total
this.tableData = [...res.result.records]
}else{
} else {
this.loading = false
}
})
// .finally(() => {
// this.loading = false
//})
// .finally(() => {
// this.loading = false
//})
},
//查询
searchQuery() {
@@ -20,12 +20,16 @@
</div>
<a-form-model-item class="itemModel" prop="serialNumber">
<a-select :placeholder="$t('PleaseSelect')+$t('regulationNo')"
optionFilterProp="label"
@change="serialNumberChange"
showSearch
v-model="formInline.bussDocumentLibraryId">
<a-select-option v-for="(item, key) in projectNameList"
:label="item.serialNumber"
:key="key"
: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}}
</span>
</a-select-option>
@@ -93,7 +97,52 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('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-col :span="12">
<div class="box-title-text">
@@ -145,65 +194,76 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.dutyTerritory'"
:rules="[{ required: true, message: $t('areaOfResponsibility') + $t('cannotEmpty'), trigger: 'change'},]"
:prop="'dataList.'+index+'.sdt'"
:rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]"
>
<j-dict-select-tag class="box-input" v-model="item.dutyTerritory"
@input="handleInput('dataList.'+index+'.dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
optionFilterProp="label"
showSearch
@change="handleInput('dataList.'+index+'.sdt')"
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>
</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('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
<span class="title-text-text" :title="$t('closingDate')">{{$t('closingDate')}}</span>
</div>
<a-form-model-item class="itemModel-multi"
:prop="'dataList.'+index+'.sdtName'"
:rules="[{ required: true, message: $t('engineeringInterfacePerson') + $t('cannotEmpty'), trigger: 'change'},]"
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.endTime'"
:rules="[{ required: true, message: $t('closingDate') + $t('cannotEmpty'), trigger: 'change'},]"
>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson'),subscript:index}"
:personneQuery="item"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="item.sdtName"/>
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange({db_field_name:'endTime'},index)"
format="YYYY-MM-DD"
:disabledDate="disabledDate"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="item.endTime"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel-multi"
:prop="'dataList.'+index+'.dutyPersonName'"
:rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]"
>
<PersonnelSelection
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}"
:personneQuery="item"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="item.dutyPersonName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text" :title="$t('personLiable')">{{$t('personLiable')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel-multi"-->
<!-- :prop="'dataList.'+index+'.dutyPersonName'"-->
<!-- :rules="[{ required: true, message: $t('personLiable') + $t('cannotEmpty'), trigger: 'change'},]"-->
<!-- >-->
<!-- <PersonnelSelection-->
<!-- :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable'),subscript:index}"-->
<!-- :personneQuery="item"-->
<!-- :isSingleChoice="true"-->
<!-- @change="PersonnelSelectionChange"-->
<!-- :disabled="disabled"-->
<!-- v-model="item.dutyPersonName"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
</div>
</div>
@@ -240,7 +300,48 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('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-col :span="12">
<div class="box-title-text">
@@ -260,7 +361,6 @@
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
</a-form-model-item>
@@ -290,17 +390,25 @@
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dutyTerritory'"
:prop="'sdt'"
>
<j-dict-select-tag class="box-input" v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
optionFilterProp="label"
showSearch
v-model="formInline.sdt">
<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>
</div>
</a-col>
@@ -308,18 +416,19 @@
<div class="box-title-text">
<div class="title-text">
<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>
<a-form-model-item class="itemModel-multi"
:prop="'sdtName'"
<a-form-model-item class="itemModel"
:prop="'endTime'"
>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('engineeringInterfacePerson')}"
:personneQuery="formInline"
:isSingleChoice="true"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="formInline.sdtName"/>
<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>
@@ -339,6 +448,7 @@
:query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}"
:personneQuery="formInline"
:isSingleChoice="true"
v-if="visible"
@change="PersonnelSelectionChange"
:disabled="disabled"
v-model="formInline.dutyPersonName"/>
@@ -377,6 +487,7 @@
import uploadFile from '@/components/uploadFile/file'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default {
name: 'addModel',
@@ -437,7 +548,7 @@
trigger: 'change'
}
],
sdtName: [
sdt: [
{
required: true,
message: this.$t('engineeringInterfacePerson') + this.$t('cannotEmpty'),
@@ -450,6 +561,21 @@
message: this.$t('personLiable') + this.$t('cannotEmpty'),
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,
@@ -462,7 +588,8 @@
add: '/project/projectCertificationInventoryEO/batchAdd',
edit: '/project/projectCertificationInventoryEO/edit',
list: '/project/projectLawsInventoryEO/list'
}
},
engineeringInterfacePersonList: []
}
},
mounted() {
@@ -471,8 +598,20 @@
},
methods: {
...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() {
getAction('/sys/category/getDeliverableTree', {}).then((res) => {
getAction('/sys/category/getCertificationDeliverableTree', {}).then((res) => {
if (res.success) {
this.DeliverableTreeList = res.result
} else {
@@ -493,15 +632,19 @@
})
},
editModel(value) {
this.formInline = {}
// this.formInline = {}
this.visible = true
this.formInline = value
if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',')
this.formInline = JSON.parse(JSON.stringify(value))
// if (this.formInline.deliverableType) {
// this.formInline.deliverableType = this.formInline.deliverableType.split(',')
// }
if (value.dutyTerritory) {
this.queryPersonByProject(value.dutyTerritory)
}
this.getRegulationNo()
this.title = this.$t('edit')
this.$nextTick(() => {
this.formInline = {...this.formInline}
this.$refs.ruleForm.clearValidate()
})
},
@@ -527,6 +670,7 @@
url = this.url.add
Action = postAction
query.dataList.forEach(val => {
delete val.engineeringInterfacePersonList
Object.keys(val).forEach(res => {
if (val[res] && val[res] instanceof Array) {
val[res] = val[res].join(',')
@@ -618,8 +762,37 @@
let content = this.projectNameList.filter(res => {
return res.id === value
})
this.formInline.bussDocumentLibraryId = content[0].id
this.formInline.serialNumber = content[0].serialNumber
if (content && content.length > 0) {
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>
</div>
<a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('configurationItem')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.configItem">
<a-select-option v-for="(item, key) in configurationItemList"
:key="item.key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<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>
@@ -41,6 +37,7 @@
<a-form-model-item class="itemModel">
<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'"/>
@@ -58,13 +55,15 @@
<a-select :placeholder="$t('PleaseSelect')+$t('engineeringInterfacePerson')"
class="box-input"
allowClear
optionFilterProp="label"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.sdt">
<a-select-option v-for="(item, key) in engineeringInterfacePersonList"
:key="item.key"
:label="item.name"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
@@ -74,15 +73,20 @@
<a-col :span="12">
<div class="box-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>
<a-form-model-item class="itemModel-multi">
<PersonnelSelection :query="{db_field_name:'dutyPerson',db_field_txt:$t('personLiable')}"
:isSingleChoice="true"
:personneQuery="formInline"
v-if="visible"
@change="PersonnelSelectionChange"
v-model="formInline.dutyPersonName"/>
<!-- tree-checkable-->
<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>
</div>
</a-col>
@@ -91,22 +95,49 @@
<a-col :span="12">
<div class="box-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>
<a-form-model-item class="itemModel">
<a-select :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.deliverableType">
<a-select-option v-for="(item, key) in typeOfDeliverablesList"
:key="item.key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.label ">
{{ item.label }}
</span>
</a-select-option>
</a-select>
<j-dict-select-tag class="box-input" v-model="formInline.certificationProgress"
@input="handleInput('certificationProgress')"
:placeholder="$t('PleaseSelect')+$t('CertificationProgress')"
:type="'select'"
:triggerChange="false" :dictCode="'certification_progress'"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="name == $t('BatchSetting') && roleSwitchingCode == 2">
<a-col :span="24">
<div class="box-title-text">
<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>
</div>
</a-col>
@@ -122,7 +153,7 @@
export default {
name: 'batSetting',
props: ['url'],
props: ['url', 'roleSwitchingCode'],
components: {
PersonnelSelection
},
@@ -136,14 +167,29 @@
configurationItemList: [],
engineeringInterfacePersonList: [],
typeOfDeliverablesList: [],
name: ''
name: '',
DeliverableTreeList: []
}
},
mounted() {
},
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) {
this.visible = true
this.getDeliverableTree()
this.$nextTick(() => {
this.ids = data || []
this.formInline = {}
@@ -163,12 +209,24 @@
},
handleOkOne() {
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 = {
ids: ids.join(','),
...this.formInline
...formInline
}
let url = ''
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) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
@@ -217,6 +275,21 @@
},
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') : ''
},
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>
import { getAction, postAction } from '@/api/manage'
export default {
name: 'modifyHistoryList',
data() {
return {
visible:false,
dataList:[],
confirmLoading:false,
loading:false,
visible: false,
dataList: [],
confirmLoading: false,
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
url:{
list:'',
projectCertificationInventoryId: '',
url: {
list: '/project/projectCertificationInventoryLogEO/page'
},
columns:[
columns: [
{
title: this.$t('Operator'),
dataIndex: 'Operator',
dataIndex: 'createBy',
align: 'left',
ellipsis: true,
width: 228
width: 108
},
{
title: this.$t('operationTime'),
dataIndex: 'operationTime',
dataIndex: 'createTime',
align: 'left',
ellipsis: true,
width: 228
width: 148
},
{
title: this.$t('OperationContent'),
dataIndex: 'OperationContent',
dataIndex: 'content',
align: 'left',
ellipsis: true,
width: 228
},
],
width: 528
}
]
}
},
mounted() {
},
methods:{
handleCancel(){
this.visible = false
methods: {
handleCancel() {
this.visible = false
},
getList() {
getList(id) {
this.pageNo = 1
this.visible = true
this.projectCertificationInventoryId = id
this.replacePage()
},
onChange(page, pageSize) {
@@ -99,13 +102,14 @@
this.pageSize = pageSize
this.replacePage()
},
replacePage(){
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
projectCertificationInventoryId: this.projectCertificationInventoryId
}
this.loading = true
postAction(this.url.list, query).then((res) => {
getAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
@@ -116,7 +120,7 @@
this.loading = false
}
})
},
}
}
}
</script>
@@ -56,7 +56,7 @@
<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('determine')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
</div>
</a-drawer>
</template>
@@ -95,17 +95,19 @@
loading: false,
pageNo: 1,
pageSize: 10,
total: 0
total: 0,
ids:'',
}
},
mounted() {
},
methods: {
transferModel() {
transferModel(ids) {
this.visible = true
this.queryParam = {}
this.selectedRowKeys = []
this.ids = ids.join(',')
this.replacePage()
},
searchQuery() {
@@ -151,49 +153,31 @@
},
handleCancel() {
this.visible = false
this.$emit('visible')
},
handleSubmit(flag) {
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = []
// postAction('project/projectLawsInventoryEO/add', {
// dummyInventoryBaseId: selectedRowKeys.join(','),
// projectLibraryId: this.$route.query.id,
// flag: flag
// }).then((res) => {
// if (res.success) {
// this.confirmLoading = false
// // this.$message.success(this.$t('OperationSuccessful'))
// // this.visible = false
// this.selectedRowKeys = []
// this.$emit('transferListForm',selectedRowKeys.join(','))
// } else {
// // if (res.message == '该虚拟清单的维护清单中没有数据,是否需要添加') {
// // this.confirmLoading = false
// // this.getAdd()
// // return
// // }
// this.$message.warning(this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
postAction('/project/projectCertificationInventoryEO/citeDeliverable', {
projectCertificationInventoryIds: this.ids,
projectLibraryId: this.$route.query.id,
citeProjectLibraryId: selectedRowKeys.join(',')
}).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.$emit('referenceDeliverablesListForm')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
getAdd() {
let _this = this
this.$confirm({
content: _this.$t('TheDoesNotContainData'),
onOk() {
_this.handleSubmit('1')
}
})
}
}
}
</script>
@@ -1,76 +1,84 @@
<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="8">
<div class="box-title-text">
<div class="title-text" :title="$t('VirtualListName')">
<span>{{$t('VirtualListName')}}</span>
<div>
<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="8">
<div class="box-title-text">
<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>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('VirtualListName')"
v-model="queryParam.name"></j-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
<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
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
:data-source="dataList"
:pagination="false"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,columnTitle:' ' }"
:loading="loading">
</a-row>
</a-form>
</div>
<a-table
:components="drag(columns,'columns')"
:columns="columns"
rowKey="id"
:scroll="{x: 800}"
: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"
/>
</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>
<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('determine')}}</a-button>
</div>
</a-drawer>
<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('determine')}}
</a-button>
</div>
</a-drawer>
<transferListvirtal :url="url" @transferListFormHomo="transferListFormHomo" ref="transferListvirtalRef"/>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import transferListvirtal from './transferListvirtal'
export default {
name: 'transferList',
components: {},
components: {
transferListvirtal
},
props: ['url'],
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
visible: false,
@@ -150,7 +158,7 @@
...this.queryParam
}
this.loading = true
postAction('/project/projectLawsInventoryEO/getPageInfoDummy', query).then((res) => {
getAction('/authDummy/authDummyInventoryBaseEO/page', query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
@@ -160,6 +168,11 @@
}
})
},
transferListFormHomo() {
this.visible = false
this.selectedRowKeys = []
this.$emit('transferListForm')
},
onSelectChange(value) {
this.selectedRowKeys = value
if (this.selectedRowKeys.length > 1) {
@@ -168,6 +181,7 @@
},
handleCancel() {
this.visible = false
this.selectedRowKeys = []
this.$emit('visible')
},
handleSubmit(flag) {
@@ -175,8 +189,9 @@
this.confirmLoading = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.confirmLoading = false
this.$emit('transferListForm',selectedRowKeys.join(','))
this.selectedRowKeys = []
// this.$emit('transferListForm',selectedRowKeys.join(','))
this.$refs.transferListvirtalRef.transferModel(selectedRowKeys.join(','))
// this.selectedRowKeys = []
// postAction('project/projectLawsInventoryEO/add', {
// dummyInventoryBaseId: selectedRowKeys.join(','),
// 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" 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 @click="handleToggleSearch" style="margin-left: 8px">-->
<!-- {{ !toggleSearchStatus ? $t('open') : $t('away') }}-->
<!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
<!-- </a>-->
</a-col>
</span>
</a-row>
@@ -280,18 +280,49 @@
</a>
</span>
<span slot="DeliverablesResult" slot-scope="text,record,index">
<a-button type="primary" class="button-text"
v-if="record.flowStatus == 'Results to be submitted'"
@click="clickButtonToUpload('deliveryResult',index)">
<span v-if="(record.flowStatus == 'Results to be submitted' &&
record.dutyPersonName == userInfoQuery.username && roleSwitchingCode == 20) ||
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) ? $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 class="viewFile"
@click="viewFileClick(record.deliveryResult)" v-if="record.deliveryResult">
@click="viewFileClick(record.deliveryResult)"
v-if="record.deliveryResult && record.valueType == 'file'">
{{$t('viewFile')}}
</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>
</span>
@@ -347,7 +378,7 @@
</div>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<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"/>
<modifyHistory ref="modifyHistoryRef"/>
<uploadFile ref="uploadFile" :isMultiple="true" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
@@ -355,41 +386,41 @@
<referenceDeliverablesList ref="referenceDeliverablesListRef" @referenceDeliverablesListForm="transferListForm"/>
<SelectedBy ref="SelectedByRef" :title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy>
<viewFileModel ref="viewFileModelRef"/>
<a-modal
:title="listTitle"
:width="500"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text-index">
<div class="title-text-index">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
</div>
<a-form-model-item class="itemModel" prop="endTime">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
@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-row>
</a-form-model>
</a-spin>
</a-modal>
<!-- <a-modal-->
<!-- :title="listTitle"-->
<!-- :width="500"-->
<!-- :visible="visible"-->
<!-- :confirm-loading="confirmLoading"-->
<!-- :maskClosable="false"-->
<!-- @ok="handleOk"-->
<!-- @cancel="handleCancel"-->
<!-- >-->
<!-- <a-spin :spinning="confirmLoading">-->
<!-- <a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text-index">-->
<!-- <div class="title-text-index">-->
<!-- <span class="Required">*</span>-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="endTime">-->
<!-- <a-date-picker class="box-input"-->
<!-- :placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"-->
<!-- @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-row>-->
<!-- </a-form-model>-->
<!-- </a-spin>-->
<!-- </a-modal>-->
<a-modal
:title="$t('roleSwitching')"
:width="500"
@@ -473,7 +504,50 @@
'NA': 'notInvolvedColor',
'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,
queryParamQuery: {},
formInline: {},
@@ -589,7 +663,7 @@
align: 'left',
dataIndex: 'deliveryResult',
width: 180,
// ellipsis: true,
ellipsis: true,
scopedSlots: { customRender: 'DeliverablesResult' }
},
{
@@ -651,13 +725,15 @@
isDisplayNum: 2,
long: '',
toDoIds: [],
toDoNotConditions: []
toDoNotConditions: [],
userInfoQuery: {}
}
},
mounted() {
// this.getList()
this.long = localStorage.getItem('language') || 'zh-cn'
this.loading = true
this.userInfoQuery = this.userInfo()
this.getProcessStatus()
this.getRoleByUserId(() => {
this.getAndUserId()
@@ -718,7 +794,7 @@
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
@@ -726,7 +802,7 @@
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
this.getList()
},
searchQuery() {
this.pageNo = 1
@@ -779,6 +855,11 @@
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = 1
this.getList()
return
}
this.dataSource = res.result.records || []
this.total = res.result.total
this.loading = false
@@ -821,42 +902,46 @@
downloadFile(this.url.exportData, this.$route.query.projectName + '.zip', query, this.Deselect)
},
handleDel() {
let _this = this
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let _this = this
let selectedRowKeys = JSON.parse(JSON.stringify(_this.selectedRowKeys))
let isTrue = true
// for (let i = 0; i < this.dataSource.length; i++) {
// for (let j = 0; j < selectedRowKeys.length; j++) {
// if (this.dataSource[i].id == selectedRowKeys[j]) {
// if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
// isTrue = true
// } else {
// isTrue = false
// this.$message.warning(this.$t('onlyDeleted'))
// return
// }
// }
// }
// }
if (isTrue) {
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 == 'Review and pass') {
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('onlyDataWithProcessStatusDeleted')
}
if (ids && ids.length > 0) {
this.$confirm({
content: _this.$t('ConfirmBatchDeletion'),
onOk() {
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
deleteAction(_this.url.deleteBatch, {
ids: idList.join(','),
ids: ids.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.selectedRowKeysList = []
_this.getList()
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else {
_this.$message.warning(res.message)
}
})
}
})
} else {
this.failedMessage(data)
}
} else {
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') : ''
},
releaseClick() {
this.listTitle = this.$t('Deadline')
if (this.selectedRowKeysList.length < 1) {
this.$message.warning(this.$t('selectLeastOne'))
// this.listTitle = this.$t('Deadline')
// if (this.selectedRowKeysList.length < 1) {
// 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 {
this.visible = true
this.$message.warning(this.$t('selectLeastOne'))
}
},
handleOk() {
this.$refs.ruleForm.validate(valid => {
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) => {
releaseData(ids, notConditions, data) {
let _this = this
this.$confirm({
content: _this.$t('confirmRelease'),
onOk() {
postAction('/project/projectCertificationInventoryEO/issue', {
ids: ids.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.selectedRowKeys = []
this.confirmLoading = false
this.getList()
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.selectedRowKeysList = []
_this.getList()
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else {
this.$message.warning(res.message)
this.confirmLoading = false
_this.$message.warning(res.message)
}
this.detailedSuccessList = []
})
}
})
},
handleCancel() {
this.formInline = {}
this.visible = false
},
// handleOk() {
// this.$refs.ruleForm.validate(valid => {
// 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() {
@@ -1085,8 +1217,8 @@
},
transferListForm() {
this.pageNo = 1
this.getList()
this.selectedRowKeys = []
this.getList()
},
batSettingForm() {
this.pageNo = 1
@@ -1103,22 +1235,26 @@
},
deleteLib(val) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
if (val.flowStatus == 'List to be released' || val.flowStatus == 'Review and pass') {
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id, projectLibraryId: _this.$route.query.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
} else {
this.$message.warning(this.$t('onlyDataWithProcessStatusDeleted'))
}
},
modifyHistoryClick() {
this.$refs.modifyHistoryRef.getList()
modifyHistoryClick(row) {
this.$refs.modifyHistoryRef.getList(row.id)
},
getRoleByUserId(callback) {
getAction('/project/projectCertificationInventoryEO/getRoleByUserId', { projectLibraryId: this.$route.query.id }).then((res) => {
@@ -1187,6 +1323,8 @@
this.$message.success(this.$t('OperationSuccessful'))
this.visibleRoleSwitching = false
this.confirmLoadingRoleSwitching = false
this.selectedRowKeysList = []
this.selectedRowKeys = []
this.getList()
this.$emit('getRoleSwitch', this.roleSwitchingCode)
} else {
@@ -1217,7 +1355,7 @@
//引用交付物
referenceDeliverablesClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.referenceDeliverablesListRef.transferModel()
this.$refs.referenceDeliverablesListRef.transferModel(JSON.parse(JSON.stringify(this.selectedRowKeys)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
@@ -1326,6 +1464,12 @@
this.dataSource = [...this.dataSource]
this.preservationClick()
},
deliveryBlur() {
this.preservationClick()
},
deliveryChange() {
this.preservationClick()
},
CertificationProgressClick(val) {
let item = JSON.parse(JSON.stringify(val))
item.roleCode = this.roleSwitchingCode
@@ -1,28 +1,28 @@
<template>
<a-drawer
:title="$t('add')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<div>
<a-drawer
:title="$t('add')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<a-form-model :model="formInline" :rules="rules" ref="ruleForm">
<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('regulationNo')">{{$t('regulationNo')}}</span>
<span class="title-text-text" :title="$t ('regulationNo')">{{$t('regulationNo')}}</span>
</div>
<a-form-model-item class="itemModel" prop="regulationNo">
<j-dict-select-tag class="box-input"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'"
:triggerChange="false"/>
<a-form-model-item class="itemModel" prop="serialNumber">
<a-input @click.native="serialNumberClick"
class="box-input"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
v-model="formInline.serialNumber"></a-input>
</a-form-model-item>
</div>
</a-col>
@@ -32,12 +32,14 @@
<span class="Required">*</span>
<span class="title-text-text" :title="$t('areaOfResponsibility')">{{$t('areaOfResponsibility')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel" prop="dutyTerritory">
<j-dict-select-tag class="box-input"
:disabled="disabled"
@input="handleInput('dutyTerritory')"
v-model="formInline.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false"/>
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
@@ -49,9 +51,9 @@
<span class="Required">*</span>
<span class="title-text-text" :title="'WVTA ID'">WVTA ID</span>
</div>
<a-form-model-item class="itemModel">
<a-form-model-item class="itemModel" prop="wvtaId">
<a-input class="box-input"
v-model='formInline.dddd'
v-model='formInline.wvtaId'
:disabled="disabled"
:placeholder="$t('PleaseEnter')+'WVTA ID'"/>
</a-form-model-item>
@@ -59,124 +61,182 @@
</a-col>
</a-row>
<div v-for="(item,index) in formInline.dataList" :key="index">
<div class="header-text">
<span>{{$t('itemInformation')}}</span>
<div class="box-title-text" style="margin-left: 10px">
<a-button @click='addClick(index)' style="margin-right: .8rem" icon="plus">
</a-button>
<a-button v-if="formInline.dataList.length > 1" @click="deleteClick(index)" type="primary" icon="minus">
</a-button>
<div class="header-text">
{{$t('itemInformation')}}
<a-icon class="icon-text" @click="addClick(index)" type="plus-circle"/>
<a-icon class="icon-text" v-if="formInline.dataList.length > 1" @click="deleteClick(index)"
type="minus-circle"/>
</div>
</div>
<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('category')">{{$t('category')}}</span>
<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('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>
<a-form-model-item class="itemModel" prop="category">
<a-input class="box-input"
v-model="item.category"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('category')"
:type="'select'"
:triggerChange="false"/>
</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('inspectionItems')">{{$t('inspectionItems')}}</span>
</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('inspectionItems')">{{$t('inspectionItems')}}</span>
</div>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.inspectionItem'"
:rules="[{ required: true, message: $t('inspectionItems') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('inspectionItems') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'}]"
>
<a-input class="box-input"
v-model="item.inspectionItem"
:placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="inspectionItems">
<j-dict-select-tag class="box-input"
v-model="item.inspectionItems"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('inspectionItems')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('Deliverables')">{{$t('Deliverables')}}</span>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('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')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="Deliverables">
<j-dict-select-tag class="box-input"
v-model="item.Deliverables"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</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="'dataList.'+index+'.deliverableType'"
:rules="[{ required: true, message: $t('typeOfDeliverables') + $t('cannotEmpty'), trigger: 'change'},]"
>
<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>
</a-form-model>
</a-spin>
<div class="drawer-bootom-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>
</div>
</a-drawer>
</a-spin>
<div class="drawer-bootom-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>
</div>
</a-drawer>
<codeNumber ref="codeNumber" @regulation="regulation" />
</div>
</template>
<script>
import codeNumber from './codeNumber'
import { getAction, postAction } from '@/api/manage'
import { mapGetters } from 'vuex'
export default {
name:"addModel",
props: ['url'],
components:{
codeNumber
},
data() {
return {
visible: false,
disabled: false,
formInline: {},
confirmLoading: false,
projectNameList: [],
DeliverableTreeList: [],
rules: {
regulationNo: [
// {
// required: true,
// message: this.$t('regulationNo') + this.$t('cannotEmpty'),
// trigger: 'change'
// }
]
serialNumber: [
{
required: true,
message: this.$t('entryName') + this.$t('regulationNo'),
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: {
...mapGetters(['userInfo']),
addModel() {
this.visible = true
this.formInline = {}
this.formInline.dataList = [{}]
this.formInline = { ...this.formInline }
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate()
this.$refs.codeNumber.number()
})
},
handleCancel() {
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
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
postAction(this.url.addModel, query).then((res) => {
if (res.success) {
@@ -199,6 +259,46 @@ export default {
deleteClick(index) {
this.formInline.dataList.splice(index, 1)
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 {
font-size: 16px;
font-weight: bold;
margin-left: 15px;
/*border-bottom: 1px #d9d9d9 dashed;*/
height: 30px;
margin-bottom: 30px;
display: flex;
font-weight: 500;
}
.drawer-bootom-button {
@@ -266,4 +361,9 @@ export default {
background: #fff;
border-radius: 0 0 2px 2px;
}
.icon-text {
font-size: 16px;
margin-right: 4px;
}
</style>
@@ -18,7 +18,6 @@
<a-form-model-item class="itemModel-multi">
<j-dict-select-tag class="box-input"
v-model="formInline.dutyTerritory"
@input="handleInput('dutyTerritory')"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -33,20 +32,19 @@
<a-col :span="12">
<div class="box-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>
<a-form-model-item class="itemModel-multi">
<j-multi-select-tag class="box-input"
v-model="formInline.deliverable"
@input="handleInput('deliverable')"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
<!-- @input="handleInput('attestationType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
<a-form-model-item class="itemModel">
<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>
</div>
</a-col>
@@ -56,7 +54,7 @@
</template>
<script>
import { postAction } from '../../../api/manage'
import { getAction, postAction } from '../../../api/manage'
export default {
name: 'batSetting',
@@ -68,10 +66,11 @@ export default {
formInline: {},
rules: {},
ids: [],
DeliverableTreeList: [],
}
},
mounted() {
this.getDeliverableTree()
},
methods: {
edit(data) {
@@ -83,8 +82,10 @@ export default {
},
handleOk() {
if (this.formInline.dutyTerritory) {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOnTwo()
} else {
this.formInline.authDummyInventoryBaseId = this.$route.query.id
this.handleOkOne()
}
},
@@ -148,10 +149,19 @@ export default {
this.formInline = {}
this.visible = false
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
// handleInput(value) {
// this.$nextTick(() => {
// this.formInline = { ...this.formInline }
// 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">
<j-dict-select-tag class="box-input"
v-model="formInline.serialNumber"
:disabled="disabled"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('regulationNo')"
:type="'select'"
:triggerChange="false"/>
@@ -39,7 +39,7 @@
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false"/>
:triggerChange="false" :dictCode="'duty_territory'"/>
</a-form-model-item>
</div>
</a-col>
@@ -68,12 +68,10 @@
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
</div>
<a-form-model-item class="itemModel" prop="category">
<j-dict-select-tag class="box-input"
v-model="formInline.category"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('category')"
:type="'select'"
:triggerChange="false"/>
<a-input class="box-input"
v-model="formInline.category"
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('category')" />
</a-form-model-item>
</div>
</a-col>
@@ -84,12 +82,10 @@
<span class="title-text-text" :title="$t('inspectionItems')">{{$t('inspectionItems')}}</span>
</div>
<a-form-model-item class="itemModel" prop="inspectionItem">
<j-dict-select-tag class="box-input"
v-model="formInline.inspectionItem"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('inspectionItems')"
:type="'select'"
:triggerChange="false"/>
<a-input class="box-input"
v-model="formInline.inspectionItem"
:disabled="disabled"
:placeholder="$t('PleaseEnter')+$t('inspectionItems')"/>
</a-form-model-item>
</div>
</a-col>
@@ -99,15 +95,35 @@
<div class="box-title-text">
<div class="title-text">
<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>
<a-form-model-item class="itemModel" prop="deliverable">
<j-dict-select-tag class="box-input"
v-model="formInline.deliverable"
:disabled="disabled"
:placeholder="$t('PleaseSelect')+$t('Deliverables')"
:type="'select'"
:triggerChange="false"/>
<a-form-model-item class="itemModel" prop="configItem">
<a-input class="box-input"
v-model="formInline.configItem"
:placeholder="$t('PleaseEnter')+$t('configurationItem')"/>
</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('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>
</div>
</a-col>
@@ -133,6 +149,7 @@ export default {
confirmLoading: false,
formInline: {},
disabled: false,
DeliverableTreeList: [],
rules: {
serialNumber: [
{
@@ -169,6 +186,18 @@ export default {
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: [
{
required: true,
@@ -179,6 +208,9 @@ export default {
}
}
},
mounted() {
this.getDeliverableTree()
},
methods: {
handleCancel() {
this.visible = false
@@ -187,6 +219,9 @@ export default {
this.visible = true
this.$nextTick(() => {
this.formInline = item || {}
if (this.formInline.deliverableType) {
this.formInline.deliverableType = this.formInline.deliverableType.split(',')
}
this.$refs.ruleForm.clearValidate()
})
},
@@ -194,6 +229,11 @@ export default {
this.$refs.ruleForm.validate(valid => {
if (valid) {
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
postAction(this.url.editModel, formInline).then((res) => {
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>
@@ -260,12 +260,13 @@ export default {
list: '/authDummy/authDummyInventoryInfoEO/page',
logList: '',//更新log
exportTemplate: '/authDummy/authDummyInventoryInfoEO/exportTemplate',//模板下载
exportData: '',//导出
addModel: '/authDummy/authDummyInventoryInfoEO/add',//添加
exportData: '/authDummy/authDummyInventoryInfoEO/exportData',//导出
addModel: '/authDummy/authDummyInventoryInfoEO/batchAdd',//添加
copyInfo: '/authDummy/authDummyInventoryInfoEO/copyInfoByIds',//复制
deleteBatch: '/authDummy/authDummyInventoryInfoEO/deleteBatch',//批量删除
editModel: '/authDummy/authDummyInventoryInfoEO/edit',//编辑
setBatch: '/authDummy/authDummyInventoryInfoEO/setBatch',//批量设置
number: '/project/projectLawsInventoryEO/list',
},
queryParam: {},
orderByField: '',
@@ -285,6 +286,13 @@ export default {
ellipsis: true,
scopedSlots: { customRender: 'inspectionItems' }
},
{
title: this.$t('configurationItem'),
align: 'left',
dataIndex: 'configItem',
width: 150,
ellipsis: true,
},
{
title: 'WVTA ID',
align: 'left',
@@ -302,14 +310,14 @@ export default {
{
title: this.$t('areaOfResponsibility'),
align: 'left',
dataIndex: 'dutyTerritory',
dataIndex: 'dutyTerritoryName',
width: 200,
ellipsis: true,
},
{
title: this.$t('Deliverables'),
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: 'deliverable',
dataIndex: 'deliverableTypeName',
width: 200,
ellipsis: true,
},
@@ -392,6 +400,7 @@ export default {
created() {
if (this.$route.query.title == '虚拟认证清单详情') {
document.title = this.$t('virtualAuthenticationListDetails')
this.columns.splice(7,1)
} else {
document.title = this.$t('certificationListMaintenance')
}
@@ -438,7 +447,7 @@ export default {
},
//模板下载
handleModule() {
downloadFile(this.url.exportTemplate, this.$t('VirtualList') + this.$t('importTemplate') + '.xls', {})
downloadFile(this.url.exportTemplate, this.$t('VirtualAuthenticationList') + this.$t('importTemplate') + '.xls', {})
},
//调取
// transferClick() {
@@ -457,7 +466,7 @@ export default {
ids: selectedRowKeys.join(','),
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() {
this.selectedRowKeys = []
@@ -708,4 +717,7 @@ export default {
color: #000F16;
}
::v-deep .ant-table-placeholder {
margin-top: 8px!important;
}
</style>