Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage
This commit is contained in:
+4
-2
@@ -183,8 +183,10 @@ public class LawsMonthlyReportWriteEOController extends JeroController<LawsMonth
|
|||||||
@AutoLog(value = "月报整合导出zip")
|
@AutoLog(value = "月报整合导出zip")
|
||||||
@ApiOperation(value = "月报整合导出zip", notes = "月报整合导出zip")
|
@ApiOperation(value = "月报整合导出zip", notes = "月报整合导出zip")
|
||||||
@RequestMapping(value = "/exportMonthlyReport", method = RequestMethod.GET)
|
@RequestMapping(value = "/exportMonthlyReport", method = RequestMethod.GET)
|
||||||
public ResponseEntity<byte[]> exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) throws IOException {
|
public void exportMonthlyReport(HttpServletResponse response,
|
||||||
return lawsMonthlyReportWriteEOService.exportMonthlyReport(lawsMonthlyReportWriteEO);
|
HttpServletRequest request,
|
||||||
|
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) throws IOException {
|
||||||
|
lawsMonthlyReportWriteEOService.exportMonthlyReport(response,request,lawsMonthlyReportWriteEO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value="带入标准信息--分页", notes="带入标准信息--分页")
|
@ApiOperation(value="带入标准信息--分页", notes="带入标准信息--分页")
|
||||||
|
|||||||
+4
-2
@@ -3,9 +3,9 @@ package com.jero.modules.report.service;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.jero.modules.report.entity.LawsMonthlyReportWriteEO;
|
import com.jero.modules.report.entity.LawsMonthlyReportWriteEO;
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -77,7 +77,9 @@ public interface ILawsMonthlyReportWriteEOService extends IService<LawsMonthlyRe
|
|||||||
Integer pageSize,
|
Integer pageSize,
|
||||||
HttpServletRequest req);
|
HttpServletRequest req);
|
||||||
|
|
||||||
ResponseEntity<byte[]> exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO);
|
void exportMonthlyReport(HttpServletResponse response,
|
||||||
|
HttpServletRequest request,
|
||||||
|
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO);
|
||||||
|
|
||||||
IPage queryPageDocument(Map<String, Object> parameter);
|
IPage queryPageDocument(Map<String, Object> parameter);
|
||||||
}
|
}
|
||||||
|
|||||||
+136
-12
@@ -1,5 +1,7 @@
|
|||||||
package com.jero.modules.report.service.impl;
|
package com.jero.modules.report.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ZipUtil;
|
||||||
|
import com.aliyuncs.utils.IOUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@@ -32,15 +34,19 @@ import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
|||||||
import com.jero.modules.system.util.StringUtils;
|
import com.jero.modules.system.util.StringUtils;
|
||||||
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
||||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||||
|
import org.aspectj.util.FileUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -327,7 +333,9 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<byte[]> exportMonthlyReport(LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) {
|
public void exportMonthlyReport(HttpServletResponse response,
|
||||||
|
HttpServletRequest request,
|
||||||
|
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO) {
|
||||||
ResponseEntity<byte[]> result = null;
|
ResponseEntity<byte[]> result = null;
|
||||||
//获取数据
|
//获取数据
|
||||||
LambdaQueryWrapper<LawsMonthlyReportWriteEO> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<LawsMonthlyReportWriteEO> wrapper = new LambdaQueryWrapper<>();
|
||||||
@@ -353,17 +361,35 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
|
|||||||
fileTemp.delete();
|
fileTemp.delete();
|
||||||
}
|
}
|
||||||
fileTemp.mkdirs();
|
fileTemp.mkdirs();
|
||||||
createWord(path,lawsMonthlyReportWriteEOS,lawsMonthlyReportTitleTemplateEOS);
|
OutputStream os = null;
|
||||||
|
try {
|
||||||
|
createWord(path,lawsMonthlyReportWriteEOS,lawsMonthlyReportTitleTemplateEOS);
|
||||||
|
ZipUtil.zip(path, path + ".zip");
|
||||||
|
//文件
|
||||||
|
os = response.getOutputStream();
|
||||||
|
FileInputStream fis = new FileInputStream(path + ".zip");
|
||||||
|
os = response.getOutputStream();
|
||||||
|
|
||||||
|
int len = 0;
|
||||||
|
while ((len = fis.read()) != -1) {
|
||||||
|
os.write(len);
|
||||||
|
}
|
||||||
|
os.flush();
|
||||||
|
} catch (Exception e) {
|
||||||
|
|
||||||
|
}finally {
|
||||||
|
IOUtils.closeQuietly(os);
|
||||||
|
File file = new File(uploadpath + "/tempZip");
|
||||||
|
FileUtil.deleteContents(file);
|
||||||
|
File fileTem = new File(uploadpath + "/tempZip.zip");
|
||||||
|
FileUtil.deleteContents(fileTem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*创建word文件
|
||||||
* @param path
|
* @param path
|
||||||
* @param lawsMonthlyReportWriteEOS 列表数据
|
* @param lawsMonthlyReportWriteEOS 列表数据
|
||||||
* @param lawsMonthlyReportTitleTemplateEOS 章节目录
|
* @param lawsMonthlyReportTitleTemplateEOS 章节目录
|
||||||
@@ -371,32 +397,130 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
|
|||||||
private void createWord(String path,
|
private void createWord(String path,
|
||||||
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
|
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
|
||||||
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS){
|
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS){
|
||||||
|
//一级菜单
|
||||||
|
List<String> parentIdList = lawsMonthlyReportTitleTemplateEOS.stream().map(LawsMonthlyReportTitleTemplateEO::getParentId).distinct().collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<LawsMonthlyReportTitleTemplateEO> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(LawsMonthlyReportTitleTemplateEO::getId,parentIdList).orderByAsc(LawsMonthlyReportTitleTemplateEO::getSort);
|
||||||
|
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList = lawsMonthlyReportTitleTemplateEOService.list(wrapper);
|
||||||
//蔚来汽车法规月报-202004-主页面-CN
|
//蔚来汽车法规月报-202004-主页面-CN
|
||||||
//NIO Monthly Report on Automobile Regulations-202004-Main Page-EN
|
//NIO Monthly Report on Automobile Regulations-202004-Main Page-EN
|
||||||
String memoriesChapterCN = path + File.separator +"蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"主页面-CN.docx";
|
String memoriesChapterCN = path + File.separator +"蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"主页面-CN.docx";
|
||||||
String memoriesChapterEN = path + File.separator +"NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-Main Page-EN.docx";
|
String memoriesChapterEN = path + File.separator +"NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth()+"-Main Page-EN.docx";
|
||||||
|
String titleCN = "蔚来汽车法规月报" + lawsMonthlyReportWriteEOS.get(0).getMonth();
|
||||||
|
String titleEN = "NIO Monthly Report on Automobile Regulations-" + lawsMonthlyReportWriteEOS.get(0).getMonth();
|
||||||
|
|
||||||
File wordFile = new File(memoriesChapterCN);
|
File wordFile = new File(memoriesChapterCN);
|
||||||
|
File wordFileEn = new File(memoriesChapterEN);
|
||||||
if(!wordFile.exists()){
|
if(!wordFile.exists()){
|
||||||
try {
|
try {
|
||||||
wordFile.getParentFile().mkdirs();
|
wordFile.getParentFile().mkdirs();
|
||||||
wordFile.createNewFile();
|
wordFile.createNewFile();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("文件《"+memoriesChapterCN+"》创建失败");
|
log.error("文件《"+titleCN+"》创建失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try (XWPFDocument document = new XWPFDocument();
|
try {
|
||||||
FileOutputStream out = new FileOutputStream(wordFile)) {
|
//主页面中文版
|
||||||
WordUtil.exportWord(document, memoriesChapterCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
|
XWPFDocument document = new XWPFDocument();
|
||||||
|
FileOutputStream out = new FileOutputStream(wordFile);
|
||||||
|
word(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleCN, document,CutEnum.CN.getValue());
|
||||||
|
document.write(out);
|
||||||
|
//主页面英文版
|
||||||
|
XWPFDocument documentEn = new XWPFDocument();
|
||||||
|
FileOutputStream outCn = new FileOutputStream(wordFileEn);
|
||||||
|
word(lawsMonthlyReportWriteEOS, lawsMonthlyReportTitleTemplateEOS, reportTitleOneList, titleEN, documentEn,CutEnum.EN.getValue());
|
||||||
|
documentEn.write(outCn);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("文件创建异常,异常信息为:" + e.getMessage());
|
log.error("文件创建异常,异常信息为:" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void word(List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS,
|
||||||
|
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS,
|
||||||
|
List<LawsMonthlyReportTitleTemplateEO> reportTitleOneList,
|
||||||
|
String titleCN,
|
||||||
|
XWPFDocument document,
|
||||||
|
String cut) {
|
||||||
|
String content = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
content = "主要内容";
|
||||||
|
}else{
|
||||||
|
content = "Content";
|
||||||
|
}
|
||||||
|
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
|
||||||
|
WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
|
||||||
|
int oneCount = 1;
|
||||||
|
|
||||||
|
for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : reportTitleOneList) {
|
||||||
|
int twoCount = 1;
|
||||||
|
String oneNumber = intToRoman(oneCount);
|
||||||
|
//一级标题
|
||||||
|
String oneTitle = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
oneTitle = lawsMonthlyReportTitleTemplateEO.getTitleCn();
|
||||||
|
}else{
|
||||||
|
oneTitle = lawsMonthlyReportTitleTemplateEO.getTitleEn();
|
||||||
|
}
|
||||||
|
WordUtil.exportWord(document, oneNumber+" "+oneTitle, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
|
||||||
|
oneCount++;
|
||||||
|
List<LawsMonthlyReportTitleTemplateEO> reportTitleTwoList = lawsMonthlyReportTitleTemplateEOS.stream().filter(e -> e.getParentId().equals(lawsMonthlyReportTitleTemplateEO.getId())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
for (LawsMonthlyReportTitleTemplateEO monthlyReportTitleTemplateEO : reportTitleTwoList) {
|
||||||
|
int reportCount = 1;
|
||||||
|
//子标题对应的月报填写的内容
|
||||||
|
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOList = lawsMonthlyReportWriteEOS.stream().filter(e -> monthlyReportTitleTemplateEO.getId().equals(e.getMemoriesChapter())).collect(Collectors.toList());
|
||||||
|
String twoNumber = intToRoman(twoCount);
|
||||||
|
twoNumber = oneNumber+"."+twoNumber;
|
||||||
|
|
||||||
|
//二级标题
|
||||||
|
String twoTitle = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
twoTitle = monthlyReportTitleTemplateEO.getTitleCn();
|
||||||
|
}else{
|
||||||
|
twoTitle = monthlyReportTitleTemplateEO.getTitleEn();
|
||||||
|
}
|
||||||
|
WordUtil.exportWord(document, twoNumber+" "+twoTitle, null, ParagraphAlignment.LEFT, 2, 12, false, true, "Microsoft YaHei UI");
|
||||||
|
twoCount++;
|
||||||
|
|
||||||
|
for (LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO : lawsMonthlyReportWriteEOList) {
|
||||||
|
//月报内容标题
|
||||||
|
String reportTitle = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
reportTitle = lawsMonthlyReportWriteEO.getTitleCn();
|
||||||
|
}else{
|
||||||
|
reportTitle = lawsMonthlyReportWriteEO.getTitleEn();
|
||||||
|
}
|
||||||
|
WordUtil.exportWord(document, reportCount+". "+reportTitle, null, ParagraphAlignment.LEFT, 6, 10, false, false, "Microsoft YaHei UI");
|
||||||
|
reportCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数字转罗马字
|
||||||
|
* @param num
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String intToRoman(int num) {
|
||||||
|
int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
|
||||||
|
String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
|
||||||
|
StringBuffer ss=new StringBuffer();
|
||||||
|
for (int i=0;i<values.length;i++){
|
||||||
|
while (num>=values[i]){
|
||||||
|
num=num-values[i];
|
||||||
|
ss.append(symbols[i]);
|
||||||
|
}
|
||||||
|
if (num==0){
|
||||||
|
return ss.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println(ss);
|
||||||
|
return ss.toString();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage queryPageDocument(Map<String, Object> parameter) {
|
public IPage queryPageDocument(Map<String, Object> parameter) {
|
||||||
String cut = (String) parameter.get("cut");//中英文切换标识
|
String cut = (String) parameter.get("cut");//中英文切换标识
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
"jsencrypt": "^3.0.0-rc.1",
|
"jsencrypt": "^3.0.0-rc.1",
|
||||||
"lodash.get": "^4.4.2",
|
"lodash.get": "^4.4.2",
|
||||||
"lodash.pick": "^4.4.0",
|
"lodash.pick": "^4.4.0",
|
||||||
|
"mammoth": "^1.4.21",
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"tinymce": "^5.3.2",
|
"tinymce": "^5.3.2",
|
||||||
|
|||||||
+6
-1
@@ -147,6 +147,7 @@
|
|||||||
return {
|
return {
|
||||||
formInline: {},
|
formInline: {},
|
||||||
rules: {},
|
rules: {},
|
||||||
|
loading: false,
|
||||||
gData: [
|
gData: [
|
||||||
{
|
{
|
||||||
title: '0-0sdf dsfdsfdsfdsfds',
|
title: '0-0sdf dsfdsfdsfdsfds',
|
||||||
@@ -175,7 +176,10 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
viewTheComparisonResultsClick() {
|
viewTheComparisonResultsClick() {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/comparisonResults'
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
},
|
},
|
||||||
addFullTextCommentClick() {
|
addFullTextCommentClick() {
|
||||||
|
|
||||||
@@ -306,6 +310,7 @@
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 0 32px;
|
padding: 0 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-content-content-left {
|
.detail-content-content-left {
|
||||||
|
|||||||
@@ -257,7 +257,10 @@
|
|||||||
window.open(newUrl.href, '_blank')
|
window.open(newUrl.href, '_blank')
|
||||||
},
|
},
|
||||||
subscribe() {
|
subscribe() {
|
||||||
|
let newUrl = this.$router.resolve({
|
||||||
|
path: '/documentDataComparison'
|
||||||
|
})
|
||||||
|
window.open(newUrl.href, '_blank')
|
||||||
},
|
},
|
||||||
edit() {
|
edit() {
|
||||||
|
|
||||||
|
|||||||
+57
-8
@@ -18,18 +18,22 @@
|
|||||||
<div class="detail-text">
|
<div class="detail-text">
|
||||||
<iframe :src="detailUrlLeft"
|
<iframe :src="detailUrlLeft"
|
||||||
ref="iframeLeft"
|
ref="iframeLeft"
|
||||||
|
@load="detailUrlLeftLoad"
|
||||||
sandbox="allow-same-origin allow-scripts"
|
sandbox="allow-same-origin allow-scripts"
|
||||||
id="iframe-left"
|
id="iframe-left"
|
||||||
class="detail-text-iframe" frameborder="0"></iframe>
|
class="detail-text-iframe" frameborder="0"></iframe>
|
||||||
</div>
|
</div>
|
||||||
|
<JLoading :loading="loadingLeft">{{$t('dataLoading')}}</JLoading>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-content-right">
|
<div class="detail-content-right">
|
||||||
<div class="detail-text-top">
|
<div class="detail-text-top">
|
||||||
{{$t('translatedText')}}
|
{{$t('translatedText')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="detail-text">
|
<div class="detail-text">
|
||||||
<iframe :src="detailUrlRight" class="detail-text-iframe" frameborder="0"></iframe>
|
<iframe :src="detailUrlRight" @load="detailUrlrightLoad" class="detail-text-iframe"
|
||||||
|
frameborder="0"></iframe>
|
||||||
</div>
|
</div>
|
||||||
|
<JLoading :loading="loadingRight">{{$t('dataLoading')}}</JLoading>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,6 +43,10 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Base64 } from 'js-base64'
|
import { Base64 } from 'js-base64'
|
||||||
|
import mammoth from 'mammoth'
|
||||||
|
import axios from 'axios'
|
||||||
|
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'documentTranslationResults',
|
name: 'documentTranslationResults',
|
||||||
@@ -46,6 +54,8 @@
|
|||||||
return {
|
return {
|
||||||
detailUrlLeft: '',
|
detailUrlLeft: '',
|
||||||
detailUrlRight: '',
|
detailUrlRight: '',
|
||||||
|
loadingLeft: false,
|
||||||
|
loadingRight: false,
|
||||||
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
|
||||||
fileQuery: {}
|
fileQuery: {}
|
||||||
}
|
}
|
||||||
@@ -53,13 +63,6 @@
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.fileQuery = this.$route.query
|
this.fileQuery = this.$route.query
|
||||||
this.onlinePreview()
|
this.onlinePreview()
|
||||||
setTimeout(() => {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.iframeLeft.contentWindow.document.body.style = 'background-color:#fff'
|
|
||||||
console.log(this.$refs.iframeLeft.contentWindow.document.body.style.backgroundColor)
|
|
||||||
})
|
|
||||||
}, 2000)
|
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
Fallback() {
|
Fallback() {
|
||||||
@@ -67,13 +70,57 @@
|
|||||||
path: '/documentTranslation'
|
path: '/documentTranslation'
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
detailUrlLeftLoad() {
|
||||||
|
this.loadingLeft = false
|
||||||
|
},
|
||||||
|
detailUrlrightLoad() {
|
||||||
|
this.loadingRight = false
|
||||||
|
},
|
||||||
onlinePreview() {
|
onlinePreview() {
|
||||||
let fileName = this.fileQuery.fileName
|
let fileName = this.fileQuery.fileName
|
||||||
let index1 = fileName.lastIndexOf('.')
|
let index1 = fileName.lastIndexOf('.')
|
||||||
let index2 = fileName.length
|
let index2 = fileName.length
|
||||||
let fileSuffix = fileName.substring(index1, index2)
|
let fileSuffix = fileName.substring(index1, index2)
|
||||||
|
this.loadingLeft = true
|
||||||
|
this.loadingRight = true
|
||||||
|
// this.readExcelFromRemoteFileLeft(this.downLoadFileUrl + '/' + this.fileQuery.sourceFileId + fileSuffix)
|
||||||
|
// this.readExcelFromRemoteFileRight(this.downLoadFileUrl + '/' + this.fileQuery.targetFileId + fileSuffix)
|
||||||
this.detailUrlLeft = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.sourceFileId + fileSuffix)
|
this.detailUrlLeft = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.sourceFileId + fileSuffix)
|
||||||
this.detailUrlRight = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.targetFileId + fileSuffix)
|
this.detailUrlRight = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + this.fileQuery.targetFileId + fileSuffix)
|
||||||
|
},
|
||||||
|
readExcelFromRemoteFileLeft: function(url) {
|
||||||
|
var vm = this
|
||||||
|
var xhr = new XMLHttpRequest()
|
||||||
|
xhr.open('get', url, true)
|
||||||
|
xhr.responseType = 'arraybuffer'
|
||||||
|
xhr.onload = function() {
|
||||||
|
if (xhr.status == 200) {
|
||||||
|
mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
|
||||||
|
.then(function(resultObject) {
|
||||||
|
vm.$nextTick(() => {
|
||||||
|
vm.detailUrlLeft = resultObject.value
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xhr.send()
|
||||||
|
},
|
||||||
|
readExcelFromRemoteFileRight: function(url) {
|
||||||
|
var vm = this
|
||||||
|
var xhr = new XMLHttpRequest()
|
||||||
|
xhr.open('get', url, true)
|
||||||
|
xhr.responseType = 'arraybuffer'
|
||||||
|
xhr.onload = function() {
|
||||||
|
if (xhr.status == 200) {
|
||||||
|
mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) })
|
||||||
|
.then(function(resultObject) {
|
||||||
|
vm.$nextTick(() => {
|
||||||
|
vm.detailUrlRight = resultObject.value
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xhr.send()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,9 +173,11 @@
|
|||||||
padding: 24px 32px;
|
padding: 24px 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail-content-right {
|
.detail-content-right {
|
||||||
|
position: relative;
|
||||||
float: left;
|
float: left;
|
||||||
width: calc(50% - 12px);
|
width: calc(50% - 12px);
|
||||||
padding: 24px 32px;
|
padding: 24px 32px;
|
||||||
|
|||||||
@@ -90,9 +90,10 @@
|
|||||||
<div class="title-text" :title="$t('uploadTime')">
|
<div class="title-text" :title="$t('uploadTime')">
|
||||||
<span>{{ $t('uploadTime') }}</span>
|
<span>{{ $t('uploadTime') }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- :placeholder="$t('PleaseSelect')+$t('uploadTime')"-->
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
style='width: 264px'
|
style='width: 264px'
|
||||||
:placeholder="$t('PleaseSelect')+$t('uploadTime')"
|
|
||||||
@change="onChange"
|
@change="onChange"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||||
@@ -115,11 +116,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="table-operator" style="overflow:hidden;margin-bottom: 20px">
|
<div class="table-operator" style="overflow:hidden;margin-bottom: 20px">
|
||||||
<div style="float: right;margin-bottom: 0px;margin-left: 20px">
|
<div style="float: right;margin-bottom: 0px;margin-left: 20px">
|
||||||
<div class="operator-text" @click="handleuploadFile()">
|
<div class="operator-text" @click="handleuploadFile()" v-if='authmanage'>
|
||||||
<a-icon type="import"/>
|
<a-icon type="import"/>
|
||||||
{{ $t('UploadFile') }}
|
{{ $t('UploadFile') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="operator-text" @click="handleDel()">
|
<div class="operator-text" @click="handleDel()" v-if='authmanage'>
|
||||||
<a-icon type="delete"/>
|
<a-icon type="delete"/>
|
||||||
{{ $t('BatchDelete') }}
|
{{ $t('BatchDelete') }}
|
||||||
</div>
|
</div>
|
||||||
@@ -145,8 +146,8 @@
|
|||||||
<span slot="operation" slot-scope="text,record">
|
<span slot="operation" slot-scope="text,record">
|
||||||
<!-- <a class="text-operation" @click="handlelist(record)">{{$t('view')}}</a>-->
|
<!-- <a class="text-operation" @click="handlelist(record)">{{$t('view')}}</a>-->
|
||||||
<a class="text-operation" @click="download(record)">{{$t('download')}}</a>
|
<a class="text-operation" @click="download(record)">{{$t('download')}}</a>
|
||||||
<a class="text-operation" @click="handleEdit(record)">{{$t('edit')}}</a>
|
<a class="text-operation" @click="handleEdit(record)" v-if='authmanage'>{{$t('edit')}}</a>
|
||||||
<a class="text-operation" @click="batchDel(record)">{{$t('delete')}}</a>
|
<a class="text-operation" @click="batchDel(record)" v-if='authmanage'>{{$t('delete')}}</a>
|
||||||
</span>
|
</span>
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
@@ -188,20 +189,20 @@
|
|||||||
<a-form-model-item :label="$t('Foldername')" prop="folderName">
|
<a-form-model-item :label="$t('Foldername')" prop="folderName">
|
||||||
<a-input class="box-input add-input" v-model="form.folderName" :placeholder="$t('PleaseEnter')+$t('Foldername')"/>
|
<a-input class="box-input add-input" v-model="form.folderName" :placeholder="$t('PleaseEnter')+$t('Foldername')"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item :label="$t('Administrativeprivileges')" prop="authManage">
|
<a-form-model-item :label="$t('Administrativeprivileges')" prop="authManageIdsName">
|
||||||
<PersonnelSelection class="box-input add-input"
|
<PersonnelSelection class="box-input add-input"
|
||||||
:personneQuery="form"
|
:personneQuery="form"
|
||||||
:query="{db_field_name:'authManageIds',db_field_txt:$t('Administrativeprivileges')}"
|
:query="{db_field_name:'authManageIds',db_field_txt:$t('Administrativeprivileges')}"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
v-model="form.authManage"/>
|
v-model="form.authManageIdsName"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item :label="$t('Checkthepermissions')" prop="authView">
|
<a-form-model-item :label="$t('Checkthepermissions')" prop="authViewIdsName">
|
||||||
<PersonnelSelection
|
<PersonnelSelection
|
||||||
class="box-input add-input"
|
class="box-input add-input"
|
||||||
:personneQuery="form"
|
:personneQuery="form"
|
||||||
:query="{db_field_name:'authViewIds',db_field_txt:$t('Checkthepermissions')}"
|
:query="{db_field_name:'authViewIds',db_field_txt:$t('Checkthepermissions')}"
|
||||||
@change="PersonnelSelectionChange"
|
@change="PersonnelSelectionChange"
|
||||||
v-model="form.authView"/>
|
v-model="form.authViewIdsName"/>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item :label="$t('Folderorder')" prop="orderId">
|
<a-form-model-item :label="$t('Folderorder')" prop="orderId">
|
||||||
<a-input-number v-model="form.orderId" :min="1" :max="99999" class="box-input add-input"
|
<a-input-number v-model="form.orderId" :min="1" :max="99999" class="box-input add-input"
|
||||||
@@ -285,10 +286,10 @@ export default {
|
|||||||
{ required: true, message: this.$t('PleaseEnter') + this.$t('Foldername'), trigger: 'blur' },
|
{ required: true, message: this.$t('PleaseEnter') + this.$t('Foldername'), trigger: 'blur' },
|
||||||
{ min: 1, max: 50, message: this.$t('cantExeed') + '50' + this.$t('characters'), trigger: 'blur' }
|
{ min: 1, max: 50, message: this.$t('cantExeed') + '50' + this.$t('characters'), trigger: 'blur' }
|
||||||
],
|
],
|
||||||
authManage: [
|
authManageIdsName: [
|
||||||
{ required: true, message: this.$t('PleaseSelect') + this.$t('Administrativeprivileges'), trigger: 'change' },
|
{ required: true, message: this.$t('PleaseSelect') + this.$t('Administrativeprivileges'), trigger: 'change' },
|
||||||
],
|
],
|
||||||
authView: [
|
authViewIdsName: [
|
||||||
{ required: true, message: this.$t('PleaseSelect') + this.$t('Checkthepermissions'), trigger: 'change' },
|
{ required: true, message: this.$t('PleaseSelect') + this.$t('Checkthepermissions'), trigger: 'change' },
|
||||||
],
|
],
|
||||||
orderId: [
|
orderId: [
|
||||||
@@ -358,6 +359,7 @@ export default {
|
|||||||
uploadMenuId: '',
|
uploadMenuId: '',
|
||||||
selectedKeys: [],
|
selectedKeys: [],
|
||||||
deleteNode: false,
|
deleteNode: false,
|
||||||
|
authmanage:false,
|
||||||
fullWidth: '',
|
fullWidth: '',
|
||||||
parameter: {},
|
parameter: {},
|
||||||
widthBrown: '',
|
widthBrown: '',
|
||||||
@@ -396,6 +398,7 @@ export default {
|
|||||||
PersonnelSelectionChange(value, id) {
|
PersonnelSelectionChange(value, id) {
|
||||||
this.form[value] = id
|
this.form[value] = id
|
||||||
this.form = { ...this.form }
|
this.form = { ...this.form }
|
||||||
|
console.log(this.form)
|
||||||
},
|
},
|
||||||
//关闭条款内容弹框
|
//关闭条款内容弹框
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
@@ -516,11 +519,11 @@ export default {
|
|||||||
this.NodeTreeItem = {
|
this.NodeTreeItem = {
|
||||||
pageX: x,
|
pageX: x,
|
||||||
pageY: y,
|
pageY: y,
|
||||||
authManage: node._props.dataRef.authManage,
|
authManageIdsName: node._props.dataRef.authManageIdsName,
|
||||||
authViewIds: node._props.dataRef.authViewIds,
|
authViewIds: node._props.dataRef.authViewIds,
|
||||||
key: node._props.dataRef.key,
|
key: node._props.dataRef.key,
|
||||||
authManageIds: node._props.dataRef.authManageIds,
|
authManageIds: node._props.dataRef.authManageIds,
|
||||||
authView: node._props.dataRef.authView,
|
authViewIdsName: node._props.dataRef.authViewIdsName,
|
||||||
title: node._props.dataRef.title,
|
title: node._props.dataRef.title,
|
||||||
folderName: node._props.dataRef.folderName,
|
folderName: node._props.dataRef.folderName,
|
||||||
orderId: node._props.dataRef.orderId,
|
orderId: node._props.dataRef.orderId,
|
||||||
@@ -586,8 +589,8 @@ export default {
|
|||||||
this.form.id = this.nodeItem.key
|
this.form.id = this.nodeItem.key
|
||||||
this.form.authManageIds = this.nodeItem.authManageIds
|
this.form.authManageIds = this.nodeItem.authManageIds
|
||||||
this.form.authViewIds = this.nodeItem.authViewIds
|
this.form.authViewIds = this.nodeItem.authViewIds
|
||||||
this.form.authManage = this.nodeItem.authManage
|
this.form.authManageIdsName = this.nodeItem.authManageIdsName
|
||||||
this.form.authView = this.nodeItem.authView
|
this.form.authViewIdsName = this.nodeItem.authViewIdsName
|
||||||
this.form.folderName = this.nodeItem.folderName
|
this.form.folderName = this.nodeItem.folderName
|
||||||
this.form.orderId = this.nodeItem.orderId
|
this.form.orderId = this.nodeItem.orderId
|
||||||
this.menuRightVisible = true
|
this.menuRightVisible = true
|
||||||
@@ -600,7 +603,7 @@ export default {
|
|||||||
async () => {
|
async () => {
|
||||||
deleteAction(`extRepo/extRepoFolder/delete`, { id: this.nodeItem.key }).then(res => {
|
deleteAction(`extRepo/extRepoFolder/delete`, { id: this.nodeItem.key }).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.$message.success(this.$t('OperationSuccessful'))
|
this.$message.success(res.message)
|
||||||
this.loadMenuData()
|
this.loadMenuData()
|
||||||
let queryParam = {
|
let queryParam = {
|
||||||
supFolder: this.menuId
|
supFolder: this.menuId
|
||||||
@@ -610,7 +613,7 @@ export default {
|
|||||||
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
|
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
|
||||||
// eventBUs.$emit('searchReset')
|
// eventBUs.$emit('searchReset')
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(this.$t('operationFailed'))
|
this.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -644,7 +647,7 @@ export default {
|
|||||||
postAction(`extRepo/extRepoFolder/add`, params).then(res => {
|
postAction(`extRepo/extRepoFolder/add`, params).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.menuRightVisible = false
|
this.menuRightVisible = false
|
||||||
this.$message.success(this.$t('OperationSuccessful'))
|
this.$message.success(res.message)
|
||||||
// this.onExpand(expandId)
|
// this.onExpand(expandId)
|
||||||
this.form = {}
|
this.form = {}
|
||||||
this.expandedKeys.push(this.nodeItem.id)
|
this.expandedKeys.push(this.nodeItem.id)
|
||||||
@@ -658,7 +661,7 @@ export default {
|
|||||||
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
|
this.searchQuery(JSON.parse(JSON.stringify(queryParam)))
|
||||||
// eventBUs.$emit('searchReset')
|
// eventBUs.$emit('searchReset')
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(this.$t('operationFailed'))
|
this.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
this.flag = false
|
this.flag = false
|
||||||
@@ -713,6 +716,7 @@ export default {
|
|||||||
getAction(this.url.list, params).then(res => {
|
getAction(this.url.list, params).then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.dataSource = res.result.pageList.records || []
|
this.dataSource = res.result.pageList.records || []
|
||||||
|
this.authmanage =res.result.auth_manage
|
||||||
this.total = res.result.pageList.total
|
this.total = res.result.pageList.total
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}
|
}
|
||||||
@@ -834,7 +838,7 @@ export default {
|
|||||||
}
|
}
|
||||||
deleteAction('com.jero.modules.extRepo/extRepoData/delete', { id: val.id }).then((res) => {
|
deleteAction('com.jero.modules.extRepo/extRepoData/delete', { id: val.id }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
_this.$message.success(res.message)
|
||||||
|
|
||||||
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
|
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
|
||||||
} else {
|
} else {
|
||||||
@@ -858,7 +862,7 @@ export default {
|
|||||||
}
|
}
|
||||||
deleteAction('com.jero.modules.extRepo/extRepoData/deleteBatch', { ids: idList.join(',') }).then((res) => {
|
deleteAction('com.jero.modules.extRepo/extRepoData/deleteBatch', { ids: idList.join(',') }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
_this.$message.success(res.message)
|
||||||
_this.selectedRowKeys = []
|
_this.selectedRowKeys = []
|
||||||
|
|
||||||
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
|
_this.loadData(JSON.parse(JSON.stringify(queryParam)))
|
||||||
|
|||||||
Reference in New Issue
Block a user