Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage
This commit is contained in:
@@ -549,3 +549,8 @@ CREATE TABLE `ext_repo_data` (
|
|||||||
`sup_folder` varchar(36) DEFAULT NULL COMMENT '所属文件夹',
|
`sup_folder` varchar(36) DEFAULT NULL COMMENT '所属文件夹',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- 参数项收集清单 认证类别取消列表显示 2022-08-02
|
||||||
|
UPDATE `laws_weilai`.`onl_cgform_field`
|
||||||
|
SET `is_show_list` = 0, `update_by` = 'admin', `update_time` = '2022-08-02 09:36:09'
|
||||||
|
WHERE `id` = '7b8ef9f8da124ed93e5c10a14b903390';
|
||||||
|
|||||||
+6
-4
@@ -652,8 +652,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
|
|||||||
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
|
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
|
||||||
List<Map<String, Object>> listAll = paramsCollectManifestEOMapper.listInfoForExport(paramsCollectManifestEO);
|
List<Map<String, Object>> listAll = paramsCollectManifestEOMapper.listInfoForExport(paramsCollectManifestEO);
|
||||||
|
|
||||||
double total = listAll.size();
|
// 循环责任领域,计算每个责任领域中的四种状态数据
|
||||||
|
|
||||||
dutyTerritoryDictList.forEach(item->{
|
dutyTerritoryDictList.forEach(item->{
|
||||||
|
|
||||||
if (CutEnum.EN.getValue().equals(cut)) {
|
if (CutEnum.EN.getValue().equals(cut)) {
|
||||||
@@ -683,6 +682,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
|
|||||||
.count(); // 已同步上报库的参数项 数量
|
.count(); // 已同步上报库的参数项 数量
|
||||||
|
|
||||||
// 计算百分比
|
// 计算百分比
|
||||||
|
double total = notStartNumber + collectingNumber + submitNumber + syncReportNumber; // 当前责任领域参数项总数
|
||||||
String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比
|
String notStartPercent = getRatio(notStartNumber, total); // 未开始的参数项 百分比
|
||||||
String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比
|
String collectingPercent = getRatio(collectingNumber, total); // 收集中的参数项 百分比
|
||||||
String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比
|
String submitPercent = getRatio(submitNumber, total); // 已提交的参数项 百分比
|
||||||
@@ -720,12 +720,14 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
|
|||||||
*/
|
*/
|
||||||
private String getRatio(Double d1, Double d2) {
|
private String getRatio(Double d1, Double d2) {
|
||||||
if (d1 == null || d2 == null || d2 <= 0) {
|
if (d1 == null || d2 == null || d2 <= 0) {
|
||||||
return "0.00%";
|
// return "0.00%";
|
||||||
|
return "0.00"; // 前端不需要返百分号
|
||||||
}
|
}
|
||||||
NumberFormat percent = NumberFormat.getPercentInstance();
|
NumberFormat percent = NumberFormat.getPercentInstance();
|
||||||
percent.setMaximumFractionDigits(2);
|
percent.setMaximumFractionDigits(2);
|
||||||
percent.setMinimumFractionDigits(2);
|
percent.setMinimumFractionDigits(2);
|
||||||
return percent.format(d1/d2);
|
String result = percent.format(d1/d2);
|
||||||
|
return result.substring(0,result.lastIndexOf("%")); // 前端不需要返百分号
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -40,7 +40,10 @@
|
|||||||
AND params_name LIKE CONCAT(CONCAT('%',#{paramsReportDetailEO.paramsName}),'%')
|
AND params_name LIKE CONCAT(CONCAT('%',#{paramsReportDetailEO.paramsName}),'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="paramsReportDetailEO.certCategory !=null and paramsReportDetailEO.certCategory !=''">
|
<if test="paramsReportDetailEO.certCategory !=null and paramsReportDetailEO.certCategory !=''">
|
||||||
AND cert_category LIKE CONCAT(CONCAT('%',#{paramsReportDetailEO.certCategory}),'%')
|
AND
|
||||||
|
<foreach collection="paramsReportDetailEO.certCategory.split(',')" index="" item="item" open="(" close=")" separator="or">
|
||||||
|
cert_category LIKE CONCAT(CONCAT('%',#{item}),'%')
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="paramsReportDetailEO.sdt !=null and paramsReportDetailEO.sdt !=''">
|
<if test="paramsReportDetailEO.sdt !=null and paramsReportDetailEO.sdt !=''">
|
||||||
AND sdt in
|
AND sdt in
|
||||||
@@ -102,7 +105,7 @@
|
|||||||
select *
|
select *
|
||||||
from params_report_detail
|
from params_report_detail
|
||||||
<include refid="BaseQuerySql"/>
|
<include refid="BaseQuerySql"/>
|
||||||
order by nio_number asc, sync_time desc
|
order by sync_time desc, nio_number asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="listInfoForExport" resultType="java.util.LinkedHashMap">
|
<select id="listInfoForExport" resultType="java.util.LinkedHashMap">
|
||||||
@@ -123,7 +126,7 @@
|
|||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
order by prd.nio_number ASC
|
order by prd.sync_time desc, prd.nio_number ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
+6
-6
@@ -42,10 +42,10 @@ public class ParamsExportTemplateEOServiceImpl extends ServiceImpl<ParamsExportT
|
|||||||
// 模板名称唯一校验
|
// 模板名称唯一校验
|
||||||
boolean isRepeat = verifyTemplateName(paramsExportTemplateEO.getTemplateName());
|
boolean isRepeat = verifyTemplateName(paramsExportTemplateEO.getTemplateName());
|
||||||
if (isRepeat) {
|
if (isRepeat) {
|
||||||
if (CutEnum.CN.equals(paramsExportTemplateEO.getCut())) {
|
if (CutEnum.EN.getValue().equals(paramsExportTemplateEO.getCut())) {
|
||||||
throw new JeroBootException("模板名称已存在!");
|
|
||||||
} else {
|
|
||||||
throw new JeroBootException("Template Name already exists!");
|
throw new JeroBootException("Template Name already exists!");
|
||||||
|
} else {
|
||||||
|
throw new JeroBootException("模板名称已存在!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 处理附件模板 修改文件表关联信息connect_id 一个文件
|
// 处理附件模板 修改文件表关联信息connect_id 一个文件
|
||||||
@@ -84,10 +84,10 @@ public class ParamsExportTemplateEOServiceImpl extends ServiceImpl<ParamsExportT
|
|||||||
// 模板名称唯一校验
|
// 模板名称唯一校验
|
||||||
boolean isRepeat = verifyTemplateName(paramsExportTemplateEO.getTemplateName());
|
boolean isRepeat = verifyTemplateName(paramsExportTemplateEO.getTemplateName());
|
||||||
if (isRepeat) {
|
if (isRepeat) {
|
||||||
if (CutEnum.CN.equals(paramsExportTemplateEO.getCut())) {
|
if (CutEnum.EN.getValue().equals(paramsExportTemplateEO.getCut())) {
|
||||||
throw new JeroBootException("模板名称已存在!");
|
|
||||||
} else {
|
|
||||||
throw new JeroBootException("Template Name already exists!");
|
throw new JeroBootException("Template Name already exists!");
|
||||||
|
} else {
|
||||||
|
throw new JeroBootException("模板名称已存在!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+42
-9
@@ -499,9 +499,9 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
OutputStream os = null;
|
OutputStream os = null;
|
||||||
OutputStream excelOS = null;
|
OutputStream excelOS = null;
|
||||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||||
String fileOriName = "上报库参数项常规导出信息";
|
String fileOriName = "常规导出";
|
||||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
fileOriName = "Params report normal data";
|
fileOriName = "normal";
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(paramsReportDetailVO.getExportName())) {
|
if (StringUtils.isNotEmpty(paramsReportDetailVO.getExportName())) {
|
||||||
fileOriName = paramsReportDetailVO.getExportName();
|
fileOriName = paramsReportDetailVO.getExportName();
|
||||||
@@ -516,7 +516,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
try{
|
try{
|
||||||
String fileName = fileOriName + ".xlsx";
|
String fileName = fileOriName + ".xlsx";
|
||||||
// 设置表格相关属性
|
// 设置表格相关属性
|
||||||
XSSFSheet sheetItems = workbook.createSheet("上报库参数项信息");
|
String sheetName = "参数项信息";
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
sheetName = "Params data";
|
||||||
|
}
|
||||||
|
XSSFSheet sheetItems = workbook.createSheet(sheetName);
|
||||||
String[] titles = getWorkbookTitleForExport(paramsReportDetailVO); // 获取表头
|
String[] titles = getWorkbookTitleForExport(paramsReportDetailVO); // 获取表头
|
||||||
|
|
||||||
String[] headers = titles[1].split(",");
|
String[] headers = titles[1].split(",");
|
||||||
@@ -550,7 +554,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
cell.setCellValue(text);
|
cell.setCellValue(text);
|
||||||
cell.setCellStyle(cellStyle1);
|
cell.setCellStyle(cellStyle1);
|
||||||
// 设置单元格宽度
|
// 设置单元格宽度
|
||||||
if("参数值".equals(headers[i])) {
|
String ParamsValues = "参数值";
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
ParamsValues = "Params Values";
|
||||||
|
}
|
||||||
|
if(ParamsValues.equals(headers[i])) {
|
||||||
sheetItems.setColumnWidth(i, 80 * 256);
|
sheetItems.setColumnWidth(i, 80 * 256);
|
||||||
} else {
|
} else {
|
||||||
sheetItems.setColumnWidth(i, 20 * 256);
|
sheetItems.setColumnWidth(i, 20 * 256);
|
||||||
@@ -582,7 +590,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
//下载关联文件内容
|
//下载关联文件内容
|
||||||
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
||||||
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
||||||
downLoadFileList(allRelevFileList,fileNowPath + File.separator + "导出文件");
|
String exportFile = "导出文件";
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
exportFile = "Export file";
|
||||||
|
}
|
||||||
|
downLoadFileList(allRelevFileList,fileNowPath + File.separator + exportFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
String repFileName = fileName.replaceAll("/","_");
|
String repFileName = fileName.replaceAll("/","_");
|
||||||
@@ -620,7 +632,12 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
fis.close(); // 先开后关
|
fis.close(); // 先开后关
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
throw new JeroBootException("Failed to download file, please try again");
|
||||||
|
} else {
|
||||||
throw new JeroBootException("下载文件失败,请重试");
|
throw new JeroBootException("下载文件失败,请重试");
|
||||||
|
}
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
IOUtils.closeQuietly(os);
|
IOUtils.closeQuietly(os);
|
||||||
IOUtils.closeQuietly(excelOS);
|
IOUtils.closeQuietly(excelOS);
|
||||||
@@ -677,9 +694,9 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
public void exportCustomWord(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request) {
|
public void exportCustomWord(ParamsReportDetailVO paramsReportDetailVO, HttpServletResponse response, HttpServletRequest request) {
|
||||||
OutputStream os = null;
|
OutputStream os = null;
|
||||||
OutputStream wordOS = null;
|
OutputStream wordOS = null;
|
||||||
String fileOriName = "上报库参数项自定义导出信息";
|
String fileOriName = "自定义导出";
|
||||||
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
fileOriName = "Params report custom data";
|
fileOriName = "custom";
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(paramsReportDetailVO.getExportName())) {
|
if (StringUtils.isNotEmpty(paramsReportDetailVO.getExportName())) {
|
||||||
fileOriName = paramsReportDetailVO.getExportName();
|
fileOriName = paramsReportDetailVO.getExportName();
|
||||||
@@ -711,7 +728,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
List<OSSFile> allRelevFileList = (List<OSSFile>) allParamsInfoList.get(2).get("fileListAll");
|
List<OSSFile> allRelevFileList = (List<OSSFile>) allParamsInfoList.get(2).get("fileListAll");
|
||||||
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
||||||
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
||||||
downLoadFileList(allRelevFileList,fileNowPath + File.separator + "导出文件");
|
String exportFile = "导出文件";
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
exportFile = "Export file";
|
||||||
|
}
|
||||||
|
downLoadFileList(allRelevFileList,fileNowPath + File.separator + exportFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 拿取模板
|
// 拿取模板
|
||||||
@@ -764,7 +785,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
throw new JeroBootException("Failed to download file, please try again");
|
||||||
|
} else {
|
||||||
throw new JeroBootException("下载文件失败,请重试");
|
throw new JeroBootException("下载文件失败,请重试");
|
||||||
|
}
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
IOUtils.closeQuietly(os);
|
IOUtils.closeQuietly(os);
|
||||||
@@ -814,7 +839,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
List<OSSFile> allRelevFileList = (List<OSSFile>) allParamsInfoList.get(2).get("fileListAll");
|
List<OSSFile> allRelevFileList = (List<OSSFile>) allParamsInfoList.get(2).get("fileListAll");
|
||||||
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
if (allRelevFileList != null && !allRelevFileList.isEmpty()) {
|
||||||
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList());
|
||||||
downLoadFileList(allRelevFileList,fileNowPath + File.separator + "导出文件");
|
String exportFile = "导出文件";
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
exportFile = "Export file";
|
||||||
|
}
|
||||||
|
downLoadFileList(allRelevFileList,fileNowPath + File.separator + exportFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 拿取模板
|
// 拿取模板
|
||||||
@@ -881,7 +910,11 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
|
|||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
if (CutEnum.EN.getValue().equals(paramsReportDetailVO.getCut())) {
|
||||||
|
throw new JeroBootException("Failed to download file, please try again");
|
||||||
|
} else {
|
||||||
throw new JeroBootException("下载文件失败,请重试");
|
throw new JeroBootException("下载文件失败,请重试");
|
||||||
|
}
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
IOUtils.closeQuietly(os);
|
IOUtils.closeQuietly(os);
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
"vue-ls": "^3.2.0",
|
"vue-ls": "^3.2.0",
|
||||||
"vue-photo-preview": "^1.1.3",
|
"vue-photo-preview": "^1.1.3",
|
||||||
"vue-print-nb-jeecg": "^1.0.9",
|
"vue-print-nb-jeecg": "^1.0.9",
|
||||||
|
"vue-quill-editor": "^3.0.6",
|
||||||
"vue-router": "^3.0.1",
|
"vue-router": "^3.0.1",
|
||||||
"vue-splitpane": "^1.0.4",
|
"vue-splitpane": "^1.0.4",
|
||||||
"vuedraggable": "^2.20.0",
|
"vuedraggable": "^2.20.0",
|
||||||
|
|||||||
@@ -1199,4 +1199,24 @@ module.exports = {
|
|||||||
Inthecollection:'In the collection',
|
Inthecollection:'In the collection',
|
||||||
Notatthe:'Not at the',
|
Notatthe:'Not at the',
|
||||||
Thepercentage:'The Percentage',
|
Thepercentage:'The Percentage',
|
||||||
|
problemKnowledgeBase:'Problem Knowledge Base',
|
||||||
|
recentHotSpots:'Recent Hot Spots',
|
||||||
|
disseminationMaterials:'Dissemination Materials',
|
||||||
|
informationSafety:'Information Safety',
|
||||||
|
blueBook:'Blue Book',
|
||||||
|
invoiceCollection:'Invoice Collection',
|
||||||
|
productHighlights:'Product Highlights',
|
||||||
|
financialReimbursement:'Financial Reimbursement',
|
||||||
|
classificationMaintenance:'Classification Maintenance',
|
||||||
|
managePublishing:'Manage Publishing',
|
||||||
|
displayPermission:'Display permission',
|
||||||
|
authorizedUser:'Authorized user',
|
||||||
|
problemClassification:'Problem classification',
|
||||||
|
market:'market',
|
||||||
|
documentNumber:'Document Number',
|
||||||
|
documentTitle:'Document Title',
|
||||||
|
bringInDocumentInformation:'Bring in document information',
|
||||||
|
thereWhichCannotDeleted:'There are sub headings under this title, which cannot be deleted',
|
||||||
|
sdt:'sdt',
|
||||||
|
dre:'dre',
|
||||||
}
|
}
|
||||||
+128
-108
@@ -730,7 +730,7 @@ module.exports = {
|
|||||||
confirmationOfRegulationsList: '法规清单确认',
|
confirmationOfRegulationsList: '法规清单确认',
|
||||||
regulatoryTaskConfirmation: '法规任务确认',
|
regulatoryTaskConfirmation: '法规任务确认',
|
||||||
certificationStart: '认证试验结束',
|
certificationStart: '认证试验结束',
|
||||||
preHomoCompletion:'摸底试验结束',
|
preHomoCompletion: '摸底试验结束',
|
||||||
certificationEnd: '认证批准',
|
certificationEnd: '认证批准',
|
||||||
directoryName: '目录名称',
|
directoryName: '目录名称',
|
||||||
batch: '批次',
|
batch: '批次',
|
||||||
@@ -1094,107 +1094,107 @@ module.exports = {
|
|||||||
Copyparameterlist: '复制参数清单',
|
Copyparameterlist: '复制参数清单',
|
||||||
Templatenamelist: '模板名称-参数项收集清单',
|
Templatenamelist: '模板名称-参数项收集清单',
|
||||||
newNiONumber: 'NIO编号',
|
newNiONumber: 'NIO编号',
|
||||||
English:'英文',
|
English: '英文',
|
||||||
requiredParametersEmpty:'必填参数不能为空',
|
requiredParametersEmpty: '必填参数不能为空',
|
||||||
theResponsiblePersonAndDeadlineClank:'的责任人、截止时间不能为空',
|
theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空',
|
||||||
bringInTheProjectInterface:'带入工程接口人',
|
bringInTheProjectInterface: '带入工程接口人',
|
||||||
theCurrentListSaved:'当前列表数据已全部提交,无法进行暂存',
|
theCurrentListSaved: '当前列表数据已全部提交,无法进行暂存',
|
||||||
defaultTemplate:'默认模板',
|
defaultTemplate: '默认模板',
|
||||||
newRequestCommentListTemplate:'新征求意见清单模板',
|
newRequestCommentListTemplate: '新征求意见清单模板',
|
||||||
NewReleasedStandardTemplate:'新发布标准模板',
|
NewReleasedStandardTemplate: '新发布标准模板',
|
||||||
pleaseSelectStandard:'请选择标准',
|
pleaseSelectStandard: '请选择标准',
|
||||||
theResponsiblePersonEmpty:'的责任人不能为空',
|
theResponsiblePersonEmpty: '的责任人不能为空',
|
||||||
theDeadlineEmpty:'的截止时间不能为空',
|
theDeadlineEmpty: '的截止时间不能为空',
|
||||||
theDeliveryTypeCannotBeEmpty:'的交付物类型不能为空',
|
theDeliveryTypeCannotBeEmpty: '的交付物类型不能为空',
|
||||||
For:'针对于',
|
For: '针对于',
|
||||||
markedRejection:'标注的驳回意见',
|
markedRejection: '标注的驳回意见',
|
||||||
RegulationListConfirmationTask:'清单确认任务',
|
RegulationListConfirmationTask: '清单确认任务',
|
||||||
RegulationListConfirmationNotification:'清单确认通知',
|
RegulationListConfirmationNotification: '清单确认通知',
|
||||||
RegulationTaskConfirmation:'任务确认任务',
|
RegulationTaskConfirmation: '任务确认任务',
|
||||||
DesignComplianceTask:'设计符合性任务',
|
DesignComplianceTask: '设计符合性任务',
|
||||||
PreHomoTask:'Pre-Homo任务',
|
PreHomoTask: 'Pre-Homo任务',
|
||||||
ValidationTask:'验证符合性任务',
|
ValidationTask: '验证符合性任务',
|
||||||
DesignComplianceNotification:'设计符合性通知',
|
DesignComplianceNotification: '设计符合性通知',
|
||||||
PreHomoNotification:'Pre-Homo通知',
|
PreHomoNotification: 'Pre-Homo通知',
|
||||||
ValidationComplianceNotification:'验证符合性通知',
|
ValidationComplianceNotification: '验证符合性通知',
|
||||||
RegulationTaskConfirmationNotification:'任务确认通知',
|
RegulationTaskConfirmationNotification: '任务确认通知',
|
||||||
evaluationMethod:'评估方式',
|
evaluationMethod: '评估方式',
|
||||||
uploadRelevantMaterials:'相关资料上传',
|
uploadRelevantMaterials: '相关资料上传',
|
||||||
RelevantMaterials:'相关资料',
|
RelevantMaterials: '相关资料',
|
||||||
processBackground:'流程背景',
|
processBackground: '流程背景',
|
||||||
selectedStandard:'所选标准',
|
selectedStandard: '所选标准',
|
||||||
standardDecompositionDocument:'带入标准分解单',
|
standardDecompositionDocument: '带入标准分解单',
|
||||||
pleaseSelectStandardFirst:'请先选择标准',
|
pleaseSelectStandardFirst: '请先选择标准',
|
||||||
evaluatorFeedback:'评估人反馈',
|
evaluatorFeedback: '评估人反馈',
|
||||||
nameTechnicalDocument:'技术文件名称',
|
nameTechnicalDocument: '技术文件名称',
|
||||||
chapter:'章节',
|
chapter: '章节',
|
||||||
problemDescription:'问题说明',
|
problemDescription: '问题说明',
|
||||||
filingExternalOpinions:'对外意见归档',
|
filingExternalOpinions: '对外意见归档',
|
||||||
initiateProcessForCurrentStandard:'针对当前标准发起流程',
|
initiateProcessForCurrentStandard: '针对当前标准发起流程',
|
||||||
engineerFeedbackResults:'工程师反馈结果',
|
engineerFeedbackResults: '工程师反馈结果',
|
||||||
fileExport:'文件导出',
|
fileExport: '文件导出',
|
||||||
feedbackTime:'反馈时间',
|
feedbackTime: '反馈时间',
|
||||||
regulatoryTechnologyAssessmentProcess:'法规技术评估流程',
|
regulatoryTechnologyAssessmentProcess: '法规技术评估流程',
|
||||||
feedbackEvaluation:'反馈评估',
|
feedbackEvaluation: '反馈评估',
|
||||||
clauseEvaluation:'条款评估',
|
clauseEvaluation: '条款评估',
|
||||||
standardDocuments:'标准文件',
|
standardDocuments: '标准文件',
|
||||||
pleaseCompleteTheEvaluationMethodorEvaluator:'请补全列表中评估方式或评估人',
|
pleaseCompleteTheEvaluationMethodorEvaluator: '请补全列表中评估方式或评估人',
|
||||||
reviewComments:'审核意见',
|
reviewComments: '审核意见',
|
||||||
PleaseCompleteList:'请补全列表中符合性结果',
|
PleaseCompleteList: '请补全列表中符合性结果',
|
||||||
sponsorFeedback:'发起人反馈',
|
sponsorFeedback: '发起人反馈',
|
||||||
processNumber:'流程编号',
|
processNumber: '流程编号',
|
||||||
processName:'流程名称',
|
processName: '流程名称',
|
||||||
feedbackResults:'反馈结果',
|
feedbackResults: '反馈结果',
|
||||||
theDoesNotSupportPreview:'当前文件格式不支持预览',
|
theDoesNotSupportPreview: '当前文件格式不支持预览',
|
||||||
releaseSituation:'发布情况',
|
releaseSituation: '发布情况',
|
||||||
comparisonResults:'对比结果',
|
comparisonResults: '对比结果',
|
||||||
Published:'已发布',
|
Published: '已发布',
|
||||||
initiateComparison:'发起对比',
|
initiateComparison: '发起对比',
|
||||||
translationLanguage:'翻译语言',
|
translationLanguage: '翻译语言',
|
||||||
translationResults:'翻译结果',
|
translationResults: '翻译结果',
|
||||||
conversionTime:'转换时间',
|
conversionTime: '转换时间',
|
||||||
category:'类别',
|
category: '类别',
|
||||||
RegulatoryProcessEvaluationResults :'法规流程评估结果',
|
RegulatoryProcessEvaluationResults: '法规流程评估结果',
|
||||||
ViewConformanceResults:'查看符合性结果',
|
ViewConformanceResults: '查看符合性结果',
|
||||||
CommentsCollectionResultsForReference:'意见收集结果参考',
|
CommentsCollectionResultsForReference: '意见收集结果参考',
|
||||||
TechnicalEvaluationResultsForReference:'技术评估结果参考',
|
TechnicalEvaluationResultsForReference: '技术评估结果参考',
|
||||||
ComplianceConfirmationRecord:'符合性确认记录',
|
ComplianceConfirmationRecord: '符合性确认记录',
|
||||||
complianceConfirmation:'符合性确认',
|
complianceConfirmation: '符合性确认',
|
||||||
Deriveconformanceresults:'导出符合性结果',
|
Deriveconformanceresults: '导出符合性结果',
|
||||||
Regulatorycompliancekanban:'法规符合性看板',
|
Regulatorycompliancekanban: '法规符合性看板',
|
||||||
noComparisonDocumentSelected:'未选择对比文档',
|
noComparisonDocumentSelected: '未选择对比文档',
|
||||||
RemarkInfo:'备注信息',
|
RemarkInfo: '备注信息',
|
||||||
initiateDocumentComparison:'发起文档对比',
|
initiateDocumentComparison: '发起文档对比',
|
||||||
comparativeComments:'对比评论',
|
comparativeComments: '对比评论',
|
||||||
viewTheComparisonResults:'查看对比结果',
|
viewTheComparisonResults: '查看对比结果',
|
||||||
addFullTextComment:'添加全文评论',
|
addFullTextComment: '添加全文评论',
|
||||||
turnOffAutomaticMatching:'关闭自动匹配',
|
turnOffAutomaticMatching: '关闭自动匹配',
|
||||||
exportComparisonReport:'导出对比报告',
|
exportComparisonReport: '导出对比报告',
|
||||||
comparisonDifferenceComment:'对比差异评论',
|
comparisonDifferenceComment: '对比差异评论',
|
||||||
fullTextComments:'全文评论',
|
fullTextComments: '全文评论',
|
||||||
fileDeclaration:'文件说明',
|
fileDeclaration: '文件说明',
|
||||||
FileForDetails:'文件详情',
|
FileForDetails: '文件详情',
|
||||||
Converting:'转换中',
|
Converting: '转换中',
|
||||||
convertNetwork:'转换完成',
|
convertNetwork: '转换完成',
|
||||||
convertFailed:'转换失败',
|
convertFailed: '转换失败',
|
||||||
standardData:'标准数据',
|
standardData: '标准数据',
|
||||||
Theorganization:'组织机构',
|
Theorganization: '组织机构',
|
||||||
Addingfolder:'新增文件夹',
|
Addingfolder: '新增文件夹',
|
||||||
Addingsubfolders:'新增子文件夹',
|
Addingsubfolders: '新增子文件夹',
|
||||||
Editfolder:'编辑文件夹',
|
Editfolder: '编辑文件夹',
|
||||||
Deletefolders:'删除文件夹',
|
Deletefolders: '删除文件夹',
|
||||||
Foldername:'文件夹名称',
|
Foldername: '文件夹名称',
|
||||||
Folderpermissions:'文件夹权限',
|
Folderpermissions: '文件夹权限',
|
||||||
Folderorder:'文件夹顺序',
|
Folderorder: '文件夹顺序',
|
||||||
Downloadprivileges:'下载权限',
|
Downloadprivileges: '下载权限',
|
||||||
Openpersonnel:'开放人员',
|
Openpersonnel: '开放人员',
|
||||||
originalText:'原文',
|
originalText: '原文',
|
||||||
translatedText:'译文',
|
translatedText: '译文',
|
||||||
Administrativeprivileges:'管理权限',
|
Administrativeprivileges: '管理权限',
|
||||||
Checkthepermissions:'查看权限',
|
Checkthepermissions: '查看权限',
|
||||||
onlyFilesUploaded:'只能上传.docx、.doc文件',
|
onlyFilesUploaded: '只能上传.docx、.doc文件',
|
||||||
uploadedbyyourself:'只能删除自己上传的文件数据',
|
uploadedbyyourself: '只能删除自己上传的文件数据',
|
||||||
Fileuploaded:'文件上传中,请稍后',
|
Fileuploaded: '文件上传中,请稍后',
|
||||||
English: '英文',
|
English: '英文',
|
||||||
requiredParametersEmpty: '必填参数不能为空',
|
requiredParametersEmpty: '必填参数不能为空',
|
||||||
theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空',
|
theResponsiblePersonAndDeadlineClank: '的责任人、截止时间不能为空',
|
||||||
@@ -1296,10 +1296,30 @@ module.exports = {
|
|||||||
onlyFilesUploaded: '只能上传.docx、.doc文件',
|
onlyFilesUploaded: '只能上传.docx、.doc文件',
|
||||||
uploadedbyyourself: '只能删除自己上传的文件数据',
|
uploadedbyyourself: '只能删除自己上传的文件数据',
|
||||||
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
doNotHavePermissionDeleteData: '没有权限删除此数据',
|
||||||
Parametercollection:'参数收集',
|
Parametercollection: '参数收集',
|
||||||
Collectlist:'收集清单',
|
Collectlist: '收集清单',
|
||||||
Statisticalmodels:'统计模式',
|
Statisticalmodels: '统计模式',
|
||||||
Inthecollection:'收集中',
|
Inthecollection: '收集中',
|
||||||
Notatthe:'未开始',
|
Notatthe: '未开始',
|
||||||
Thepercentage:'百分比',
|
Thepercentage: '百分比',
|
||||||
|
problemKnowledgeBase:'问题知识库',
|
||||||
|
recentHotSpots:'近期热点',
|
||||||
|
disseminationMaterials:'传播物料',
|
||||||
|
informationSafety:'信息安全',
|
||||||
|
blueBook:'蓝皮书',
|
||||||
|
invoiceCollection:'发票合集',
|
||||||
|
productHighlights:'产品亮点',
|
||||||
|
financialReimbursement:'财务报销',
|
||||||
|
classificationMaintenance:'分类维护',
|
||||||
|
managePublishing:'管理发布',
|
||||||
|
displayPermission:'展示权限',
|
||||||
|
authorizedUser:'权限用户',
|
||||||
|
problemClassification:'问题分类',
|
||||||
|
market:'市场',
|
||||||
|
documentNumber:'文档编号',
|
||||||
|
documentTitle:'文档标题',
|
||||||
|
bringInDocumentInformation:'带入文档信息',
|
||||||
|
thereWhichCannotDeleted:'该标题下存在子标题无法进行删除',
|
||||||
|
sdt:'工程接口人',
|
||||||
|
dre:'填写人',
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,9 @@
|
|||||||
this.$route.path == '/virtualListDetails' ||
|
this.$route.path == '/virtualListDetails' ||
|
||||||
this.$route.path == '/taskListProcess' ||
|
this.$route.path == '/taskListProcess' ||
|
||||||
this.$route.path == '/ProjectDetails' ||
|
this.$route.path == '/ProjectDetails' ||
|
||||||
|
this.$route.path == '/problemKnowledgeBaseAdd' ||
|
||||||
|
this.$route.path == '/problemKnowledgeBaseRelease' ||
|
||||||
|
this.$route.path == '/problemKnowledgeBaseView' ||
|
||||||
this.$route.path == '/regulatoryInitiatingProcess' ||
|
this.$route.path == '/regulatoryInitiatingProcess' ||
|
||||||
this.$route.path == '/regulatoryProcessReview' ||
|
this.$route.path == '/regulatoryProcessReview' ||
|
||||||
this.$route.path == '/handshakeProcess' ||
|
this.$route.path == '/handshakeProcess' ||
|
||||||
|
|||||||
@@ -357,6 +357,21 @@ export const constantRouterMap = [
|
|||||||
name: 'evaluationResultsClause',
|
name: 'evaluationResultsClause',
|
||||||
component: () => import(/* webpackChunkName: "user" */ '@/views/businessSupport/technologyAssessment/components/evaluationResultsClause')
|
component: () => import(/* webpackChunkName: "user" */ '@/views/businessSupport/technologyAssessment/components/evaluationResultsClause')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/problemKnowledgeBaseAdd',
|
||||||
|
name: 'problemKnowledgeBaseAdd',
|
||||||
|
component: () => import(/* webpackChunkName: "user" */ '@/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseAdd')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/problemKnowledgeBaseRelease',
|
||||||
|
name: 'problemKnowledgeBaseRelease',
|
||||||
|
component: () => import(/* webpackChunkName: "user" */ '@/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseRelease')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/problemKnowledgeBaseView',
|
||||||
|
name: 'problemKnowledgeBaseView',
|
||||||
|
component: () => import(/* webpackChunkName: "user" */ '@/views/businessSupport/problemKnowledgeBase/components/problemKnowledgeBaseView')
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: '/ParameterItemCollection',
|
// path: '/ParameterItemCollection',
|
||||||
// name: 'ParameterItemCollection',
|
// name: 'ParameterItemCollection',
|
||||||
|
|||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'countryCardList'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
+408
@@ -0,0 +1,408 @@
|
|||||||
|
<template>
|
||||||
|
<div class="doc-detail">
|
||||||
|
<div class="doc-detail-wrap">
|
||||||
|
<div class="doc-detail-header" style="position: fixed;top: 0">
|
||||||
|
<div class="doc-detail-title">
|
||||||
|
<span style="line-height: 66px;display: inline-block;float: left">
|
||||||
|
<a-icon type="arrow-left" style="margin-right: 6px;"/>
|
||||||
|
</span>
|
||||||
|
{{$t('newlyAdded')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="padding-top: 68px;background: #fff">
|
||||||
|
<div class="detail-content" style="padding: 24px">
|
||||||
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('displayPermission')">{{$t('displayPermission')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="projectNameId">
|
||||||
|
<a-select :placeholder="$t('PleaseSelect')+$t('displayPermission')"
|
||||||
|
@change="projectNameChange"
|
||||||
|
v-model="formInline.projectNameId">
|
||||||
|
<a-select-option v-for="(item, key) in projectNameList"
|
||||||
|
:key="key"
|
||||||
|
:value="item.id">
|
||||||
|
<span style="display: inline-block;width: 100%" :title=" item.projectName ">
|
||||||
|
{{ item.projectName}}
|
||||||
|
</span>
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('authorizedUser')">{{$t('authorizedUser')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="yearNameId">
|
||||||
|
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('authorizedUser')}"
|
||||||
|
:isSingleChoice="true"
|
||||||
|
:personneQuery="formInline"
|
||||||
|
@change="PersonnelSelectionChange"
|
||||||
|
v-model="formInline.studioEngineerName"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('title')">{{$t('title')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel-multi" prop="title">
|
||||||
|
<a-input class="box-input"
|
||||||
|
:disabled="disabled"
|
||||||
|
v-model="formInline.title"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('title')"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('category')">{{$t('category')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="projectStatus">
|
||||||
|
<j-dict-select-tag class="box-input" v-model="formInline.projectStatus"
|
||||||
|
:disabled="disabled"
|
||||||
|
@input="handleInput('projectStatus')"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('category')"
|
||||||
|
:type="'select'"
|
||||||
|
:triggerChange="false" :dictCode="'project_status'"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('problemClassification')">{{$t('problemClassification')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="vehiclePlatform">
|
||||||
|
<a-input class="box-input"
|
||||||
|
:disabled="disabled"
|
||||||
|
v-model="formInline.vehiclePlatform"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('problemClassification')"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
|
<span class="title-text-text" :title="$t('market')">{{$t('market')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="projectStatus">
|
||||||
|
<j-dict-select-tag class="box-input" v-model="formInline.projectStatus"
|
||||||
|
:disabled="disabled"
|
||||||
|
@input="handleInput('projectStatus')"
|
||||||
|
:placeholder="$t('PleaseSelect')+$t('market')"
|
||||||
|
:type="'select'"
|
||||||
|
:triggerChange="false" :dictCode="'project_status'"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('documentNumber')">{{$t('documentNumber')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="vehiclePlatform">
|
||||||
|
<a-input class="box-input"
|
||||||
|
:disabled="disabled"
|
||||||
|
v-model="formInline.vehiclePlatform"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('documentNumber')"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text" :title="$t('documentTitle')">{{$t('documentTitle')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" :prop="'digitalPlatform'">
|
||||||
|
<a-input class="box-input"
|
||||||
|
:disabled="disabled"
|
||||||
|
v-model="formInline.digitalPlatform"
|
||||||
|
:placeholder="$t('PleaseEnter')+$t('documentTitle')"/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"></span>
|
||||||
|
</div>
|
||||||
|
<a-button class="box-button" type="primary" @click="bringInDocumentInformationClick">
|
||||||
|
{{$t('bringInDocumentInformation')}}
|
||||||
|
</a-button>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="24" style="height: 380px">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text">{{$t('content')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="vehiclePlatform">
|
||||||
|
<quill-editor
|
||||||
|
style="height: 300px"
|
||||||
|
:content="formInline.content"
|
||||||
|
:options="editorOption"
|
||||||
|
@change="onEditorChange($event)"
|
||||||
|
/>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-row :gutter="24">
|
||||||
|
<a-col :span="8">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text">
|
||||||
|
<span class="title-text-text"
|
||||||
|
:title="$t('enclosure')">{{$t('enclosure')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">
|
||||||
|
<a-button type="primary" class="button-text"
|
||||||
|
@click="clickButtonToUpload('enclosure')">
|
||||||
|
{{ (formInline.enclosure === 'null' || formInline.enclosure === ''
|
||||||
|
||
|
||||||
|
formInline.enclosure == null) ? $t('clickUpload') : $t('viewUploadedFiles')
|
||||||
|
}}
|
||||||
|
</a-button>
|
||||||
|
</a-form-model-item>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form-model>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
||||||
|
import uploadFile from '@/components/uploadFile/file'
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
import 'quill/dist/quill.core.css'
|
||||||
|
import 'quill/dist/quill.snow.css'
|
||||||
|
import 'quill/dist/quill.bubble.css'
|
||||||
|
import { quillEditor } from 'vue-quill-editor'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'problemKnowledgeBaseAdd',
|
||||||
|
components: {
|
||||||
|
PersonnelSelection,
|
||||||
|
uploadFile,
|
||||||
|
quillEditor
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formInline: {},
|
||||||
|
rules: {},
|
||||||
|
disabled: false,
|
||||||
|
projectNameList: [],
|
||||||
|
content: '<h2>I am Example</h2>',
|
||||||
|
editorOption: {
|
||||||
|
// Some Quill options...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
editor() {
|
||||||
|
return this.$refs.myQuillEditor.quill
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
document.title = this.$t('problemKnowledgeBase') + this.$t('newlyAdded')
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onEditorBlur(quill) {
|
||||||
|
console.log('editor blur!', quill)
|
||||||
|
},
|
||||||
|
onEditorFocus(quill) {
|
||||||
|
console.log('editor focus!', quill)
|
||||||
|
},
|
||||||
|
onEditorReady(quill) {
|
||||||
|
console.log('editor ready!', quill)
|
||||||
|
},
|
||||||
|
onEditorChange({ quill, html, text }) {
|
||||||
|
console.log('editor change!', quill, html, text)
|
||||||
|
this.content = html
|
||||||
|
},
|
||||||
|
PersonnelSelectionChange(value, id) {
|
||||||
|
this.formInline[value] = id
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
},
|
||||||
|
handleInput(value) {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
this.$refs.ruleForm.validateField([value])
|
||||||
|
})
|
||||||
|
},
|
||||||
|
bringInDocumentInformationClick() {
|
||||||
|
|
||||||
|
},
|
||||||
|
clickButtonToUpload(item) {
|
||||||
|
this.$refs.uploadFile.perentHandleFunc()
|
||||||
|
this.$refs.uploadFile.visible = true
|
||||||
|
this.uploadName = item
|
||||||
|
getAction('sys/common/getFileInfos', { id: this.formInline[item] }).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.$refs.uploadFile.perentHandleFunc(res.result)
|
||||||
|
} else {
|
||||||
|
this.$refs.uploadFile.perentHandleFunc()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 上传文件的回调 */
|
||||||
|
uploadSuccess(data) {
|
||||||
|
let attIdList = []
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
data.map(item => {
|
||||||
|
attIdList.push(item.id || data.name)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/** 赋值给当前对应的表单文件 */
|
||||||
|
this.formInline[this.uploadName] = attIdList.join(',')
|
||||||
|
this.formInline = { ...this.formInline }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.doc-detail {
|
||||||
|
background: #fff;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.doc-detail-wrap {
|
||||||
|
.doc-detail-header {
|
||||||
|
width: 100%;
|
||||||
|
height: 68px;
|
||||||
|
line-height: 68px;
|
||||||
|
padding: 0 0 0 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
border-bottom: 2px #eff1f3 solid;
|
||||||
|
z-index: 1000;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.doc-detail-title {
|
||||||
|
display: inline-block;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
line-height: 68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doc-detail-right {
|
||||||
|
width: 800px;
|
||||||
|
line-height: 68px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.doc-detail-btn {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-box {
|
||||||
|
padding: 0 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 80px;
|
||||||
|
color: #000F16;
|
||||||
|
line-height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.processBackground-text {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000F16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
/*align-items: center;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 114px;
|
||||||
|
text-align: right;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
height: 42px;
|
||||||
|
line-height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
display: inline-block;
|
||||||
|
height: 38px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemModel {
|
||||||
|
width: calc(100% - 130px);
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 2px;
|
||||||
|
height: 40px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text-text {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.formAdd {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-text {
|
||||||
|
height: 38px;
|
||||||
|
width: calc(100% - 100px);
|
||||||
|
line-height: 38px;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px #00B3BE solid;
|
||||||
|
color: #00B3BE;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
+335
@@ -0,0 +1,335 @@
|
|||||||
|
<template>
|
||||||
|
<div class="box">
|
||||||
|
<div class="search-detail-wrap">
|
||||||
|
<div class="box-title-text">
|
||||||
|
<div class="title-text" :title="$t('searchContent')">
|
||||||
|
<span>{{$t('searchContent')}}</span>
|
||||||
|
</div>
|
||||||
|
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('searchContent')"
|
||||||
|
v-model="searchContent"></a-input>
|
||||||
|
<a-button class="box-button" type="primary" @click="onSearch">{{$t('query')}}</a-button>
|
||||||
|
<a-button class="box-button" style="margin-left: 8px" @click="ResetSearch">{{$t('reset')}}</a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-left">
|
||||||
|
<span class="box-content-left-text">{{$t('recentHotSpots')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('disseminationMaterials')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('informationSafety')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('blueBook')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('invoiceCollection')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('productHighlights')}}</span>
|
||||||
|
<span class="box-content-left-text">{{$t('financialReimbursement')}}</span>
|
||||||
|
</div>
|
||||||
|
<div class="box-content-right">
|
||||||
|
<div @click="classificationClick" class="operator-text" v-has="'virtual:set:creater'">
|
||||||
|
<a-icon type="setting"/>
|
||||||
|
{{$t('classificationMaintenance')}}
|
||||||
|
</div>
|
||||||
|
<div @click="managePublishingClick" class="operator-text" v-has="'virtual:set:creater'">
|
||||||
|
<a-icon type="carry-out"/>
|
||||||
|
{{$t('managePublishing')}}
|
||||||
|
</div>
|
||||||
|
<div @click="newlyAddedClick" class="operator-text" v-has="'virtual:set:creater'">
|
||||||
|
<a-icon type="plus"/>
|
||||||
|
{{$t('newlyAdded')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="conList.length > 0" style="margin-top: 58px;height: calc(100vh - 260px);overflow:auto;">
|
||||||
|
<li v-for="(item,index) in conList" :key="item.id">
|
||||||
|
<div style="margin-bottom: 10px;position: relative">
|
||||||
|
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
|
||||||
|
<div class="text-text-right"
|
||||||
|
:class="{ 'null-input':item.checked }">
|
||||||
|
<div class="text-header" @click="titleClick(item)">
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.module_type"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.module_type"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.serial_number"></span>
|
||||||
|
</template>
|
||||||
|
<span style="cursor: pointer"
|
||||||
|
class="text-header-text"
|
||||||
|
v-html="item.serial_number"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.title"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.file_name"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.file_name"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
</a-tooltip>
|
||||||
|
</div>
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.content"></span>
|
||||||
|
</template>
|
||||||
|
<div class="text-content" v-html="item.content">
|
||||||
|
</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
<div class="noData" v-else>
|
||||||
|
暂无数据
|
||||||
|
</div>
|
||||||
|
<div class="page" v-if="conList.length > 0">
|
||||||
|
<a-pagination
|
||||||
|
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||||
|
show-quick-jumper
|
||||||
|
show-size-changer
|
||||||
|
:page-size.sync="pageSize"
|
||||||
|
:total="total"
|
||||||
|
:current="pageNo"
|
||||||
|
@change="pageOnChange"
|
||||||
|
@showSizeChange="SizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, downloadFile } from '@/api/manage'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'problemKnowledgeBaseList',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
searchContent: '',
|
||||||
|
checkboxText: [],
|
||||||
|
conList: [],
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
|
pageNo: 1,
|
||||||
|
url: {
|
||||||
|
getInfoList: 'search/document/getFullTextInfoList'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onSearch() {
|
||||||
|
|
||||||
|
},
|
||||||
|
ResetSearch() {
|
||||||
|
|
||||||
|
},
|
||||||
|
classificationClick() {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/problemKnowledgeBaseView',
|
||||||
|
query: {}
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
},
|
||||||
|
managePublishingClick() {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/problemKnowledgeBaseRelease',
|
||||||
|
query: {}
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
},
|
||||||
|
newlyAddedClick() {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/problemKnowledgeBaseAdd',
|
||||||
|
query: {}
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
},
|
||||||
|
pageOnChange(page, pageSize) {
|
||||||
|
this.pageNo = page
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
SizeChange(page, pageSize) {
|
||||||
|
this.pageNo = 1
|
||||||
|
this.pageSize = pageSize
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
let query = {
|
||||||
|
pageNo: this.pageNo,
|
||||||
|
pageSize: this.pageSize
|
||||||
|
}
|
||||||
|
postAction(this.url.getInfoList, query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.conList = res.result.records
|
||||||
|
this.total = res.result.total
|
||||||
|
} else {
|
||||||
|
this.conList = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
titleClick(item) {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/docManage/library/detail',
|
||||||
|
query: {
|
||||||
|
id: item.id.slice(0, 32),
|
||||||
|
title: item.title,
|
||||||
|
serial_number: item.serial_number
|
||||||
|
}
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
.search-detail-wrap {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title-text {
|
||||||
|
line-height: 1.4;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
text-align: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-text {
|
||||||
|
width: 110px;
|
||||||
|
color: #000F16;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right: 16px;
|
||||||
|
margin-top: 3px;
|
||||||
|
text-align: right;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-input {
|
||||||
|
/*min-width: 200px;*/
|
||||||
|
display: inline-block;
|
||||||
|
width: 50%;
|
||||||
|
height: 38px;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-right: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-button {
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-content-left {
|
||||||
|
width: 60%;
|
||||||
|
float: left;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-content-right {
|
||||||
|
width: 40%;
|
||||||
|
float: left;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.operator-text {
|
||||||
|
cursor: pointer;
|
||||||
|
margin-right: 53px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.operator-text:last-child {
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-content-left-text {
|
||||||
|
margin-right: 30px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
padding: 0 0 0 18px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-left {
|
||||||
|
float: left;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-text-right {
|
||||||
|
padding: 19px 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
/*margin-left: 38px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.null-input {
|
||||||
|
background-color: #F2F4F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-text-title {
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-header {
|
||||||
|
margin-bottom: 11px;
|
||||||
|
|
||||||
|
.text-header-text {
|
||||||
|
margin-right: 52px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #040B29;
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 180px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*span {*/
|
||||||
|
/* margin-right: 52px;*/
|
||||||
|
/* font-size: 16px;*/
|
||||||
|
/* font-weight: bold;*/
|
||||||
|
/* color: #040B29;*/
|
||||||
|
/* display: inline-block;*/
|
||||||
|
/* max-width: 500px;*/
|
||||||
|
/* text-overflow: ellipsis;*/
|
||||||
|
/* white-space: nowrap;*/
|
||||||
|
/* overflow: hidden;*/
|
||||||
|
/*}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-content {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noData {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
+270
@@ -0,0 +1,270 @@
|
|||||||
|
<template>
|
||||||
|
<div class="doc-detail">
|
||||||
|
<div class="doc-detail-wrap">
|
||||||
|
<div class="doc-detail-header" style="position: fixed;top: 0">
|
||||||
|
<div class="doc-detail-title">
|
||||||
|
<span style="line-height: 66px;display: inline-block;float: left">
|
||||||
|
<a-icon type="arrow-left" style="margin-right: 6px;"/>
|
||||||
|
</span>
|
||||||
|
{{$t('managePublishing')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="padding-top: 68px;background: #fff">
|
||||||
|
<div class="detail-content" style="padding: 30px">
|
||||||
|
<div v-if="conList.length > 0" style="height: calc(100vh - 180px);overflow:auto;">
|
||||||
|
<div v-for="(item,index) in conList" :key="item.id">
|
||||||
|
<div style="margin-bottom: 10px;position: relative">
|
||||||
|
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
|
||||||
|
<div class="text-text-right"
|
||||||
|
:class="{ 'null-input':item.checked }">
|
||||||
|
<div class="text-header" @click="titleClick(item)">
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.module_type"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.module_type"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.serial_number"></span>
|
||||||
|
</template>
|
||||||
|
<span style="cursor: pointer"
|
||||||
|
class="text-header-text"
|
||||||
|
v-html="item.serial_number"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.title"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.title"></span>
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.file_name"></span>
|
||||||
|
</template>
|
||||||
|
<span class="text-header-text" style="cursor: pointer" v-html="item.file_name"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
</a-tooltip>
|
||||||
|
</div>
|
||||||
|
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
|
||||||
|
<template slot="title">
|
||||||
|
<span v-html="item.content"></span>
|
||||||
|
</template>
|
||||||
|
<div class="text-content" v-html="item.content">
|
||||||
|
</div>
|
||||||
|
</a-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="noData" v-else>
|
||||||
|
暂无数据
|
||||||
|
</div>
|
||||||
|
<div class="page" v-if="conList.length > 0">
|
||||||
|
<a-pagination
|
||||||
|
:show-total="total => $t('total')+` ${total} `+$t('strip')"
|
||||||
|
show-quick-jumper
|
||||||
|
show-size-changer
|
||||||
|
:page-size.sync="pageSize"
|
||||||
|
:total="total"
|
||||||
|
:current="pageNo"
|
||||||
|
@change="pageOnChange"
|
||||||
|
@showSizeChange="SizeChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { getAction, postAction, putAction } from '@/api/manage'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'problemKnowledgeBaseRelease',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
checkboxText: [],
|
||||||
|
conList: [],
|
||||||
|
total: 0,
|
||||||
|
pageSize: 10,
|
||||||
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
|
pageNo: 1,
|
||||||
|
url: {
|
||||||
|
getInfoList: 'search/document/getFullTextInfoList'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
pageOnChange(page, pageSize) {
|
||||||
|
this.pageNo = page
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
SizeChange(page, pageSize) {
|
||||||
|
this.pageNo = 1
|
||||||
|
this.pageSize = pageSize
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
let query = {
|
||||||
|
pageNo: this.pageNo,
|
||||||
|
pageSize: this.pageSize
|
||||||
|
}
|
||||||
|
postAction(this.url.getInfoList, query).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
this.conList = res.result.records
|
||||||
|
this.total = res.result.total
|
||||||
|
} else {
|
||||||
|
this.conList = []
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
titleClick(item) {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/docManage/library/detail',
|
||||||
|
query: {
|
||||||
|
id: item.id.slice(0, 32),
|
||||||
|
title: item.title,
|
||||||
|
serial_number: item.serial_number
|
||||||
|
}
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
|
||||||
|
.doc-detail {
|
||||||
|
background: #fff;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.doc-detail-wrap {
|
||||||
|
.doc-detail-header {
|
||||||
|
width: 100%;
|
||||||
|
height: 68px;
|
||||||
|
line-height: 68px;
|
||||||
|
padding: 0 0 0 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
border-bottom: 2px #eff1f3 solid;
|
||||||
|
z-index: 1000;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.doc-detail-title {
|
||||||
|
display: inline-block;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
line-height: 68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.doc-detail-right {
|
||||||
|
width: 800px;
|
||||||
|
line-height: 68px;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.doc-detail-btn {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-box {
|
||||||
|
padding: 0 32px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
height: 80px;
|
||||||
|
color: #000F16;
|
||||||
|
line-height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.processBackground-text {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #000F16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
padding: 0 0 0 18px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-left {
|
||||||
|
float: left;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-text-right {
|
||||||
|
padding: 19px 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
/*margin-left: 38px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.null-input {
|
||||||
|
background-color: #F2F4F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-text-title {
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-header {
|
||||||
|
margin-bottom: 11px;
|
||||||
|
|
||||||
|
.text-header-text {
|
||||||
|
margin-right: 52px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #040B29;
|
||||||
|
display: inline-block;
|
||||||
|
max-width: 180px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*span {*/
|
||||||
|
/* margin-right: 52px;*/
|
||||||
|
/* font-size: 16px;*/
|
||||||
|
/* font-weight: bold;*/
|
||||||
|
/* color: #040B29;*/
|
||||||
|
/* display: inline-block;*/
|
||||||
|
/* max-width: 500px;*/
|
||||||
|
/* text-overflow: ellipsis;*/
|
||||||
|
/* white-space: nowrap;*/
|
||||||
|
/* overflow: hidden;*/
|
||||||
|
/*}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-content {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #040B29;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
text-align: right;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noData {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'problemKnowledgeBaseView'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<template>
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<a-tabs v-model="tabModel" @change="callback">
|
||||||
|
<a-tab-pane :key="$t('problemKnowledgeBase')" :tab="$t('problemKnowledgeBase')">
|
||||||
|
<problemKnowledgeBaseList v-if="tabModel == $t('problemKnowledgeBase')" ref="problemKnowledgeBaseListRef"/>
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="Country Card" tab="Country Card">
|
||||||
|
<countryCardList v-if="tabModel == 'Country Card'" ref="countryCardListRef"/>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import problemKnowledgeBaseList from './components/problemKnowledgeBaseList'
|
||||||
|
import countryCardList from './components/countryCardList'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'index',
|
||||||
|
components: {
|
||||||
|
problemKnowledgeBaseList,
|
||||||
|
countryCardList
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
tabModel: this.$t('problemKnowledgeBase')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
callback(key) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
+8
-1
@@ -379,6 +379,8 @@
|
|||||||
this.formInline = JSON.parse(JSON.stringify(this.formInlineQuery))
|
this.formInline = JSON.parse(JSON.stringify(this.formInlineQuery))
|
||||||
if (this.formInline.technologyTerritory) {
|
if (this.formInline.technologyTerritory) {
|
||||||
this.formInline.technologyTerritory = this.formInline.technologyTerritory.split(',')
|
this.formInline.technologyTerritory = this.formInline.technologyTerritory.split(',')
|
||||||
|
} else {
|
||||||
|
this.formInline.technologyTerritory = []
|
||||||
}
|
}
|
||||||
this.formInline = { ...this.formInline }
|
this.formInline = { ...this.formInline }
|
||||||
} else {
|
} else {
|
||||||
@@ -396,6 +398,11 @@
|
|||||||
this.formInline.titleCn = value.serial_number + ' ' + value.title
|
this.formInline.titleCn = value.serial_number + ' ' + value.title
|
||||||
this.formInline.titleEn = value.serial_number + ' ' + value.title_en
|
this.formInline.titleEn = value.serial_number + ' ' + value.title_en
|
||||||
this.formInline.technologyTerritory = value.technology_territory_dict
|
this.formInline.technologyTerritory = value.technology_territory_dict
|
||||||
|
if (this.formInline.technologyTerritory) {
|
||||||
|
this.formInline.technologyTerritory = this.formInline.technologyTerritory.split(',')
|
||||||
|
} else {
|
||||||
|
this.formInline.technologyTerritory = []
|
||||||
|
}
|
||||||
this.formInline.applyCar = value.shi4_yong4_che1_xing2_dict
|
this.formInline.applyCar = value.shi4_yong4_che1_xing2_dict
|
||||||
this.formInline.applyScope = value.shi4_yong4_fan4_wei2_dict
|
this.formInline.applyScope = value.shi4_yong4_fan4_wei2_dict
|
||||||
this.formInline.state = value.state_dict
|
this.formInline.state = value.state_dict
|
||||||
@@ -406,7 +413,7 @@
|
|||||||
var pos = curPath.indexOf(pathname)
|
var pos = curPath.indexOf(pathname)
|
||||||
var localhostPath = curPath.substring(0, pos)
|
var localhostPath = curPath.substring(0, pos)
|
||||||
this.formInline.link = localhostPath + '/docManage/library/detail?id=' + value.id
|
this.formInline.link = localhostPath + '/docManage/library/detail?id=' + value.id
|
||||||
this.formInline = {...this.formInline}
|
this.formInline = { ...this.formInline }
|
||||||
},
|
},
|
||||||
getSysCategoryTree() {
|
getSysCategoryTree() {
|
||||||
getAction('/sys/category/getSysCategoryTree', {}).then((res) => {
|
getAction('/sys/category/getSysCategoryTree', {}).then((res) => {
|
||||||
|
|||||||
@@ -192,6 +192,10 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
deleteLib(val) {
|
deleteLib(val) {
|
||||||
|
if (val.children && val.children.length > 0) {
|
||||||
|
this.$message.warning(this.$t('thereWhichCannotDeleted'))
|
||||||
|
return
|
||||||
|
}
|
||||||
let _this = this
|
let _this = this
|
||||||
this.$confirm({
|
this.$confirm({
|
||||||
content: _this.$t('ConfirmDelete'),
|
content: _this.$t('ConfirmDelete'),
|
||||||
|
|||||||
+37
-5
@@ -14,12 +14,13 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text"
|
<span class="title-text-text"
|
||||||
:title="$t('chineseTitle')">{{$t('chineseTitle')}}</span>
|
:title="$t('chineseTitle')">{{$t('chineseTitle')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="chineseTitle">
|
<a-form-model-item class="itemModel" prop="titleCn">
|
||||||
<a-input class="box-input"
|
<a-input class="box-input"
|
||||||
v-model="formInline.titleCn"
|
v-model.trim="formInline.titleCn"
|
||||||
:placeholder="$t('PleaseEnter')+$t('chineseTitle')"/>
|
:placeholder="$t('PleaseEnter')+$t('chineseTitle')"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,11 +28,12 @@
|
|||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text">
|
<div class="title-text">
|
||||||
|
<span class="Required">*</span>
|
||||||
<span class="title-text-text" :title="$t('englishTitle')">{{$t('englishTitle')}}</span>
|
<span class="title-text-text" :title="$t('englishTitle')">{{$t('englishTitle')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-form-model-item class="itemModel" prop="englishTitle">
|
<a-form-model-item class="itemModel" prop="titleEn">
|
||||||
<a-input class="box-input"
|
<a-input class="box-input"
|
||||||
v-model="formInline.titleEn"
|
v-model.trim="formInline.titleEn"
|
||||||
:placeholder="$t('PleaseEnter')+$t('englishTitle')"/>
|
:placeholder="$t('PleaseEnter')+$t('englishTitle')"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -77,7 +79,32 @@
|
|||||||
visible: false,
|
visible: false,
|
||||||
confirmLoading: false,
|
confirmLoading: false,
|
||||||
formInline: {},
|
formInline: {},
|
||||||
rules: {},
|
rules: {
|
||||||
|
titleCn: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('chineseTitle') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 100,
|
||||||
|
message: this.$t('chineseTitle') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
titleEn: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.$t('englishTitle') + this.$t('cannotEmpty'),
|
||||||
|
trigger: 'blur'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
max: 100,
|
||||||
|
message: this.$t('englishTitle') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
ParentList: [],
|
ParentList: [],
|
||||||
title: '',
|
title: '',
|
||||||
url: {
|
url: {
|
||||||
@@ -240,4 +267,9 @@
|
|||||||
.formAdd {
|
.formAdd {
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Required {
|
||||||
|
color: red;
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -242,13 +242,20 @@ export default {
|
|||||||
getAction('sys/dict/getDictItems/cert_category', { }).then((res) => {
|
getAction('sys/dict/getDictItems/cert_category', { }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
let tt = ''
|
let tt = ''
|
||||||
|
let tten = ''
|
||||||
res.result.forEach((item) => {
|
res.result.forEach((item) => {
|
||||||
if(item.value == value){
|
if(item.value == value){
|
||||||
tt=item.title
|
tt=item.title
|
||||||
|
tten=item.textEn
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
this.cut = ''
|
||||||
|
if (long && long === 'zh-cn') {
|
||||||
this.contentListStart = tt
|
this.contentListStart = tt
|
||||||
console.log(this.contentListStart)
|
} else if (long && long === 'en-us') {
|
||||||
|
this.contentListStart = tten
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
console.log(value)
|
console.log(value)
|
||||||
@@ -268,8 +275,14 @@ export default {
|
|||||||
query.certCategoryName = this.contentListStart
|
query.certCategoryName = this.contentListStart
|
||||||
}
|
}
|
||||||
query.paramsManifestId = this.$route.query.id
|
query.paramsManifestId = this.$route.query.id
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
if (long && long === 'zh-cn') {
|
||||||
|
query.exportName = '常规导出'
|
||||||
|
} else if (long && long === 'en-us') {
|
||||||
|
query.exportName = 'normal'
|
||||||
|
}
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
downloadFile('report/detail/exportNormal', this.$t('GeneralExportInformation')+'.zip', query)
|
downloadFile('report/detail/exportNormal', query.exportName+'.zip', query)
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -243,8 +243,14 @@ export default {
|
|||||||
// query.certCategoryName = this.contentListStart
|
// query.certCategoryName = this.contentListStart
|
||||||
// }
|
// }
|
||||||
query.paramsManifestId = this.$route.query.id
|
query.paramsManifestId = this.$route.query.id
|
||||||
|
let long = localStorage.getItem('language')
|
||||||
|
if (long && long === 'zh-cn') {
|
||||||
|
query.exportName = '自定义导出'
|
||||||
|
} else if (long && long === 'en-us') {
|
||||||
|
query.exportName = 'custom'
|
||||||
|
}
|
||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
downloadFile('report/detail/exportCustom', this.$t('CustomizeExportInformation')+'.zip', query)
|
downloadFile('report/detail/exportCustom', query.exportName+'.zip', query)
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -15,11 +15,11 @@
|
|||||||
<a-row :gutter="24" style='margin-left: -90px;'>
|
<a-row :gutter="24" style='margin-left: -90px;'>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="6" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('certificationCategory')">
|
<div class="title-text" :title="$t('NcertificationCategory')">
|
||||||
<span>{{$t('certificationCategory')}}</span>
|
<span>{{$t('NcertificationCategory')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<j-multi-select-tag class="box-input" v-model="formInline.certCategory"
|
<j-multi-select-tag class="box-input" v-model="formInline.certCategory"
|
||||||
:placeholder="$t('PleaseSelect')+$t('certificationCategory')"
|
:placeholder="$t('PleaseSelect')+$t('NcertificationCategory')"
|
||||||
:type="'select'"
|
:type="'select'"
|
||||||
:triggerChange="false" :dictCode="'cert_category'"/>
|
:triggerChange="false" :dictCode="'cert_category'"/>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,20 +35,20 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="6" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('ParameterName')">
|
<div class="title-text" :title="$t('NParameterName')">
|
||||||
<span>{{$t('ParameterName')}}</span>
|
<span>{{$t('NParameterName')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('ParameterName')"
|
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('NParameterName')"
|
||||||
v-model="formInline.paramsName"></a-input>
|
v-model="formInline.paramsName"></a-input>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="6" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('completedBy')">
|
<div class="title-text" :title="$t('dre')">
|
||||||
<span>{{$t('completedBy')}}</span>
|
<span>{{$t('dre')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'completedBy',db_field_txt:$t('completedBy')}"
|
:query="{db_field_name:'completedBy',db_field_txt:$t('dre')}"
|
||||||
:isInput="true"
|
:isInput="true"
|
||||||
class="box-input"
|
class="box-input"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
@@ -58,11 +58,11 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="8">
|
<a-col :md="6" :sm="8">
|
||||||
<div class="box-title-text">
|
<div class="box-title-text">
|
||||||
<div class="title-text" :title="$t('engineeringInterfacePerson')">
|
<div class="title-text" :title="$t('sdt')">
|
||||||
<span>{{$t('engineeringInterfacePerson')}}</span>
|
<span>{{$t('sdt')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('sdt')}"
|
||||||
:isInput="true"
|
:isInput="true"
|
||||||
class="box-input"
|
class="box-input"
|
||||||
:personneQuery="formInline"
|
:personneQuery="formInline"
|
||||||
|
|||||||
@@ -211,11 +211,11 @@ export default {
|
|||||||
Action(url, query).then((res) => {
|
Action(url, query).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
this.$message.success(this.$t('OperationSuccessful'))
|
this.$message.success(res.message)
|
||||||
this.visible = false
|
this.visible = false
|
||||||
this.$emit('addModelList')
|
this.$emit('addModelList')
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(this.$t('operationFailed'))
|
this.$message.warning(res.message)
|
||||||
this.confirmLoading = false
|
this.confirmLoading = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline">
|
<a-form layout="inline">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :md="6" :sm="12">
|
<a-col :md="6" :sm="10">
|
||||||
<a-form-item :label="$t('Collectlist')">
|
<a-form-item :label="$t('Collectlist')">
|
||||||
<a-select v-model="queryParam.ctype" @change="getonChange">
|
<a-select v-model="queryParam.ctype" @change="getonChange">
|
||||||
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option>
|
<a-select-option v-for="d in options" :key="d.value" :value="d.value" >{{ d.label }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="12">
|
<a-col :md="6" :sm="14">
|
||||||
<a-form-model-item :label="$t('Statisticalmodels')" prop="value" class="process-form-item">
|
<a-form-model-item :label="$t('Statisticalmodels')" prop="value" class="process-form-item">
|
||||||
<a-radio-group v-model="queryParam.value" @change="onChange">
|
<a-radio-group v-model="queryParam.value" @change="onChange" style='width: 253px'>
|
||||||
<a-radio :value="1">
|
<a-radio :value="1">
|
||||||
{{$t('Thepercentage')}}
|
{{$t('Thepercentage')}}
|
||||||
</a-radio>
|
</a-radio>
|
||||||
@@ -50,7 +50,8 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
queryParam:{
|
queryParam:{
|
||||||
value:1
|
value:1,
|
||||||
|
ctype:''
|
||||||
},
|
},
|
||||||
options:[],
|
options:[],
|
||||||
collecting:[],
|
collecting:[],
|
||||||
@@ -89,36 +90,7 @@
|
|||||||
this.submit = res.result.submit ? res.result.submit : []
|
this.submit = res.result.submit ? res.result.submit : []
|
||||||
this.syncReport = res.result.syncReport ? res.result.syncReport : []
|
this.syncReport = res.result.syncReport ? res.result.syncReport : []
|
||||||
this.dutyTerritory = res.result.dutyTerritory ? res.result.dutyTerritory : []
|
this.dutyTerritory = res.result.dutyTerritory ? res.result.dutyTerritory : []
|
||||||
this.collecting.forEach((item,index) => {
|
|
||||||
this.collectingpercentage.push(item.percentage)
|
|
||||||
this.collectingquantity.push(item.quantity)
|
|
||||||
})
|
|
||||||
this.notStart.forEach((item,index) => {
|
|
||||||
this.notStartpercentage.push(item.percentage)
|
|
||||||
this.notStartquantity.push(item.quantity)
|
|
||||||
})
|
|
||||||
this.submit.forEach((item,index) => {
|
|
||||||
this.submitpercentage.push(item.percentage)
|
|
||||||
this.submitquantity.push(item.quantity)
|
|
||||||
})
|
|
||||||
this.syncReport.forEach((item,index) => {
|
|
||||||
this.syncReportpercentage.push(item.percentage)
|
|
||||||
this.syncReportquantity.push(item.quantity)
|
|
||||||
})
|
|
||||||
if(this.queryParam.value = 1){
|
|
||||||
this.collectingdata = this.collectingpercentage
|
|
||||||
this.notStartdata = this.notStartpercentage
|
|
||||||
this.submitdata = this.submitpercentage
|
|
||||||
this.syncReportdata = this.syncReportpercentage
|
|
||||||
}else{
|
|
||||||
this.collectingdata = this.collectingquantity
|
|
||||||
this.notStartdata = this.notStartquantity
|
|
||||||
this.submitdata = this.submitquantity
|
|
||||||
this.syncReportdata = this.syncReportquantity
|
|
||||||
}
|
|
||||||
setTimeout(() => {
|
|
||||||
this.getEcharts()
|
this.getEcharts()
|
||||||
},1000)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,30 +108,93 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
getonChange(value){
|
getonChange(value){
|
||||||
|
this.collectingpercentage = []
|
||||||
|
this.collectingquantity = []
|
||||||
|
this.notStartpercentage = []
|
||||||
|
this.notStartquantity = []
|
||||||
|
this.submitpercentage = []
|
||||||
|
this.submitquantity = []
|
||||||
|
this.syncReportpercentage = []
|
||||||
|
this.syncReportquantity = []
|
||||||
this.getData(value)
|
this.getData(value)
|
||||||
},
|
},
|
||||||
onChange(){
|
onChange(value){
|
||||||
|
this.collectingpercentage = []
|
||||||
|
this.collectingquantity = []
|
||||||
|
this.notStartpercentage = []
|
||||||
|
this.notStartquantity = []
|
||||||
|
this.submitpercentage = []
|
||||||
|
this.submitquantity = []
|
||||||
|
this.syncReportpercentage = []
|
||||||
|
this.syncReportquantity = []
|
||||||
|
this.getEcharts()
|
||||||
|
|
||||||
},
|
},
|
||||||
getEcharts(chart, title, color, data, num) {
|
getEcharts(chart, title, color, data, num) {
|
||||||
|
this.collecting.forEach((item,index) => {
|
||||||
|
this.collectingpercentage.push(item.percentage)
|
||||||
|
this.collectingquantity.push(item.quantity)
|
||||||
|
})
|
||||||
|
this.notStart.forEach((item,index) => {
|
||||||
|
this.notStartpercentage.push(item.percentage)
|
||||||
|
this.notStartquantity.push(item.quantity)
|
||||||
|
})
|
||||||
|
this.submit.forEach((item,index) => {
|
||||||
|
this.submitpercentage.push(item.percentage)
|
||||||
|
this.submitquantity.push(item.quantity)
|
||||||
|
})
|
||||||
|
this.syncReport.forEach((item,index) => {
|
||||||
|
this.syncReportpercentage.push(item.percentage)
|
||||||
|
this.syncReportquantity.push(item.quantity)
|
||||||
|
})
|
||||||
|
if(this.queryParam.value == 1){
|
||||||
|
this.collectingdata = this.collectingpercentage
|
||||||
|
this.notStartdata = this.notStartpercentage
|
||||||
|
this.submitdata = this.submitpercentage
|
||||||
|
this.syncReportdata = this.syncReportpercentage
|
||||||
|
}else if(this.queryParam.value == 2){
|
||||||
|
this.collectingdata = this.collectingquantity
|
||||||
|
this.notStartdata = this.notStartquantity
|
||||||
|
this.submitdata = this.submitquantity
|
||||||
|
this.syncReportdata = this.syncReportquantity
|
||||||
|
}
|
||||||
var chartDom = document.getElementById('main-left');
|
var chartDom = document.getElementById('main-left');
|
||||||
var myChart = echarts.init(chartDom);
|
var myChart = echarts.init(chartDom);
|
||||||
var option;
|
var option;
|
||||||
|
var option1;
|
||||||
|
|
||||||
let xAxisData = [];
|
let xAxisData = [];
|
||||||
// let data1 = [];
|
// let data1 = [];
|
||||||
// let data2 = [];
|
// let data2 = [];
|
||||||
// let data3 = [];
|
// let data3 = [];
|
||||||
// let data4 = [];
|
// let data4 = [];
|
||||||
this.dutyTerritory.forEach((item,index) => {
|
xAxisData = this.dutyTerritory
|
||||||
xAxisData.push(item);
|
|
||||||
})
|
|
||||||
// data1.push(+(Math.random() * 2).toFixed(2));
|
// data1.push(+(Math.random() * 2).toFixed(2));
|
||||||
// data2.push(+(Math.random() * 100).toFixed(2));
|
// data2.push(+(Math.random() * 100).toFixed(2));
|
||||||
// data3.push(+(Math.random() + 0.3).toFixed(2));
|
// data3.push(+(Math.random() + 0.3).toFixed(2));
|
||||||
// data4.push(+Math.random().toFixed(2));
|
// data4.push(+Math.random().toFixed(2));
|
||||||
|
|
||||||
|
let yAxis=[];
|
||||||
|
let tooltip= {};
|
||||||
|
let _this = this
|
||||||
|
if(this.queryParam.value === 1){
|
||||||
|
yAxis = [
|
||||||
|
{
|
||||||
|
type: 'value',
|
||||||
|
axisLabel: {
|
||||||
|
show: true,
|
||||||
|
interval: 'auto',
|
||||||
|
formatter: '{value} %'
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}else{
|
||||||
|
yAxis=[
|
||||||
|
{
|
||||||
|
type: 'value',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
option = {
|
option = {
|
||||||
legend: {
|
legend: {
|
||||||
data: [this.$t('Notatthe'), this.$t('Inthecollection'), this.$t('Submitted'), this.$t('SynchronizedLibrary')],
|
data: [this.$t('Notatthe'), this.$t('Inthecollection'), this.$t('Submitted'), this.$t('SynchronizedLibrary')],
|
||||||
@@ -173,46 +208,70 @@
|
|||||||
// dataView: {}
|
// dataView: {}
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
tooltip: {},
|
tooltip: {
|
||||||
|
trigger:'axis',
|
||||||
|
// axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||||
|
// type: 'line'// 默认为直线,可选为:'line' | 'shadow'
|
||||||
|
// },
|
||||||
|
formatter: function (params) {
|
||||||
|
var html = params[0].name + "<br>";
|
||||||
|
for (var i = 0; i < params.length; i++) {
|
||||||
|
html += params[i].marker + params[i].seriesName + ":" + params[i].value;
|
||||||
|
if (_this.queryParam.value == 1) {
|
||||||
|
html += "%" + "<br>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return html;
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
data: xAxisData,
|
data: xAxisData,
|
||||||
// name: 'X Axis',
|
// name: 'X Axis',
|
||||||
axisLine: { onZero: true },
|
axisLabel: {
|
||||||
splitLine: { show: false },
|
interval: 0,
|
||||||
splitArea: { show: false }
|
rotate:25,
|
||||||
|
// formatter: function(value) {
|
||||||
|
// return value.split("").join("\n");
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
yAxis: {},
|
// axisLine: { onZero: true },
|
||||||
|
// splitLine: { show: false },
|
||||||
|
// splitArea: { show: false }
|
||||||
|
},
|
||||||
|
yAxis: yAxis,
|
||||||
grid: {
|
grid: {
|
||||||
bottom: 100
|
left: '10%',
|
||||||
|
bottom: '15%'
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name: this.$t('Notatthe'),
|
name: this.$t('Notatthe'),
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
stack: 'one',
|
stack: 'one',
|
||||||
barWidth: 30,
|
barWidth: 40,
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#707486",
|
color: "#707486",
|
||||||
},
|
},
|
||||||
data: this.collectingdata
|
data: this.notStartdata
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: this.$t('Inthecollection'),
|
name: this.$t('Inthecollection'),
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
stack: 'one',
|
stack: 'one',
|
||||||
barWidth: 30,
|
barWidth: 40,
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#00B3BE",
|
color: "#00B3BE",
|
||||||
},
|
},
|
||||||
data: this.notStartdata
|
data: this.collectingdata
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: this.$t('Submitted'),
|
name: this.$t('Submitted'),
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
stack: 'one',
|
stack: 'one',
|
||||||
barWidth: 30,
|
barWidth: 40,
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#26BD4B",
|
color: "#26BD4B",
|
||||||
@@ -223,7 +282,7 @@
|
|||||||
name: this.$t('SynchronizedLibrary'),
|
name: this.$t('SynchronizedLibrary'),
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
stack: 'one',
|
stack: 'one',
|
||||||
barWidth: 30,
|
barWidth: 40,
|
||||||
barGap: '-100%',
|
barGap: '-100%',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#E83030",
|
color: "#E83030",
|
||||||
@@ -234,60 +293,20 @@
|
|||||||
dataZoom:[
|
dataZoom:[
|
||||||
|
|
||||||
{
|
{
|
||||||
|
type: 'slider',//给x轴设置滚动条
|
||||||
type: 'slider',
|
show: true, //flase直接隐藏图形
|
||||||
|
|
||||||
show: false,
|
|
||||||
|
|
||||||
start:0,//默认为0
|
|
||||||
|
|
||||||
end: 100,//默认为100
|
|
||||||
|
|
||||||
xAxisIndex: [0],
|
xAxisIndex: [0],
|
||||||
|
bottom: 0,
|
||||||
handleSize: 0,//滑动条的 左右2个滑动条的大小
|
height: 20,
|
||||||
|
showDetail: false,
|
||||||
height: 5,//组件高度
|
startValue: 0,//滚动条的起始位置
|
||||||
|
endValue: 9 //滚动条的截止位置(按比例分割你的柱状图x轴长度)
|
||||||
bottom: 0,//右边的距离
|
}
|
||||||
|
|
||||||
borderColor: "#e3e3e3",
|
|
||||||
|
|
||||||
fillerColor: '#51B7F9',
|
|
||||||
|
|
||||||
borderRadius:10,
|
|
||||||
|
|
||||||
backgroundColor: '#e3e3e3',//两边未选中的滑动条区域的颜色
|
|
||||||
|
|
||||||
showDataShadow: false,//是否显示数据阴影 默认auto
|
|
||||||
|
|
||||||
showDetail: false,//即拖拽时候是否显示详细数值信息 默认true
|
|
||||||
|
|
||||||
realtime:true, //是否实时更新
|
|
||||||
|
|
||||||
filterMode: 'filter',
|
|
||||||
|
|
||||||
zlevel:-10,
|
|
||||||
|
|
||||||
},
|
|
||||||
//以下重点: 让鼠标滚动从缩放变成移动
|
|
||||||
{
|
|
||||||
|
|
||||||
type: 'inside',
|
|
||||||
|
|
||||||
xAxisIndex: [0],
|
|
||||||
|
|
||||||
zoomOnMouseWheel:false, //滚轮不触发缩放
|
|
||||||
|
|
||||||
moveOnMouseMove:true, //鼠标移动触发平移
|
|
||||||
|
|
||||||
moveOnMouseWheel:true, //鼠标滚轮触发平移
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
option && myChart.setOption(option);
|
option && myChart.setOption(option, true);
|
||||||
|
|
||||||
},
|
},
|
||||||
mainLeftEcharts(data, color) {
|
mainLeftEcharts(data, color) {
|
||||||
this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1)
|
this.getEcharts('main-left', this.$t('Parametercollection'), color, data, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user