计算:功能实现
This commit is contained in:
parent
3f24d59284
commit
13807f850b
@ -11,87 +11,105 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modulesList">
|
<div class="modulesList">
|
||||||
<div class="moduleRow" v-for="row in rowLength" :key="moduleList[(row - 1) * colLen].name">
|
<el-scrollbar>
|
||||||
<div class="moduleItem">
|
<div class="moduleRow" v-for="row in rowLength" :key="moduleList[(row - 1) * colLen].name">
|
||||||
<div class="itemMain">
|
<div class="moduleItem">
|
||||||
<div class="title">
|
<div class="itemMain">
|
||||||
{{ moduleList[(row - 1) * colLen].localName }}
|
<div class="title">
|
||||||
</div>
|
{{ moduleList[(row - 1) * colLen].localName }}
|
||||||
<div class="versionTime">
|
</div>
|
||||||
<div class="version">{{ '版本:' + moduleList[(row - 1) * colLen].version }}</div>
|
<div class="versionTime">
|
||||||
<div class="updateTime">{{ '更新于:----' }}</div>
|
<div class="version">{{ '版本:' + moduleList[(row - 1) * colLen].version }}</div>
|
||||||
<!--
|
<div class="updateTime">{{ '更新于:----' }}</div>
|
||||||
|
<!--
|
||||||
<div class="updateTime">{{ '更新于:' + moduleList[(row - 1) * colLen].updateTime }}</div>
|
<div class="updateTime">{{ '更新于:' + moduleList[(row - 1) * colLen].updateTime }}</div>
|
||||||
-->
|
-->
|
||||||
|
</div>
|
||||||
|
<div class="main-main">
|
||||||
|
{{ moduleList[(row - 1) * colLen].description }}
|
||||||
|
</div>
|
||||||
|
<div class="footer-main">
|
||||||
|
{{ '任务周期:' + moduleList[(row - 1) * colLen].cron }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main-main">
|
<div class="itemAside">
|
||||||
{{ moduleList[(row - 1) * colLen].description }}
|
<el-popconfirm title="确认删除该计算模块么?" @confirm="remove(moduleList[(row - 1) * colLen].name)">
|
||||||
</div>
|
<template #reference>
|
||||||
<div class="footer-main">
|
<el-icon class="removeModule">
|
||||||
{{ '任务周期:' + moduleList[(row - 1) * colLen].cron }}
|
<Close />
|
||||||
|
</el-icon>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
<el-button type="primary" @click="getScript(moduleList[(row - 1) * colLen].name)">查看</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="moduleList[(row - 1) * colLen].disabled === 1"
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
@click="active(moduleList[(row - 1) * colLen].name)"
|
||||||
|
>激活</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-if="moduleList[(row - 1) * colLen].disabled === 0"
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
@click="deactive(moduleList[(row - 1) * colLen].name)"
|
||||||
|
>禁用</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="itemAside">
|
<div class="moduleItem" v-if="moduleList[(row - 1) * colLen + 1]">
|
||||||
<el-popconfirm title="确认删除该计算模块么?" @confirm="remove(moduleList[(row - 1) * colLen].name)">
|
<div class="itemMain">
|
||||||
<template #reference>
|
<div class="title">
|
||||||
<el-icon class="removeModule">
|
{{ moduleList[(row - 1) * colLen + 1].localName }}
|
||||||
<Close />
|
</div>
|
||||||
</el-icon>
|
<div class="versionTime">
|
||||||
</template>
|
<div class="version">{{ '版本:' + moduleList[(row - 1) * colLen + 1].version }}</div>
|
||||||
</el-popconfirm>
|
<div class="updateTime">{{ '更新于:----' }}</div>
|
||||||
<el-button type="primary">查看</el-button>
|
<!--
|
||||||
<el-button v-if="moduleList[(row - 1) * colLen].disabled === 1" type="primary" plain @click="active(moduleList[(row - 1) * colLen].name)">激活</el-button>
|
|
||||||
<el-button v-if="moduleList[(row - 1) * colLen].disabled === 0" type="danger" plain @click="deactive(moduleList[(row - 1) * colLen].name)">禁用</el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="moduleItem" v-if="moduleList[(row - 1) * colLen + 1]">
|
|
||||||
<div class="itemMain">
|
|
||||||
<div class="title">
|
|
||||||
{{ moduleList[(row - 1) * colLen + 1].localName }}
|
|
||||||
</div>
|
|
||||||
<div class="versionTime">
|
|
||||||
<div class="version">{{ '版本:' + moduleList[(row - 1) * colLen + 1].version }}</div>
|
|
||||||
<div class="updateTime">{{ '更新于:----' }}</div>
|
|
||||||
<!--
|
|
||||||
<div class="updateTime">{{ '更新于:' + moduleList[(row - 1) * colLen + 1]?.updateTime ?? '--' }}</div>
|
<div class="updateTime">{{ '更新于:' + moduleList[(row - 1) * colLen + 1]?.updateTime ?? '--' }}</div>
|
||||||
-->
|
--></div>
|
||||||
|
<div class="main-main">
|
||||||
|
{{ moduleList[(row - 1) * colLen + 1].description }}
|
||||||
|
</div>
|
||||||
|
<div class="footer-main">
|
||||||
|
{{ '任务周期:' + moduleList[(row - 1) * colLen + 1].cron }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main-main">
|
<div class="itemAside">
|
||||||
{{ moduleList[(row - 1) * colLen + 1].description }}
|
<el-popconfirm title="确认删除该计算模块么?" @confirm="remove(moduleList[(row - 1) * colLen + 1].name)">
|
||||||
</div>
|
<template #reference>
|
||||||
<div class="footer-main">
|
<el-icon class="removeModule">
|
||||||
{{ '任务周期:' + moduleList[(row - 1) * colLen + 1].cron }}
|
<Close />
|
||||||
|
</el-icon>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
<el-button type="primary" @click="getScript(moduleList[(row - 1) * colLen + 1].name)">查看</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="moduleList[(row - 1) * colLen + 1].disabled === 1"
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
@click="active(moduleList[(row - 1) * colLen + 1].name)"
|
||||||
|
>激活</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-if="moduleList[(row - 1) * colLen + 1].disabled === 0"
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
@click="deactive(moduleList[(row - 1) * colLen + 1].name)"
|
||||||
|
>禁用</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="itemAside">
|
<div class="moduleItem" style="visibility: hidden" v-else></div>
|
||||||
<el-popconfirm title="确认删除该计算模块么?" @confirm="remove(moduleList[(row - 1) * colLen + 1].name)">
|
|
||||||
<template #reference>
|
|
||||||
<el-icon class="removeModule">
|
|
||||||
<Close />
|
|
||||||
</el-icon>
|
|
||||||
</template>
|
|
||||||
</el-popconfirm>
|
|
||||||
<el-button type="primary">查看</el-button>
|
|
||||||
<el-button
|
|
||||||
v-if="moduleList[(row - 1) * colLen + 1].disabled === 1"
|
|
||||||
type="primary"
|
|
||||||
plain
|
|
||||||
@click="active(moduleList[(row - 1) * colLen + 1].name)"
|
|
||||||
>激活</el-button
|
|
||||||
>
|
|
||||||
<el-button
|
|
||||||
v-if="moduleList[(row - 1) * colLen + 1].disabled === 0"
|
|
||||||
type="danger"
|
|
||||||
plain
|
|
||||||
@click="deactive(moduleList[(row - 1) * colLen + 1].name)"
|
|
||||||
>禁用</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="moduleItem" style="visibility: hidden" v-else></div>
|
</el-scrollbar>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<el-dialog v-model="previewVisible" title="脚本预览" width="800">
|
||||||
|
<el-scrollbar height="500">
|
||||||
|
<p v-html="previewContent"></p>
|
||||||
|
</el-scrollbar>
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@ -118,7 +136,6 @@ const rowLength = computed(() => {
|
|||||||
|
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
getCalcListReq().then((res) => {
|
getCalcListReq().then((res) => {
|
||||||
console.log(res)
|
|
||||||
moduleList.value = res.data
|
moduleList.value = res.data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -127,16 +144,16 @@ const upload = ref<UploadInstance>()
|
|||||||
const handleExceed: UploadProps['onExceed'] = (files) => {
|
const handleExceed: UploadProps['onExceed'] = (files) => {
|
||||||
upload.value!.clearFiles()
|
upload.value!.clearFiles()
|
||||||
const file = files[0] as UploadRawFile
|
const file = files[0] as UploadRawFile
|
||||||
|
|
||||||
file.uid = genFileId()
|
file.uid = genFileId()
|
||||||
|
|
||||||
upload.value!.handleStart(file)
|
upload.value!.handleStart(file)
|
||||||
|
upload.value!.submit()
|
||||||
}
|
}
|
||||||
const register = (options: any) => {
|
const register = (options: any) => {
|
||||||
console.log(options)
|
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('file', options.file)
|
formData.append('file', options.file)
|
||||||
registerCalcReq(formData).then((res) => {
|
registerCalcReq(formData).then((res) => {
|
||||||
console.log(res)
|
|
||||||
|
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
ElMessage.success('注册/更新成功!')
|
ElMessage.success('注册/更新成功!')
|
||||||
getList()
|
getList()
|
||||||
@ -153,30 +170,69 @@ const remove = (name: string) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const active = (name: string) => {
|
const active = (name: string) => {
|
||||||
console.log(name);
|
activeCalcReq({ moduleName: name })
|
||||||
|
.then((res) => {
|
||||||
activeCalcReq({ moduleName: name }).then((res) => {
|
if (res.success) {
|
||||||
if (res.success) {
|
ElMessage.success('激活成功!')
|
||||||
ElMessage.success('激活成功!')
|
getList()
|
||||||
getList()
|
} else {
|
||||||
}
|
ElMessage.error(res.msg)
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error('激活失败!')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
const deactive = (name: string) => {
|
const deactive = (name: string) => {
|
||||||
deactiveCalcReq({ moduleName: name }).then((res) => {
|
deactiveCalcReq({ moduleName: name })
|
||||||
if (res.success) {
|
.then((res) => {
|
||||||
ElMessage.success('禁用成功!')
|
if (res.success) {
|
||||||
getList()
|
ElMessage.success('禁用成功!')
|
||||||
}
|
getList()
|
||||||
})
|
} else {
|
||||||
|
ElMessage.error(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
ElMessage.error('禁用失败!')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const previewVisible = ref(false)
|
||||||
|
const previewContent = ref('')
|
||||||
|
|
||||||
const getScript = (name: string) => {
|
const getScript = (name: string) => {
|
||||||
getScriptCalcReq({ moduleName: name }).then((res) => {
|
getScriptCalcReq({ moduleName: name }).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
// 预览
|
// 预览
|
||||||
|
const txt = 'data:text/plain;charset=utf-8;base64,' + res.data
|
||||||
|
const blob = base64ToBlob(txt)
|
||||||
|
blob.text().then((text) => {
|
||||||
|
let showText = ''
|
||||||
|
for (let i = 0; i < text.length; i++) {
|
||||||
|
if (text[i] == '\n') {
|
||||||
|
showText += '<br>'
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
showText += text[i]
|
||||||
|
}
|
||||||
|
previewContent.value = showText
|
||||||
|
previewVisible.value = true
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const base64ToBlob = (dataurl: string) => {
|
||||||
|
let arr = dataurl.split(',')
|
||||||
|
let mime = arr[0].match(/:(.*?);/)![1]
|
||||||
|
let bstr = atob(arr[1])
|
||||||
|
let n = bstr.length
|
||||||
|
let u8arr = new Uint8Array(n)
|
||||||
|
while (n--) {
|
||||||
|
u8arr[n] = bstr.charCodeAt(n)
|
||||||
|
}
|
||||||
|
return new Blob([u8arr], { type: 'text/plain' })
|
||||||
|
}
|
||||||
getList()
|
getList()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -222,9 +278,7 @@ getList()
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
overflow-y: auto;
|
height: calc(100% - 60px);
|
||||||
overflow-x: hidden;
|
|
||||||
max-height: 100%;
|
|
||||||
min-width: 912px;
|
min-width: 912px;
|
||||||
.moduleRow {
|
.moduleRow {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
Loading…
Reference in New Issue
Block a user