This commit is contained in:
wcq 2023-04-17 16:54:17 +08:00
parent 0d3c79b08e
commit d0ac46db5c
7 changed files with 49 additions and 54 deletions

1
components.d.ts vendored
View File

@ -16,7 +16,6 @@ declare module '@vue/runtime-core' {
EditTabel: typeof import('./src/components/EditTabel/EditTabel.vue')['default'] EditTabel: typeof import('./src/components/EditTabel/EditTabel.vue')['default']
FuncEditer: typeof import('./src/components/IndexCal/IndexFuncEditer/components/FuncEditer.vue')['default'] FuncEditer: typeof import('./src/components/IndexCal/IndexFuncEditer/components/FuncEditer.vue')['default']
IndexCalModelEdit: typeof import('./src/components/IndexCal/IndexCalModelEdit/indexCalModelEdit.vue')['default'] IndexCalModelEdit: typeof import('./src/components/IndexCal/IndexCalModelEdit/indexCalModelEdit.vue')['default']
IndexCalModelEdit2: typeof import('./src/components/IndexCal/IndexCalModelEdit/indexCalModelEdit2.vue')['default']
IndexCalModelEditPlus: typeof import('./src/components/IndexCal/IndexCalModelEdit/indexCalModelEditPlus.vue')['default'] IndexCalModelEditPlus: typeof import('./src/components/IndexCal/IndexCalModelEdit/indexCalModelEditPlus.vue')['default']
IndexCalParamInput: typeof import('./src/components/IndexCal/IndexCalParam/IndexCalParamInput.vue')['default'] IndexCalParamInput: typeof import('./src/components/IndexCal/IndexCalParam/IndexCalParamInput.vue')['default']
InParamConfig: typeof import('./src/components/ApiFlow/components/ApiEditer/components/InParamConfig.vue')['default'] InParamConfig: typeof import('./src/components/ApiFlow/components/ApiEditer/components/InParamConfig.vue')['default']

View File

@ -1,15 +1,14 @@
<template> <template>
<div> <div>
<div class="m-2"> <div class="m-2">
<!-- <el-button size="small" type="primary" class="ml-2" @click="saveToCache">保存到缓存</el-button>
<el-button size="small" type="primary" class="ml-2" @click="saveToFile">保存到文件</el-button> -->
<el-button size="small" type="success" @click="runModel">运行</el-button> <el-button size="small" type="success" @click="runModel">运行</el-button>
<el-switch class="ml-2" v-model="fillingMode" active-text="填报模式" /> <el-switch class="ml-2" v-model="fillingMode" active-text="填报模式" />
<el-switch class="ml-2" v-model="simpleMode" @change="onSimpleModeChange" active-text="精简模式" /> <el-switch class="ml-2" v-model="simpleMode" @change="onSimpleModeChange" active-text="精简模式" />
<el-switch class="ml-2" v-model="treeColorShow" active-text="树颜色" /> <el-switch class="ml-2" v-model="treeColorShow" active-text="树颜色" />
</div> </div>
<el-table :cell-style="tableCellStyle" ref="table" :data="[tableIdTree]" style="width: 100%; margin-bottom: 20px" <el-table height="100%" :cell-style="tableCellStyle" ref="table" :data="[tableIdTree]"
:max-height="props.maxHeight" row-key="id" align="center" border default-expand-all> style="width: 100%; margin-bottom: 20px" :max-height="props.maxHeight" row-key="id" align="center" border
default-expand-all>
<el-table-column prop="name" label="指标名称" /> <el-table-column prop="name" label="指标名称" />
<!-- <el-table-column prop="key" label="键值" align="center" /> --> <!-- <el-table-column prop="key" label="键值" align="center" /> -->
<el-table-column prop="calValue" label="计算结果" align="center" /> <el-table-column prop="calValue" label="计算结果" align="center" />
@ -406,28 +405,14 @@ function rowDelete(row: Index) {
} }
} }
function createAndDownloadFile(fileName, content) {
const aTag = document.createElement("a");
const blob = new Blob([content]);
aTag.download = fileName;
aTag.href = URL.createObjectURL(blob);
aTag.click();
URL.revokeObjectURL(blob.toString());
}
function saveToFile() {
createAndDownloadFile("data.json", JSON.stringify(props.calModel));
}
function saveToCache() {
localStorage.setItem("indexCalModelCache", JSON.stringify(props.calModel));
}
// function loadFromCache() {
// let item = localStorage.getItem('indexCalModelCache')
// item && (props.calModel = JSON.parse(item))
// }
function onSimpleModeChange(val) { function onSimpleModeChange(val) {
if (val === true) { if (val === true) {

View File

@ -40,13 +40,10 @@
<el-button size="small" type="success" class="ml-auto" @click="funcTest">测试</el-button> <el-button size="small" type="success" class="ml-auto" @click="funcTest">测试</el-button>
</div> </div>
</div> </div>
</div> </div>
</n-config-provider> </n-config-provider>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -56,7 +53,7 @@ import javascript from "highlight.js/lib/languages/javascript";
import type { Index, Lang } from "../../types"; import type { Index, Lang } from "../../types";
import IndexCalParamInput from "../../IndexCalParam/IndexCalParamInput.vue"; import IndexCalParamInput from "../../IndexCalParam/IndexCalParamInput.vue";
hljs.registerLanguage("javascript", javascript); hljs.registerLanguage("javascript", javascript);
const props = defineProps<{ index: Index,lang: Lang }>(); const props = defineProps<{ index: Index, lang: Lang }>();
const codeEditerId = ref("codeEditerId"); const codeEditerId = ref("codeEditerId");
const codeEditerCardWidth = ref(220); const codeEditerCardWidth = ref(220);
const codeEditerCardHeight = ref(220); const codeEditerCardHeight = ref(220);
@ -71,7 +68,7 @@ onMounted(() => {
}); });
window.addEventListener("resize", setSize); window.addEventListener("resize", setSize);
}); });
const code = computed({ set(val: string) { props.index.codeConfig[props.lang] = val }, get() { return props.index&&props.index.codeConfig[props.lang] } }) const code = computed({ set(val: string) { props.index.codeConfig[props.lang] = val }, get() { return props.index && props.index.codeConfig[props.lang] } })
const setSize = () => { const setSize = () => {
const el = document.getElementById(codeEditerId.value); const el = document.getElementById(codeEditerId.value);
codeEditerCardHeight.value = el.offsetHeight; codeEditerCardHeight.value = el.offsetHeight;

View File

@ -1,18 +0,0 @@
import type { Api } from "@/components/ApiFlow/apiFlowTypes"
const averageFuncConfig: Api = {
name: "平均数",
id: "averageFunc",
func: "let value2=sum(...value1)/value1.length",
inParams: [
{
name: "数组值",
key: "value1",
valueConfig: { valueType: "numberArray" },
},
],
outParams: [
{ name: "平均数", key: "value2", valueConfig: { valueType: "number" } },
]
}

View File

@ -1,15 +1,47 @@
<template> <template>
<IndexCalModelEditPlus :cal-model="model" :default-lang="'js'"></IndexCalModelEditPlus> <div>
<IndexCalModelEditPlus :cal-model="model" :default-lang="'js'"></IndexCalModelEditPlus>
<div>
<el-button size="small" type="primary" class="ml-2" @click="saveToCache">保存到缓存</el-button>
<el-button size="small" type="primary" class="ml-2" @click="saveToFile">保存到文件</el-button>
</div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Index } from '@/components/IndexCal/types'; import { Index } from '@/components/IndexCal/types';
import 黄土坡GEP from "@/mock/黄土坡GEP.json" import htpGEP from "@/mock/htpGEP.json"
import { ref } from 'vue'; import { onMounted, ref } from 'vue';
import IndexCalModelEditPlus from "@/components/IndexCal/IndexCalModelEdit/indexCalModelEditPlus.vue"; import IndexCalModelEditPlus from "@/components/IndexCal/IndexCalModelEdit/indexCalModelEditPlus.vue";
//@ts-ignore //@ts-ignore
defineOptions({ defineOptions({
name: "indexCalModelEditPlusView" name: "indexCalModelEditPlusView"
}); });
//@ts-ignore //@ts-ignore
const model = ref<Index>(黄土坡GEP[0]) const model = ref<Index>(htpGEP[0])
function createAndDownloadFile(fileName, content) {
const aTag = document.createElement("a");
const blob = new Blob([content]);
aTag.download = fileName;
aTag.href = URL.createObjectURL(blob);
aTag.click();
URL.revokeObjectURL(blob.toString());
}
function saveToFile() {
createAndDownloadFile("data.json", JSON.stringify(model.value));
}
function saveToCache() {
localStorage.setItem("indexCalModelCachePlus", JSON.stringify(model.value));
}
function loadFromCache() {
let item = localStorage.getItem('indexCalModelCachePlus')
item && (model.value = JSON.parse(item))
}
onMounted(() => {
loadFromCache()
})
</script> </script>

View File

@ -4,12 +4,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import IndexCalModelEdit from '@/components/IndexCal/IndexCalModelEdit/indexCalModelEdit.vue'; import IndexCalModelEdit from '@/components/IndexCal/IndexCalModelEdit/indexCalModelEdit.vue';
import { Index } from '@/components/IndexCal/types'; import { Index } from '@/components/IndexCal/types';
import 黄土坡GEP from "@/mock/黄土坡GEP.json" import htpGEP from "@/mock/htpGEP.json"
import { ref } from 'vue'; import { ref } from 'vue';
//@ts-ignore //@ts-ignore
defineOptions({ defineOptions({
name: "indexCalModelEditView" name: "indexCalModelEditView"
}); });
//@ts-ignore //@ts-ignore
const model = ref<Index>(黄土坡GEP[0]) const model = ref<Index>(htpGEP[0])
</script> </script>