合并分支 'dev_third_stage' 到 'master'
Dev third stage 查看合并请求 laws-nio/laws-weilai!135
@@ -855,18 +855,17 @@ CREATE TABLE `laws_weilai`.`country_national_flag` (
|
||||
`national_flag_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国旗url',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '国家与国旗中间表' ROW_FORMAT = Dynamic;
|
||||
-- 初始化数据 2022-08-09
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('11', NULL, NULL, NULL, NULL, NULL, '澳大利亚', 'Australia', NULL, '澳大利亚.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('12', NULL, NULL, NULL, NULL, NULL, '新西兰', 'New Zealand', NULL, '新西兰.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('13', NULL, NULL, NULL, NULL, NULL, '英国', 'UK', NULL, '英国.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('2', NULL, NULL, NULL, NULL, NULL, '中国', 'China', NULL, '中国.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('3', NULL, NULL, NULL, NULL, NULL, '中国香港', 'Hong Kong China', NULL, '中国香港.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('4', NULL, NULL, NULL, NULL, NULL, '韩国', 'South Korea', NULL, '韩国.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('5', NULL, NULL, NULL, NULL, NULL, '日本', 'Japan', NULL, '日本.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('6', NULL, NULL, NULL, NULL, NULL, '新加坡', 'Singapore', NULL, '新加坡.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('7', NULL, NULL, NULL, NULL, NULL, '马来西亚', 'Malaysia', NULL, '马来西亚.jpg');
|
||||
-- 初始化数据 2022-08-10
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('1', NULL, NULL, NULL, NULL, NULL, '欧盟', 'EU', NULL, '/jero-boot/nationalFlag/EU.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('10', NULL, NULL, NULL, NULL, NULL, '美国', 'US', NULL, '/jero-boot/nationalFlag/US.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('11', NULL, NULL, NULL, NULL, NULL, '澳大利亚', 'Australia', NULL, '/jero-boot/nationalFlag/Australia.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('12', NULL, NULL, NULL, NULL, NULL, '新西兰', 'New Zealand', NULL, '/jero-boot/nationalFlag/NewZealand.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('13', NULL, NULL, NULL, NULL, NULL, '英国', 'UK', NULL, '/jero-boot/nationalFlag/UK.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('2', NULL, NULL, NULL, NULL, NULL, '中国', 'China', NULL, '/jero-boot/nationalFlag/China.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('3', NULL, NULL, NULL, NULL, NULL, '中国香港', 'Hong Kong China', NULL, '/jero-boot/nationalFlag/China.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('4', NULL, NULL, NULL, NULL, NULL, '韩国', 'South Korea', NULL, '/jero-boot/nationalFlag/SouthKorea.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('5', NULL, NULL, NULL, NULL, NULL, '日本', 'Japan', NULL, '/jero-boot/nationalFlag/Japan.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('6', NULL, NULL, NULL, NULL, NULL, '新加坡', 'Singapore', NULL, '/jero-boot/nationalFlag/Singapore.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('7', NULL, NULL, NULL, NULL, NULL, '马来西亚', 'Malaysia', NULL, '/jero-boot/nationalFlag/Malaysia.png');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('8', NULL, NULL, NULL, NULL, NULL, '海湾地区', 'GCC', NULL, '海湾地区.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('9', NULL, NULL, NULL, NULL, NULL, '阿联酋', 'UAE', NULL, '阿联酋.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('1', NULL, NULL, NULL, NULL, NULL, '欧盟', 'EU', NULL, '欧盟.jpg');
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('10', NULL, NULL, NULL, NULL, NULL, '美国', 'US', NULL, '美国.jpg');
|
||||
|
||||
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('9', NULL, NULL, NULL, NULL, NULL, '阿联酋', 'UAE', NULL, '/jero-boot/nationalFlag/UAE.png');
|
||||
|
||||
@@ -85,11 +85,11 @@ public class JeroBootExceptionHandler {
|
||||
/**
|
||||
* spring默认上传大小100MB 超出大小捕获异常MaxUploadSizeExceededException
|
||||
*/
|
||||
@ExceptionHandler(MaxUploadSizeExceededException.class)
|
||||
public Result<?> handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.error("文件大小超出10MB限制, 请压缩或降低文件质量! ");
|
||||
}
|
||||
// @ExceptionHandler(MaxUploadSizeExceededException.class)
|
||||
// public Result<?> handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) {
|
||||
// log.error(e.getMessage(), e);
|
||||
// return Result.error("文件大小超出100MB限制, 请压缩或降低文件质量! ");
|
||||
// }
|
||||
|
||||
@ExceptionHandler(DataIntegrityViolationException.class)
|
||||
public Result<?> handleDataIntegrityViolationException(DataIntegrityViolationException e) {
|
||||
|
||||
@@ -72,15 +72,15 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
|
||||
public OSSFile uploadLocal(MultipartFile mf, String bizPath, String state, String cut) {
|
||||
|
||||
//处理文件大小,大于100M抛出异常
|
||||
long fileSize = mf.getSize() / 1024 / 1024;
|
||||
String originalFilename = mf.getOriginalFilename();
|
||||
if (fileSize >= 100) {
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
} else {
|
||||
throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
}
|
||||
}
|
||||
// long fileSize = mf.getSize() / 1024 / 1024;
|
||||
// String originalFilename = mf.getOriginalFilename();
|
||||
// if (fileSize >= 100) {
|
||||
// if (cut.equals(CutEnum.CN.getValue())) {
|
||||
// throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
// } else {
|
||||
// throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
// }
|
||||
// }
|
||||
|
||||
OSSFile oSSFile = new OSSFile();
|
||||
try {
|
||||
@@ -191,15 +191,15 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
|
||||
public OSSFile uploadLocalOfCos(MultipartFile mf, String bizPath, String state, String cut) {
|
||||
|
||||
//处理文件大小,大于100M抛出异常
|
||||
long fileSize = mf.getSize() / 1024 / 1024;
|
||||
String originalFilename = mf.getOriginalFilename();
|
||||
if (fileSize >= 100) {
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
} else {
|
||||
throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
}
|
||||
}
|
||||
// long fileSize = mf.getSize() / 1024 / 1024;
|
||||
// String originalFilename = mf.getOriginalFilename();
|
||||
// if (fileSize >= 100) {
|
||||
// if (cut.equals(CutEnum.CN.getValue())) {
|
||||
// throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
// } else {
|
||||
// throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
// }
|
||||
// }
|
||||
|
||||
OSSFile oSSFile = new OSSFile();
|
||||
String ctxPath = uploadCospath;
|
||||
@@ -296,15 +296,15 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> impl
|
||||
public OSSFile uploadLocalForSplit(MultipartFile mf, String bizPath, String state, String cut) {
|
||||
|
||||
//处理文件大小,大于100M抛出异常
|
||||
long fileSize = mf.getSize() / 1024 / 1024;
|
||||
String originalFilename = mf.getOriginalFilename();
|
||||
if (fileSize >= 100) {
|
||||
if (cut.equals(CutEnum.CN.getValue())) {
|
||||
throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
} else {
|
||||
throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
}
|
||||
}
|
||||
// long fileSize = mf.getSize() / 1024 / 1024;
|
||||
// String originalFilename = mf.getOriginalFilename();
|
||||
// if (fileSize >= 100) {
|
||||
// if (cut.equals(CutEnum.CN.getValue())) {
|
||||
// throw new JeroBootException(originalFilename + "文件大小超出100MB, 请压缩或降低文件质量!");
|
||||
// } else {
|
||||
// throw new JeroBootException(originalFilename + "File size out 100MB, Please compress or reduce file quality!");
|
||||
// }
|
||||
// }
|
||||
|
||||
OSSFile oSSFile = new OSSFile();
|
||||
String ctxPath = uploadCospath;
|
||||
|
||||
@@ -293,7 +293,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
//文档动态信息添加
|
||||
if(StringUtils.isNotBlank(sbTemp)){
|
||||
HomeDocumentDynamicEO homeDocumentDynamicEO = new HomeDocumentDynamicEO();
|
||||
String msgContent = "The " + StringUtils.join(serialNumberListTemp,",") + " has been deleted from the document library.";
|
||||
String msgEndStr = " has been deleted from the document library.";
|
||||
if (serialNumberListTemp.size() > 1) {
|
||||
msgEndStr = " have been deleted from the document library.";
|
||||
}
|
||||
String msgContent = "The standard " + StringUtils.join(serialNumberListTemp,",") + msgEndStr;
|
||||
homeDocumentDynamicEO.setMsgContent(msgContent);
|
||||
homeDocumentDynamicEO.setMsgContentInfo(msgContent);
|
||||
homeDocumentDynamicEOService.save(homeDocumentDynamicEO);
|
||||
@@ -2143,8 +2147,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
//文档动态, 文档库中新增了标准XXXX homeDocumentDynamicEOService
|
||||
//The standard GB 7258-2017 Technical specifications has been added to the document library.
|
||||
HomeDocumentDynamicEO homeDocumentDynamicEO = new HomeDocumentDynamicEO();
|
||||
homeDocumentDynamicEO.setMsgContent("The " + category + " " + serialNumber + " " + titleEn + " has been added to the document library.");
|
||||
homeDocumentDynamicEO.setMsgContentInfo("The " + href + " has been added to the document library.");
|
||||
homeDocumentDynamicEO.setMsgContent("The standard " + category + " " + serialNumber + " " + titleEn + " has been added to the document library.");
|
||||
homeDocumentDynamicEO.setMsgContentInfo("The standard " + href + " has been added to the document library.");
|
||||
homeDocumentDynamicEOService.save(homeDocumentDynamicEO);
|
||||
|
||||
|
||||
@@ -2596,11 +2600,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
StringBuilder msgContentSb = new StringBuilder();
|
||||
StringBuilder msgContentInfoSb = new StringBuilder();
|
||||
//适用车型
|
||||
StringBuilder msgContentSbCarType = new StringBuilder("Vehicle Type of the " + category + " " + serialNumber + " " + titleEn);
|
||||
StringBuilder msgContentInfoSbCarType = new StringBuilder("Vehicle Type of the " + category + " " + href);
|
||||
StringBuilder msgContentSbCarType = new StringBuilder("Vehicle Type of the standard " + category + " " + serialNumber + " " + titleEn);
|
||||
StringBuilder msgContentInfoSbCarType = new StringBuilder("Vehicle Type of the standard " + category + " " + href);
|
||||
//状态
|
||||
StringBuilder msgContentSbStatus = new StringBuilder("The Status of the " + category + " " + serialNumber + " " + titleEn);
|
||||
StringBuilder msgContentInfoSbStatus = new StringBuilder("The Status of the " + category + " " + href);
|
||||
StringBuilder msgContentSbStatus = new StringBuilder("The Status of the standard " + category + " " + serialNumber + " " + titleEn);
|
||||
StringBuilder msgContentInfoSbStatus = new StringBuilder("The Status of the standard " + category + " " + href);
|
||||
|
||||
|
||||
List<String> fileIdLIstTemp = new ArrayList<>();
|
||||
@@ -2634,8 +2638,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
}
|
||||
//
|
||||
if(StringUtils.isBlank(value)){
|
||||
msgContentSbStatus.append(" has been modified to be null ,");
|
||||
msgContentInfoSbStatus.append(" has been modified to be null ,");
|
||||
msgContentSbStatus.append(" has been modified to be null,");
|
||||
msgContentInfoSbStatus.append(" has been modified to be null,");
|
||||
msgContentSb.append(msgContentSbStatus);
|
||||
msgContentInfoSb.append(msgContentInfoSbStatus);
|
||||
}else{
|
||||
@@ -2670,8 +2674,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
value = substring;
|
||||
}
|
||||
if(StringUtils.isBlank(value)){
|
||||
msgContentSbCarType.append(" has been modified to be null ,");
|
||||
msgContentInfoSbCarType.append(" has been modified to be null ,");
|
||||
msgContentSbCarType.append(" has been modified to be null,");
|
||||
msgContentInfoSbCarType.append(" has been modified to be null,");
|
||||
msgContentSb.append(msgContentSbCarType);
|
||||
msgContentInfoSb.append(msgContentInfoSbCarType);
|
||||
}else{
|
||||
@@ -2691,8 +2695,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
msgContentInfoSb.append(contentInfoFile);
|
||||
}
|
||||
if(count > 0){
|
||||
String msgContent = msgContentSb.substring(0, msgContentSb.length() - 1);
|
||||
String msgContentInfo = msgContentInfoSb.substring(0, msgContentInfoSb.length() - 1);
|
||||
String msgContent = msgContentSb.substring(0, msgContentSb.length() - 1) + ".";
|
||||
String msgContentInfo = msgContentInfoSb.substring(0, msgContentInfoSb.length() - 1) + ".";
|
||||
HomeDocumentDynamicEO homeDocumentDynamicEO = new HomeDocumentDynamicEO();
|
||||
homeDocumentDynamicEO.setMsgContent(msgContent);
|
||||
homeDocumentDynamicEO.setMsgContentInfo(msgContentInfo);
|
||||
|
||||
@@ -74,11 +74,13 @@ public class ExtRepoDataController extends JeroController<ExtRepoData, IExtRepoD
|
||||
// 文件名称模糊查询
|
||||
String fileName = req.getParameter("fileName");
|
||||
if (StringUtils.isNotBlank(fileName)) {
|
||||
fileName = fileName.replace("%","\\%");
|
||||
queryWrapper.like(ExtRepoData::getFileName, fileName);
|
||||
}
|
||||
// 上传人模糊查询
|
||||
String createBy = req.getParameter("createBy");
|
||||
if (StringUtils.isNotBlank(createBy)) {
|
||||
createBy = createBy.replace("%","\\%");
|
||||
queryWrapper.like(ExtRepoData::getCreateBy, createBy);
|
||||
}
|
||||
// 更新时间查询
|
||||
@@ -185,7 +187,7 @@ public class ExtRepoDataController extends JeroController<ExtRepoData, IExtRepoD
|
||||
ExtRepoData erd = extRepoDataService.queryById(id);
|
||||
if (null != erd) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if (extRepoFolderService.isManager() || sysUser.getUsername().equals(erd.getCreateBy())) {
|
||||
if (sysUser.getUsername().equals(erd.getCreateBy())) {
|
||||
extRepoDataService.deleteById(id);
|
||||
CosBootUtil.delete(erd.getFileKey());
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
|
||||
@@ -359,7 +359,7 @@ public class ExtRepoFolderServiceImpl extends ServiceImpl<ExtRepoFolderMapper, E
|
||||
res = res || getStringList(erf.getAuthManageIds()).contains(sysUser.getId())
|
||||
|| getStringList(erf.getAuthViewIds()).contains(sysUser.getId());
|
||||
}
|
||||
return false;
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -84,6 +84,10 @@ public class CountryCardManageReleaseDetailEO implements Serializable {
|
||||
@ApiModelProperty(value = "内容")
|
||||
private java.lang.String content;
|
||||
|
||||
/**如果是下拉选的话,把翻译后的值放到此字段中。*/
|
||||
@TableField(exist = false)
|
||||
private java.lang.String contentDropDownValue;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
|
||||
|
||||
@@ -72,12 +72,19 @@ public class ProblemKnowledgeBaseEO implements Serializable {
|
||||
/**问题分类展示名称*/
|
||||
@TableField(exist = false)
|
||||
private java.lang.String problemTypeName;
|
||||
/**问题分类查询条件字段 多个*/
|
||||
@TableField(exist = false)
|
||||
private java.lang.String problemTypes;
|
||||
|
||||
/**市场*/
|
||||
@Dict(dicCode = "region")
|
||||
|
||||
/**市场*/
|
||||
//@Dict(dicCode = "region")
|
||||
@Excel(name = "市场", width = 15)
|
||||
@ApiModelProperty(value = "市场")
|
||||
private java.lang.String targetMarket;
|
||||
/**市场展示字段**/
|
||||
@TableField(exist = false)
|
||||
private java.lang.String targetMarket_dicText;
|
||||
|
||||
/**文档库id*/
|
||||
@Excel(name = "文档库id", width = 15)
|
||||
|
||||
@@ -148,6 +148,19 @@ public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl<Cou
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
data.setCountryCardTempItemEOList(collect);
|
||||
|
||||
if(StringUtils.isNotEmpty(data.getContent())){
|
||||
String contentDropDownValue = countryCardTempItemEOList.stream().filter(countryCardTempItemEO -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(data.getContent(), countryCardTempItemEO.getId())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).map(CountryCardTempItemEO::getItemText).collect(Collectors.joining(","));
|
||||
|
||||
//设置下拉框的value
|
||||
data.setContentDropDownValue(contentDropDownValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -235,7 +235,8 @@ public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCa
|
||||
for (DictModel dictModel : dictModelList) {
|
||||
boolean flag = false;
|
||||
for (CountryCardManageReleaseEO countryCardManageReleaseEO : countryCardManageReleaseEOList) {
|
||||
if(StringUtils.equals(dictModel.getValue(),countryCardManageReleaseEO.getApplyMarket())){
|
||||
if(StringUtils.equals(dictModel.getValue(),countryCardManageReleaseEO.getApplyMarket())
|
||||
&&StringUtils.equals(countryCardManageReleaseEO.getReleaseStatus(),ReleaseStatusEnum.HAVE_RELEASED.getValue())){
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -70,6 +70,7 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
|
||||
CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO = new CountryCardManageReleaseDetailEO();
|
||||
countryCardManageReleaseDetailEO.setCountryCardTempId(countryCardTempEO.getId());
|
||||
countryCardManageReleaseDetailEO.setCountryCardManageReleaseId(manageReleaseEO.getId());
|
||||
releaseDetailEOList.add(countryCardManageReleaseDetailEO);
|
||||
});
|
||||
this.countryCardManageReleaseDetailEOService.saveBatch(releaseDetailEOList);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.jero.modules.problemKnowledgeBase.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.common.system.vo.DictModel;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.*;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.CollectStatusEnum;
|
||||
@@ -9,6 +11,8 @@ import com.jero.modules.problemKnowledgeBase.enums.PraiseStatusEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
|
||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseEOMapper;
|
||||
import com.jero.modules.problemKnowledgeBase.service.*;
|
||||
import com.jero.modules.system.enums.DicCodeEnum;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import com.jero.modules.system.util.StringUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
@@ -44,6 +48,8 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
private IProblemKnowledgeBaseBrowsingHistoryEOService problemKnowledgeBaseBrowsingHistoryEOService;
|
||||
@Autowired
|
||||
private IProblemKnowledgeBaseClassifyEOService problemKnowledgeBaseClassifyEOService;
|
||||
@Autowired
|
||||
private ISysDictService sysDictService;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -209,6 +215,7 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
problemKnowledgeBaseClassifyEOList = this.problemKnowledgeBaseClassifyEOService.list(classifyEOQueryWrapper);
|
||||
}
|
||||
|
||||
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||
|
||||
List<ProblemKnowledgeBaseClassifyEO> finalProblemKnowledgeBaseClassifyEOList = problemKnowledgeBaseClassifyEOList;
|
||||
datas.forEach(data -> {
|
||||
@@ -298,6 +305,30 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
|
||||
data.setProblemTypeName(problemTypeName);
|
||||
}
|
||||
|
||||
String targetMarket = data.getTargetMarket();
|
||||
if(StringUtils.isNotEmpty(targetMarket) && CollectionUtils.isNotEmpty(regionList)){
|
||||
String targetMarket_dicText = "";
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
targetMarket_dicText = regionList.stream().filter(region -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(targetMarket, region.getValue())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).map(DictModel::getText).collect(Collectors.joining(","));
|
||||
}else if(StringUtils.equals(cut, CutEnum.EN.getValue())){
|
||||
targetMarket_dicText = regionList.stream().filter(region -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(targetMarket, region.getValue())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).map(DictModel::getTextEn).collect(Collectors.joining(","));
|
||||
}
|
||||
|
||||
data.setTargetMarket_dicText(targetMarket_dicText);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -335,5 +366,21 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
|
||||
query.or().like(ProblemKnowledgeBaseEO::getContent,searchStr);
|
||||
});
|
||||
}
|
||||
|
||||
//根据分类查询 ,包含就查出来。
|
||||
String problemTypes = problemKnowledgeBaseEO.getProblemTypes();
|
||||
if(StringUtils.isNotEmpty(problemTypes)){
|
||||
List<String> problemTypeList = Arrays.asList(problemTypes.split(","));
|
||||
queryWrapper.and(query -> {
|
||||
query.lambda().like(ProblemKnowledgeBaseEO::getProblemType,problemTypes);
|
||||
if(CollectionUtils.isNotEmpty(problemTypeList)){
|
||||
problemTypeList.forEach(type -> {
|
||||
query.or(q -> {
|
||||
q.lambda().like(ProblemKnowledgeBaseEO::getProblemType,type);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ public enum JumpLinkEnum {
|
||||
DESIGN_AFFIRM_LINK("设计符合性确认链接","4","/ProjectDetails?id=","&type=103"),
|
||||
TASK_AFFIRM_LINK("任务确认链接","2","/ProcessCenter",""),
|
||||
COMPLIANCE_PROCESS_DETAIL_LINK("符合性流程明细页路由","2","/taskListProcess",""),
|
||||
|
||||
PROBLEM_KNOWLEDGE_BASE_DETAIL("问题知识库,详情页","","/problemKnowledgeBaseView",""),
|
||||
PROBLEM_KNOWLEDGE_BASE("问题知识库,列表页","","/problemknowledgeBase",""),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -138,17 +138,17 @@ public class InventoryAffirmJob implements Job {
|
||||
|
||||
/*String msgContentCN = "您" + projectLibraryBase.getProjectName() + "(项目名称)法规清单的任务确认剩余处理时间还有3天,请及时查看处理";*/
|
||||
// XXX .
|
||||
String msgContentEN = "The remaining processing time for the regulation list confirmation for "
|
||||
String msgContentEN = "The remaining processing time for the regulation task confirmation for "
|
||||
+ projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and handle it in time.";
|
||||
+ " are 3 days. Please check and address it in a timely manner.";
|
||||
String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation list confirmation task to complete";
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner.");
|
||||
feishuMsgVo.setTaskType("Regulation List Confirmation");
|
||||
feishuMsgVo.setTaskType("Regulation Task Confirmation");
|
||||
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
|
||||
//飞书跳转链接
|
||||
@@ -172,22 +172,22 @@ public class InventoryAffirmJob implements Job {
|
||||
sendMessageMap.put("contentInfo",contentInfo);
|
||||
|
||||
//发送消息
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, threeDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.LIST_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, threeDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.TASK_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
|
||||
currentDaysUserIdList = currentDaysUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
/*String msgContentCN = "您" + projectLibraryBase.getProjectName() + "(项目名称)法规清单的任务今天即将结束,请及时查看处理*/
|
||||
String msgContentEN = "The regulation list confirmation for "
|
||||
String msgContentEN = "The regulation task confirmation for "
|
||||
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ " will expire today. Please check and address it in a timely manner.";
|
||||
String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation list confirmation task to complete";
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner.");
|
||||
feishuMsgVo.setTaskType("Regulation List Confirmation");
|
||||
feishuMsgVo.setTaskType("Regulation Task Confirmation");
|
||||
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
|
||||
//飞书跳转链接
|
||||
@@ -210,7 +210,7 @@ public class InventoryAffirmJob implements Job {
|
||||
sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||
sendMessageMap.put("contentInfo",contentInfo);
|
||||
//发送消息
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, currentDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.LIST_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN, currentDaysUserIdList, projectLibraryBase.getId(), sendMessageMap, feishuMsgVo, MessageTypeEnum.TASK_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1350,7 +1350,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
//消息内容
|
||||
String msgContentEN = currentUser.getUsername() + " initiated the regulation list confirmation for "
|
||||
+ projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ". The due date is:" +inventoryAffirmDueDate+ " .Please check and address it in a timely manner.";
|
||||
+ ". The due date is " + inventoryAffirmDueDate+ ". Please check and address it in a timely manner.";
|
||||
String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation list confirmation task to complete";
|
||||
|
||||
@@ -2117,11 +2117,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String taskType = "";
|
||||
String initiator = "";
|
||||
String initiatorLark = "";
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_START_MSG.getValue())) {
|
||||
userIdList.add(engineeringInterfacePerson);
|
||||
msgContentEN = sysUser.getUsername() + " initiated the regulation task confirmation of " + projectNameInfoEO.getProjectName()
|
||||
+ ".The due date is:" +taskAffirmDueDate+ " Please check and address it in a timely manner.";
|
||||
+ ". The due date is " + taskAffirmDueDate + ". Please check and address it in a timely manner.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
@@ -2136,7 +2137,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String dreUserId = jsonObject.getString("dreUserId"); //dre用户id
|
||||
userIdList.add(dreUserId);
|
||||
msgContentEN = sysUser.getUsername() + " has assigned the regulation task confirmation of " + serialNumber + " in "+ projectNameInfoEO.getProjectName()
|
||||
+ ".to you. the due date is " +taskAffirmDueDate+ " Please check and handle it in time.";
|
||||
+ " to you. The due date is " +taskAffirmDueDate+ ". Please check and handle it in time.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
@@ -2150,7 +2151,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_REJECTED.getValue())) {
|
||||
userIdList.add(engineeringInterfacePerson);
|
||||
msgContentEN = sysUser.getUsername() + " has rejected the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
|
||||
+ ".The due date is " +taskAffirmDueDate+ " Please check and handle it in time.";
|
||||
+ ". The due date is " +taskAffirmDueDate+ ". Please check and handle it in time.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
@@ -2164,7 +2165,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
} else if (StringUtils.equals(msgType, MsgTypeEnum.TASK_AFFIRM_DRE_ACCEPTED.getValue())) {
|
||||
userIdList.add(engineeringInterfacePerson);
|
||||
msgContentEN = sysUser.getUsername() + " has submitted the regulation task confirmation of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
|
||||
+ ".The due date is " +taskAffirmDueDate+ " Please check and handle it in time.";
|
||||
+ ". The due date is " +taskAffirmDueDate+ ". Please check and handle it in time.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a regulation task confirmation to complete";
|
||||
|
||||
@@ -2207,7 +2208,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String designDutyId = jsonObject.getString("designDutyId"); //设计符合性责任人id
|
||||
userIdList.add(designDutyId);
|
||||
msgContentEN = "You recieved the design compliance task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
|
||||
+ ". The due date is XXXX. Please check and address it in a timely manner.";
|
||||
+ ". The due date is " + sdf.format(projectLawsInventoryEO.getDesignDueDate()) + ". Please check and address it in a timely manner.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a design compliance task to complete";
|
||||
|
||||
@@ -2225,7 +2226,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String prehomoDutyId = jsonObject.getString("prehomoDutyId"); //pre-Home责任人id
|
||||
userIdList.add(prehomoDutyId);
|
||||
msgContentEN = "You recieved the Pre-Homo task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
|
||||
+ ". The due date is XXXX. Please check and address it in a timely manner.";
|
||||
+ ". The due date is " + sdf.format(projectLawsInventoryEO.getPrehomoDueDate()) + ". Please check and address it in a timely manner.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a Pre-Homo task to complete";
|
||||
|
||||
@@ -2244,7 +2245,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
String verifyDutyId = jsonObject.getString("verifyDutyId"); //验证符合性责任人id
|
||||
userIdList.add(verifyDutyId);
|
||||
msgContentEN = "You recieved the validation compliance task of " + serialNumber +" in "+ projectNameInfoEO.getProjectName()
|
||||
+ ". The due date is XXXX. Please check and address it in a timely manner.";
|
||||
+ ". The due date is " + sdf.format(projectLawsInventoryEO.getVerifyDueDate()) + ". Please check and address it in a timely manner.";
|
||||
msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a validation compliance task to complete";
|
||||
|
||||
|
||||
@@ -251,6 +251,10 @@ public class WordUtil {
|
||||
paragraph.setAlignment(ParagraphAlignment.CENTER);
|
||||
XWPFRun run = paragraph.createRun();
|
||||
run.setText("NIO Internal");
|
||||
run.setFontSize(18);
|
||||
run.setFontFamily("Blue Sky Standard Regular");
|
||||
// run.setFontFamily("Blue Sky Noto Regular");
|
||||
run.setBold(true);
|
||||
|
||||
|
||||
CTSectPr sectPr = document.getDocument().getBody().getSectPr();
|
||||
|
||||
@@ -214,4 +214,11 @@ public class workFlowController {
|
||||
public Result startTaskToConfirmProcess(@RequestBody JSONObject jsonObject){
|
||||
return workFlowFeignClient.startTaskToConfirmProcess(jsonObject);
|
||||
}
|
||||
|
||||
@AutoLog(value = "根据taskId删除流程")
|
||||
@ApiOperation(value="根据taskId删除流程", notes="根据taskId删除流程")
|
||||
@GetMapping("/deleteProcessInstanceByTaskId")
|
||||
public Result<String> deleteProcessInstanceByTaskId(@RequestParam("taskId")String taskId){
|
||||
return workFlowFeignClient.deleteProcessInstance(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,4 +156,12 @@ public interface WorkFlowFeignClient {
|
||||
|
||||
@RequestMapping(value = "/bat-wkflow/task/completeLawsTechnologyEvaluationTaskByPids",method = RequestMethod.GET)
|
||||
Result<String> completeLawsTechnologyEvaluationTaskByPids(@RequestParam("actiProcInstIds") String actiProcInstIds);
|
||||
|
||||
/**
|
||||
* 根据待办id删除流程
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "/bat-wkflow/deleteProcessInstanceByTaskId",method = RequestMethod.GET)
|
||||
Result<String> deleteProcessInstanceByTaskId(@RequestParam("taskId") String taskId);
|
||||
}
|
||||
|
||||
@@ -177,4 +177,13 @@ public class WorkFlowFeignClientImpl{
|
||||
Result<String> stringWrapper = workFlowFeignClient.startTaskToConfirmProcess(jsonObject.toString());
|
||||
return Result.OK(stringWrapper.getResult());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据待办id删除流程
|
||||
* @param taskId
|
||||
* @return
|
||||
*/
|
||||
public Result<String> deleteProcessInstanceByTaskId(@RequestParam("taskId")String taskId){
|
||||
return workFlowFeignClient.deleteProcessInstance(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ spring:
|
||||
mvc:
|
||||
static-path-pattern: /**
|
||||
resource:
|
||||
static-locations: classpath:/static/,classpath:/public/,classpath:/home/
|
||||
static-locations: classpath:/static/,classpath:/public/,classpath:/home,/classpath:/nationalFlag/
|
||||
autoconfigure:
|
||||
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
|
||||
datasource:
|
||||
|
||||
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 305 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 198 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 127 KiB |
@@ -1252,7 +1252,8 @@ module.exports = {
|
||||
optionDropDownBox:'Option drop - down box',
|
||||
attachmentUpload:'file',
|
||||
textInput:'Text Input',
|
||||
deleteNode:'If any file information exists, it will be deleted',
|
||||
deleteNode:'If there is any file information, the file will be deleted. Are you sure to delete this data?',
|
||||
HaveReleased:'Have released',
|
||||
forward:'Forward',
|
||||
issuedBy:'Issued by',
|
||||
}
|
||||
@@ -1355,7 +1355,8 @@ module.exports = {
|
||||
Paraname: '参数名称',
|
||||
Parabatch: '参数批次',
|
||||
freeze:'请选择冻结配置',
|
||||
deleteNode:'若有文件信息将同步删除',
|
||||
deleteNode:'若有文件信息将同步删除,确认删除该条数据?',
|
||||
HaveReleased:'已发布',
|
||||
forward:'转发',
|
||||
issuedBy:'发布人',
|
||||
}
|
||||
@@ -40,7 +40,7 @@
|
||||
:dataSource='areaTable'
|
||||
:pagination='false'
|
||||
:loading='loading'
|
||||
:scroll="{x: '100%',y:'calc(100vh - 130px)'}"
|
||||
:scroll="{x: '100%',y:600}"
|
||||
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
||||
@change='handleTableChange'>
|
||||
|
||||
|
||||
@@ -350,13 +350,23 @@
|
||||
}
|
||||
postAction('/workFlow/startProcess', query).then((res) => {
|
||||
if (res.success) {
|
||||
this.completeTask(value, res.result)
|
||||
this.completeTask(value, res.result, true)
|
||||
} else {
|
||||
this.JLoading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
completeTask(value, taskId) {
|
||||
deleteProcessInstanceByTask(taskId) {
|
||||
getAction('/workFlow/deleteProcessInstanceByTaskId', { taskId: taskId }).then((res) => {
|
||||
})
|
||||
},
|
||||
completeTask(value, taskId, isTrue) {
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: taskId,
|
||||
@@ -375,6 +385,9 @@
|
||||
} else {
|
||||
this.JLoading = false
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
if (isTrue) {
|
||||
this.deleteProcessInstanceByTask(taskId)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -37,55 +37,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-box">
|
||||
<div class="content-box-box" @click="contentClick()">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<div class="content-box-box" v-for="(item,index) in conList" :key="index" @click="contentClick(item)">
|
||||
<img :src="item.countryNationalFlag" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
{{item.applyMarket_dictText}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-box-box">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-box-box">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-box-box">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-box-box">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-box-box">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
</div>
|
||||
<div class="page">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -101,11 +72,16 @@
|
||||
applyMarketList: [],
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
pageNo: 1
|
||||
pageNo: 1,
|
||||
loading: false,
|
||||
url: {
|
||||
getInfoList: '/problemKnowledgeBase/countryCardManageReleaseEO/page'
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getApplyMarketList()
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getApplyMarketList() {
|
||||
@@ -118,10 +94,15 @@
|
||||
})
|
||||
},
|
||||
searchQuery() {
|
||||
|
||||
this.pageNo = 1
|
||||
this.getApplyMarketList()
|
||||
this.getList()
|
||||
},
|
||||
searchReset() {
|
||||
|
||||
this.pageNo = 1
|
||||
this.getApplyMarketList()
|
||||
this.queryParam = {}
|
||||
this.getList()
|
||||
},
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
@@ -135,14 +116,19 @@
|
||||
getList() {
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize
|
||||
pageSize: this.pageSize,
|
||||
releaseStatus: 'Have released',
|
||||
...this.queryParam
|
||||
}
|
||||
postAction(this.url.getInfoList, query).then((res) => {
|
||||
this.loading = true
|
||||
getAction(this.url.getInfoList, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.conList = res.result.records
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
this.conList = []
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -153,10 +139,13 @@
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
},
|
||||
contentClick() {
|
||||
contentClick(row) {
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/countryCardView',
|
||||
query: {}
|
||||
query: {
|
||||
applyMarket: row.applyMarket,
|
||||
id: row.id
|
||||
}
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
}
|
||||
@@ -208,6 +197,7 @@
|
||||
|
||||
.content-box {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.content-box-box {
|
||||
@@ -226,14 +216,14 @@
|
||||
}
|
||||
|
||||
.content-box-box-img {
|
||||
width: 70%;
|
||||
width: 238px;
|
||||
height: 100%;
|
||||
border-right: 1px #d9d9d9 solid;
|
||||
}
|
||||
|
||||
.content-box-box-text {
|
||||
width: calc(100% - 238px);
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
@@ -244,6 +234,7 @@
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.operator-text {
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
url = this.url.edit
|
||||
this.dataList.forEach(res => {
|
||||
content.push({
|
||||
countryCardTempId: res.id,
|
||||
countryCardTempId: res.countryCardTempId,
|
||||
description: res.description,
|
||||
content: res.content,
|
||||
id: res.id
|
||||
|
||||
@@ -23,19 +23,37 @@
|
||||
</div>
|
||||
<div style="overflow: auto;height: calc(100vh - 160px);">
|
||||
<div class="content-box" :style="{'width':clientWidth}" v-if="isTrue">
|
||||
<div style="width: 100%" v-for="(item1,index) in 14" class="content-box-top">
|
||||
<div v-for="(item2,index2) in 16" style="width: 340px;display: inline-block" class="content-box-left">
|
||||
<div style="width: 100%" v-for="(item1,index) in contentList" class="content-box-top">
|
||||
<div v-for="(item2,index2) in item1.list" style="width: 340px;display: inline-block"
|
||||
class="content-box-left">
|
||||
<div class="content-box-box-top" v-if="index == 0">
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
<img class="content-box-box-img" style="display: inline-block;width: auto" v-if="index2 == 0">
|
||||
<img :src="item2.img" v-else class="content-box-box-img" alt="">
|
||||
<span v-if="index2 == 0" class="content-box-box-text"></span>
|
||||
<span v-else class="content-box-box-text">
|
||||
{{item2.applyMarket_dictText}}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
<div class="content-box-box" v-else>
|
||||
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
|
||||
<span class="content-box-box-text">
|
||||
中国
|
||||
</span>
|
||||
<span style="color: #21c9cc"
|
||||
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}"
|
||||
class="content-box-box-text content-box-box-text-index"
|
||||
@click="viewFileClick(item2.lableName)"
|
||||
v-if="item2.lableType == 7 && item2.lableName && index2 != 0">
|
||||
{{$t('viewFile')}}
|
||||
</span>
|
||||
<span class="content-box-box-text content-box-box-text-index"
|
||||
v-else
|
||||
:title="item2.lableName"
|
||||
:class="{'content-box-box-text-admin':!item2.lableName || item2.lableName == 'null' || item2.lableName == 'undefined'? true : false}">
|
||||
{{item2.lableName}}
|
||||
</span>
|
||||
|
||||
<!-- <img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">-->
|
||||
<!-- <span class="content-box-box-text">-->
|
||||
<!-- 中国-->
|
||||
<!-- </span>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -44,8 +62,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<displayInformationModel ref="displayInformationModelRef"/>
|
||||
<displayInformationModel ref="displayInformationModelRef"
|
||||
@displayInformationModelForm="displayInformationModelForm"/>
|
||||
<countryCardViewAdd ref="countryCardViewAddRef" @countryCardViewAddForm="countryCardViewAddForm"/>
|
||||
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
|
||||
<viewFileModel ref="viewFileModelRef"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -53,35 +74,154 @@
|
||||
import { getAction, postAction, downloadFile } from '@/api/manage'
|
||||
import displayInformationModel from './displayInformationModel'
|
||||
import countryCardViewAdd from './countryCardViewAdd'
|
||||
import viewFileModel from '@/components/viewFileModel/index'
|
||||
|
||||
export default {
|
||||
name: 'countryCardView',
|
||||
components: {
|
||||
displayInformationModel,
|
||||
countryCardViewAdd
|
||||
countryCardViewAdd,
|
||||
viewFileModel
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
clientWidth: '',
|
||||
isTrue: false
|
||||
isTrue: false,
|
||||
loading: false,
|
||||
dataList: [],
|
||||
contentList: [],
|
||||
displayList: [],
|
||||
queryCountryList: [],
|
||||
countryCardViewList:[],
|
||||
applyMarkets: '',
|
||||
url: {
|
||||
list: '/problemKnowledgeBase/countryCardTempEO/list',
|
||||
deleteOne: ''
|
||||
},
|
||||
list: '/problemKnowledgeBase/countryCardManageReleaseEO/queryCountryCardManageReleaseByApplyMarkets'
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.isTrue = false
|
||||
this.$nextTick(() => {
|
||||
this.clientWidth = 340 * 14 + 'px'
|
||||
this.isTrue = true
|
||||
this.queryCountry(() => {
|
||||
this.replacePage()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
displayInformationClick() {
|
||||
this.$refs.displayInformationModelRef.getData()
|
||||
this.$refs.displayInformationModelRef.getData(JSON.parse(JSON.stringify(this.displayList)))
|
||||
},
|
||||
displayInformationModelForm(data) {
|
||||
this.displayList = data
|
||||
this.displayList = [...this.displayList]
|
||||
this.consolidateData()
|
||||
},
|
||||
newlyAddedClick() {
|
||||
this.$refs.countryCardViewAddRef.add()
|
||||
this.$refs.countryCardViewAddRef.add(this.countryCardViewList)
|
||||
},
|
||||
countryCardViewAddForm() {
|
||||
|
||||
countryCardViewAddForm(val) {
|
||||
this.countryCardViewList = JSON.parse(JSON.stringify(val))
|
||||
let content = []
|
||||
if (val && val.length > 0) {
|
||||
val.forEach(res => {
|
||||
if (res.applyMarket) {
|
||||
content.push(res.applyMarket)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.applyMarkets = content.join(',')
|
||||
this.queryCountry()
|
||||
},
|
||||
replacePage() {
|
||||
getAction(this.url.list, {}).then((res) => {
|
||||
if (res.success) {
|
||||
this.displayList = res.result || []
|
||||
this.displayList.forEach(val => {
|
||||
val.showOrNot = true
|
||||
})
|
||||
this.consolidateData()
|
||||
this.loading = false
|
||||
} else {
|
||||
this.displayList = []
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
consolidateData() {
|
||||
let content = []
|
||||
this.contentList = []
|
||||
this.contentList.push({})
|
||||
if (this.displayList && this.displayList.length > 0) {
|
||||
this.displayList.forEach(res => {
|
||||
if (res.showOrNot) {
|
||||
content.push(res)
|
||||
}
|
||||
})
|
||||
}
|
||||
if (this.queryCountryList && this.queryCountryList.length > 0) {
|
||||
this.contentList[0].list = []
|
||||
this.contentList[0].list.push({})
|
||||
this.queryCountryList.forEach(val => {
|
||||
this.contentList[0].name = 'tou'
|
||||
this.contentList[0].list.push({
|
||||
applyMarket_dictText: val.applyMarket_dictText,
|
||||
img: val.countryNationalFlag
|
||||
})
|
||||
})
|
||||
}
|
||||
if (content && content.length > 0) {
|
||||
content.forEach((res, index) => {
|
||||
this.contentList[index + 1] = { name: res.lableName }
|
||||
this.contentList[index + 1].list = []
|
||||
this.contentList[index + 1].list.push({
|
||||
lableName: res.lableName,
|
||||
lableType: res.lableType
|
||||
})
|
||||
})
|
||||
}
|
||||
this.queryCountryList.forEach((res, index) => {
|
||||
res.countryCardManageReleaseDetailEOList.forEach((val, index1) => {
|
||||
this.contentList.forEach(res1 => {
|
||||
if (res1.name == val.lableName) {
|
||||
res1.list.push({
|
||||
lableName: val.content,
|
||||
lableType: val.lableType
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
queryCountry(callback) {
|
||||
this.loading = true
|
||||
let applyMarkets = this.$route.query.applyMarket
|
||||
if (this.applyMarkets) {
|
||||
applyMarkets = applyMarkets + ',' + this.applyMarkets
|
||||
}
|
||||
let query = {
|
||||
applyMarkets: applyMarkets
|
||||
}
|
||||
postAction(this.list, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.queryCountryList = res.result || []
|
||||
this.isTrue = false
|
||||
this.$nextTick(() => {
|
||||
this.clientWidth = 340 * (this.queryCountryList.length + 1) + 'px'
|
||||
this.isTrue = true
|
||||
})
|
||||
callback && callback()
|
||||
if (!callback) {
|
||||
this.consolidateData()
|
||||
this.loading = false
|
||||
}
|
||||
} else {
|
||||
callback && callback()
|
||||
this.contentList = []
|
||||
this.loading = false
|
||||
}
|
||||
})
|
||||
},
|
||||
viewFileClick(item) {
|
||||
this.$refs.viewFileModelRef.clickButtonToUpload(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -201,6 +341,8 @@
|
||||
width: 340px;
|
||||
display: inline-block;
|
||||
height: 80px;
|
||||
line-height: 80px;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
border-right: 1px #d9d9d9 solid;
|
||||
border-bottom: 1px #d9d9d9 solid;
|
||||
@@ -232,10 +374,28 @@
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.content-box-top {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.content-box-top:first-child {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
height: 160px;
|
||||
z-index: 111;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.content-box-box-text-index {
|
||||
width: 100% !important;
|
||||
padding: 0 12px;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.content-box-box-text-admin {
|
||||
height: 80px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -14,14 +14,15 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('applicableMarket')">{{$t('applicableMarket')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="applicableMarket">
|
||||
<a-input class="box-input"
|
||||
v-model="formInline.applicableMarket"
|
||||
:placeholder="$t('PleaseEnter')+$t('applicableMarket')"/>
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.applyMarket"
|
||||
:disabled="true"
|
||||
:placeholder="$t('PleaseSelect')+$t('applicableMarket')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -30,19 +31,27 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text" :title="$t('comparisonMarket')+(index+1)">{{$t('comparisonMarket')+(index+1)}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" style="width: calc(100% - 220px)" prop="comparisonMarket">
|
||||
<a-input class="box-input"
|
||||
v-model="formInline.comparisonMarket"
|
||||
:placeholder="$t('PleaseEnter')+$t('comparisonMarket')"/>
|
||||
<a-select :placeholder="$t('PleaseSelect')+$t('applicableMarket')"
|
||||
:disabled="false"
|
||||
@change="applyMarketChange"
|
||||
v-model="item.applyMarket">
|
||||
<a-select-option v-for="(item, key) in item.applyMarketList"
|
||||
:key="key"
|
||||
:value="item.applyMarket">
|
||||
<span style="display: inline-block;width: 100%" :title=" item.applyMarket_dictText ">
|
||||
{{ item.applyMarket_dictText}}
|
||||
</span>
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</a-form-model-item>
|
||||
|
||||
<a-icon class="icon-size"
|
||||
style="margin-left: 8px"
|
||||
@click="addData"
|
||||
v-if="(formInline.dataList.length-1) == index"
|
||||
v-if="(formInline.dataList.length-1) == index && formInline.dataList.length < 5"
|
||||
type="plus-circle"/>
|
||||
<a-icon class="icon-size"
|
||||
@click="deleteData"
|
||||
@@ -65,6 +74,10 @@
|
||||
visible: false,
|
||||
confirmLoading: false,
|
||||
formInline: {},
|
||||
applyMarketList: [],
|
||||
url: {
|
||||
getInfoList: '/problemKnowledgeBase/countryCardManageReleaseEO/list'
|
||||
},
|
||||
rules: {
|
||||
personChargeName: [
|
||||
{
|
||||
@@ -97,13 +110,20 @@
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
add() {
|
||||
add(data) {
|
||||
this.visible = true
|
||||
console.log(data)
|
||||
this.$nextTick(() => {
|
||||
this.formInline = {}
|
||||
this.formInline.dataList = [{
|
||||
relatedSection: ''
|
||||
}]
|
||||
this.formInline.applyMarket = this.$route.query.applyMarket
|
||||
if (data && data.length > 0) {
|
||||
this.formInline.dataList = JSON.parse(JSON.stringify(data))
|
||||
} else {
|
||||
this.formInline.dataList = [{
|
||||
applyMarket: ''
|
||||
}]
|
||||
}
|
||||
this.getList()
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
})
|
||||
@@ -113,29 +133,77 @@
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
handleOk() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
|
||||
}
|
||||
})
|
||||
this.$emit('countryCardViewAddForm', JSON.parse(JSON.stringify(this.formInline.dataList)))
|
||||
this.visible = false
|
||||
},
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
addData() {
|
||||
this.formInline.dataList.push({
|
||||
relatedSection: ''
|
||||
applyMarket: ''
|
||||
})
|
||||
this.consolidateData()
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
deleteData() {
|
||||
this.formInline.dataList.pop()
|
||||
this.consolidateData()
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
getList() {
|
||||
let query = {
|
||||
releaseStatus: 'Have released'
|
||||
}
|
||||
getAction(this.url.getInfoList, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.applyMarketList = res.result
|
||||
this.consolidateData()
|
||||
} else {
|
||||
this.applyMarketList = []
|
||||
}
|
||||
})
|
||||
},
|
||||
consolidateData() {
|
||||
let content = []
|
||||
content.push(this.$route.query.applyMarket)
|
||||
content = content.join(',')
|
||||
this.applyMarketList = this.applyMarketList.filter(res => {
|
||||
return !content.includes(res.applyMarket)
|
||||
})
|
||||
let contentIndex = []
|
||||
if (this.formInline.dataList && this.formInline.dataList.length > 0) {
|
||||
this.formInline.dataList.forEach(res => {
|
||||
contentIndex.push(res.applyMarket)
|
||||
res.applyMarketList = []
|
||||
this.applyMarketList.forEach(val => {
|
||||
res.applyMarketList.push(val)
|
||||
})
|
||||
})
|
||||
}
|
||||
contentIndex = contentIndex.join(',')
|
||||
for (let i = 0; i < this.formInline.dataList.length; i++) {
|
||||
for (let j = 0; j < this.formInline.dataList[i].applyMarketList.length; j++) {
|
||||
if (contentIndex.includes(this.formInline.dataList[i].applyMarketList[j].applyMarket)
|
||||
&& this.formInline.dataList[i].applyMarket != this.formInline.dataList[i].applyMarketList[j].applyMarket) {
|
||||
this.formInline.dataList[i].applyMarketList.splice(j, 1)
|
||||
j--
|
||||
}
|
||||
}
|
||||
}
|
||||
this.formInline = { ...this.formInline }
|
||||
},
|
||||
applyMarketChange() {
|
||||
this.consolidateData()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.ant-select-disabled {
|
||||
color: rgba(0, 0, 0, 0.65) !important;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.box-title-text {
|
||||
line-height: 1.4;
|
||||
|
||||
@@ -11,27 +11,17 @@
|
||||
style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
||||
<div style="margin-bottom: 60px">
|
||||
<a-table
|
||||
v-if="this.visible"
|
||||
:key="'id'"
|
||||
:columns="columns"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 200px)'}"
|
||||
:data-source="dataList"
|
||||
:pagination="false"
|
||||
:loading="loading">
|
||||
<span slot="showOrNot" slot-scope="text,record">
|
||||
<a-checkbox :value="text"></a-checkbox>
|
||||
<span slot="showOrNot" slot-scope="text,record,index">
|
||||
<a-checkbox :checked="record.showOrNot" @change="onCheckAllChange(index)"></a-checkbox>
|
||||
</span>
|
||||
</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 style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
|
||||
@@ -49,21 +39,18 @@
|
||||
data() {
|
||||
return {
|
||||
url: {
|
||||
list: '',
|
||||
list: '/problemKnowledgeBase/countryCardTempEO/list',
|
||||
deleteOne: ''
|
||||
},
|
||||
visible: false,
|
||||
selectedRowKeys: [],
|
||||
dataList: [{}],
|
||||
dataList: [],
|
||||
loading: false,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
confirmLoading:false,
|
||||
total: 0,
|
||||
confirmLoading: false,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('LabelName'),
|
||||
dataIndex: 'LabelName',
|
||||
dataIndex: 'lableName',
|
||||
align: 'center',
|
||||
ellipsis: true
|
||||
},
|
||||
@@ -80,41 +67,22 @@
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
getData(data) {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.dataList = data
|
||||
this.dataList = [...this.dataList]
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.visible = false
|
||||
},
|
||||
handleSubmit(){
|
||||
|
||||
handleSubmit() {
|
||||
this.$emit('displayInformationModelForm', this.dataList)
|
||||
this.visible = false
|
||||
},
|
||||
onChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.replacePage()
|
||||
},
|
||||
SizeChange(page, pageSize) {
|
||||
this.pageNo = 1
|
||||
this.pageSize = pageSize
|
||||
this.replacePage()
|
||||
},
|
||||
replacePage() {
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize
|
||||
}
|
||||
this.loading = true
|
||||
postAction(this.url.list, 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
|
||||
}
|
||||
})
|
||||
onCheckAllChange(index) {
|
||||
this.dataList[index].showOrNot = !this.dataList[index].showOrNot
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,12 +92,11 @@
|
||||
<span class="title-text-text" :title="$t('market')">{{$t('market')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="targetMarket">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.targetMarket"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('targetMarket')"
|
||||
:placeholder="$t('PleaseSelect')+$t('market')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.targetMarket"
|
||||
:disabled="disabled"
|
||||
:placeholder="$t('PleaseSelect')+$t('market')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'region'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -110,6 +109,7 @@
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="standNumber">
|
||||
<a-input class="box-input"
|
||||
:title="formInline.standNumber"
|
||||
:disabled="true"
|
||||
v-model="formInline.standNumber"
|
||||
:placeholder="$t('PleaseEnter')+$t('standardNo')"/>
|
||||
@@ -133,11 +133,12 @@
|
||||
<div class="title-text">
|
||||
<span class="title-text-text">{{$t('content')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="vehiclePlatform">
|
||||
<a-form-model-item style="height: 300px" class="itemModel" prop="content">
|
||||
<quill-editor
|
||||
style="height: 300px"
|
||||
:content="formInline.content"
|
||||
:options="editorOption"
|
||||
@blur="quilleditorBlur"
|
||||
@change="onEditorChange($event)"
|
||||
/>
|
||||
</a-form-model-item>
|
||||
@@ -239,6 +240,13 @@
|
||||
message: this.$t('market') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
content: [
|
||||
{
|
||||
max: 5000,
|
||||
message: this.$t('content') + this.$t('cannotExceed') + 5000 + this.$t('Characters'),
|
||||
trigger: 'change'
|
||||
}
|
||||
]
|
||||
},
|
||||
url: {
|
||||
@@ -276,6 +284,9 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
quilleditorBlur() {
|
||||
this.$refs.ruleForm.validateField('content')
|
||||
},
|
||||
getBase() {
|
||||
getAction('/problemKnowledgeBase/problemKnowledgeBaseClassifyEO/list', {}).then((res) => {
|
||||
if (res.success) {
|
||||
@@ -340,7 +351,6 @@
|
||||
}
|
||||
,
|
||||
onEditorChange({ quill, html, text }) {
|
||||
console.log('editor change!', quill, html, text)
|
||||
this.formInline.content = html
|
||||
}
|
||||
,
|
||||
|
||||
@@ -13,13 +13,15 @@
|
||||
</div>
|
||||
<div class="box-content">
|
||||
<div class="box-content-left">
|
||||
<span class="box-content-left-text">{{$t('recentHotSpots')}}</span>
|
||||
<span class="box-content-left-text">{{$t('disseminationMaterials')}}</span>
|
||||
<span class="box-content-left-text">{{$t('informationSafety')}}</span>
|
||||
<span class="box-content-left-text">{{$t('blueBook')}}</span>
|
||||
<span class="box-content-left-text">{{$t('invoiceCollection')}}</span>
|
||||
<span class="box-content-left-text">{{$t('productHighlights')}}</span>
|
||||
<span class="box-content-left-text">{{$t('financialReimbursement')}}</span>
|
||||
<template v-for="tag in tagList">
|
||||
<a-checkable-tag
|
||||
:key="tag.id"
|
||||
:checked="selectedTags.indexOf(tag.id) > -1"
|
||||
@change="checked => handleChange(tag.id, checked)"
|
||||
>
|
||||
{{ tag.problemLabel }}
|
||||
</a-checkable-tag>
|
||||
</template>
|
||||
</div>
|
||||
<div class="box-content-right">
|
||||
<div @click="classificationClick" class="operator-text" v-has="'virtual:set:creater'">
|
||||
@@ -50,14 +52,15 @@
|
||||
<span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div class="text-content" v-html="item.content">
|
||||
</div>
|
||||
<div class="text-content">
|
||||
{{item.contentOne}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
<div class="noData" v-else>
|
||||
暂无数据
|
||||
{{$t('noData')}}
|
||||
</div>
|
||||
<div class="page" v-if="conList.length > 0">
|
||||
<a-pagination
|
||||
@@ -90,9 +93,12 @@
|
||||
searchContent: '',
|
||||
checkboxText: [],
|
||||
conList: [],
|
||||
searchStr: '',
|
||||
total: 0,
|
||||
selectedTags: [],
|
||||
loading: false,
|
||||
pageSize: 10,
|
||||
tagList: [],
|
||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||
pageNo: 1,
|
||||
url: {
|
||||
@@ -102,12 +108,30 @@
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.replacePage()
|
||||
},
|
||||
methods: {
|
||||
replacePage() {
|
||||
getAction('/problemKnowledgeBase/problemKnowledgeBaseClassifyEO/list', {}).then((res) => {
|
||||
if (res.success) {
|
||||
this.tagList = res.result
|
||||
} else {
|
||||
this.tagList = []
|
||||
}
|
||||
})
|
||||
},
|
||||
onSearch() {
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
},
|
||||
handleChange(tag, checked) {
|
||||
const { selectedTags } = this
|
||||
const nextSelectedTags = checked
|
||||
? [...selectedTags, tag]
|
||||
: selectedTags.filter(t => t !== tag)
|
||||
this.selectedTags = nextSelectedTags
|
||||
this.getList()
|
||||
},
|
||||
ResetSearch() {
|
||||
this.searchStr = ''
|
||||
this.pageNo = 1
|
||||
@@ -127,11 +151,6 @@
|
||||
this.$router.push({
|
||||
path: '/problemKnowledgeBaseAdd'
|
||||
})
|
||||
// let newUrl = this.$router.resolve({
|
||||
// path: '/problemKnowledgeBaseAdd',
|
||||
// query: {}
|
||||
// })
|
||||
// window.open(newUrl.href, '_blank')
|
||||
},
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
@@ -142,16 +161,29 @@
|
||||
this.pageSize = pageSize
|
||||
this.getList()
|
||||
},
|
||||
getText(str) {
|
||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||
return words.replace(/\s/g, '') //这里是去除空格
|
||||
},
|
||||
getList() {
|
||||
let selectedTags = JSON.parse(JSON.stringify(this.selectedTags))
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
searchStr: this.searchStr
|
||||
searchStr: this.searchStr,
|
||||
problemTypes: selectedTags.join(',')
|
||||
}
|
||||
this.loading = true
|
||||
getAction(this.url.getInfoList, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.conList = res.result.records
|
||||
if (this.conList && this.conList.length > 0) {
|
||||
this.conList.forEach(val => {
|
||||
if (val.content) {
|
||||
val.contentOne = this.getText(val.content)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
@@ -308,6 +340,8 @@
|
||||
font-weight: 400;
|
||||
color: #040B29;
|
||||
opacity: 0.7;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.page {
|
||||
@@ -320,4 +354,19 @@
|
||||
text-align: center;
|
||||
line-height: 10;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.box-content-left .ant-tag {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #040B29;
|
||||
}
|
||||
|
||||
.box-content-left .ant-tag-checkable {
|
||||
padding: 3px 8px;
|
||||
}
|
||||
|
||||
.box-content-left .ant-tag-checkable-checked {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="doc-detail-wrap">
|
||||
<div class="doc-detail-header" style="position: fixed;top: 0">
|
||||
<div class="doc-detail-title">
|
||||
<span style="line-height: 66px;display: inline-block;float: left">
|
||||
<span style="line-height: 66px;display: inline-block;float: left" @click="backClick">
|
||||
<a-icon type="arrow-left" style="margin-right: 6px;"/>
|
||||
</span>
|
||||
{{$t('managePublishing')}}
|
||||
@@ -22,7 +22,7 @@
|
||||
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="conList.length > 0" style="height: calc(100vh - 180px);overflow:auto;">
|
||||
<div v-if="conList.length > 0" style="height: calc(100vh - 240px);overflow:auto;">
|
||||
<div v-for="(item,index) in conList" :key="item.id">
|
||||
<div style="margin-bottom: 10px;position: relative;overflow: hidden">
|
||||
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
|
||||
@@ -36,7 +36,8 @@
|
||||
<span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div class="text-content" v-html="item.content">
|
||||
<div class="text-content">
|
||||
{{item.contentOne}}
|
||||
</div>
|
||||
<div class="text-text-right-text">
|
||||
<a style="margin-right: 10px" @click="edit(item)">{{$t('edit')}}</a>
|
||||
@@ -46,26 +47,26 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="noData" v-else>
|
||||
暂无数据
|
||||
</div>
|
||||
<div class="page" v-if="conList.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
<div class="noData" v-else>
|
||||
{{$t('noData')}}
|
||||
</div>
|
||||
<div class="page" v-if="conList.length > 0">
|
||||
<a-pagination
|
||||
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||
show-quick-jumper
|
||||
show-size-changer
|
||||
:page-size.sync="pageSize"
|
||||
:total="total"
|
||||
:current="pageNo"
|
||||
@change="pageOnChange"
|
||||
@showSizeChange="SizeChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
|
||||
</div>
|
||||
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -113,6 +114,10 @@
|
||||
this.pageNo = 1
|
||||
this.getList()
|
||||
},
|
||||
getText(str) {
|
||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||
return words.replace(/\s/g, '') //这里是去除空格
|
||||
},
|
||||
getList() {
|
||||
let query = {
|
||||
pageNo: this.pageNo,
|
||||
@@ -124,6 +129,13 @@
|
||||
getAction(this.url.getInfoList, query).then((res) => {
|
||||
if (res.success) {
|
||||
this.conList = res.result.records
|
||||
if (this.conList && this.conList.length > 0) {
|
||||
this.conList.forEach(val => {
|
||||
if (val.content) {
|
||||
val.contentOne = this.getText(val.content)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.total = res.result.total
|
||||
this.loading = false
|
||||
} else {
|
||||
@@ -132,13 +144,16 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
backClick() {
|
||||
this.$router.push({
|
||||
path: '/problemknowledgeBase'
|
||||
})
|
||||
},
|
||||
titleClick(item) {
|
||||
let newUrl = this.$router.resolve({
|
||||
path: '/docManage/library/detail',
|
||||
path: '/problemKnowledgeBaseView',
|
||||
query: {
|
||||
id: item.id.slice(0, 32),
|
||||
title: item.title,
|
||||
serial_number: item.serial_number
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
window.open(newUrl.href, '_blank')
|
||||
|
||||
@@ -17,6 +17,14 @@
|
||||
</div>
|
||||
<div style="padding-top: 68px;background: #fff">
|
||||
<div class="detail-content" style="padding: 24px">
|
||||
<div class="content-text-top">
|
||||
<span style="margin-right: 10px">
|
||||
{{$t('issuedBy')}}:{{this.queryForm.createBy}}
|
||||
</span>
|
||||
<span>
|
||||
{{$t('releaseDate')}}:{{this.queryForm.createTime}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-text">
|
||||
<div class="text-field" v-for="(item,index) in standardContentList" :key="index">
|
||||
<span class="text-field-left" :title="item.title">{{item.title}}</span>
|
||||
@@ -104,11 +112,11 @@
|
||||
standardContentList: [
|
||||
{
|
||||
title: this.$t('problemClassification'),
|
||||
value: 'problemType'
|
||||
value: 'problemTypeName'
|
||||
},
|
||||
{
|
||||
title: this.$t('market'),
|
||||
value: 'targetMarket'
|
||||
value: 'targetMarket_dicText'
|
||||
},
|
||||
{
|
||||
title: this.$t('standardNo'),
|
||||
@@ -493,4 +501,13 @@
|
||||
overflow: hidden;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.content-text-top {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
color: #040B29;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
@@ -52,6 +52,7 @@
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
allowClear
|
||||
:disabled="isParentId"
|
||||
style='z-index: 99'
|
||||
v-model="formInline.parentId">
|
||||
<a-select-option v-for="(item, key) in ParentList"
|
||||
:key="item.id"
|
||||
|
||||
@@ -564,6 +564,12 @@
|
||||
})
|
||||
},
|
||||
completeTask(value, taskId) {
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: taskId,
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
size="middle"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:'calc(100vh)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 130px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</div>
|
||||
|
||||
<div class="drawer-bootom-button">
|
||||
<a-button @click="handleCancel" type="danger" style="margin-right: 16px">{{$t('cancel')}}</a-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>
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
size="middle"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 140px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
@@ -100,6 +100,9 @@
|
||||
v-if="record.createBy == userInfoQuery.username && record.releaseCondition == 'draft'"
|
||||
@click="deleteData(record)">{{$t('delete')}}</a>
|
||||
</span>
|
||||
<span slot="title" slot-scope="text,record" :title="text">
|
||||
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }}
|
||||
</span>
|
||||
<span slot="translationLanguage" slot-scope="text,record"
|
||||
:title="record.sourceLanguage_dictText +' -- '+record.targetLanguage_dictText">
|
||||
<span class="translationLanguageText" style="margin-top: -2px">{{record.sourceLanguage_dictText}}</span>
|
||||
@@ -160,13 +163,15 @@
|
||||
title: this.$t('standard'),
|
||||
align: 'center',
|
||||
dataIndex: 'serialNumber',
|
||||
width: 170
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'title' }
|
||||
},
|
||||
{
|
||||
title: this.$t('title'),
|
||||
align: 'center',
|
||||
dataIndex: 'title',
|
||||
width: 170
|
||||
width: 170,
|
||||
scopedSlots: { customRender: 'title' }
|
||||
},
|
||||
{
|
||||
title: this.$t('TextStatus'),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<a-modal
|
||||
:title="title"
|
||||
:maskClosable="false"
|
||||
:width="800"
|
||||
:width="600"
|
||||
placement="right"
|
||||
:closable="true"
|
||||
@cancel="handleCancel"
|
||||
|
||||
@@ -40,13 +40,12 @@
|
||||
<span v-else :title="title">
|
||||
{{title && title.length > 18?title.slice(0,17)+'...':title}}
|
||||
</span>
|
||||
<template #overlay>
|
||||
<a-menu v-has="'externalReports:folder'"
|
||||
@click="({ key: menuKey }) => onContextMenuClick(treeKey, menuKey, record)">
|
||||
<a-menu-item key="1" @click="orgAdd" >{{$t('Addingfolder')}}</a-menu-item>
|
||||
<a-menu-item key="4" @click="orgAdds" v-if="deleteNode">{{$t('Addingsubfolders')}}</a-menu-item>
|
||||
<a-menu-item key="2" @click="orgEdit">{{$t('Editfolder')}}</a-menu-item>
|
||||
<a-menu-item key="3" @click="orgDelete" >{{$t('Deletefolders')}}</a-menu-item>
|
||||
<template #overlay >
|
||||
<a-menu @click="({ key: menuKey }) => onContextMenuClick(treeKey, menuKey, record)">
|
||||
<a-menu-item key="1" @click="orgAdd" v-has="'externalReports:folder'">{{$t('Addingfolder')}}</a-menu-item>
|
||||
<a-menu-item key="4" @click="orgAdds" v-has="'externalReports:folder'" v-if="deleteNode">{{$t('Addingsubfolders')}}</a-menu-item>
|
||||
<a-menu-item key="2" @click="orgEdit" v-has="'externalReports:folder'">{{$t('Editfolder')}}</a-menu-item>
|
||||
<a-menu-item key="3" @click="orgDelete" v-has="'externalReports:folder'">{{$t('Deletefolders')}}</a-menu-item>
|
||||
|
||||
</a-menu>
|
||||
</template>
|
||||
@@ -85,8 +84,9 @@
|
||||
</div>
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('uploadTime')"-->
|
||||
<a-range-picker
|
||||
style='width: 264px'
|
||||
class="box-input"
|
||||
@change="onChange"
|
||||
style='margin-left: -1px'
|
||||
format="YYYY-MM-DD"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="queryParams.time"
|
||||
@@ -127,7 +127,7 @@
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
rowKey="id"
|
||||
:scroll="{x: 10}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 180px)'}"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:columns="columns"
|
||||
@@ -135,6 +135,10 @@
|
||||
<span slot="projectName" slot-scope="text,record" :title="text">
|
||||
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }}
|
||||
</span>
|
||||
<span slot="fileName" slot-scope="text,record" :title="text">
|
||||
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }}
|
||||
</span>
|
||||
|
||||
<span slot="operation" slot-scope="text,record">
|
||||
<!-- <a class="text-operation" @click="handlelist(record)">{{$t('view')}}</a>-->
|
||||
<a class="text-operation" @click="download(record)">{{$t('download')}}</a>
|
||||
@@ -353,6 +357,7 @@ export default {
|
||||
title: this.$t('fileName'),
|
||||
align: 'center',
|
||||
dataIndex: 'fileName',
|
||||
scopedSlots: { customRender: 'fileName' },
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
@@ -733,7 +738,7 @@ export default {
|
||||
}
|
||||
},
|
||||
pageOnChange(page, pageSize) {
|
||||
this.pageNo = page
|
||||
this.queryParams.pageNo = page
|
||||
this.loadData()
|
||||
},
|
||||
addModelList() {
|
||||
|
||||
@@ -296,6 +296,7 @@ export default {
|
||||
this.confirmLoading = true
|
||||
downloadFile('report/detail/exportNormal', query.exportName+'.zip', query)
|
||||
this.confirmLoading = false
|
||||
this.visible = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -252,6 +252,7 @@ export default {
|
||||
this.confirmLoading = true
|
||||
downloadFile('report/detail/exportCustom', query.exportName+'.zip', query)
|
||||
this.confirmLoading = false
|
||||
this.visible = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -217,7 +217,7 @@ export default {
|
||||
this.visible = false
|
||||
this.$emit('addModelList')
|
||||
} else {
|
||||
this.$message.warning(this.$t('operationFailed'))
|
||||
this.$message.warning(res.message)
|
||||
this.confirmLoading = false
|
||||
}
|
||||
})
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
size="middle"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 130px)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 140px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
|
||||
@@ -736,6 +736,12 @@ export default {
|
||||
})
|
||||
let querycontentList = JSON.parse(JSON.stringify(this.contentList))
|
||||
query.certCategoryParamsInfoEOList = querycontentList
|
||||
if(this.formInline.controlType == 11){
|
||||
query.certCategoryParamsInfoEOList = []
|
||||
query.certCategory = ''
|
||||
}else{
|
||||
query.titleDefaultValue = ''
|
||||
}
|
||||
this.confirmLoading = true
|
||||
Action(url, query).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -307,11 +307,18 @@
|
||||
}
|
||||
},
|
||||
completeTask() {
|
||||
let value = JSON.parse(JSON.stringify(this.queryProject))
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: this.$route.query.taskIds,
|
||||
flag: this.queryProject.flag,
|
||||
json: JSON.stringify(this.queryProject).replace(/\"/g, '\'')
|
||||
json: JSON.stringify(value).replace(/\"/g, '\'')
|
||||
}
|
||||
postAction('/workFlow/completeTask', query).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -186,6 +186,12 @@
|
||||
completeTask(value, handlingTime) {
|
||||
let json = Object.assign(this.queryBy, { handlingTime: handlingTime }, value)
|
||||
let data = JSON.stringify(json).replace(/\"/g, '\'')
|
||||
Object.keys(data).forEach(res => {
|
||||
if (data[res] && data[res] instanceof String) {
|
||||
data[res] = data[res].replace(/\"/g, '“')
|
||||
data[res] = data[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: this.$route.query.taskId || this.$route.query.taskIds,
|
||||
@@ -248,15 +254,24 @@
|
||||
}
|
||||
postAction('/workFlow/startProcess', query).then((res) => {
|
||||
if (res.success) {
|
||||
this.completeTaskDesign(value, res.result)
|
||||
this.completeTaskDesign(value, res.result,true)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
completeTaskDesign(value, taskId) {
|
||||
deleteProcessInstanceByTask(taskId) {
|
||||
getAction('/workFlow/deleteProcessInstanceByTaskId', { taskId: taskId }).then((res) => {
|
||||
})
|
||||
},
|
||||
completeTaskDesign(value, taskId,isTrue) {
|
||||
value.reviewResult = 'launch'
|
||||
let operatorTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
||||
value.operatorTime = operatorTime
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: taskId,
|
||||
@@ -272,6 +287,10 @@
|
||||
// this.$router.push({
|
||||
// path: '/ProcessCenter'
|
||||
// })
|
||||
}else{
|
||||
if (isTrue) {
|
||||
this.deleteProcessInstanceByTask(taskId)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -171,10 +171,17 @@
|
||||
// this.insertBatch(dataList, 2)
|
||||
},
|
||||
completeTask() {
|
||||
let value = JSON.parse(JSON.stringify(this.queryProject))
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: this.$route.query.taskIds,
|
||||
json: JSON.stringify(this.queryProject).replace(/\"/g, '\'')
|
||||
json: JSON.stringify(value).replace(/\"/g, '\'')
|
||||
}
|
||||
postAction('/workFlow/completeTask', query).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -342,6 +342,12 @@
|
||||
completeTask(value) {
|
||||
let json = Object.assign(this.queryBy, value)
|
||||
let data = JSON.stringify(json).replace(/\"/g, '\'')
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: this.$route.query.taskId || this.$route.query.taskIds,
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="10">
|
||||
<a-form-item :label="$t('Collectlist')">
|
||||
<a-select v-model="queryParam.ctype" @change="getonChange">
|
||||
<a-select v-model="queryParam.ctype" @change="getonChange" :getPopupContainer="triggerNode => triggerNode.parentNode">
|
||||
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
|
||||
@@ -1697,6 +1697,12 @@
|
||||
completeTask(value, taskId, index) {
|
||||
let handlingTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
||||
value.handlingTime = handlingTime
|
||||
Object.keys(value).forEach(res => {
|
||||
if (value[res] && value[res] instanceof String) {
|
||||
value[res] = value[res].replace(/\"/g, '“')
|
||||
value[res] = value[res].replace(/\'/g, '‘')
|
||||
}
|
||||
})
|
||||
let query = {
|
||||
userid: this.userInfo().id,
|
||||
taskId: taskId,
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-modal
|
||||
<a-drawer
|
||||
:title="$t('ListOfRelevantPersonnel')"
|
||||
:width="1000"
|
||||
:visible="visible"
|
||||
:maskClosable="false"
|
||||
@ok="visible = false"
|
||||
@cancel="visible = false"
|
||||
@close="handleCancel"
|
||||
>
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
@@ -104,7 +103,7 @@
|
||||
rowKey="id"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
:pagination="false"
|
||||
:scroll="{x:800,y: 400}"
|
||||
:scroll="{x:800,y: 500}"
|
||||
:data-source="dataSource"
|
||||
:loading="loading"
|
||||
>
|
||||
@@ -136,7 +135,11 @@
|
||||
<!-- @showSizeChange="SizeChange"-->
|
||||
<!-- />-->
|
||||
<!-- </div>-->
|
||||
</a-modal>
|
||||
<div class="drawer-bootom-button">
|
||||
<a-button style="margin-right: .8rem" @click="handleCancel">{{$t('cancel')}}</a-button>
|
||||
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('determine')}}</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
<a-modal
|
||||
:title="$t('ListOfRelevantPersonnel')"
|
||||
:width="600"
|
||||
@@ -414,6 +417,12 @@
|
||||
this.selectedRowKeys = []
|
||||
this.getList()
|
||||
},
|
||||
handleCancel(){
|
||||
this.visible = false
|
||||
},
|
||||
handleSubmit(){
|
||||
this.visible = false
|
||||
},
|
||||
batSettingClick() {
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
@@ -633,4 +642,16 @@
|
||||
height: 38px;
|
||||
/*margin-top: 2px;*/
|
||||
}
|
||||
.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>
|
||||
@@ -373,8 +373,7 @@ export default {
|
||||
}
|
||||
|
||||
.title-text {
|
||||
width: 20%;
|
||||
min-width: 110px;
|
||||
width: 110px;
|
||||
color: #000F16;
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
size="middle"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 180px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
|
||||
@@ -42,9 +42,10 @@
|
||||
树操作 <a-icon type="up" />
|
||||
</a-button>
|
||||
</a-dropdown>
|
||||
<a-popconfirm title="确定放弃编辑?" @confirm="close" okText="确定" cancelText="取消">
|
||||
<a-button style="margin-right: .8rem">取消</a-button>
|
||||
</a-popconfirm>
|
||||
<!-- <a-popconfirm title="确定放弃编辑?" @confirm="close" okText="确定" cancelText="取消">-->
|
||||
<!-- <a-button style="margin-right: .8rem">取消</a-button>-->
|
||||
<!-- </a-popconfirm>-->
|
||||
<a-button @click="close()" type="primary" :loading="loading" ghost style="margin-right: 0.8rem">取消</a-button>
|
||||
<a-button @click="handleSubmit(false)" type="primary" :loading="loading" ghost style="margin-right: 0.8rem">仅保存</a-button>
|
||||
<a-button @click="handleSubmit(true)" type="primary" :loading="loading">保存并关闭</a-button>
|
||||
</div>
|
||||
|
||||