vue-apps/com.actionsoft.apps.coe.pal.batch/src/views/create/save.vue
446052889@qq.com 61a94211fc 批处理前端
2022-07-14 19:11:37 +08:00

187 lines
5.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div v-loading="loading" :style="{height: mainHeight, 'background-color': '#2c2c2c'}">
<codemirror
id="mycode"
ref="mycode"
style="height: auto"
v-model="curCode"
:options="cmOptions"
class="code"
/>
</div>
</template>
<script>
import awsuiAxios from "../../awsuiAxios";
import {codemirror} from 'vue-codemirror'
import "codemirror/theme/ambiance.css"; // 这里引入的是主题样式根据设置的theme的主题引入一定要引入
require("codemirror/mode/javascript/javascript"); // 这里引入的模式的js根据设置的mode引入一定要引入
export default {
name: "check-process",
props: {
param: {// 文件名称
type: Object,
default: function () {
return {}
}
},
totalHeight: {
type: String,
default: 0
}
},
components: {codemirror},
data() {
return {
loading: false,
wsId: wsId,
teamId: teamId,
processFileValue: processFileValue,
methodCategory: methodCategory,
msgHeight: '20px',
mainHeight: parseInt(this.totalHeight) + 'px',
curCode: '正在导入',
cmOptions: {
value: '',
mode: "text/html",
theme: "ambiance",
lineNumbers: false,
styleActiveLine: true,
tabSize: 4,
autofocus: true,
scrollbarStyle: "null",
readOnly: true,
},
result: {// 保存结果
path: '',
type: '',
logId: '',
count: 0,
executeDone: false,
interval: null, // 查询日志定时器
timer: 0, // 时间戳记录
}
}
},
mounted() {
this.save();
},
methods: {
save() {// 上传
const that = this;
const data = {
url: 'jd',
data: {
cmd: "com.actionsoft.apps.coe.pal.batch_create_data_save",
param: JSON.stringify(that.param),
methodCategory: methodCategory
}
};
awsuiAxios.post(data).then(function (ro) {
if (ro.result == 'ok') {
// 获取导入日志信息
that.result.path = ro.data.path;
that.result.logId = ro.data.logId;
that.result.type = ro.data.type;
that.result.count = 0;
that.getImportInfoEvent();
} else if (ro.result == 'warning') {
that.$message({message: ro.msg, type: 'warning'});
} else {
that.$message.error(ro.msg);
}
}).catch(error => {
console.log(error);
})
},
getImportInfoEvent() {// 定时器查询导入日志
this.result.interval = setInterval(this.queryLog, 1000)
},
queryLog() {
const that = this;
that.result.timer = new Date().getTime();
const data = {
url: 'jd',
data: {
cmd: "com.actionsoft.apps.coe.pal.batch_create_log_query",
type: that.result.type,
logId: that.result.logId,
path: that.result.path,
timer: that.result.timer
}
};
awsuiAxios.post(data).then(function (ro) {
if (ro.result == 'ok') {
if (ro.data.timer == '') {
that.curCode = ro.data.content;
// 添加内容后定位到行尾
that.$nextTick(() => {
that.$refs.mycode.codemirror.scrollIntoView(that.$refs.mycode.codemirror.lineCount() - 1);
});
that.result.executeDone = true;
that.clearInterval();
} else if (parseInt(ro.data.timer) <= that.result.timer) {// axios异步以时间戳对比获取最新日至内容
that.curCode = ro.data.content;
// 添加内容后定位到行尾
that.$nextTick(() => {
that.$refs.mycode.codemirror.scrollIntoView(that.$refs.mycode.codemirror.lineCount() - 1);
});
}
} else if (ro.result == 'warning') {
that.$message({message: ro.msg, type: 'warning'});
} else {
that.$message.error(ro.msg);
}
}).catch(error => {
console.log(error);
})
},
clearInterval() {
clearInterval(this.result.interval);
},
downloadLog() {
const that = this;
if (that.result.path == '') {
that.$message({message: '获取报告失败', type: 'warning'});
return;
}
if (!that.result.executeDone) {
that.$message({message: '正在导入,请稍等', type: 'warning'});
return;
}
const data = {
url: 'jd',
data: {
cmd: "com.actionsoft.apps.coe.pal.batch_create_log_download",
type: that.result.type,
path: that.result.path
}
};
awsuiAxios.post(data).then(function (ro) {
if (ro.result == 'ok') {
window.open(ro.data.url);
parent.closeBatchCreateFn([]);
} else if (ro.result == 'warning') {
that.$message({message: ro.msg, type: 'warning'});
} else {
that.$message.error(ro.msg);
}
}).catch(error => {
console.log(error);
})
}
}
}
</script>
<style scoped>
#mycode >>> .CodeMirror-lines {
background-color: #2c2c2c;
color: #58A0F0;
}
#mycode >>> .CodeMirror {
height: auto !important;
}
</style>