Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage
# Conflicts: # jero-web/src/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd.vue
This commit is contained in:
+120
-28
@@ -14,9 +14,11 @@ import com.jero.common.util.RedisUtil;
|
|||||||
import com.jero.common.util.TokenUtils;
|
import com.jero.common.util.TokenUtils;
|
||||||
import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl;
|
import com.jero.modules.dummy.service.impl.DummyInventoryInfoEOServiceImpl;
|
||||||
import com.jero.modules.enums.DictCodeEnum;
|
import com.jero.modules.enums.DictCodeEnum;
|
||||||
|
import com.jero.modules.ocr.entity.User;
|
||||||
import com.jero.modules.project.entity.ProjectLibraryBase;
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||||
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
|
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
|
||||||
|
import com.jero.modules.project.enums.ProjectRoleEnum;
|
||||||
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
|
import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
|
||||||
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
@@ -967,6 +969,11 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Result<?> oppositeDisposeData(List<ProjectRelatedPersonnel> records, String projectId, String cut) {
|
public Result<?> oppositeDisposeData(List<ProjectRelatedPersonnel> records, String projectId, String cut) {
|
||||||
|
//查询所有的用户
|
||||||
|
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.select(SysUser::getUsername,SysUser::getId);
|
||||||
|
List<SysUser> userList = sysUserService.list(wrapper);
|
||||||
|
|
||||||
Result<?> result = new Result<>();
|
Result<?> result = new Result<>();
|
||||||
int row=3;
|
int row=3;
|
||||||
StringBuilder message = new StringBuilder();
|
StringBuilder message = new StringBuilder();
|
||||||
@@ -1021,15 +1028,18 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
List<String> lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineerName().split(","));
|
List<String> lawEngineerNameList = Arrays.asList(projectRelatedPersonnel.getLawEngineerName().split(","));
|
||||||
if (CollectionUtils.isNotEmpty(lawEngineerNameList) && StringUtils.isNotBlank(lawEngineerNameList.get(0))) {
|
if (CollectionUtils.isNotEmpty(lawEngineerNameList) && StringUtils.isNotBlank(lawEngineerNameList.get(0))) {
|
||||||
lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList());
|
lawEngineerNameList = lawEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||||
lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList);
|
//验证导入的相关人员
|
||||||
if(lawEngineerUsers.size()!=lawEngineerNameList.size()){
|
lawEngineerUsers = personnelMatch(userList, lawEngineerNameList, message, ProjectRoleEnum.REGULATI_ENGINEER.getValue(), cut, row);
|
||||||
//中英切换提示语
|
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
// lawEngineerUsers=sysUserService.queryUserIdListByNameList(lawEngineerNameList);
|
||||||
message.append("导入的法规工程师姓名有误,请检查第" + row + "行");
|
// if(lawEngineerUsers.size()!=lawEngineerNameList.size()){
|
||||||
}else{
|
// //中英切换提示语
|
||||||
message.append("The imported law engineer is wrong.Please check line " + row );
|
// if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
}
|
// message.append("导入的法规工程师姓名有误,请检查第" + row + "行");
|
||||||
}
|
// }else{
|
||||||
|
// message.append("The imported law engineer is wrong.Please check line " + row );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
|
if(CollectionUtils.isNotEmpty(lawEngineerUsers)) {
|
||||||
@@ -1055,15 +1065,18 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
List<String> engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(","));
|
List<String> engineeringInterfacePersonNameList = Arrays.asList(projectRelatedPersonnel.getEngineeringInterfacePersonName().split(","));
|
||||||
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList) && StringUtils.isNotBlank(engineeringInterfacePersonNameList.get(0))) {
|
if (CollectionUtils.isNotEmpty(engineeringInterfacePersonNameList) && StringUtils.isNotBlank(engineeringInterfacePersonNameList.get(0))) {
|
||||||
engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList());
|
engineeringInterfacePersonNameList = engineeringInterfacePersonNameList.stream().distinct().collect(Collectors.toList());
|
||||||
engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList);
|
//验证导入的相关人员
|
||||||
if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){
|
engineeringInterfacePersonUsers = personnelMatch(userList, engineeringInterfacePersonNameList, message, ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), cut, row);
|
||||||
//中英切换提示语
|
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
// engineeringInterfacePersonUsers=sysUserService.queryUserIdListByNameList(engineeringInterfacePersonNameList);
|
||||||
message.append("导入的工程接口人姓名有误,请检查第" + row + "行");
|
// if(engineeringInterfacePersonUsers.size()!=engineeringInterfacePersonNameList.size()){
|
||||||
}else{
|
// //中英切换提示语
|
||||||
message.append("The imported engineering interface person is wrong.Please check line " + row );
|
// if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
}
|
// message.append("导入的工程接口人姓名有误,请检查第" + row + "行");
|
||||||
}
|
// }else{
|
||||||
|
// message.append("The imported engineering interface person is wrong.Please check line " + row );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
|
if(CollectionUtils.isNotEmpty(engineeringInterfacePersonUsers)) {
|
||||||
@@ -1090,8 +1103,13 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
//校验是否为项目基础表设定的认证工程师
|
//校验是否为项目基础表设定的认证工程师
|
||||||
List<ProjectRelatedPersonnel> baseCertificationEngineerList = queryCertificationEngineer(projectId);
|
List<ProjectRelatedPersonnel> baseCertificationEngineerList = queryCertificationEngineer(projectId);
|
||||||
List<String> baseCertificationEngineerNameList = baseCertificationEngineerList.stream().map(e -> e.getCertificationEngineerName()).collect(Collectors.toList());
|
List<String> baseCertificationEngineerNameList = baseCertificationEngineerList.stream().map(e -> e.getCertificationEngineerName()).collect(Collectors.toList());
|
||||||
|
//转为小写后在判断
|
||||||
|
List<String> baseCertificationEngineerNameListTemp = new ArrayList<>();
|
||||||
|
for (String s : baseCertificationEngineerNameList) {
|
||||||
|
baseCertificationEngineerNameListTemp.add(s.toLowerCase());
|
||||||
|
}
|
||||||
for(String certificationEngineerName : certificationEngineerNameList){
|
for(String certificationEngineerName : certificationEngineerNameList){
|
||||||
if(!baseCertificationEngineerNameList.contains(certificationEngineerName)){
|
if(!baseCertificationEngineerNameListTemp.contains(certificationEngineerName.toLowerCase())){
|
||||||
//中英切换提示语
|
//中英切换提示语
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
message.append("导入的认证工程师姓名不属于该项目,请检查第" + row + "行");
|
message.append("导入的认证工程师姓名不属于该项目,请检查第" + row + "行");
|
||||||
@@ -1101,18 +1119,32 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// for(String certificationEngineerName : certificationEngineerNameList){
|
||||||
|
// if(!baseCertificationEngineerNameList.contains(certificationEngineerName.toLowerCase())){
|
||||||
|
// //中英切换提示语
|
||||||
|
// if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
// message.append("导入的认证工程师姓名不属于该项目,请检查第" + row + "行");
|
||||||
|
// }else {
|
||||||
|
// message.append("The imported certified engineer name does not belong to this project..Please check line " + row );
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(certificationEngineerNameList) && StringUtils.isNotBlank(certificationEngineerNameList.get(0))) {
|
if (CollectionUtils.isNotEmpty(certificationEngineerNameList) && StringUtils.isNotBlank(certificationEngineerNameList.get(0))) {
|
||||||
certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList());
|
certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||||
certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList);
|
//验证导入的相关人员
|
||||||
if(certificationEngineerUsers.size()!=certificationEngineerNameList.size()){
|
certificationEngineerUsers = personnelMatch(userList, certificationEngineerNameList, message, ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue(), cut, row);
|
||||||
//中英切换提示语
|
|
||||||
if(CutEnum.CN.getValue().equals(cut)) {
|
// certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList);
|
||||||
message.append("导入的认证工程师姓名有误,请检查第" + row + "行");
|
// if(certificationEngineerUsers.size()!=certificationEngineerNameList.size()){
|
||||||
}else {
|
// //中英切换提示语
|
||||||
message.append("The imported certification engineer is wrong.Please check line " + row );
|
// if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
}
|
// message.append("导入的认证工程师姓名有误,请检查第" + row + "行");
|
||||||
}
|
// }else {
|
||||||
|
// message.append("The imported certification engineer is wrong.Please check line " + row );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
|
if(CollectionUtils.isNotEmpty(certificationEngineerUsers)) {
|
||||||
@@ -1156,6 +1188,66 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证导入的相关人员
|
||||||
|
* @param userList 所有的用户
|
||||||
|
* @param personnelList 相关人员(法规工程师,认证工程师,工程接口人)
|
||||||
|
* @param message 异常信息拼接
|
||||||
|
* @param personnelType 人员类型
|
||||||
|
* @param cut 中英文切换
|
||||||
|
* @param row 行数
|
||||||
|
*/
|
||||||
|
public List<SysUser> personnelMatch(List<SysUser> userList,
|
||||||
|
List<String> personnelList,
|
||||||
|
StringBuilder message,
|
||||||
|
String personnelType,
|
||||||
|
String cut,
|
||||||
|
int row){
|
||||||
|
int count = 0;
|
||||||
|
//全部转为小写来匹配
|
||||||
|
List<SysUser> sysUserList = new ArrayList<>();
|
||||||
|
for (String personnel : personnelList) {
|
||||||
|
String personnelLower = personnel.toLowerCase();
|
||||||
|
for (SysUser sysUser : userList) {
|
||||||
|
String username = sysUser.getUsername();
|
||||||
|
String usernameLower = username.toLowerCase();
|
||||||
|
if(personnelLower.equals(usernameLower)){
|
||||||
|
sysUserList.add(sysUser);
|
||||||
|
count ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(personnelList.size() != count){
|
||||||
|
//法规工程师异常提示语
|
||||||
|
if(ProjectRoleEnum.REGULATI_ENGINEER.getValue().equals(personnelType)){
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
message.append("导入的工程接口人姓名有误,请检查第" + row + "行");
|
||||||
|
}else{
|
||||||
|
message.append("The imported engineering interface person is wrong.Please check line " + row );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//认证工程师异常提示语
|
||||||
|
if(ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue().equals(personnelType)){
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
message.append("导入的认证工程师姓名有误,请检查第" + row + "行");
|
||||||
|
}else {
|
||||||
|
message.append("The imported certification engineer is wrong.Please check line " + row );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//工程接口人异常提示语
|
||||||
|
if(ProjectRoleEnum.ENGINEERING_INTERFACE_PERSON.getValue().equals(personnelType)){
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
message.append("导入的工程接口人姓名有误,请检查第" + row + "行");
|
||||||
|
}else{
|
||||||
|
message.append("The imported engineering interface person is wrong.Please check line " + row );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return sysUserList;
|
||||||
|
}
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ProjectRelatedPersonnel queryByProjectIdAndDutyTerritory(String projectId, String dutyTerritory) {
|
public ProjectRelatedPersonnel queryByProjectIdAndDutyTerritory(String projectId, String dutyTerritory) {
|
||||||
LambdaQueryWrapper<ProjectRelatedPersonnel> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProjectRelatedPersonnel> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|||||||
+93
-3
@@ -881,11 +881,30 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
|
|||||||
String flag = "cover";
|
String flag = "cover";
|
||||||
String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月";
|
String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月";
|
||||||
|
|
||||||
titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
|
titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
|
||||||
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18,
|
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18,
|
||||||
false, false, "Blue Sky Noto Regular",null,null,flag);
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12,
|
WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12,
|
||||||
false, false, "Blue Sky Noto Regular",null,null,flag);
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
|
String year = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[0];
|
||||||
|
String mothNew = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[1];
|
||||||
|
int mothLast = Integer.valueOf(mothNew) + 1;
|
||||||
|
|
||||||
|
//添加说明 2022/7/15 至 2022/8/14 期间发布的主要内容
|
||||||
|
String text = year + "/" + mothNew +"/15 至 "+year+"/"+mothLast+"/14期间发布的主要内容";
|
||||||
|
WordUtil.exportWord(document, text, null, ParagraphAlignment.CENTER, 0, 11,
|
||||||
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
|
//添加换行
|
||||||
|
WordUtil.exportWord(document, "\r\n", null, ParagraphAlignment.CENTER, 0, null,
|
||||||
|
false, false, null,null,null,flag);
|
||||||
|
|
||||||
|
//添加说明 编辑: 整车工程 - 法规与认证&环保与材料科团队
|
||||||
|
String text1 = "编辑: 整车工程 - 法规与认证&环保与材料科团队";
|
||||||
|
WordUtil.exportWord(document, text1, null, ParagraphAlignment.CENTER, 0, 11,
|
||||||
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
//添加下一页
|
//添加下一页
|
||||||
document.createParagraph().createRun().addBreak(BreakType.PAGE);
|
document.createParagraph().createRun().addBreak(BreakType.PAGE);
|
||||||
}
|
}
|
||||||
@@ -895,16 +914,87 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
|
|||||||
XWPFDocument document) {
|
XWPFDocument document) {
|
||||||
//封面标识
|
//封面标识
|
||||||
String flag = "cover";
|
String flag = "cover";
|
||||||
String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月";
|
|
||||||
|
|
||||||
titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
|
String year = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[0];
|
||||||
|
String mothNew = lawsMonthlyReportWriteEOS.get(0).getMonth().split("-")[1];
|
||||||
|
int mothLast = Integer.valueOf(mothNew) + 1;
|
||||||
|
String moth = mothNew+"/"+year;
|
||||||
|
String mothNewEn = getMothEn(mothNew);
|
||||||
|
String mothLastEn = getMothEn(String.valueOf(mothLast));
|
||||||
|
|
||||||
|
// String moth = lawsMonthlyReportWriteEOS.get(0).getMonth().replaceAll("-", "年") + "月";
|
||||||
|
|
||||||
|
titleCN = "\r\n\r\n" + titleCN + "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n";
|
||||||
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18,
|
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 18,
|
||||||
false, false, "Blue Sky Noto Regular",null,null,flag);
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12,
|
WordUtil.exportWord(document, moth, null, ParagraphAlignment.CENTER, 0, 12,
|
||||||
false, false, "Blue Sky Noto Regular",null,null,flag);
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//添加说明 Update between July 15, 2022 and August 14, 2022
|
||||||
|
String text = "Update between "+mothNewEn+" 15,"+year+" and "+mothLastEn+" 14,"+year;
|
||||||
|
WordUtil.exportWord(document, text, null, ParagraphAlignment.CENTER, 0, 11,
|
||||||
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
|
//添加换行
|
||||||
|
WordUtil.exportWord(document, "\r\n", null, ParagraphAlignment.CENTER, 0, null,
|
||||||
|
false, false, null,null,null,flag);
|
||||||
|
|
||||||
|
//添加说明 编辑: 整车工程 - 法规与认证&环保与材料科团队
|
||||||
|
String text1 = "Edit By: Regulation & Homologation, Environmental & Materials Team";
|
||||||
|
WordUtil.exportWord(document, text1, null, ParagraphAlignment.CENTER, 0, 11,
|
||||||
|
false, false, "Blue Sky Noto Regular",null,null,flag);
|
||||||
|
|
||||||
//添加下一页
|
//添加下一页
|
||||||
document.createParagraph().createRun().addBreak(BreakType.PAGE);
|
document.createParagraph().createRun().addBreak(BreakType.PAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getMothEn(String moth){
|
||||||
|
String result = "";
|
||||||
|
switch (moth) {
|
||||||
|
// 心跳检测
|
||||||
|
case "1":
|
||||||
|
result = "January";
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
result = "February";
|
||||||
|
break;
|
||||||
|
case "3":
|
||||||
|
result = "March";
|
||||||
|
break;
|
||||||
|
case "4":
|
||||||
|
result = "April";
|
||||||
|
break;
|
||||||
|
case "5":
|
||||||
|
result = "May";
|
||||||
|
break;
|
||||||
|
case "6":
|
||||||
|
result = "June";
|
||||||
|
break;
|
||||||
|
case "7":
|
||||||
|
result = "July";
|
||||||
|
break;
|
||||||
|
case "8":
|
||||||
|
result = "August";
|
||||||
|
break;
|
||||||
|
case "9":
|
||||||
|
result = "September";
|
||||||
|
break;
|
||||||
|
case "10":
|
||||||
|
result = "October";
|
||||||
|
break;
|
||||||
|
case "11":
|
||||||
|
result = "November";
|
||||||
|
break;
|
||||||
|
case "12":
|
||||||
|
result = "December";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
private void wordContent(List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
|
private void wordContent(List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
|
||||||
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS,
|
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS,
|
||||||
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList,
|
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList,
|
||||||
|
|||||||
+1
-1
@@ -1040,7 +1040,7 @@ public class WordUtil {
|
|||||||
for (String s : lawsContact.split(",")) {
|
for (String s : lawsContact.split(",")) {
|
||||||
List<LoginUser> loginUserList = collect.stream().filter(e -> e.getId().equals(s)).collect(Collectors.toList());
|
List<LoginUser> loginUserList = collect.stream().filter(e -> e.getId().equals(s)).collect(Collectors.toList());
|
||||||
if(loginUserList.size() != 0){
|
if(loginUserList.size() != 0){
|
||||||
sb.append(loginUserList.get(0).getUsername()+",");
|
sb.append(loginUserList.get(0).getRealname()+",");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(com.jero.modules.system.util.StringUtils.isNotBlank(sb)){
|
if(com.jero.modules.system.util.StringUtils.isNotBlank(sb)){
|
||||||
|
|||||||
@@ -1225,6 +1225,7 @@ module.exports = {
|
|||||||
documentNumber: 'Document Number',
|
documentNumber: 'Document Number',
|
||||||
documentTitle: 'Document Title',
|
documentTitle: 'Document Title',
|
||||||
bringInDocumentInformation: 'Bring in document information',
|
bringInDocumentInformation: 'Bring in document information',
|
||||||
|
addStandardInformation:'Add standard information',
|
||||||
thereWhichCannotDeleted: 'There are sub headings under this title, which cannot be deleted',
|
thereWhichCannotDeleted: 'There are sub headings under this title, which cannot be deleted',
|
||||||
sdt: 'Sdt',
|
sdt: 'Sdt',
|
||||||
dre: 'Dre',
|
dre: 'Dre',
|
||||||
|
|||||||
@@ -1327,6 +1327,7 @@ module.exports = {
|
|||||||
documentNumber: '文档编号',
|
documentNumber: '文档编号',
|
||||||
documentTitle: '文档标题',
|
documentTitle: '文档标题',
|
||||||
bringInDocumentInformation: '带入文档信息',
|
bringInDocumentInformation: '带入文档信息',
|
||||||
|
addStandardInformation:'添加标准信息',
|
||||||
thereWhichCannotDeleted: '该标题下存在子标题无法进行删除',
|
thereWhichCannotDeleted: '该标题下存在子标题无法进行删除',
|
||||||
sdt: '工程接口人',
|
sdt: '工程接口人',
|
||||||
dre: '填写人',
|
dre: '填写人',
|
||||||
|
|||||||
@@ -1,16 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="box-title-text" v-if="!isInput">
|
<div class="itemModelStand-select" v-if="!isInput">
|
||||||
<a-input class="box-input" :value="value" @input="indexclick($event)"
|
<a-select
|
||||||
:disabled="true"
|
class="itemModelStand-input"
|
||||||
:title="value"
|
:value="valueSelect"
|
||||||
:placeholder="$t('PleaseSelect')+query.db_field_txt"/>
|
@change="onChange"
|
||||||
|
mode="multiple"
|
||||||
|
:disabled="disabled"
|
||||||
|
:placeholder="$t('PleaseSelect')+query.db_field_txt"
|
||||||
|
:getPopupContainer="triggerNode=> triggerNode.parentNode">
|
||||||
|
<a-select-option
|
||||||
|
v-for="(item,index) in dictOptions"
|
||||||
|
:key="index"
|
||||||
|
:value="item.value">
|
||||||
|
<span class="itemOption" :title="item.title">
|
||||||
|
{{ item.title }}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
<!-- <a-input class="box-input" :value="value" @input="indexclick($event)"-->
|
||||||
|
<!-- :disabled="true"-->
|
||||||
|
<!-- :title="value"-->
|
||||||
|
<!-- :placeholder="$t('PleaseSelect')+query.db_field_txt"/>-->
|
||||||
<a-button type="primary" class="button-box" :disabled="disabled" @click="standardClick">
|
<a-button type="primary" class="button-box" :disabled="disabled" @click="standardClick">
|
||||||
{{this.$t('PersonnelSelection')}}
|
{{this.$t('PersonnelSelection')}}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="primary" v-if='isDelete' class="button-box" @click="standardDelete">
|
<!-- <a-button type="primary" v-if='isDelete' class="button-box" @click="standardDelete">-->
|
||||||
{{this.$t('delete')}}
|
<!-- {{this.$t('delete')}}-->
|
||||||
</a-button>
|
<!-- </a-button>-->
|
||||||
</div>
|
</div>
|
||||||
<div class="box-title-text" v-if="isInput">
|
<div class="box-title-text" v-if="isInput">
|
||||||
<a-input :class="{'box-input':!isClass}" :value="value"
|
<a-input :class="{'box-input':!isClass}" :value="value"
|
||||||
@@ -71,7 +88,6 @@
|
|||||||
<a-button @click="handleSubmit" type="primary">{{$t('submit')}}</a-button>
|
<a-button @click="handleSubmit" type="primary">{{$t('submit')}}</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -91,6 +107,8 @@
|
|||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
gData: [],
|
gData: [],
|
||||||
|
valueSelect: [],
|
||||||
|
dictOptions: [],
|
||||||
autoExpandParent: false,
|
autoExpandParent: false,
|
||||||
checkboxList: [],
|
checkboxList: [],
|
||||||
expandedKeys: [],
|
expandedKeys: [],
|
||||||
@@ -111,7 +129,35 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.valueSelect = []
|
||||||
|
this.dictOptions = []
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.value) {
|
||||||
|
let contentName = []
|
||||||
|
let contentId = []
|
||||||
|
if (this.personneQuery[this.query.db_field_name + 'Name']) {
|
||||||
|
contentName = this.personneQuery[this.query.db_field_name + 'Name'].split(',')
|
||||||
|
} else if (this.personneQuery[this.query.db_field_name]) {
|
||||||
|
contentName = this.personneQuery[this.query.db_field_name].split(',')
|
||||||
|
} else {
|
||||||
|
contentName = []
|
||||||
|
}
|
||||||
|
if (this.personneQuery[this.query.db_field_name + '_id']) {
|
||||||
|
contentId = this.personneQuery[this.query.db_field_name + '_id'].split(',')
|
||||||
|
} else if (this.personneQuery[this.query.db_field_name]) {
|
||||||
|
contentId = this.personneQuery[this.query.db_field_name].split(',')
|
||||||
|
} else {
|
||||||
|
contentId = []
|
||||||
|
}
|
||||||
|
contentId.forEach((res, index) => {
|
||||||
|
this.dictOptions.push({
|
||||||
|
value: res,
|
||||||
|
title: contentName[index]
|
||||||
|
})
|
||||||
|
this.valueSelect.push(res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 600)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// checkChange(val, checked, indeterminate) {
|
// checkChange(val, checked, indeterminate) {
|
||||||
@@ -314,6 +360,28 @@
|
|||||||
this.visible = false
|
this.visible = false
|
||||||
this.treeVisible = false
|
this.treeVisible = false
|
||||||
},
|
},
|
||||||
|
onChange(value) {
|
||||||
|
this.valueSelect = value
|
||||||
|
console.log(this.valueSelect)
|
||||||
|
console.log(this.dictOptions)
|
||||||
|
this.userIds = []
|
||||||
|
this.userName = []
|
||||||
|
if (this.valueSelect && this.valueSelect.length > 0) {
|
||||||
|
value.forEach(res => {
|
||||||
|
this.dictOptions.forEach(val => {
|
||||||
|
if (res == val.value) {
|
||||||
|
this.userIds.push(val.value)
|
||||||
|
this.userName.push(val.title)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let userIds = JSON.parse(JSON.stringify(this.userIds))
|
||||||
|
let userName = JSON.parse(JSON.stringify(this.userName))
|
||||||
|
console.log(userIds)
|
||||||
|
this.$emit('input', userName.join(','))
|
||||||
|
this.$emit('change', this.query.db_field_name, userIds.join(','), this.query.subscript)
|
||||||
|
},
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
// if (this.userIds && this.userIds.length > 0) {
|
// if (this.userIds && this.userIds.length > 0) {
|
||||||
if (this.isSingleChoice) {
|
if (this.isSingleChoice) {
|
||||||
@@ -330,6 +398,19 @@
|
|||||||
// userIds = userIds.filter(function(item, index) {
|
// userIds = userIds.filter(function(item, index) {
|
||||||
// return userIds.indexOf(item) === index // 因为indexOf 只能查找到第一个
|
// return userIds.indexOf(item) === index // 因为indexOf 只能查找到第一个
|
||||||
// })
|
// })
|
||||||
|
if (!this.isInput) {
|
||||||
|
this.dictOptions = []
|
||||||
|
this.valueSelect = []
|
||||||
|
if (userIds && userIds.length > 0) {
|
||||||
|
userIds.forEach((res, index) => {
|
||||||
|
this.dictOptions.push({
|
||||||
|
title: userName[index],
|
||||||
|
value: res
|
||||||
|
})
|
||||||
|
this.valueSelect.push(res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
this.$emit('input', userName.join(','))
|
this.$emit('input', userName.join(','))
|
||||||
this.$emit('change', this.query.db_field_name, userIds.join(','), this.query.subscript)
|
this.$emit('change', this.query.db_field_name, userIds.join(','), this.query.subscript)
|
||||||
this.visible = false
|
this.visible = false
|
||||||
@@ -514,11 +595,18 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.itemModelStand-input {
|
||||||
|
width: calc(100% - 100px);
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
.button-box {
|
.button-box {
|
||||||
|
width: 90px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
height: 38px;
|
height: 38px;
|
||||||
line-height: 38px;
|
line-height: 38px;
|
||||||
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.drawer-bootom-button {
|
.drawer-bootom-button {
|
||||||
@@ -590,4 +678,18 @@
|
|||||||
color: #21c9cc;
|
color: #21c9cc;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.itemOption {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.itemModelStand-select .ant-select-dropdown--multiple {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -150,6 +150,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" :prop="item.db_field_name">
|
<a-form-model-item class="itemModel" :prop="item.db_field_name">
|
||||||
<PersonnelSelection :query="item"
|
<PersonnelSelection :query="item"
|
||||||
|
v-if="isFormInline"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
|
|||||||
+1
@@ -34,6 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="chargePersonIdName">
|
<a-form-model-item class="itemModel" prop="chargePersonIdName">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
|
v-if="visible"
|
||||||
:isSingleChoice="true"
|
:isSingleChoice="true"
|
||||||
:query="{db_field_name:'chargePersonId',db_field_txt:$t('personCharge')}"
|
:query="{db_field_name:'chargePersonId',db_field_txt:$t('personCharge')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
|||||||
+18
-9
@@ -32,11 +32,12 @@
|
|||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="Required">*</span>
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text"
|
<span class="title-text-text"
|
||||||
:title="$t('classification')">{{$t('classification')}}</span>
|
:title="$t('problemClassification')">{{$t('problemClassification')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="problemType">
|
<a-form-model-item class="itemModel itemModel-multi" prop="problemType">
|
||||||
<a-select :placeholder="$t('PleaseSelect')+$t('classification')"
|
<a-select :placeholder="$t('PleaseSelect')+$t('problemClassification')"
|
||||||
@change="problemTypeChange"
|
@change="problemTypeChange"
|
||||||
|
mode="multiple"
|
||||||
v-model="formInline.problemType">
|
v-model="formInline.problemType">
|
||||||
<a-select-option v-for="(item, key) in problemTypeList"
|
<a-select-option v-for="(item, key) in problemTypeList"
|
||||||
:key="key"
|
:key="key"
|
||||||
@@ -94,7 +95,7 @@
|
|||||||
<span class="Required">*</span>
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text" :title="$t('authorizedUser')">{{$t('authorizedUser')}}</span>
|
<span class="title-text-text" :title="$t('authorizedUser')">{{$t('authorizedUser')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="studioEngineerName">
|
<a-form-model-item class="itemModel-multi" prop="studioEngineerName">
|
||||||
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('authorizedUser')}"
|
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('authorizedUser')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
@@ -125,9 +126,9 @@
|
|||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
<a-button class="box-button-index"
|
<a-button class="box-button-index"
|
||||||
:title="$t('bringInDocumentInformation')"
|
:title="$t('addStandardInformation')"
|
||||||
type="primary" @click="bringInDocumentInformationClick">
|
type="primary" @click="bringInDocumentInformationClick">
|
||||||
{{$t('bringInDocumentInformation')}}
|
{{$t('addStandardInformation')}}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -356,7 +357,7 @@
|
|||||||
document.title = this.$t('problemKnowledgeBase') + this.$t('edit')
|
document.title = this.$t('problemKnowledgeBase') + this.$t('edit')
|
||||||
} else {
|
} else {
|
||||||
this.isDisplayIndex = true
|
this.isDisplayIndex = true
|
||||||
this.$nextTick(()=>{
|
this.$nextTick(() => {
|
||||||
this.myQuillEditor()
|
this.myQuillEditor()
|
||||||
})
|
})
|
||||||
document.title = this.$t('problemKnowledgeBase') + this.$t('newlyAdded')
|
document.title = this.$t('problemKnowledgeBase') + this.$t('newlyAdded')
|
||||||
@@ -476,6 +477,11 @@
|
|||||||
} else {
|
} else {
|
||||||
this.formInline.standNumber = []
|
this.formInline.standNumber = []
|
||||||
}
|
}
|
||||||
|
if (this.formInline.problemType) {
|
||||||
|
this.formInline.problemType = this.formInline.problemType.split(',')
|
||||||
|
} else {
|
||||||
|
this.formInline.problemType = []
|
||||||
|
}
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
} else {
|
} else {
|
||||||
this.formInline = {}
|
this.formInline = {}
|
||||||
@@ -491,7 +497,7 @@
|
|||||||
this.$router.go(-1)
|
this.$router.go(-1)
|
||||||
},
|
},
|
||||||
onEditorReady(quill) {
|
onEditorReady(quill) {
|
||||||
if (this.formInlineOne.content){
|
if (this.formInlineOne.content) {
|
||||||
document.getElementsByClassName('ql-editor')[0].innerHTML = this.formInlineOne.content
|
document.getElementsByClassName('ql-editor')[0].innerHTML = this.formInlineOne.content
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -600,9 +606,12 @@
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
let formInline = JSON.parse(JSON.stringify(this.formInline))
|
let formInline = JSON.parse(JSON.stringify(this.formInline))
|
||||||
// if (formInline.standNumber && formInline.standNumber.length > 0) {
|
// if (formInline.standNumber && formInline.standNumber.length > 0) {
|
||||||
if (formInline.standNumber instanceof Array){
|
if (formInline.standNumber instanceof Array) {
|
||||||
formInline.standNumber = formInline.standNumber.join(',')
|
formInline.standNumber = formInline.standNumber.join(',')
|
||||||
}
|
}
|
||||||
|
if (formInline.problemType instanceof Array) {
|
||||||
|
formInline.problemType = formInline.problemType.join(',')
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
|
|||||||
+41
-14
@@ -65,16 +65,16 @@
|
|||||||
{{val}}
|
{{val}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-content" @click="detailClcik(item)">
|
<div class="content-box-content">
|
||||||
<div class="content-box-content-top" v-html="item.contentOne">
|
<div class="content-box-content-top" @click="detailClcik(item)"
|
||||||
|
v-html="item.contentOne">
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-content-botton">
|
<div class="content-box-content-botton">
|
||||||
<div class="content-box-content-botton-text"
|
<div class="content-box-content-botton-text"
|
||||||
v-if="item.accessoryFileNameList && item.accessoryFileNameList.length > 0"
|
v-if="item.accessoryFileNameList && item.accessoryFileNameList.length > 0"
|
||||||
:title="val.fileName"
|
:title="val.fileName"
|
||||||
v-for="val in item.accessoryFileNameList">
|
v-for="val in item.accessoryFileNameList">
|
||||||
{{val.fileName}}
|
<span @click="fileClick(val)">{{val.fileName}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,9 +85,13 @@
|
|||||||
<a-icon type="user"/>
|
<a-icon type="user"/>
|
||||||
{{item.createBy}}
|
{{item.createBy}}
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-button-text">
|
<div class="content-box-button-text" v-if="item.standNumber">
|
||||||
<a-icon type="audit"/>
|
<a-icon type="audit"/>
|
||||||
{{item.problemTypeName}}
|
{{item.standNumber}}
|
||||||
|
</div>
|
||||||
|
<div class="content-box-button-text" v-if="item.targetMarket_dicText">
|
||||||
|
<a-icon type="idcard"/>
|
||||||
|
{{item.targetMarket_dicText}}
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-button-text">
|
<div class="content-box-button-text">
|
||||||
<a-icon type="history"/>
|
<a-icon type="history"/>
|
||||||
@@ -170,6 +174,7 @@
|
|||||||
import SelectedBy from '@/components/SelectedBy/index'
|
import SelectedBy from '@/components/SelectedBy/index'
|
||||||
import problemKnowledgeBaseListView from './problemKnowledgeBaseListView'
|
import problemKnowledgeBaseListView from './problemKnowledgeBaseListView'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
import { Base64 } from 'js-base64'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'problemKnowledgeBaseList',
|
name: 'problemKnowledgeBaseList',
|
||||||
@@ -193,6 +198,7 @@
|
|||||||
queryForm: {},
|
queryForm: {},
|
||||||
tagList: [],
|
tagList: [],
|
||||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
|
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
url: {
|
url: {
|
||||||
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page'
|
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page'
|
||||||
@@ -255,6 +261,26 @@
|
|||||||
this.getList()
|
this.getList()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
fileClick(fileQuery) {
|
||||||
|
let fileName = fileQuery.fileName
|
||||||
|
let index1 = fileName.lastIndexOf('.')
|
||||||
|
let index2 = fileName.length
|
||||||
|
let fileSuffix = fileName.substring(index1, index2)
|
||||||
|
if (fileSuffix == '.pdf') {
|
||||||
|
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
|
||||||
|
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
|
||||||
|
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||||
|
window.open(url, '_blank')
|
||||||
|
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
|
||||||
|
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||||
|
window.open(url, '_blank')
|
||||||
|
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
|
||||||
|
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id + fileSuffix)
|
||||||
|
window.open(url, '_blank')
|
||||||
|
} else {
|
||||||
|
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
||||||
|
}
|
||||||
|
},
|
||||||
problemKnowledgeBase() {
|
problemKnowledgeBase() {
|
||||||
this.pageNo = 1
|
this.pageNo = 1
|
||||||
this.isTrue = true
|
this.isTrue = true
|
||||||
@@ -309,7 +335,8 @@
|
|||||||
},
|
},
|
||||||
getText(str) {
|
getText(str) {
|
||||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||||
return words.replace(/\s/g, '') //这里是去除空格
|
//.replace(/\s/g, '') //这里是去除空格
|
||||||
|
return words
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
let selectedTags = JSON.parse(JSON.stringify(this.selectedTags))
|
let selectedTags = JSON.parse(JSON.stringify(this.selectedTags))
|
||||||
@@ -629,7 +656,7 @@
|
|||||||
background: #DBF2F3;
|
background: #DBF2F3;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
margin-left: 6px;
|
margin-left: 6px;
|
||||||
max-width: 120px;
|
max-width: 140px;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -662,22 +689,22 @@
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
.content-box-content-botton-text {
|
.content-box-content-botton-text {
|
||||||
max-width: 198px;
|
/*max-width: 198px;*/
|
||||||
height: 32px;
|
height: 32px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
padding: 0 10px;
|
/*background: #EFF1F3;*/
|
||||||
background: #EFF1F3;
|
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #040B29;
|
color: #040B29;
|
||||||
margin-right: 10px;
|
margin-right: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -789,7 +816,7 @@
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
background: rgba(4, 11, 41, 0.06);
|
background: rgba(4, 11, 41, 0.06);
|
||||||
color: #363C54;
|
color: #363C54;
|
||||||
max-width: 150px;
|
max-width: 280px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
|||||||
+69
-12
@@ -33,9 +33,13 @@
|
|||||||
<a-icon type="user"/>
|
<a-icon type="user"/>
|
||||||
{{queryForm.createBy}}
|
{{queryForm.createBy}}
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-button-text">
|
<div class="content-box-button-text" v-if="queryForm.standNumber">
|
||||||
<a-icon type="audit"/>
|
<a-icon type="file-markdown"/>
|
||||||
{{queryForm.problemTypeName}}
|
{{queryForm.standNumber}}
|
||||||
|
</div>
|
||||||
|
<div class="content-box-button-text" v-if="queryForm.targetMarket_dicText">
|
||||||
|
<a-icon type="idcard"/>
|
||||||
|
{{queryForm.targetMarket_dicText}}
|
||||||
</div>
|
</div>
|
||||||
<div class="content-box-button-text">
|
<div class="content-box-button-text">
|
||||||
<a-icon type="history"/>
|
<a-icon type="history"/>
|
||||||
@@ -96,8 +100,16 @@
|
|||||||
<div class="commentContent-content">
|
<div class="commentContent-content">
|
||||||
{{item.commentContent}}
|
{{item.commentContent}}
|
||||||
</div>
|
</div>
|
||||||
<div class="answer-text" style="margin-bottom: 14px" @click="messageClick(item)">
|
<div class="answer-text-index"
|
||||||
{{$t('answer')}}
|
style="margin-bottom: 14px">
|
||||||
|
<span class="answer-text" @click="messageClick(item)">
|
||||||
|
{{$t('answer')}}
|
||||||
|
</span>
|
||||||
|
<span class="answer-text"
|
||||||
|
v-if="administrators || item.createBy == userInfoQuery.username"
|
||||||
|
@click="deleteClick(item)">
|
||||||
|
{{$t('delete')}}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="commentContent-text-one" v-for="(val,index1) in item.problemKnowledgeBaseCommentVOList"
|
<div class="commentContent-text-one" v-for="(val,index1) in item.problemKnowledgeBaseCommentVOList"
|
||||||
v-if="item.problemKnowledgeBaseCommentVOList && item.problemKnowledgeBaseCommentVOList.length > 0">
|
v-if="item.problemKnowledgeBaseCommentVOList && item.problemKnowledgeBaseCommentVOList.length > 0">
|
||||||
@@ -109,8 +121,15 @@
|
|||||||
<div class="commentContent-content">
|
<div class="commentContent-content">
|
||||||
{{val.commentContent}}
|
{{val.commentContent}}
|
||||||
</div>
|
</div>
|
||||||
<div class="answer-text" @click="messageClick(item)">
|
<div class="answer-text-index">
|
||||||
|
<span class="answer-text" @click="messageClick(item)">
|
||||||
{{$t('answer')}}
|
{{$t('answer')}}
|
||||||
|
</span>
|
||||||
|
<span class="answer-text"
|
||||||
|
v-if="administrators || val.createBy == userInfoQuery.username"
|
||||||
|
@click="deleteClick(val)">
|
||||||
|
{{$t('delete')}}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -158,6 +177,7 @@
|
|||||||
import SelectedBy from '@/components/SelectedBy/index'
|
import SelectedBy from '@/components/SelectedBy/index'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { Base64 } from 'js-base64'
|
import { Base64 } from 'js-base64'
|
||||||
|
import { deleteAction } from '../../../../api/manage'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'problemKnowledgeBaseListView',
|
name: 'problemKnowledgeBaseListView',
|
||||||
@@ -167,6 +187,8 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visibleComment: false,
|
visibleComment: false,
|
||||||
|
administrators: false,
|
||||||
|
userInfoQuery: {},
|
||||||
releaseList: [],
|
releaseList: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
formInline: {},
|
formInline: {},
|
||||||
@@ -205,7 +227,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.administrators = false
|
||||||
|
this.userInfoQuery = this.userInfo()
|
||||||
|
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||||
|
this.userInfo().userRoleList.forEach(res => {
|
||||||
|
if (res.roleCode == 'admin') {
|
||||||
|
this.administrators = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapGetters(['userInfo']),
|
...mapGetters(['userInfo']),
|
||||||
@@ -229,6 +259,28 @@
|
|||||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
deleteClick(item) {
|
||||||
|
let _this = this
|
||||||
|
this.$confirm({
|
||||||
|
content: _this.$t('ConfirmDelete'),
|
||||||
|
onOk() {
|
||||||
|
let url = ''
|
||||||
|
if (item.problemKnowledgeBaseId) {
|
||||||
|
url = '/problemKnowledgeBase/problemKnowledgeBaseCommentEO/deleteBatch'
|
||||||
|
} else {
|
||||||
|
url = '/project/problemKnowledgeBaseReplyEO/deleteBatch'
|
||||||
|
}
|
||||||
|
deleteAction(url, { ids: item.id }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
_this.$message.success(_this.$t('OperationSuccessful'))
|
||||||
|
_this.releaseData()
|
||||||
|
} else {
|
||||||
|
_this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
download(item) {
|
download(item) {
|
||||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id, userName: this.userInfo().username })
|
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id, userName: this.userInfo().username })
|
||||||
},
|
},
|
||||||
@@ -494,22 +546,22 @@
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|
||||||
.content-box-content-botton-text {
|
.content-box-content-botton-text {
|
||||||
max-width: 200px;
|
/*max-width: 200px;*/
|
||||||
/*min-width: 120px;*/
|
/*min-width: 120px;*/
|
||||||
height: 32px;
|
height: 32px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
padding: 0 10px;
|
/*padding: 0 10px;*/
|
||||||
background: #EFF1F3;
|
/*background: #EFF1F3;*/
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-size: 12px;
|
font-size: 14px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #040B29;
|
color: #040B29;
|
||||||
margin-right: 10px;
|
margin-right: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.file-text {
|
.file-text {
|
||||||
@@ -517,6 +569,7 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
text-decoration: underline;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -632,6 +685,10 @@
|
|||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.answer-text-index {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.answer-text {
|
.answer-text {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 3px 14px;
|
padding: 3px 14px;
|
||||||
|
|||||||
+20
-6
@@ -3,9 +3,9 @@
|
|||||||
<div class="doc-detail-wrap">
|
<div class="doc-detail-wrap">
|
||||||
<div class="doc-detail-header" style="position: fixed;top: 0">
|
<div class="doc-detail-header" style="position: fixed;top: 0">
|
||||||
<div class="doc-detail-title">
|
<div class="doc-detail-title">
|
||||||
<!-- <span style="line-height: 66px;display: inline-block;float: left" @click="backClick">-->
|
<!-- <span style="line-height: 66px;display: inline-block;float: left" @click="backClick">-->
|
||||||
<!-- <a-icon type="arrow-left" style="margin-right: 6px;"/>-->
|
<!-- <a-icon type="arrow-left" style="margin-right: 6px;"/>-->
|
||||||
<!-- </span>-->
|
<!-- </span>-->
|
||||||
{{$t('managePublishing')}}
|
{{$t('managePublishing')}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -42,8 +42,10 @@
|
|||||||
{{item.contentOne}}
|
{{item.contentOne}}
|
||||||
</div>
|
</div>
|
||||||
<div class="text-text-right-text">
|
<div class="text-text-right-text">
|
||||||
<a style="margin-right: 10px" @click="edit(item)">{{$t('edit')}}</a>
|
<a style="margin-right: 10px" @click="edit(item)"
|
||||||
<a @click="deleteData(item)">{{$t('delete')}}</a>
|
v-if="userInfoQuery.username == item.createBy || administrators">{{$t('edit')}}</a>
|
||||||
|
<a @click="deleteData(item)"
|
||||||
|
v-if="userInfoQuery.username == item.createBy || administrators">{{$t('delete')}}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,8 +87,10 @@
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
searchStr: '',
|
searchStr: '',
|
||||||
loading: false,
|
loading: false,
|
||||||
|
administrators: false,
|
||||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
|
userInfoQuery: {},
|
||||||
url: {
|
url: {
|
||||||
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page',
|
getInfoList: '/problemKnowledgeBase/problemKnowledgeBaseEO/page',
|
||||||
deleteBatch: '/problemKnowledgeBase/problemKnowledgeBaseEO/deleteBatch'
|
deleteBatch: '/problemKnowledgeBase/problemKnowledgeBaseEO/deleteBatch'
|
||||||
@@ -96,6 +100,15 @@
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
document.title = this.$t('managePublishing')
|
document.title = this.$t('managePublishing')
|
||||||
|
this.administrators = false
|
||||||
|
this.userInfoQuery = this.userInfo()
|
||||||
|
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
|
||||||
|
this.userInfo().userRoleList.forEach(res => {
|
||||||
|
if (res.roleCode == 'admin') {
|
||||||
|
this.administrators = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapGetters(['userInfo']),
|
...mapGetters(['userInfo']),
|
||||||
@@ -119,7 +132,8 @@
|
|||||||
},
|
},
|
||||||
getText(str) {
|
getText(str) {
|
||||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||||
return words.replace(/\s/g, '') //这里是去除空格
|
//.replace(/\s/g, '') //这里是去除空格
|
||||||
|
return words
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
let query = {
|
let query = {
|
||||||
|
|||||||
+1
-1
@@ -255,7 +255,7 @@
|
|||||||
<span class="Required" v-if="!disabled">*</span>
|
<span class="Required" v-if="!disabled">*</span>
|
||||||
<span class="title-text-text" :title="$t('regulatoryContact')">{{$t('regulatoryContact')}}</span>
|
<span class="title-text-text" :title="$t('regulatoryContact')">{{$t('regulatoryContact')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="lawsContactName">
|
<a-form-model-item class="itemModel-multi" prop="lawsContactName">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'lawsContact',db_field_txt:$t('regulatoryContact')}"
|
:query="{db_field_name:'lawsContact',db_field_txt:$t('regulatoryContact')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
|||||||
+2
-1
@@ -205,7 +205,8 @@
|
|||||||
},
|
},
|
||||||
getText(str) {
|
getText(str) {
|
||||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||||
return words.replace(/\s/g, '') //这里是去除空格
|
//.replace(/\s/g, '') //这里是去除空格
|
||||||
|
return words
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
let query = {
|
let query = {
|
||||||
|
|||||||
@@ -155,6 +155,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" :prop="item.db_field_name">
|
<a-form-model-item class="itemModel" :prop="item.db_field_name">
|
||||||
<PersonnelSelection :query="item"
|
<PersonnelSelection :query="item"
|
||||||
|
v-if="visible"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
|
|||||||
+9
-5
@@ -91,7 +91,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="Remarks">
|
<div class="Remarks">
|
||||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
<a-form-model :model="formInline"
|
||||||
|
class="formAdd" :rules="rules"
|
||||||
|
ref="ruleForm">
|
||||||
<div class="box-title-text-Remarks">
|
<div class="box-title-text-Remarks">
|
||||||
<div class="title-text-Remarks" :title="$t('comparativeComments')">
|
<div class="title-text-Remarks" :title="$t('comparativeComments')">
|
||||||
<span>{{$t('comparativeComments')}}</span>
|
<span>{{$t('comparativeComments')}}</span>
|
||||||
@@ -99,7 +101,7 @@
|
|||||||
<a-form-model-item class="itemModel" prop="comment">
|
<a-form-model-item class="itemModel" prop="comment">
|
||||||
<a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')"
|
<a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')"
|
||||||
v-model="formInline.comment"
|
v-model="formInline.comment"
|
||||||
:rows="4"/>
|
:rows="3"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
</a-form-model>
|
</a-form-model>
|
||||||
@@ -536,7 +538,7 @@
|
|||||||
.detail-content-left {
|
.detail-content-left {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
float: left;
|
float: left;
|
||||||
height: 620px;
|
height: calc(100vh - 210px);
|
||||||
border-right: 2px #EFF1F3 solid;
|
border-right: 2px #EFF1F3 solid;
|
||||||
padding: 24px 32px;
|
padding: 24px 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -545,7 +547,7 @@
|
|||||||
|
|
||||||
.detail-content-right {
|
.detail-content-right {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 620px;
|
height: calc(100vh - 210px);
|
||||||
float: left;
|
float: left;
|
||||||
padding: 24px 32px;
|
padding: 24px 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@@ -593,6 +595,7 @@
|
|||||||
.Remarks {
|
.Remarks {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
|
display: inline-block;
|
||||||
padding: 0 32px;
|
padding: 0 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
@@ -602,7 +605,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.submit-button {
|
.submit-button {
|
||||||
width: 100%;
|
display: inline-block;
|
||||||
|
width: 50%;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 0 32px;
|
padding: 0 32px;
|
||||||
|
|||||||
@@ -222,7 +222,8 @@
|
|||||||
},
|
},
|
||||||
getText(str) {
|
getText(str) {
|
||||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||||
return words.replace(/\s/g, '') //这里是去除空格
|
//.replace(/\s/g, '') //这里是去除空格
|
||||||
|
return words
|
||||||
},
|
},
|
||||||
getParagraphInfoList() {
|
getParagraphInfoList() {
|
||||||
let queryParamIndex = JSON.parse(JSON.stringify(this.queryParam))
|
let queryParamIndex = JSON.parse(JSON.stringify(this.queryParam))
|
||||||
|
|||||||
@@ -201,7 +201,8 @@
|
|||||||
},
|
},
|
||||||
getText(str) {
|
getText(str) {
|
||||||
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
let words = str.replace(/<[^<>]+>/g, '').replace(/ /gi, '') //这里是去除标签
|
||||||
return words.replace(/\s/g, '') //这里是去除空格
|
//.replace(/\s/g, '') //这里是去除空格
|
||||||
|
return words
|
||||||
},
|
},
|
||||||
getList() {
|
getList() {
|
||||||
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
|
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
|
||||||
|
|||||||
@@ -205,9 +205,10 @@
|
|||||||
<span class="title-text-text"
|
<span class="title-text-text"
|
||||||
:title="$t('Administrativeprivileges')">{{$t('Administrativeprivileges')}}</span>
|
:title="$t('Administrativeprivileges')">{{$t('Administrativeprivileges')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="authManageIdsName">
|
<a-form-model-item class="itemModel-multi" prop="authManageIdsName">
|
||||||
<PersonnelSelection class="box-input add-input"
|
<PersonnelSelection class="box-input add-input"
|
||||||
:personneQuery="form"
|
:personneQuery="form"
|
||||||
|
v-if="menuRightVisible"
|
||||||
:selectDepartment="true"
|
:selectDepartment="true"
|
||||||
:query="{db_field_name:'authManageIds',db_field_txt:$t('Administrativeprivileges')}"
|
:query="{db_field_name:'authManageIds',db_field_txt:$t('Administrativeprivileges')}"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
@@ -223,9 +224,10 @@
|
|||||||
<span class="title-text-text"
|
<span class="title-text-text"
|
||||||
:title="$t('Checkthepermissions')">{{$t('Checkthepermissions')}}</span>
|
:title="$t('Checkthepermissions')">{{$t('Checkthepermissions')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="authViewIdsName">
|
<a-form-model-item class="itemModel-multi" prop="authViewIdsName">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
class="box-input add-input"
|
class="box-input add-input"
|
||||||
|
v-if="menuRightVisible"
|
||||||
:selectDepartment="true"
|
:selectDepartment="true"
|
||||||
:personneQuery="form"
|
:personneQuery="form"
|
||||||
:query="{db_field_name:'authViewIds',db_field_txt:$t('Checkthepermissions')}"
|
:query="{db_field_name:'authViewIds',db_field_txt:$t('Checkthepermissions')}"
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'userId',db_field_txt:$t('engineer')}"
|
:query="{db_field_name:'userId',db_field_txt:$t('engineer')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
v-if="visible"
|
||||||
:distributionEngineerList="distributionEngineerList"
|
:distributionEngineerList="distributionEngineerList"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
v-model="formInline.userIdName"/>
|
v-model="formInline.userIdName"/>
|
||||||
|
|||||||
@@ -93,10 +93,11 @@
|
|||||||
<span class="Required">*</span>
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>
|
<span class="title-text-text" :title="$t('StudioEngineer')">{{$t('StudioEngineer')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" :prop="'studioEngineerName'">
|
<a-form-model-item class="itemModel-multi" :prop="'studioEngineerName'">
|
||||||
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('StudioEngineer')}"
|
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('StudioEngineer')}"
|
||||||
:isSingleChoice="true"
|
:isSingleChoice="true"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
v-if="visible"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
v-model="formInline.studioEngineerName"/>
|
v-model="formInline.studioEngineerName"/>
|
||||||
@@ -108,10 +109,11 @@
|
|||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" :prop="'certificationEngineerName'">
|
<a-form-model-item class="itemModel-multi" :prop="'certificationEngineerName'">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'certificationEngineer',db_field_txt:$t('certifiedEngineer')}"
|
:query="{db_field_name:'certificationEngineer',db_field_txt:$t('certifiedEngineer')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
v-if="visible"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
v-model="formInline.certificationEngineerName"/>
|
v-model="formInline.certificationEngineerName"/>
|
||||||
|
|||||||
@@ -176,8 +176,9 @@
|
|||||||
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- :prop="'lawEngineerName'"-->
|
<!-- :prop="'lawEngineerName'"-->
|
||||||
<a-form-model-item class="itemModel">
|
<a-form-model-item class="itemModel-multi">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
|
v-if="editVisible"
|
||||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
:isDelete='true'
|
:isDelete='true'
|
||||||
@@ -196,8 +197,9 @@
|
|||||||
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- :prop="'engineeringInterfacePersonName'"-->
|
<!-- :prop="'engineeringInterfacePersonName'"-->
|
||||||
<a-form-model-item class="itemModel">
|
<a-form-model-item class="itemModel-multi">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
|
v-if="editVisible"
|
||||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
:isDelete='true'
|
:isDelete='true'
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
v-if="visible"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
v-model="formInline.lawEngineerName"/>
|
v-model="formInline.lawEngineerName"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
v-if="visible"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
v-model="formInline.engineeringInterfacePersonName"/>
|
v-model="formInline.engineeringInterfacePersonName"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
<a-col :span='9'>
|
<a-col :span='9'>
|
||||||
<a-form-model-item class="itemAddAdmin" :label="$t('title')" prop='title'>
|
<a-form-model-item class="itemAddAdmin" :label="$t('title')" prop='title'>
|
||||||
<a-input style='width: 420px'
|
<a-input style='width: 420px'
|
||||||
|
class='box-input'
|
||||||
:placeholder="$t('PleaseEnter')+$t('title')"
|
:placeholder="$t('PleaseEnter')+$t('title')"
|
||||||
v-model='formData.title'/>
|
v-model='formData.title'/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
</a-row>
|
</a-row>
|
||||||
<a-row :gutter='24'>
|
<a-row :gutter='24'>
|
||||||
<a-col :span='9'>
|
<a-col :span='9'>
|
||||||
<div class="box-title-text" style="margin-left: -58px;">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
<!-- <span class="Required">*</span>-->
|
<!-- <span class="Required">*</span>-->
|
||||||
<span class="title-text-text" :title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
|
<span class="title-text-text" :title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
|
||||||
@@ -34,9 +35,9 @@
|
|||||||
<!-- :disabled="disabled"-->
|
<!-- :disabled="disabled"-->
|
||||||
<!-- v-model="formInline[item.db_field_name]"-->
|
<!-- v-model="formInline[item.db_field_name]"-->
|
||||||
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
|
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
|
||||||
<!-- <a-input-->
|
<!-- <a-input-->
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
|
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
|
||||||
<!-- v-model='form.paramsTemplateName'/>-->
|
<!-- v-model='form.paramsTemplateName'/>-->
|
||||||
<j-dict-select-tag class='box-input' v-model='form.region'
|
<j-dict-select-tag class='box-input' v-model='form.region'
|
||||||
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
|
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
|
||||||
:type="'select'"
|
:type="'select'"
|
||||||
@@ -44,14 +45,14 @@
|
|||||||
:triggerChange='false' :dictCode="'region'"/>
|
:triggerChange='false' :dictCode="'region'"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
<!-- <a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>-->
|
<!-- <a-form-model-item ref='region' :label="$t('zoneOfApplication')" prop='region'>-->
|
||||||
<!-- <a-form-model-item class='itemModel' prop='region'>-->
|
<!-- <a-form-model-item class='itemModel' prop='region'>-->
|
||||||
<!-- <j-dict-select-tag class='box-input' v-model='form.region'-->
|
<!-- <j-dict-select-tag class='box-input' v-model='form.region'-->
|
||||||
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
|
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
|
||||||
<!-- :type="'select'"-->
|
<!-- :type="'select'"-->
|
||||||
<!-- :triggerChange='false' :dictCode="'region'"/>-->
|
<!-- :triggerChange='false' :dictCode="'region'"/>-->
|
||||||
<!-- </a-form-model-item>-->
|
<!-- </a-form-model-item>-->
|
||||||
<!-- </a-form-model-item>-->
|
<!-- </a-form-model-item>-->
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span='9'>
|
<a-col :span='9'>
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
@@ -65,16 +66,17 @@
|
|||||||
<!-- v-model="formInline[item.db_field_name]"-->
|
<!-- v-model="formInline[item.db_field_name]"-->
|
||||||
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
|
<!-- :placeholder="$t('PleaseEnter')+item.db_field_txt"/>-->
|
||||||
<a-input
|
<a-input
|
||||||
|
class='box-input'
|
||||||
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
|
:placeholder="$t('PleaseEnter')+$t('parameterTemplate')"
|
||||||
:title="$t('PleaseSelect')+$t('parameterTemplate')"
|
:title="$t('PleaseSelect')+$t('parameterTemplate')"
|
||||||
v-model='form.paramsTemplateName'/>
|
v-model='form.paramsTemplateName'/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
<!-- <a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>-->
|
<!-- <a-form-model-item ref='paramsTemplateName' :label="$t('parameterTemplate')" prop='paramsTemplateName'>-->
|
||||||
<!-- <a-input-->
|
<!-- <a-input-->
|
||||||
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
|
<!-- :placeholder="$t('PleaseEnter')+$t('parameterTemplate')"-->
|
||||||
<!-- v-model='form.paramsTemplateName'/>-->
|
<!-- v-model='form.paramsTemplateName'/>-->
|
||||||
<!-- </a-form-model-item>-->
|
<!-- </a-form-model-item>-->
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span='6' style='margin-top: 5px'>
|
<a-col :span='6' style='margin-top: 5px'>
|
||||||
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
|
<a-button class='box-button' type='primary' @click='searchQuery'>{{ $t('query') }}</a-button>
|
||||||
@@ -92,7 +94,7 @@
|
|||||||
:dataSource='areaTable'
|
:dataSource='areaTable'
|
||||||
:pagination='false'
|
:pagination='false'
|
||||||
:loading='loading'
|
:loading='loading'
|
||||||
:scroll='{x: 600}'
|
:scroll='{x: 600,y:300}'
|
||||||
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
|
||||||
@change='handleTableChange'>
|
@change='handleTableChange'>
|
||||||
</a-table>
|
</a-table>
|
||||||
@@ -376,13 +378,14 @@
|
|||||||
|
|
||||||
.drawer-bootom-button {
|
.drawer-bootom-button {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Required {
|
.Required {
|
||||||
color: red;
|
color: red;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-title-text {
|
.box-title-text {
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -390,7 +393,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.title-text {
|
.title-text {
|
||||||
width: 114px;
|
width: 85px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -410,7 +413,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.itemModel {
|
.itemModel {
|
||||||
width: calc(100% - 130px);
|
width: calc(100% - 101px);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
@@ -466,6 +469,10 @@
|
|||||||
line-height: 6px;
|
line-height: 6px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.box-button {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang='less'>
|
<style lang='less'>
|
||||||
.area-module {
|
.area-module {
|
||||||
@@ -481,7 +488,7 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
.itemAddAdmin .ant-form-item-control-wrapper .has-error .ant-form-explain {
|
.itemAddAdmin .ant-form-item-control-wrapper .has-error .ant-form-explain {
|
||||||
white-space: nowrap!important;
|
white-space: nowrap !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user