Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangzhijiang
2022-02-28 18:42:54 +08:00
36 changed files with 953 additions and 250 deletions
@@ -123,7 +123,7 @@
<select id="getFieldList" resultType="com.jero.generater.modules.online.cgform.entity.OnlCgformField"> <select id="getFieldList" resultType="com.jero.generater.modules.online.cgform.entity.OnlCgformField">
select * from onl_cgform_field ocf select * from onl_cgform_field ocf
left join onl_cgform_head och on ocf.cgform_head_id = och.id left join onl_cgform_head och on ocf.cgform_head_id = och.id
where table_name =#{tableName} where table_name =#{tableName} and is_delete = 0
order by order_num asc order by order_num asc
</select> </select>
@@ -815,7 +815,7 @@ public class OnlCgformFieldServiceImpl extends ServiceImpl<OnlCgformFieldMapper,
public List<OnlCgformField> getFieldList(String flag){ public List<OnlCgformField> getFieldList(String flag){
List<OnlCgformField> fieldList = new ArrayList<>(); List<OnlCgformField> fieldList = new ArrayList<>();
if(ModuleEnum.DOCUMENT_LIBRARY.getValue().equals(flag)){ if(ModuleEnum.DOCUMENT_LIBRARY.getValue().equals(flag)){
fieldList = onlCgformFieldMapper.getFieldList(TableEnum.BUSS_DOCUMENT_LIBRARY.getTable()); fieldList = onlCgformFieldMapper.getFieldList(TableEnum.BUSS_DOCUMENT_LIBRARY.getTable()+" ");
}else if(ModuleEnum.OCR_RECORD.getValue().equals(flag)){ }else if(ModuleEnum.OCR_RECORD.getValue().equals(flag)){
fieldList = onlCgformFieldMapper.getFieldList(TableEnum.OCR_RECORD.getTable()); fieldList = onlCgformFieldMapper.getFieldList(TableEnum.OCR_RECORD.getTable());
}else if(ModuleEnum.ONL_CGFORM_TAG.getValue().equals(flag)){ }else if(ModuleEnum.ONL_CGFORM_TAG.getValue().equals(flag)){
@@ -91,7 +91,8 @@ public class SysDict implements Serializable {
/** /**
* 是否为标签内容-数据字典(1是 0否) * 是否为标签内容-数据字典(1是 0否)
*/ */
@Excel(name = "展示区域", width = 15, dictTable = "sys_dict", dicText = "is_tag_dict", dicCode = "is_tag_dict") @Excel(name = "是否为标签内容", width = 15)/*, dictTable = "sys_dict", dicText = "is_tag_dict", dicCode = "is_tag_dict")
@Dict(dictTable = "onl_cgform_field", dicText = "is_tag_dict", dicCode = "is_tag_dict")*/
private java.lang.Integer isTagDict; private java.lang.Integer isTagDict;
/** /**
@@ -83,8 +83,8 @@ public class SysDictItem implements Serializable {
private Date updateTime; private Date updateTime;
/**是否为标签内容-数据字典(1是 0否)*/ /**是否为标签内容-数据字典(1是 0否)*/
@Excel(name = "展示区域", width = 15, dictTable = "sys_dict", dicText = "is_tag_dict", dicCode = "is_tag_dict") @Excel(name = "是否为标签内容", width = 15)/*, dictTable = "sys_dict", dicText = "is_tag_dict", dicCode = "is_tag_dict")
@Dict(dictTable = "onl_cgform_field", dicText = "is_tag_dict", dicCode = "is_tag_dict") @Dict(dictTable = "onl_cgform_field", dicText = "is_tag_dict", dicCode = "is_tag_dict")*/
private java.lang.Integer isTagDict; private java.lang.Integer isTagDict;
/**是否是只读(2字段固定,内部可配1固定字段 0非固定字段)*/ /**是否是只读(2字段固定,内部可配1固定字段 0非固定字段)*/
@@ -117,6 +117,20 @@ public class BussDocumentLibraryEOController extends JeroController<BussDocument
return Result.OK(infoPage); return Result.OK(infoPage);
} }
/**
* ocr识别调取已入库文件
* @param parameter
* @return
*/
@AutoLog(value = "ocr识别调取已入库文件分页")
@ApiOperation(value="ocr识别调取已入库文件", notes="ocr识别调取已入库文件")
@PostMapping(value = "/ocrPageInfo")
@ResponseBody
public Result<?> ocrPageInfo(@RequestBody Map<String,Object> parameter) {
IPage infoPage = bussDocumentLibraryEOService.ocrPageInfo(parameter);
return Result.OK(infoPage);
}
/** /**
* 列表查询 * 列表查询
* *
@@ -242,6 +256,20 @@ public class BussDocumentLibraryEOController extends JeroController<BussDocument
return Result.OK(list); return Result.OK(list);
} }
/**
* ocr识别调取已入库文件-中英文切换
* @param flag 标识传 1-->用于查询文档库字段属性
* @return
*/
@AutoLog(value = "文档库信息表-ocr表头和查询条件")
@ApiOperation(value="文档库信息表-ocr表头和查询条件", notes="文档库信息表-ocr表头和查询条件")
@GetMapping(value = "/getHeaderOrConditionForOcr")
public Result<List<Map<String,Object>>> getHeaderOrConditionForOcr(@RequestParam(name="flag",required=true) String flag,
@RequestParam(name="cut",required=true) String cut) {
List<Map<String, Object>> list = bussDocumentLibraryEOService.getHeaderOrConditionForOcr(flag,cut);
return Result.OK(list);
}
/** /**
* 编辑数据查询 * 编辑数据查询
* @param id * @param id
@@ -55,5 +55,17 @@ public interface BussDocumentLibraryEOMapper extends BaseMapper<BussDocumentLibr
@Param("field") String field, @Param("field") String field,
@Param("condition") String condition); @Param("condition") String condition);
/**
* ocr识别调取已入库文件分页
*
* @param page
* @param field
* @param condition
* @return
*/
IPage ocrPageInfo(@Param("page") IPage page,
@Param("field") String field,
@Param("condition") String condition);
} }
@@ -54,5 +54,10 @@
select ${field} from buss_document_library select ${field} from buss_document_library
${condition} ${condition}
</select> </select>
<!--ocr识别调取已入库文件分页-->
<select id="ocrPageInfo" resultType="java.util.LinkedHashMap">
select ${field}
${condition}
</select>
</mapper> </mapper>
@@ -110,6 +110,13 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
*/ */
IPage replacePageInfo(Map<String,Object> parameter); IPage replacePageInfo(Map<String,Object> parameter);
/**
* ocr识别调取已入库文件分页
* @param parameter
* @return
*/
IPage ocrPageInfo(Map<String,Object> parameter);
/** /**
* 添加收藏 * 添加收藏
* @param id * @param id
@@ -156,5 +163,12 @@ public interface IBussDocumentLibraryEOService extends IService<BussDocumentLibr
*/ */
void exportTemplate(Map<String,Object> map,HttpServletResponse response, HttpServletRequest request); void exportTemplate(Map<String,Object> map,HttpServletResponse response, HttpServletRequest request);
/**
* ocr识别调取已入库文件-中英文切换
* @param flag
* @param cut
* @return
*/
List<Map<String, Object>> getHeaderOrConditionForOcr(String flag, String cut);
} }
@@ -21,6 +21,7 @@ import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.log.entity.BussLogEO; import com.jero.modules.log.entity.BussLogEO;
import com.jero.modules.log.service.IBussLogEOService; import com.jero.modules.log.service.IBussLogEOService;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe; import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
@@ -249,10 +250,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} }
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
for (OnlCgformArea onlCgformAreaTemp : areaList) { for (OnlCgformArea onlCgformAreaTemp : areaList) {
String areaName = "";
if(CutEnum.CN.getValue().equals(cut)){
areaName = onlCgformAreaTemp.getShowArea();
}else{
areaName = onlCgformAreaTemp.getEnName();
}
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList()); List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldListTemp) { for (OnlCgformField onlCgformField : fieldListTemp) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", onlCgformAreaTemp.getShowArea()); mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName);
map.put("field_must_input", onlCgformField.getFieldMustInput());//区域 map.put("field_must_input", onlCgformField.getFieldMustInput());//区域
result.add(map); result.add(map);
} }
@@ -757,27 +764,31 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//查询内容 //查询内容
String field = " id,serial_number,title,state"; String field = " id,serial_number,title,state";
//查询条件 //需求变更,搜索条件有原来的编码和标题改为和文档库一致
StringBuilder conditionSb = new StringBuilder("where 1 = 1"); // //查询条件
// StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//编码 //
String serialNumber = (String) parameter.get("serialNumber"); // //编码
// String serialNumber = (String) parameter.get("serialNumber");
//标题 //
String title = (String) parameter.get("title"); // //标题
if (StringUtils.isNotBlank(serialNumber)) { // String title = (String) parameter.get("title");
conditionSb.append(" and " + "serial_number" + " like concat(concat('%','" + serialNumber + "'),'%')"); // if (StringUtils.isNotBlank(serialNumber)) {
} // conditionSb.append(" and " + "serial_number" + " like concat(concat('%','" + serialNumber + "'),'%')");
if (StringUtils.isNotBlank(title)) { // }
conditionSb.append(" and " + "title" + " like concat(concat('%','" + title + "'),'%')"); // if (StringUtils.isNotBlank(title)) {
} // conditionSb.append(" and " + "title" + " like concat(concat('%','" + title + "'),'%')");
// }
conditionSb.append(" order by create_time desc"); //
// conditionSb.append(" order by create_time desc");
//封装查询条件
String condition = getConditionStr(parameter);
int pageNo = Integer.parseInt(parameter.get("pageNo").toString()); int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
int pageSize = Integer.parseInt(parameter.get("pageSize").toString()); int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize); IPage page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.replacePageInfo(page, field, conditionSb.toString()); // IPage infoPage = bussDocumentLibraryEOMapper.replacePageInfo(page, field, conditionSb.toString());
IPage infoPage = bussDocumentLibraryEOMapper.replacePageInfo(page, field, condition);
//数据字典 //数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll(); List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
@@ -801,6 +812,100 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return infoPage; return infoPage;
} }
/**
* ocr识别调取已入库文件分页
*
* @param parameter
* @return
*/
public IPage ocrPageInfo(Map<String, Object> parameter) {
//需要查询的字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1");
fieldList = fieldList.stream().filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
List<String> fileFieldList = fieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
//查询字段
StringBuilder fieldSb = new StringBuilder();
StringBuilder join = new StringBuilder();
int i = 1;
if (ObjectUtils.isNotEmpty(fileFieldList)) {
for (String fileField : fileFieldList) {
fieldSb.append("bdl." + fileField + ",");
if (i == 1) {
join.append(" on of.connect_id = bdl." + fileField);
i++;
continue;
}
join.append(" or of.connect_id = bdl." + fileField);
}
}
String fieldStr = fieldSb.substring(0, fieldSb.length() - 1);
String field = " bdl.id,bdl.serial_number,bdl.title,bdl.state,of.file_name,of.connect_id," + fieldStr
+ " from oss_file of join buss_document_library bdl" + join.toString();
//查询条件
StringBuilder conditionSb = new StringBuilder("where 1 = 1");
//编码
String serialNumber = (String) parameter.get("serialNumber");
//标题
String title = (String) parameter.get("title");
//状态
String stateTemp = (String) parameter.get("state");
if (StringUtils.isNotBlank(serialNumber)) {
conditionSb.append(" and " + "serial_number" + " like concat(concat('%','" + serialNumber + "'),'%')");
}
if (StringUtils.isNotBlank(title)) {
conditionSb.append(" and " + "title" + " like concat(concat('%','" + title + "'),'%')");
}
if (StringUtils.isNotBlank(stateTemp)) {
conditionSb.append(" and " + "state" + " ='" + stateTemp + "'");
}
conditionSb.append(" order by bdl.create_time desc");
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
IPage page = new Page(pageNo, pageSize);
IPage infoPage = bussDocumentLibraryEOMapper.ocrPageInfo(page, field, conditionSb.toString());
List records = infoPage.getRecords();
//数据字典
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
//下拉选处理数据字典
for (Object record : records) {
Map<String, Object> record1 = (Map) record;
String key = "";
for (Map.Entry<String, Object> entry : record1.entrySet()) {
//状态数据字典
if ("state".equals(entry.getKey())) {
List<SysDictItem> stateList = sysDictItems.stream()
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals("state"))
.collect(Collectors.toList());
List<SysDictItem> state = stateList.stream().filter(e -> e.getItemValue().equals(entry.getValue())).collect(Collectors.toList());
if (state.size() != 0) {
entry.setValue(state.get(0).getItemText());
}
}
//添加文本信息
String connectId = (String) record1.get("connect_id");
if (connectId.equals(entry.getValue())) {
key = entry.getKey();
}
}
String finalKey = key;
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> e.getDbFieldName().equals(finalKey)).collect(Collectors.toList());
record1.put("text_info", onlCgformFieldList.get(0).getDbFieldTxt());
}
return infoPage;
}
public IPage getInfoPage(Map<String, Object> parameter) { public IPage getInfoPage(Map<String, Object> parameter) {
//需要查询的字段 //需要查询的字段
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1"); List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList("1");
@@ -921,6 +1026,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
*/ */
private void collectAndSubscribe(List<Map> records, List<String> idList) { private void collectAndSubscribe(List<Map> records, List<String> idList) {
//收藏 //收藏
if (idList.size() == 0) {
return;
}
LambdaQueryWrapper<OnlCgformCollection> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OnlCgformCollection> wrapper = new LambdaQueryWrapper<>();
wrapper.in(OnlCgformCollection::getDocumentId, idList); wrapper.in(OnlCgformCollection::getDocumentId, idList);
List<OnlCgformCollection> collectList = iOnlCgformCollectionService.list(wrapper); List<OnlCgformCollection> collectList = iOnlCgformCollectionService.list(wrapper);
@@ -1068,7 +1176,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
*/ */
@Override @Override
public void exportExcel(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request) { public void exportExcel(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request) {
String flag = "file"; //String flag = "file"为带文件导出标识
String flag = (String) map.get("flag");
// String flag = "file";
OutputStream os = null; OutputStream os = null;
Workbook workbook = new XSSFWorkbook(); Workbook workbook = new XSSFWorkbook();
try { try {
@@ -1092,7 +1202,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
&& !"sys_org_code".equals(e.getDbFieldName()) && !"sys_org_code".equals(e.getDbFieldName())
&& !"warn_flag".equals(e.getDbFieldName())).collect(Collectors.toList()); && !"warn_flag".equals(e.getDbFieldName())).collect(Collectors.toList());
//只导出数据时,过滤掉文件类型 //只导出数据时,过滤掉文件类型
if(!"file".equals(flag)){ if (!"file".equals(flag)) {
fieldListTemp = fieldListTemp.stream().filter(e -> !FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList()); fieldListTemp = fieldListTemp.stream().filter(e -> !FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
} }
headerFieldList = fieldListTemp.stream().map(OnlCgformField::getDbFieldTxt).collect(Collectors.toList()); headerFieldList = fieldListTemp.stream().map(OnlCgformField::getDbFieldTxt).collect(Collectors.toList());
@@ -1118,15 +1228,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
// 创建数据 // 创建数据
createDatas(workbook, sheet, datas, header, fieldListTemp); createDatas(workbook, sheet, datas, header, fieldListTemp);
if(!"file".equals(flag)){ if (!"file".equals(flag)) {
//不带文件导出 //不带文件导出
os = response.getOutputStream(); os = response.getOutputStream();
workbook.write(os); workbook.write(os);
os.flush(); os.flush();
}else{ } else {
String path = uploadpath + "/tempZip"; String path = uploadpath + "/tempZip";
File fileTemp = new File(path); File fileTemp = new File(path);
if (fileTemp.exists()){ if (fileTemp.exists()) {
fileTemp.delete(); fileTemp.delete();
} }
fileTemp.mkdirs(); fileTemp.mkdirs();
@@ -1142,34 +1252,34 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<String> fileFieldList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); List<String> fileFieldList = onlCgformFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
for (Map<String, Object> data : datas) { for (Map<String, Object> data : datas) {
if(StringUtils.isBlank((String) data.get("serial_number"))){ if (StringUtils.isBlank((String) data.get("serial_number"))) {
continue; continue;
} }
String fileNowPath = uploadpath + "/tempZip/" + (String) data.get("serial_number"); String fileNowPath = uploadpath + "/tempZip/" + (String) data.get("serial_number");
File file = new File(fileNowPath); File file = new File(fileNowPath);
if (file.exists()){ if (file.exists()) {
file.delete(); file.delete();
} }
file.mkdirs(); file.mkdirs();
List<String> valueList = new ArrayList<>(); List<String> valueList = new ArrayList<>();
for (String field : fileFieldList) { for (String field : fileFieldList) {
String value = (String) data.get(field); String value = (String) data.get(field);
if(StringUtils.isNotBlank(value)){ if (StringUtils.isNotBlank(value)) {
valueList.add(value); valueList.add(value);
} }
} }
//每一个编号下的所有的文件 //每一个编号下的所有的文件
if(valueList.size()!= 0){ if (valueList.size() != 0) {
List<OSSFile> fileInfosList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(valueList, ",")); List<OSSFile> fileInfosList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(valueList, ","));
for (OSSFile ossFile : fileInfosList) { for (OSSFile ossFile : fileInfosList) {
String url = ossFile.getUrl(); String url = ossFile.getUrl();
copyFile(url, fileNowPath+ "/"+ossFile.getFileName()); copyFile(url, fileNowPath + "/" + ossFile.getFileName());
} }
} }
} }
ZipUtil.zip(path,path+".zip"); ZipUtil.zip(path, path + ".zip");
//文件 //文件
FileInputStream fis = new FileInputStream(path+".zip"); FileInputStream fis = new FileInputStream(path + ".zip");
os = response.getOutputStream(); os = response.getOutputStream();
int len = 0; int len = 0;
@@ -1202,14 +1312,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (Map<String, Object> data : datas) { for (Map<String, Object> data : datas) {
for (OnlCgformField onlCgformField : fileFieldList) { for (OnlCgformField onlCgformField : fileFieldList) {
String value = (String) data.get(onlCgformField.getDbFieldName()); String value = (String) data.get(onlCgformField.getDbFieldName());
if(StringUtils.isNotBlank(value)){ if (StringUtils.isNotBlank(value)) {
connectIdList.add(value); connectIdList.add(value);
} }
} }
} }
//所有的文件信息 //所有的文件信息
List<OSSFile> fileInfos = new ArrayList<>(); List<OSSFile> fileInfos = new ArrayList<>();
if(connectIdList.size() != 0){ if (connectIdList.size() != 0) {
fileInfos = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectIdList, ",")); fileInfos = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectIdList, ","));
} }
@@ -1233,20 +1343,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (ObjectUtils.isNotEmpty(data.get(onlCgformField.getDbFieldName()))) { if (ObjectUtils.isNotEmpty(data.get(onlCgformField.getDbFieldName()))) {
value = sdf.format(data.get(onlCgformField.getDbFieldName())); value = sdf.format(data.get(onlCgformField.getDbFieldName()));
} }
}else if(FieldTypeEnum.FILE.getValue().equals(onlCgformField.getFieldShowType())){ } else if (FieldTypeEnum.FILE.getValue().equals(onlCgformField.getFieldShowType())) {
//处理文件名称(由connect_id转化为文件名) //处理文件名称(由connect_id转化为文件名)
if(fileInfos.size() != 0){ if (fileInfos.size() != 0) {
List<OSSFile> ossFileList = fileInfos.stream() List<OSSFile> ossFileList = fileInfos.stream()
.filter(e -> e.getConnectId().equals(data.get(onlCgformField.getDbFieldName()))) .filter(e -> e.getConnectId().equals(data.get(onlCgformField.getDbFieldName())))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(ossFileList.size()!= 0){ if (ossFileList.size() != 0) {
List<String> fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); List<String> fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList());
value = StringUtils.join(fileNameList,","); value = StringUtils.join(fileNameList, ",");
}else{ } else {
value = ""; value = "";
} }
} }
}else { } else {
value = (String) data.get(onlCgformField.getDbFieldName()); value = (String) data.get(onlCgformField.getDbFieldName());
} }
row.createCell(sheetNum).setCellValue(value); row.createCell(sheetNum).setCellValue(value);
@@ -1300,6 +1410,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
/** /**
* 带文件导出 * 带文件导出
*
* @param map * @param map
* @param response * @param response
* @param request * @param request
@@ -1308,7 +1419,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
public void exportZip(Map<String, Object> map, public void exportZip(Map<String, Object> map,
HttpServletResponse response, HttpServletResponse response,
HttpServletRequest request) { HttpServletRequest request) {
exportExcel(map,response,request); exportExcel(map, response, request);
} }
@@ -1476,15 +1587,15 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
public static void copyFile(String oldFile, String newFile) throws IOException { public static void copyFile(String oldFile, String newFile) throws IOException {
File file2 = new File(newFile); File file2 = new File(newFile);
if(!file2.exists()){ if (!file2.exists()) {
file2.createNewFile(); file2.createNewFile();
} }
// file2.mkdir(); // file2.mkdir();
File temp = new File(oldFile ); File temp = new File(oldFile);
if (temp.isFile()) { if (temp.isFile()) {
try(FileInputStream in = new FileInputStream(temp); try (FileInputStream in = new FileInputStream(temp);
FileOutputStream ou = new FileOutputStream(newFile);) { FileOutputStream ou = new FileOutputStream(newFile);) {
byte[] bs = new byte[1024]; byte[] bs = new byte[1024];
int count = 0; int count = 0;
@@ -1500,5 +1611,94 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} }
} }
/**
* ocr识别调取已入库文件-中英文切换
* @param flag header-表头,condition-查询条件
* @param cut
* @return
*/
@Override
public List<Map<String, Object>> getHeaderOrConditionForOcr(String flag, String cut) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
Map<String, Object> map2 = new HashMap<>();
Map<String, Object> map3 = new HashMap<>();
Map<String, Object> map4 = new HashMap<>();
Map<String, Object> map5 = new HashMap<>();
if("header".equals(flag)) {
if (CutEnum.CN.getValue().equals(cut)) {
//编号
map1.put("db_field_name", "serial_number");//字段
map1.put("db_field_txt", "编号");//字段中文名
list.add(map1);
//标题
map2.put("db_field_name", "title");//字段
map2.put("db_field_txt", "标题");//字段中文名
list.add(map2);
//状态
map3.put("db_field_name", "state");//字段
map3.put("db_field_txt", "状态");//字段中文名
list.add(map3);
//文件名称
map4.put("db_field_name", "file_name");//字段
map4.put("db_field_txt", "文件名称");//字段中文名
list.add(map4);
//文件信息
map5.put("db_field_name", "text_info");//字段
map5.put("db_field_txt", "文件信息");//字段中文名
list.add(map5);
} else {
//编号
map1.put("db_field_name", "serial_number");//字段
map1.put("db_field_txt", "serial number");//字段中文名
list.add(map1);
//标题
map2.put("db_field_name", "title");//字段
map2.put("db_field_txt", "title");//字段中文名
list.add(map2);
//状态
map3.put("db_field_name", "state");//字段
map3.put("db_field_txt", "state");//字段中文名
list.add(map3);
//文件名称
map4.put("db_field_name", "file_name");//字段
map4.put("db_field_txt", "file name");//字段中文名
list.add(map4);
//文件信息
map5.put("db_field_name", "text_info");//字段
map5.put("db_field_txt", "text info");//字段中文名
list.add(map5);
}
}else if("condition".equals(flag)) {
if (CutEnum.CN.getValue().equals(cut)) {
//编号
map1.put("db_field_name", "serial_number");//字段
map1.put("db_field_txt", "编号");//字段中文名
map1.put("dict_field", "");//数据字典
map1.put("field_show_type", "1");
list.add(map1);
//标题
map2.put("db_field_name", "title");//字段
map2.put("db_field_txt", "标题");//字段中文名
map2.put("dict_field", "");//数据字典
map2.put("field_show_type", "1");
list.add(map2);
} else {
//编号
map1.put("db_field_name", "serial_number");//字段
map1.put("db_field_txt", "serial number");//字段中文名
map1.put("dict_field", "");//数据字典
map1.put("field_show_type", "1");
list.add(map1);
//标题
map2.put("db_field_name", "title");//字段
map2.put("db_field_txt", "title");//字段中文名
map2.put("dict_field", "");//数据字典
map2.put("field_show_type", "1");
list.add(map2);
}
}
return list;
}
} }
@@ -85,6 +85,7 @@ public class OcrRecordEO implements Serializable {
/**转换结果*/ /**转换结果*/
@Excel(name = "转换结果", width = 15) @Excel(name = "转换结果", width = 15)
@Dict(dicCode = "result_content")
@ApiModelProperty(value = "转换结果") @ApiModelProperty(value = "转换结果")
private String resultContent; private String resultContent;
@@ -8,6 +8,7 @@ import com.jero.modules.ocr.entity.OcrRecordEO;
import com.jero.modules.ocr.mapper.OcrRecordEOMapper; import com.jero.modules.ocr.mapper.OcrRecordEOMapper;
import com.jero.modules.ocr.service.IOcrRecordEOService; import com.jero.modules.ocr.service.IOcrRecordEOService;
import com.jero.modules.ocr.util.LineHumpUtil; import com.jero.modules.ocr.util.LineHumpUtil;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -122,7 +123,14 @@ public class OcrRecordEOServiceImpl extends ServiceImpl<OcrRecordEOMapper, OcrRe
if ("update_time".equals(onlCgformField.getDbFieldName())) { if ("update_time".equals(onlCgformField.getDbFieldName())) {
map.put("sort", "true");//列表排序标识 map.put("sort", "true");//列表排序标识
} }
map.put("db_field_name", LineHumpUtil.lineToHump(onlCgformField.getDbFieldName()));//字段
String dbFieldName = onlCgformField.getDbFieldName();
if (StringUtils.isNotBlank(onlCgformField.getDictField())) {
map.put("db_field_name", LineHumpUtil.lineToHump(dbFieldName)+ "_dictText");//配置了数据字典的字段,需要特殊处理
}else{
map.put("db_field_name", LineHumpUtil.lineToHump(dbFieldName));//字段
}
if(CutEnum.CN.getValue().equals(cut)){ if(CutEnum.CN.getValue().equals(cut)){
map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名 map.put("db_field_txt", onlCgformField.getDbFieldTxt());//字段中文名
}else{ }else{
@@ -162,7 +170,7 @@ public class OcrRecordEOServiceImpl extends ServiceImpl<OcrRecordEOMapper, OcrRe
} }
/** /**
* 查询条件中英文切换 * 表单中英文切换
* *
* @return * @return
*/ */
@@ -1,6 +1,7 @@
package com.jero.modules.tag.entity; package com.jero.modules.tag.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@@ -23,7 +24,7 @@ import java.io.Serializable;
* @Version: V1.0 * @Version: V1.0
*/ */
@Data @Data
@TableName("onl_cgform_tag") @TableName("onl_cgform_field")
@Accessors(chain = true) @Accessors(chain = true)
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ApiModel(value="onl_cgform_tag对象", description="标签项管理") @ApiModel(value="onl_cgform_tag对象", description="标签项管理")
@@ -36,64 +37,76 @@ public class OnlCgformTag implements Serializable {
private java.lang.String id; private java.lang.String id;
/**创建人*/ /**创建人*/
@TableField(exist = false)
@ApiModelProperty(value = "创建人") @ApiModelProperty(value = "创建人")
private java.lang.String createBy; private java.lang.String createBy;
/**创建日期*/ /**创建日期*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期") @ApiModelProperty(value = "创建日期")
private java.util.Date createTime; private java.util.Date createTime;
/**更新人*/ /**更新人*/
@TableField(exist = false)
@ApiModelProperty(value = "更新人") @ApiModelProperty(value = "更新人")
private java.lang.String updateBy; private java.lang.String updateBy;
/**更新日期*/ /**更新日期*/
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期") @ApiModelProperty(value = "更新日期")
private java.util.Date updateTime; private java.util.Date updateTime;
/**所属部门*/ /**所属部门*/
@TableField(exist = false)
@ApiModelProperty(value = "所属部门") @ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode; private java.lang.String sysOrgCode;
/**所属模块(1文档库,0文档拆分)*/ /**所属模块(1文档库,0文档拆分)*/
@TableField(exist = false)
@Excel(name = "所属模块(1文档库,0文档拆分", width = 15, dicCode = "module") @Excel(name = "所属模块(1文档库,0文档拆分", width = 15, dicCode = "module")
@Dict(dicCode = "module") @Dict(dicCode = "module")
@ApiModelProperty(value = "所属模块(1文档库,0文档拆分") @ApiModelProperty(value = "所属模块(1文档库,0文档拆分")
private java.lang.String isModel; private java.lang.String isModel;
/**字段备注*/ /**字段备注*/
@Excel(name = "字段备注", width = 15) @Excel(name = "字段备注", width = 15,dictTable = "onl_cgform_field", dicText = "db_field_txt", dicCode = "db_field_txt")
@Dict(dictTable = "onl_cgform_field", dicText = "db_field_txt", dicCode = "db_field_txt")
@ApiModelProperty(value = "字段备注") @ApiModelProperty(value = "字段备注")
private java.lang.String dbFieldTxt; private java.lang.String dbFieldTxt;
/**字段英文名称描述*/ /**字段英文名称描述*/
@Excel(name = "字段英文名称描述", width = 15) @Excel(name = "字段英文名称描述", width = 15,dictTable = "onl_cgform_field", dicText = "db_field_en_name", dicCode = "db_field_en_name")
@Dict(dictTable = "onl_cgform_field", dicText = "db_field_en_name", dicCode = "db_field_en_name")
@ApiModelProperty(value = "字段英文名称描述") @ApiModelProperty(value = "字段英文名称描述")
private java.lang.String dbFieldName; private java.lang.String dbFieldEnName;
/**表单控件类型*/ /**表单控件类型*/
@Excel(name = "表单控件类型", width = 15, dicCode = "field_show_type")
@Dict(dicCode = "field_show_type") @Excel(name = "表单控件类型", width = 15,dictTable = "onl_cgform_field", dicText = "field_show_type",dicCode ="field_show_type")
@Dict(dictTable = "onl_cgform_field", dicText = "field_show_type",dicCode ="field_show_type")
@ApiModelProperty(value = "表单控件类型") @ApiModelProperty(value = "表单控件类型")
private java.lang.String fieldShowType; private java.lang.String fieldShowType;
/**字典名称*/ /**字典名称*/
@TableField(exist = false)
@Excel(name = "字典名称", width = 15, dictTable = "sys_dict", dicText = "dict_name", dicCode = "dict_name") @Excel(name = "字典名称", width = 15, dictTable = "sys_dict", dicText = "dict_name", dicCode = "dict_name")
@Dict(dictTable = "sys_dict", dicText = "dict_name", dicCode = "dict_name") @Dict(dictTable = "sys_dict", dicText = "dict_name", dicCode = "dict_name")
@ApiModelProperty(value = "字典名称") @ApiModelProperty(value = "字典名称")
private java.lang.String dictName; private java.lang.String dictName;
/**数据库字段长度*/ /**数据库字段长度*/
@Excel(name = "数据库字段长度", width = 15) @Excel(name = "数据库字段长度", width = 15,dictTable = "onl_cgform_field", dicText = "db_length", dicCode = "db_length")
@Dict(dictTable = "onl_cgform_field", dicText = "db_length", dicCode = "db_length")
@ApiModelProperty(value = "数据库字段长度") @ApiModelProperty(value = "数据库字段长度")
private java.lang.Integer dbLength; private java.lang.Integer dbLength;
/**排序*/ /**排序*/
@Excel(name = "排序", width = 15) @Excel(name = "排序", width = 15,dictTable = "onl_cgform_field", dicText = "order_num", dicCode = "order_num")
@Dict(dictTable = "onl_cgform_field", dicText = "order_num", dicCode = "order_num")
@ApiModelProperty(value = "排序") @ApiModelProperty(value = "排序")
private java.lang.Integer orderNum; private java.lang.Integer orderNum;
@@ -122,6 +135,7 @@ public class OnlCgformTag implements Serializable {
private java.lang.Integer isReadOnly; private java.lang.Integer isReadOnly;
/**展示区域*/ /**展示区域*/
@TableField(exist = false)
@Excel(name = "展示区域", width = 15, dictTable = "onl_cgform_area", dicText = "show_area", dicCode = "id") @Excel(name = "展示区域", width = 15, dictTable = "onl_cgform_area", dicText = "show_area", dicCode = "id")
@Dict(dictTable = "onl_cgform_area", dicText = "show_area", dicCode = "id") @Dict(dictTable = "onl_cgform_area", dicText = "show_area", dicCode = "id")
@ApiModelProperty(value = "展示区域") @ApiModelProperty(value = "展示区域")
@@ -10,7 +10,7 @@
<result column="sys_org_code" property="sysOrgCode" /> <result column="sys_org_code" property="sysOrgCode" />
<result column="is_model" property="isModel" /> <result column="is_model" property="isModel" />
<result column="db_field_txt" property="dbFieldTxt" /> <result column="db_field_txt" property="dbFieldTxt" />
<result column="db_field_name" property="dbFieldName" /> <result column="db_field_en_name" property="dbFieldEnName" />
<result column="field_show_type" property="fieldShowType" /> <result column="field_show_type" property="fieldShowType" />
<result column="dict_name" property="dictName" /> <result column="dict_name" property="dictName" />
<result column="db_length" property="dbLength" /> <result column="db_length" property="dbLength" />
+1 -1
View File
@@ -1,6 +1,6 @@
/*列表上方操作按钮区域*/ /*列表上方操作按钮区域*/
.ant-card-body .table-operator { .ant-card-body .table-operator {
margin-bottom: 18px; margin-bottom: 29px;
text-align: right; text-align: right;
} }
+19
View File
@@ -170,6 +170,8 @@ module.exports = {
DataRules:'Data rules', DataRules:'Data rules',
menuMnagementPage:'This is the menu management page', menuMnagementPage:'This is the menu management page',
MenuName:'Menu name', MenuName:'Menu name',
MenuEnName:'Menu En name',
enterMenuEnName:'Please enter menu En name',
MenuType:'Menu type', MenuType:'Menu type',
menu:'menu', menu:'menu',
ButtonsPermissions:'Buttons / permissions', ButtonsPermissions:'Buttons / permissions',
@@ -343,4 +345,21 @@ module.exports = {
ModificationTime:'Modification time', ModificationTime:'Modification time',
ModificationContent:'Modification content', ModificationContent:'Modification content',
personnel:'personnel', personnel:'personnel',
dataExport:'Data export',
exportWithFile:'Export with file',
Push:'Push',
templateDownload:'Template download',
textInformation:'Text information',
relatedInformation:'Related information',
RetrieveFiles:'Retrieve received files',
SplitText:'Split received text',
ImportResults:'Import split results',
copy:'copy',
TemplateDownload:'Template download',
MergerClause:'Merger clause',
BatchSetting:'Batch setting',
BatchCancel:'Batch cancel collection',
SubscriptionManagement:'Subscription domain management',
BatchCancellation:'Batch cancellation',
} }
+18
View File
@@ -347,4 +347,22 @@ module.exports = {
ModificationTime:'修改时间', ModificationTime:'修改时间',
ModificationContent:'修改内容', ModificationContent:'修改内容',
personnel:'人员', personnel:'人员',
dataExport:'数据导出',
exportWithFile:'带文件导出',
Push:'推送',
templateDownload:'模板下载',
textInformation:'文本信息',
relatedInformation:'关联信息',
RetrieveFiles:'调取已入库文件',
SplitText:'拆分已入库文本',
ImportResults:'导入拆分结果',
copy:'复制',
TemplateDownload:'模板下载',
MergerClause:'合并条款',
BatchSetting:'批量设置',
BatchCancel:'批量取消收藏',
SubscriptionManagement:'订阅领域管理',
BatchCancellation:'批量取消',
enterMenuEnName:'请输入菜单英文名称',
MenuEnName:'菜单英文名称',
} }
+8 -3
View File
@@ -1,12 +1,13 @@
<template> <template>
<div> <div>
<a-upload name="file" :showUploadList="false" <a-upload name="file" :showUploadList="false"
class="upload-text"
:multiple="false" :headers="tokenHeader" :multiple="false" :headers="tokenHeader"
:action="url.importZipUrl" :action="url.importZipUrl"
@change="handleImportZip" @change="handleImportZip"
accept=".zip"> accept=".zip">
<a-icon type="import" :rotate="270"/> <a-icon type="import" :rotate="270"/>
导入 {{$t('import')}}
</a-upload> </a-upload>
</div> </div>
</template> </template>
@@ -93,6 +94,10 @@
} }
</script> </script>
<style scoped> <style>
.upload-text .ant-upload{
font-size: 14px!important;
font-weight: 400!important;
color: #040B29!important;
}
</style> </style>
@@ -143,7 +143,7 @@
handleSubmit() { handleSubmit() {
let content = [] let content = []
this.content.forEach(res => { this.content.forEach(res => {
content.push(res.name) content.push(res.title)
}) })
this.$emit('input', content.join(',')) this.$emit('input', content.join(','))
this.visible = false this.visible = false
@@ -152,15 +152,15 @@
this.$emit('input', event.target.value) this.$emit('input', event.target.value)
}, },
onSelectChange(value) { onSelectChange(value) {
this.selectedRowKeys = value
this.content = [] this.content = []
value.forEach(val => { value.forEach(val => {
this.data.forEach((res) => { this.dataList.forEach((res) => {
if (res.key === val) { if (res.id === val) {
this.content.push(res) this.content.push(res)
} }
}) })
}) })
this.selectedRowKeys = value
}, },
searchQuery() { searchQuery() {
this.replacePage() this.replacePage()
+16 -15
View File
@@ -7,7 +7,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-input class="box-input" <a-input class="box-input"
@@ -22,7 +22,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-input-number class="box-input" <a-input-number class="box-input"
@@ -37,7 +37,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-dict-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-dict-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -54,7 +54,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -69,7 +69,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-date-picker class="box-input" <a-date-picker class="box-input"
@@ -86,7 +86,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-range-picker class="box-input" v-model="formInline[item.db_field_name]" <a-range-picker class="box-input" v-model="formInline[item.db_field_name]"
@@ -101,7 +101,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-button type="primary" class="button-text" <a-button type="primary" class="button-text"
@@ -118,7 +118,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-textarea <a-textarea
@@ -133,7 +133,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</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"
@@ -147,7 +147,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<StandardSelection :query="item" <StandardSelection :query="item"
@@ -161,7 +161,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-dict-select-tag v-model="formInline[item.db_field_name]" <j-dict-select-tag v-model="formInline[item.db_field_name]"
@@ -177,7 +177,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-tree-select <a-tree-select
@@ -196,7 +196,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -453,6 +453,8 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
height: 42px;
line-height: 42px;
} }
.box-input { .box-input {
@@ -473,8 +475,7 @@
} }
.title-text-text { .title-text-text {
margin-top: 11px; margin-top: 9px;
display: inline-block;
} }
.formAdd { .formAdd {
@@ -12,7 +12,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-input class="box-input" <a-input class="box-input"
@@ -27,7 +27,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-input-number class="box-input" <a-input-number class="box-input"
@@ -42,7 +42,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-dict-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-dict-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -59,7 +59,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -74,7 +74,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-date-picker class="box-input" <a-date-picker class="box-input"
@@ -91,7 +91,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-range-picker class="box-input" v-model="formInline[item.db_field_name]" <a-range-picker class="box-input" v-model="formInline[item.db_field_name]"
@@ -106,7 +106,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-button type="primary" class="button-text" <a-button type="primary" class="button-text"
@@ -123,7 +123,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<a-textarea <a-textarea
@@ -138,7 +138,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</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"
@@ -152,7 +152,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<Standardselection :query="item" <Standardselection :query="item"
@@ -166,7 +166,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-dict-select-tag v-model="formInline[item.db_field_name]" <j-dict-select-tag v-model="formInline[item.db_field_name]"
@@ -179,7 +179,7 @@
</a-col> </a-col>
<a-col :span="12" v-else-if="item.field_show_type === 'treeSelect'"> <a-col :span="12" v-else-if="item.field_show_type === 'treeSelect'">
<div class="box-title-text"> <div class="box-title-text" :title="item.db_field_txt">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text">{{item.db_field_txt}}</span>
@@ -201,7 +201,7 @@
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required" v-if="item.field_must_input == 0">*</span> <span class="Required" v-if="item.field_must_input == 0">*</span>
<span class="title-text-text">{{item.db_field_txt}}</span> <span class="title-text-text" :title="item.db_field_txt">{{item.db_field_txt}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="item.db_field_name"> <a-form-model-item class="itemModel" :prop="item.db_field_name">
<j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]" <j-multi-select-tag class="box-input" v-model="formInline[item.db_field_name]"
@@ -268,15 +268,15 @@
uploadName: '', uploadName: '',
headerText: [ headerText: [
{ {
text: '基本信息', text: this.$t('essentialInformation'),
content: [] content: []
}, },
{ {
text: '文本信息', text: this.$t('textInformation'),
content: [] content: []
}, },
{ {
text: '关联信息', text: this.$t('relatedInformation'),
content: [] content: []
} }
], ],
@@ -545,6 +545,8 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
height: 42px;
line-height: 42px;
} }
.box-input { .box-input {
@@ -565,8 +567,7 @@
} }
.title-text-text { .title-text-text {
margin-top: 11px; margin-top: 9px;
display: inline-block;
} }
.header-text { .header-text {
@@ -690,7 +690,7 @@
.content { .content {
.table-operator { .table-operator {
margin-bottom: 18px; margin-bottom: 29px;
button { button {
margin-right: 8px; margin-right: 8px;
+12 -8
View File
@@ -4,21 +4,21 @@
<a-col :md="6" :sm="8" v-for="(item,index) in searchList" :key="index" style="line-height: 48px"> <a-col :md="6" :sm="8" v-for="(item,index) in searchList" :key="index" style="line-height: 48px">
<template> <template>
<div class="box-title-text" v-if="item.field_show_type == '1'"> <div class="box-title-text" v-if="item.field_show_type == '1'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+item.db_field_txt" <a-input class="box-input" :placeholder="$t('PleaseEnter')+item.db_field_txt"
v-model="queryParam[item.db_field_name]"></a-input> v-model="queryParam[item.db_field_name]"></a-input>
</div> </div>
<div class="box-title-text" v-if="item.field_show_type == '2'"> <div class="box-title-text" v-if="item.field_show_type == '2'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<a-input-number class="box-input" :placeholder="$t('PleaseEnter')+item.db_field_txt" <a-input-number class="box-input" :placeholder="$t('PleaseEnter')+item.db_field_txt"
v-model="queryParam[item.db_field_name]" :min="1" :max="99999999"/> v-model="queryParam[item.db_field_name]" :min="1" :max="99999999"/>
</div> </div>
<div class="box-title-text" v-else-if="item.field_show_type == '4'"> <div class="box-title-text" v-else-if="item.field_show_type == '3'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<j-multi-select-tag class="box-input" v-model="queryParam[item.db_field_name]" <j-multi-select-tag class="box-input" v-model="queryParam[item.db_field_name]"
@@ -26,7 +26,7 @@
:triggerChange="false" :dictCode="item.dict_field"/> :triggerChange="false" :dictCode="item.dict_field"/>
</div> </div>
<div class="box-title-text" v-else-if="item.field_show_type == '6'"> <div class="box-title-text" v-else-if="item.field_show_type == '6'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<a-range-picker class="box-input" v-model="queryParam[item.db_field_name]" <a-range-picker class="box-input" v-model="queryParam[item.db_field_name]"
@@ -34,7 +34,7 @@
@change="onChange(item.db_field_name)"></a-range-picker> @change="onChange(item.db_field_name)"></a-range-picker>
</div> </div>
<div class="box-title-text" v-else-if="item.field_show_type == '5'"> <div class="box-title-text" v-else-if="item.field_show_type == '5'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<a-date-picker class="box-input" <a-date-picker class="box-input"
@@ -42,8 +42,8 @@
@change="dateChange(item.db_field_name)" @change="dateChange(item.db_field_name)"
v-model="queryParam[item.db_field_name]"/> v-model="queryParam[item.db_field_name]"/>
</div> </div>
<div class="box-title-text" v-else-if="item.field_show_type == '3'"> <div class="box-title-text" v-else-if="item.field_show_type == '4'">
<div class="title-text"> <div class="title-text" :title="item.db_field_txt">
<span>{{item.db_field_txt}}</span> <span>{{item.db_field_txt}}</span>
</div> </div>
<j-dict-select-tag class="box-input" v-model="queryParam[item.db_field_name]" <j-dict-select-tag class="box-input" v-model="queryParam[item.db_field_name]"
@@ -135,12 +135,16 @@
.title-text { .title-text {
width: 20%; width: 20%;
min-width: 90px; min-width: 90px;
color: #000F16;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
margin-right: 16px; margin-right: 16px;
margin-top: 3px; margin-top: 3px;
text-align: right; text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
.box-input { .box-input {
+33 -16
View File
@@ -5,30 +5,36 @@
class="table" class="table"
rowKey="id" rowKey="id"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
:pagination="false" :pagination="false"
:scroll="{x: 1600}" :scroll="{x: true}"
:data-source="dataSource" :data-source="dataSource"
:loading="loading" :loading="loading"
:columns="columns"
@change="tableOnChange" @change="tableOnChange"
> >
<span slot="operation" slot-scope="record"> <span slot="operation" slot-scope="record">
<a class="text" v-for="(ol,index) in OperationList" <a class="text" v-for="(ol,index) in OperationList"
@click="OperationClick(ol,record)"> @click="OperationClick(ol,record)">
<span v-if="ol.text == '取消收藏'"> <span v-if="ol.text == '取消收藏'">
{{!record.collectFlag || record.collectFlag == 0 ? '收藏' :'取消收藏'}} {{!record.collectFlag || record.collectFlag == 0 ? '收藏' :'取消收藏'}}
</span> </span>
<span v-else-if="ol.text == '取消订阅'"> <span v-else-if="ol.text == '取消订阅'">
{{!record.subscribeFlag || record.subscribeFlag == 0 ? '订阅' :'取消订阅'}} {{!record.subscribeFlag || record.subscribeFlag == 0 ? '订阅' :'取消订阅'}}
</span> </span>
<span v-else> <span v-else>
{{ol.text}} {{ol.text}}
</span> </span>
</a> </a>
</span> </span>
<span slot="detailClick" slot-scope="text,record"> <span slot="detailClick" slot-scope="text,record">
<a class="text" :title="text" @click="detailClick(record)">{{text}}</a> <a class="text" :title="text" @click="detailClick(record)">{{text}}</a>
</span> </span>
<span slot="detailText" slot-scope="text,record">
<span class="text" :title="text">
{{text.length > 18?text.slice(0,17)+'...':text}}
</span>
</span>
</a-table> </a-table>
</div> </div>
<div class="page" v-if="dataSource.length > 0"> <div class="page" v-if="dataSource.length > 0">
@@ -138,6 +144,10 @@
this.columns[index].scopedSlots = { this.columns[index].scopedSlots = {
customRender: 'detailClick' customRender: 'detailClick'
} }
} else {
this.columns[index].scopedSlots = {
customRender: 'detailText'
}
} }
}) })
let width = 0 let width = 0
@@ -177,6 +187,9 @@
postAction(this.url.tableList, params).then((res) => { postAction(this.url.tableList, params).then((res) => {
if (res.success) { if (res.success) {
this.dataSource = res.result.records this.dataSource = res.result.records
this.dataSource.forEach((val) => {
val.function_territory = val.function_territory + 'dsfsdfs 收到付款了山东黄搞定;分两个地方骨科大夫的咖啡馆里的法国金弗兰克是的积分流口水的房间的斯洛伐克第三方'
})
this.total = res.result.total this.total = res.result.total
this.loading = false this.loading = false
} else { } else {
@@ -209,6 +222,10 @@
.table .ant-table-column-title { .table .ant-table-column-title {
font-weight: bold; font-weight: bold;
} }
.ant-table td {
white-space: nowrap;
}
</style> </style>
<style scoped> <style scoped>
.box { .box {
@@ -29,7 +29,7 @@
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button> <a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button>
<a-button @click="searchReset" icon="reload" style="margin-left: 8px">清空</a-button> <a-button @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</span> </span>
</a-col> </a-col>
</a-row> </a-row>
@@ -40,7 +40,7 @@
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleBatCancel"> <div class="operator-text" @click="handleBatCancel">
<a-icon type="delete" /> <a-icon type="delete" />
批量取消收藏 {{ $t('BatchCancel') }}
</div> </div>
</div> </div>
<div class="colloction-table"> <div class="colloction-table">
@@ -6,23 +6,23 @@
<div class="table-operator"> <div class="table-operator">
<div @click="handleDel" class="operator-text"> <div @click="handleDel" class="operator-text">
<a-icon type="delete"/> <a-icon type="delete"/>
批量删除 {{$t('BatchDelete')}}
</div> </div>
<div @click="handleExport" class="operator-text"> <div @click="handleExport" class="operator-text">
<a-icon type="export" :rotate="-90"/> <a-icon type="export" :rotate="-90"/>
数据导出 {{$t('dataExport')}}
</div> </div>
<div @click="handleFileExport" class="operator-text"> <div @click="handleFileExport" class="operator-text">
<a-icon type="mail"/> <a-icon type="mail"/>
带文件导出 {{$t('exportWithFile')}}
</div> </div>
<div @click="handleCompare" class="operator-text"> <div @click="handleCompare" class="operator-text">
<a-icon type="rocket" :rotate="45"/> <a-icon type="rocket" :rotate="45"/>
推送 {{$t('Push')}}
</div> </div>
<div @click="handleModule" class="operator-text"> <div @click="handleModule" class="operator-text">
<a-icon type="download"/> <a-icon type="download"/>
模板下载 {{$t('templateDownload')}}
</div> </div>
<div class="operator-text"> <div class="operator-text">
<ImportFile :url="url"/> <ImportFile :url="url"/>
@@ -73,9 +73,10 @@
import libraryPush from '@/components/libraryPush/index' import libraryPush from '@/components/libraryPush/index'
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage' import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import eventBUs from '../../../common/event' import eventBUs from '../../../common/event'
import { ACCESS_TOKEN } from "@/store/mutation-types" import { ACCESS_TOKEN } from '@/store/mutation-types'
import ImportFile from '@/components/ImportFile/index' import ImportFile from '@/components/ImportFile/index'
import Vue from 'vue' import Vue from 'vue'
export default { export default {
name: 'docLibrary', name: 'docLibrary',
components: { components: {
@@ -103,11 +104,11 @@
{ {
text: '删除', text: '删除',
ClickEvent: 'deleteTable' ClickEvent: 'deleteTable'
}, }
], ],
selectedRowKeys: [], selectedRowKeys: [],
loading: false, loading: false,
tokenHeader: {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)}, tokenHeader: { 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) },
//url传参严格按照当前命名 //url传参严格按照当前命名
url: { url: {
tableHeader: 'document/bussDocumentLibraryEO/getHeader', //表格头部字段 tableHeader: 'document/bussDocumentLibraryEO/getHeader', //表格头部字段
@@ -118,9 +119,9 @@
updateInfo: 'document/bussDocumentLibraryEO/updateInfo', //编辑 updateInfo: 'document/bussDocumentLibraryEO/updateInfo', //编辑
getDocumentInfo: 'document/bussDocumentLibraryEO/getDocumentInfoById', //查看 getDocumentInfo: 'document/bussDocumentLibraryEO/getDocumentInfoById', //查看
deleteBatch: 'document/bussDocumentLibraryEO/deleteBatch', //删除 deleteBatch: 'document/bussDocumentLibraryEO/deleteBatch', //删除
pullMessage:'document/bussDocumentLibraryEO/pullMessage',//推送 pullMessage: 'document/bussDocumentLibraryEO/pullMessage',//推送
importZipUrl:'document/bussDocumentLibraryEO/importZip',//导入 importZipUrl: 'document/bussDocumentLibraryEO/importZip'//导入
}, },
idList: [] idList: []
} }
}, },
@@ -134,7 +135,7 @@
...this.$refs.searchRef.queryParam, ...this.$refs.searchRef.queryParam,
id: this.idList.join(',') id: this.idList.join(',')
} }
downloadFile('document/bussDocumentLibraryEO/exportExcel', '文档库.xls', query,this.Deselect) downloadFile('document/bussDocumentLibraryEO/exportExcel', '文档库.xls', query, this.Deselect)
}, },
Deselect() { Deselect() {
this.$refs.tableDataRef.selectedRowKeys = [] this.$refs.tableDataRef.selectedRowKeys = []
@@ -146,7 +147,7 @@
...this.$refs.searchRef.queryParam, ...this.$refs.searchRef.queryParam,
id: this.idList.join(',') id: this.idList.join(',')
} }
downloadFile('document/bussDocumentLibraryEO/exportZip', '文档库.zip', query,this.Deselect) downloadFile('document/bussDocumentLibraryEO/exportZip', '文档库.zip', query, this.Deselect)
}, },
//新增 //新增
handleAdd() { handleAdd() {
@@ -272,7 +273,8 @@
<style scoped> <style scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
ddd{
ddd {
background: #fff; background: #fff;
} }
</style> </style>
@@ -7,15 +7,15 @@
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleUpload"> <div class="operator-text" @click="handleUpload">
<a-icon type="plus" /> <a-icon type="plus" />
上传 {{ $t('upload1') }}
</div> </div>
<div class="operator-text" @click="handleFileExport"> <div class="operator-text" @click="handleFileExport">
<a-icon type="export" /> <a-icon type="export" />
调取已入库文件 {{ $t('RetrieveFiles') }}
</div> </div>
<div class="operator-text" @click="handleDel"> <div class="operator-text" @click="handleDel">
<a-icon type="delete" /> <a-icon type="delete" />
批量删除 {{ $t('BatchDelete') }}
</div> </div>
</div> </div>
@@ -4,6 +4,7 @@
class="doc-table-drawer" class="doc-table-drawer"
title="调取已入库文件" title="调取已入库文件"
placement="right" placement="right"
v-if="visible"
:visible="visible" :visible="visible"
:after-visible-change="afterVisibleChange" :after-visible-change="afterVisibleChange"
@close="onClose" @close="onClose"
@@ -11,16 +12,16 @@
> >
<div class="doc-table-content"> <div class="doc-table-content">
<div class="doc-header"> <div class="doc-header">
<a-form layout="inline" @keyup.enter.native="searchQuery(queryParams)"> <a-form layout="inline" v-model="queryParams" @keyup.enter.native="searchQuery(queryParams)">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :md="6" :sm="12"> <a-col :md="6" :sm="12">
<a-form-item :label="'编号'"> <a-form-item :label="'编号'">
<j-input :placeholder="'请输入编号'" v-model="queryParams.standNumber"></j-input> <j-input :placeholder="'请输入编号'" v-model="queryParams.serialNumber"></j-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="12"> <a-col :md="6" :sm="12">
<a-form-item :label="'标题'"> <a-form-item :label="'标题'">
<j-input :placeholder="'请输入标题'" v-model="queryParams.standName"></j-input> <j-input :placeholder="'请输入标题'" v-model="queryParams.title"></j-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
@@ -60,6 +61,7 @@
</template> </template>
<script> <script>
import { getAction, postAction, deleteAction } from '@/api/manage'
export default { export default {
name: 'docTable', name: 'docTable',
props:{ props:{
@@ -72,9 +74,11 @@
visible:false, visible:false,
queryParams:{ queryParams:{
pageNo:1, pageNo:1,
pageSize:10 pageSize:10,
serialNumber:'',
title:''
}, },
currentPage:1, total:0,
ipagination: { ipagination: {
defaultPageSize: 10, defaultPageSize: 10,
defaultCurrent: 1, defaultCurrent: 1,
@@ -99,47 +103,59 @@
}, },
{ {
title:'标准编号', title:'标准编号',
key: 'standNumber', key: 'serial_number',
align:"center", align:"center",
dataIndex: 'standNumber', dataIndex: 'serial_number',
ellipsis: true, ellipsis: true,
}, },
{ {
title:'标题', title:'标题',
key: 'standName', key: 'title',
align:"center", align:"center",
dataIndex: 'standName', dataIndex: 'title',
ellipsis: true, ellipsis: true,
}, },
{ {
title:'文本状态', title:'状态',
key: 'fileType_dictText', key: 'state',
align:"center", align:"center",
dataIndex: 'fileType_dictText', dataIndex: 'state',
ellipsis: true, ellipsis: true,
}, },
{ {
title:'文件名称', title:'文件名称',
key: 'fileName', key: 'file_name',
align:"center", align:"center",
dataIndex: 'fileName', dataIndex: 'file_name',
ellipsis: true, ellipsis: true,
}, },
{ {
title:'文件信息', title:'文件信息',
key: 'fileInfo', key: 'text_info',
align:"center", align:"center",
dataIndex: 'fileInfo', dataIndex: 'text_info',
ellipsis: true, ellipsis: true,
}, },
] ],
} }
}, },
mounted() { mounted() {
this.visible=this.drawVisible this.visible=this.drawVisible
this.tableSource= [...this.drawTableSorce] this.loadData()
// this.tableSource= [...this.drawTableSorce]
}, },
methods: { methods: {
loadData(){
let params={
...this.queryParams
}
postAction(`document/bussDocumentLibraryEO/ocrPageInfo`,params).then(res=>{
if(res.success){
this.total=res.result.total
this.tableSource=[...res.result.records]
}
})
},
afterVisibleChange(val) { afterVisibleChange(val) {
console.log('visible', val); console.log('visible', val);
}, },
@@ -7,15 +7,15 @@
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleModule"> <div class="operator-text" @click="handleModule">
<a-icon type="plus" /> <a-icon type="plus" />
拆分已入库文本 {{ $t('SplitText') }}
</div> </div>
<div class="operator-text" @click="handleExport"> <div class="operator-text" @click="handleExport">
<a-icon type="export" /> <a-icon type="export" />
导入拆分结果 {{ $t('ImportResults') }}
</div> </div>
<div class="operator-text" @click="handleDel"> <div class="operator-text" @click="handleDel">
<a-icon type="delete" /> <a-icon type="delete" />
批量删除 {{ $t('BatchDelete') }}
</div> </div>
</div> </div>
<div class="splitting-table"> <div class="splitting-table">
@@ -0,0 +1,290 @@
<template>
<div class="split-add-form">
<div class="split-add-form-wrapper">
<a-drawer
class="split-table-drawer"
title="新增条款"
placement="right"
:visible="visible"
:after-visible-change="afterVisibleChange"
@close="onClose"
width="1100"
>
<a-form>
<a-form-model
class="split-content"
:model="form"
:rules="validatorRules"
ref="splitEditForm"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-row :gutter="24">
<a-col :span="12">
<a-form-model-item label="条款号" prop="number">
<a-input v-model="form.number" placeholder="请输入条款号" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="条款名称" prop="name">
<a-input v-model="form.name" placeholder="请输入条款名称" />
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-model-item label="功能领域" prop="funArea">
<j-dict-select-tag type="list" v-model="form.funArea" dictCode="function_territory" placeholder="请选择功能领域" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="技术领域" prop="tecArea">
<j-dict-select-tag type="list" v-model="form.tecArea" dictCode="technology_territory" placeholder="请选择技术领域" />
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="12">
<a-form-model-item label="信息类别" prop="infoType">
<j-dict-select-tag type="list" v-model="form.infoType" dictCode="xxx" placeholder="请选择信息类别" />
</a-form-model-item>
</a-col>
</a-row>
<span class="con-divider">内容简介</span>
<a-divider dashed />
<a-row :gutter="24" class="split-content" id="split-content" v-for="(item, index) in contentList" :key="item.id">
<div class="split-row">
<div class="row-left">
<a-textarea v-if="item.type=='TEXT'" v-model="item.textContent" placeholder="请输入内容" auto-size />
</div>
<div class="row-right">
<a-button class="row-btn-add" @click="splitAdd">增加</a-button>
<a-button @click="splitDelete">删除</a-button>
</div>
</div>
</a-row>
</a-form-model>
</a-form>
<div class="split-form-footer">
<a-button type="primary" class="footer-btn-save" @click="splitSave">保存</a-button>
<a-button type="primary" @click="splitCancel">取消</a-button>
</div>
<!-- 类型选择弹框-->
<a-modal
:title="Title"
class="split-title"
:visible="addConVisible"
:confirm-loading="confirmLoading"
@ok="handleOk"
@cancel="handleCancel"
>
<div class="title-wraper">
<div class="title-top">
<span class="title-flex title-text" :class="{'title-flex-active':selected==1}" @click="selectTitle(1)">文本</span>
<span class="title-flex title-pic" :class="{'title-flex-active':selected==2}" @click="selectTitle(2)">图片</span>
<span class="title-flex title-table" :class="{'title-flex-active':selected==3}" @click="selectTitle(3)">表格</span>
</div>
<div class="title-num" v-if="selectedNum">
<span class="title-num-add">添加数量</span>
<a-input-number class="title-num-edit" :min="1" v-model="textNumber" placeholder="请输入数据"></a-input-number>
</div>
</div>
</a-modal>
</a-drawer>
</div>
</div>
</template>
<script>
import Vue from 'vue'
export default {
name: 'splitAddForm',
data(){
return{
contentList:[
{
id:'001',
type:'TEXT',
textContent:'本标准规定了车辆正面碰撞时前排外侧座椅乘员保护方面的术语和定义、要求和试验方法。'
},
{
id:'002',
type:'TEXT',
textContent:'本标准适用于M1类汽车和最大设计总质量不大于2500kg的N1类汽车,以及多用途货车。'
}
],
content:{},
selected:1,
selectedNum:true,
textNumber:1,
Title:'新增',
confirmLoading: false,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
visible:false,
addConVisible:false,
form:{},
validatorRules:{
number:[
{ required:true,message: '请输入条款号',trigger: 'blur' }
],
name:[
{ required:true,message: '请输入条款名称',trigger: 'blur' }
]
}
}
},
props:{
addVisible:Boolean
},
watch:{
selected(val){
if(this.selected==1){
this.selectedNum=true
}else{
this.selectedNum=false
}
}
},
mounted() {
this.visible=this.addVisible
},
methods:{
afterVisibleChange(){
},
onClose(){
this.$emit('closeVisible',false)
},
//增加按钮
splitAdd(){
this.addConVisible=true
},
//删除按钮
splitDelete(){
},
//保存
splitSave(){
this.$refs.splitEditForm.validate(valid=>{
if(valid){
}
})
},
//取消
splitCancel(){
this.visible=false
this.$emit('closeVisible',false)
},
//确定增加的类型
handleOk(){
this.addConVisible=false
if(this.selected==1){
}
},
handleCancel(){
this.addConVisible=false
},
selectTitle(val){
this.selected=val
}
}
}
</script>
<style lang="less" scoped>
.split-add-form{
.split-add-form-wrapper{
}
}
.split-table-drawer{
.split-content{
.con-divider{
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85)
}
.split-row{
display: flex;
justify-content: space-between;
margin: 0 20px 20px;
.row-left{
flex: 1;
/*border:1px solid #9e9e9e;*/
}
.row-right{
min-width: 150px;
margin-left: 20px;
.row-btn-add{
margin-right: 20px;
}
}
}
}
.split-form-footer{
margin-top: 20px;
text-align: center;
.footer-btn-save{
margin-right: 20px;
}
}
}
.split-title{
.title-wraper {
.title-top {
display: flex;
justify-content: space-around;
.title-flex {
border: 1px solid #d9d9d9;
padding: 10px 40px;
cursor: pointer;
}
.title-flex-active {
background: #00B3BE;
border-color: #00B3BE;
color:#FFFFFF;
}
}
.title-num {
margin: 20px 20px 0;
line-height: 32px;
display: flex;
justify-content: start;
.title-num-add {
min-width: 70px;
}
.title-num-edit {
flex: 1;
}
}
}
}
</style>
<style lang="less">
.split-title{
.ant-modal-footer{
text-align: center;
}
}
</style>
@@ -47,7 +47,7 @@
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button> <a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button>
<a-button @click="searchReset" icon="reload" style="margin-left: 8px">清空</a-button> <a-button @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</span> </span>
</a-col> </a-col>
</a-row> </a-row>
@@ -57,35 +57,35 @@
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleCopyManage"> <div class="operator-text" @click="handleCopyManage">
<a-icon type="copy" /> <a-icon type="copy" />
复制 {{ $t('copy') }}
</div> </div>
<div class="operator-text" @click="handleAddManage"> <div class="operator-text" @click="handleAddManage">
<a-icon type="plus" /> <a-icon type="plus" />
新增 {{ $t('add') }}
</div> </div>
<div class="operator-text" @click="handleImportManage"> <div class="operator-text" @click="handleImportManage">
<a-icon type="import" :rotate="-90" /> <a-icon type="import" :rotate="-90" />
导入 {{ $t('import') }}
</div> </div>
<div class="operator-text" @click="handleExportManage"> <div class="operator-text" @click="handleExportManage">
<a-icon type="export" :rotate="-90"/> <a-icon type="export" :rotate="-90"/>
导出 {{ $t('export') }}
</div> </div>
<div class="operator-text" @click="handleDownManage"> <div class="operator-text" @click="handleDownManage">
<a-icon type="download" /> <a-icon type="download" />
模板下载 {{ $t('TemplateDownload') }}
</div> </div>
<div class="operator-text" @click="handleMergeManage"> <div class="operator-text" @click="handleMergeManage">
<a-icon type="snippets" /> <a-icon type="snippets" />
合并条款 {{ $t('MergerClause') }}
</div> </div>
<div class="operator-text" @click="handleManage"> <div class="operator-text" @click="handleManage">
<a-icon type="setting" /> <a-icon type="setting" />
批量设置 {{ $t('BatchSetting') }}
</div> </div>
<div class="operator-text" @click="handleBatCancel"> <div class="operator-text" @click="handleBatCancel">
<a-icon type="delete" /> <a-icon type="delete" />
批量删除 {{ $t('BatchDelete') }}
</div> </div>
</div> </div>
<div class="split-detail-table"> <div class="split-detail-table">
@@ -110,15 +110,19 @@
</div> </div>
</div> </div>
</div> </div>
<splitAddForm v-if="addVisible" :addVisible="addVisible" @closeVisible="closeVisible"></splitAddForm>
</div> </div>
</a-card> </a-card>
</div> </div>
</template> </template>
<script> <script>
import splitAddForm from './splitAddForm'
export default { export default {
name: 'splitDetail', name: 'splitDetail',
components:{
splitAddForm
},
data() { data() {
return { return {
queryParams:{ queryParams:{
@@ -191,6 +195,7 @@
key: 'serialContent', key: 'serialContent',
align: "center", align: "center",
width: 200, width: 200,
ellipsis: true,
}, },
{ {
title: '功能领域', title: '功能领域',
@@ -215,7 +220,8 @@
align: "center", align: "center",
width: 80 width: 80
} }
] ],
addVisible:false
} }
}, },
mounted() { mounted() {
@@ -319,7 +325,10 @@
}, },
//新增 //新增
handleAddManage(){ handleAddManage(){
this.addVisible=true
},
closeVisible(val){
this.addVisible=val
}, },
//导入 //导入
handleImportManage(){ handleImportManage(){
@@ -28,7 +28,7 @@
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button> <a-button type="primary" @click="searchQuery" icon="search">{{$t('query')}}</a-button>
<a-button @click="searchReset" icon="reload" style="margin-left: 8px">清空</a-button> <a-button @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>
</span> </span>
</a-col> </a-col>
</a-row> </a-row>
@@ -39,11 +39,11 @@
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleBatManage"> <div class="operator-text" @click="handleBatManage">
<a-icon type="plus" /> <a-icon type="plus" />
订阅领域管理 {{ $t('SubscriptionManagement') }}
</div> </div>
<div class="operator-text" @click="handleBatCancel"> <div class="operator-text" @click="handleBatCancel">
<a-icon type="delete" /> <a-icon type="delete" />
批量取消 {{ $t('BatchCancellation') }}
</div> </div>
</div> </div>
<div class="colloction-table"> <div class="colloction-table">
@@ -54,15 +54,16 @@
<a-table bordered :data-source="tableData" :columns="columns" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :pagination="false" class="tag-con-table"> <a-table bordered :data-source="tableData" :columns="columns" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :pagination="false" class="tag-con-table">
<template slot="action" slot-scope="text, record"> <template slot="action" slot-scope="text, record">
<a-popover placement="right" v-model="typeVisible[record.id]" trigger="click"> <a class="action-dict" href="javascript:;" @click="handleDicPop(record)">字典配置</a>
<template slot="content" class="type-popover-content"> <!-- <a-popover placement="right" v-model="typeVisible[record.id]" trigger="click">-->
<div class="type-popover"> <!-- <template slot="content" class="type-popover-content">-->
<p class="type type-input" @click="handleDicPop(record,'list')">下拉选择</p> <!-- <div class="type-popover">-->
<p class="type type-select" @click="handleDicPop(record,'tree')">树状结构</p> <!-- <p class="type type-input" @click="handleDicPop(record,'list')">下拉选择</p>-->
</div> <!-- <p class="type type-select" @click="handleDicPop(record,'tree')">树状结构</p>-->
</template> <!-- </div>-->
<a class="action-dict" href="javascript:;">字典配置</a> <!-- </template>-->
</a-popover> <!-- <a class="action-dict" href="javascript:;">字典配置</a>-->
<!-- </a-popover>-->
<a class="action-edit" href="javascript:;" @click="actionEdit(record)">编辑</a> <a class="action-edit" href="javascript:;" @click="actionEdit(record)">编辑</a>
<a-popconfirm <a-popconfirm
v-if="tableData.length" v-if="tableData.length"
@@ -295,15 +296,13 @@
this.contentVisible=true this.contentVisible=true
}, },
//字典配置 //字典配置
handleDicPop(record,val){ handleDicPop(record){
this.record=record this.record=record
this.dictVal=val if(record.attributeType=='1'){
if(val=='list'){
this.typeVisible[record.id]=false this.typeVisible[record.id]=false
this.dicVisible=true this.dicVisible=true
}else{
}else if(val == 'tree'){
this.typeVisible[record.id]=false this.typeVisible[record.id]=false
this.dicVisible=true this.dicVisible=true
@@ -132,7 +132,7 @@
title: '英文名称', title: '英文名称',
align: "center", align: "center",
width: 100, width: 100,
dataIndex: 'dbFieldName', dataIndex: 'dbFieldEnName',
}, },
{ {
title: '属性类型', title: '属性类型',
@@ -71,7 +71,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="text-right"> <div class="text-right" :class="{'text-right-right':searchShow}">
<div class="search-text-title"> <div class="search-text-title">
<span>检索范围:</span> <span>检索范围:</span>
<span>纯电动</span> <span>纯电动</span>
@@ -101,11 +101,9 @@
</a-table> </a-table>
<ul v-if="!searchShow"> <ul v-if="!searchShow">
<a-checkbox-group v-model="checkboxText" style="margin-top: 20px;"> <a-checkbox-group v-model="checkboxText">
<li v-for="item in conList" :key="item.id"> <li v-for="item in conList" :key="item.id">
<div style="margin-top: -67px; <div style="margin-bottom: 10px;position: relative">
margin-bottom: 10px;
padding: 24px 24px 24px 0;position: relative">
<a-checkbox :value="item.id" class="checkbox-left"></a-checkbox> <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>
<div class="text-text-right" <div class="text-text-right"
@click="checkedClick(item)" @click="checkedClick(item)"
@@ -384,13 +382,13 @@
}, },
methods: { methods: {
checkedClick(item) { checkedClick(item) {
if (item.checked){ if (item.checked) {
this.checkboxText = this.checkboxText.filter(res=>{ this.checkboxText = this.checkboxText.filter(res => {
return res !== item.id return res !== item.id
}) })
}else{ } else {
this.checkboxText.push(item.id) this.checkboxText.push(item.id)
} }
console.log(this.checkboxText) console.log(this.checkboxText)
}, },
selectModel(value) { selectModel(value) {
@@ -441,7 +439,13 @@
} }
} }
</script> </script>
<style>
.search-center .ant-tabs-nav-container {
font-size: 18px !important;
font-weight: 400 !important;
color: #040B29 !important;
}
</style>
<style lang="less" scoped> <style lang="less" scoped>
.search-center { .search-center {
/*background-color: #ffffff;*/ /*background-color: #ffffff;*/
@@ -528,26 +532,27 @@
justify-content: flex-start; justify-content: flex-start;
.text-left { .text-left {
border-right: 1px solid #e8e8e8; width: 358px;
min-width: 310px; padding: 24px 24px 24px 0;
padding: 0 10px;
box-sizing: border-box; box-sizing: border-box;
.text-left-wrap { .text-left-wrap {
padding: 5px;
.text-left-select { .text-left-select {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin: 23px 0; margin-bottom: 24px;
line-height: 32px; line-height: 32px;
.text-sel { .text-sel {
//span{ //span{
// float: right; // float: right;
//} //}
font-size: 14px;
font-weight: 400;
color: #000F16;
text-align: right; text-align: right;
margin-right: 27px; margin-right: 14px;
min-width: 83px; min-width: 83px;
} }
@@ -565,8 +570,11 @@
span.data-fb { span.data-fb {
text-align: right; text-align: right;
margin-right: 26px; margin-right: 14px;
min-width: 84px; min-width: 84px;
font-size: 14px;
font-weight: 400;
color: #000F16;
} }
} }
} }
@@ -575,10 +583,16 @@
.text-right { .text-right {
width: 100%; width: 100%;
position: relative; position: relative;
margin-left: 16px; padding: 26px 0 22px 0;
box-sizing: border-box;
.search-text-title { .search-text-title {
padding: 16px 5px; padding: 0 0 22px 0;
span {
font-size: 14px;
font-weight: 400;
color: #040B29;
}
.search-header-right { .search-header-right {
float: right; float: right;
@@ -621,7 +635,7 @@
.search-text-list { .search-text-list {
ul { ul {
padding: 10px; padding:0 0 0 18px;
margin: 0; margin: 0;
li { li {
@@ -629,15 +643,25 @@
//background: #f6f6f6; //background: #f6f6f6;
//border: 1px solid #000000; //border: 1px solid #000000;
//border-radius: 10px; //border-radius: 10px;
padding: 10px; /*padding: 10px;*/
.text-header { .text-header {
margin-bottom: 11px;
span { span {
margin-right: 20px; margin-right: 52px;
font-size: 18px; font-size: 16px;
font-weight: 600; font-weight: bold;
color: #040B29;
} }
} }
.text-content {
font-size: 14px;
font-weight: 400;
color: #040B29;
opacity: 0.8;
}
} }
} }
@@ -667,8 +691,13 @@
} }
.text-text-right { .text-text-right {
padding: 12px 20px; padding: 19px 28px;
box-sizing: border-box;
margin-left: 38px;
}
.text-right-right{
border-left: 2px solid #E6E7EC;
padding: 24px 0 24px 24px!important;
box-sizing: border-box; box-sizing: border-box;
margin-left: 35px;
} }
</style> </style>
+25 -24
View File
@@ -87,7 +87,6 @@
import JEllipsis from '@/components/jero/JEllipsis' import JEllipsis from '@/components/jero/JEllipsis'
export default { export default {
name: 'PermissionList', name: 'PermissionList',
mixins: [JeroListMixin], mixins: [JeroListMixin],
@@ -105,16 +104,19 @@
title: this.$t('MenuName'), title: this.$t('MenuName'),
dataIndex: 'name', dataIndex: 'name',
key: 'name' key: 'name'
}, { },
{
title: this.$t('MenuEnName'),
dataIndex: 'menuEn',
key: 'menuEn'
},
{
title: this.$t('MenuType'), title: this.$t('MenuType'),
dataIndex: 'menuType', dataIndex: 'menuType',
key: 'menuType', key: 'menuType',
customRender: this.text customRender: this.text
},/*{ },
title: '权限编码', {
dataIndex: 'perms',
key: 'permissionCode',
},*/{
title: 'icon', title: 'icon',
dataIndex: 'icon', dataIndex: 'icon',
key: 'icon' key: 'icon'
@@ -155,18 +157,17 @@
} }
} }
}, },
computed:{ computed: {
text:function(){ text: function() {
if (text == 0) { if (text == 0) {
return this.$t('menu') return this.$t('menu')
} else if (text == 1) { } else if (text == 1) {
return this.$t('menu') return this.$t('menu')
} else if (text == 2) { } else if (text == 2) {
return this.$t('ButtonsPermissions') return this.$t('ButtonsPermissions')
} else { } else {
return text return text
} }
} }
}, },
methods: { methods: {
@@ -184,14 +185,14 @@
this.$refs.PermissionDataRuleList.edit(record) this.$refs.PermissionDataRuleList.edit(record)
}, },
handleAddSub(record) { handleAddSub(record) {
this.$refs.modalForm.title = this.$t('AddSubmenu'); this.$refs.modalForm.title = this.$t('AddSubmenu')
this.$refs.modalForm.localMenuType = 1; this.$refs.modalForm.localMenuType = 1
this.$refs.modalForm.disableSubmit = false; this.$refs.modalForm.disableSubmit = false
this.$refs.modalForm.edit({status:'1',permsType:'1',route:true,'parentId':record.id}); this.$refs.modalForm.edit({ status: '1', permsType: '1', route: true, 'parentId': record.id })
}, },
handleExpandedRowsChange(expandedRows) { handleExpandedRowsChange(expandedRows) {
this.expandedRowKeys = expandedRows this.expandedRowKeys = expandedRows
}, }
} }
} }
</script> </script>
@@ -26,6 +26,14 @@
<a-input :placeholder="$t('enterMenuName')" v-decorator="[ 'name', validatorRules.name]" :readOnly="disableSubmit"/> <a-input :placeholder="$t('enterMenuName')" v-decorator="[ 'name', validatorRules.name]" :readOnly="disableSubmit"/>
</a-form-item> </a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
:label="$t('MenuEnName')"
hasFeedback >
<a-input :placeholder="$t('enterMenuEnName')" v-decorator="[ 'menuEn', validatorRules.menuEn]" :readOnly="disableSubmit"/>
</a-form-item>
<a-form-item <a-form-item
v-show="localMenuType!=0" v-show="localMenuType!=0"
@@ -221,6 +229,7 @@
validatorRules:function() { validatorRules:function() {
return { return {
name:{rules: [{ required: true, message: this.$t('enterMenuTitle') }]}, name:{rules: [{ required: true, message: this.$t('enterMenuTitle') }]},
menuEn:{rules: [{ required: true, message: this.$t('enterMenuEnName') }]},
component:{rules: [{ required: this.show, message: this.$t('enterFrontComponents') }]}, component:{rules: [{ required: this.show, message: this.$t('enterFrontComponents') }]},
url:{rules: [{ required: this.show, message: this.$t('enterMenuPath') }]}, url:{rules: [{ required: this.show, message: this.$t('enterMenuPath') }]},
permsType:{rules: [{ required: true, message: this.$t('enterAuthorizationPolicy') }]}, permsType:{rules: [{ required: true, message: this.$t('enterAuthorizationPolicy') }]},
@@ -290,7 +299,7 @@
this.visible = true; this.visible = true;
this.loadTree(); this.loadTree();
let fieldsVal = pick(this.model,'name','perms','permsType','component','redirect','url','sortNo','menuType','status'); let fieldsVal = pick(this.model,'name','menuEn','perms','permsType','component','redirect','url','sortNo','menuType','status');
this.$nextTick(() => { this.$nextTick(() => {
this.form.setFieldsValue(fieldsVal) this.form.setFieldsValue(fieldsVal)
}); });