|
@@ -1,7 +1,4 @@
|
|
<template>
|
|
<template>
|
|
- <div class="body-head">
|
|
|
|
- <!-- <h3 style="visibility: hidden">场景管理</h3> -->
|
|
|
|
- </div>
|
|
|
|
<el-table
|
|
<el-table
|
|
class="mybody-head"
|
|
class="mybody-head"
|
|
:data="pagging.state.table.rows"
|
|
:data="pagging.state.table.rows"
|
|
@@ -26,7 +23,7 @@
|
|
{{ row.createTime.substr(0, 16) }}
|
|
{{ row.createTime.substr(0, 16) }}
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<el-table-column label="状态" v-slot:default="{ row }: { row: QuoteScene }">
|
|
<el-table-column label="状态" v-slot:default="{ row }: { row: QuoteScene }">
|
|
- {{ QuoteSceneStatusDesc[row.status] }}
|
|
|
|
|
|
+ {{ row.statusString }}
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<!-- <el-table-column label="所属架构" prop="deptName"></el-table-column> -->
|
|
<!-- <el-table-column label="所属架构" prop="deptName"></el-table-column> -->
|
|
<!-- <el-table-column label="操作" v-slot:default="{ row }: { row: QuoteScene }">
|
|
<!-- <el-table-column label="操作" v-slot:default="{ row }: { row: QuoteScene }">
|
|
@@ -92,13 +89,15 @@ import {
|
|
genMeshScene,
|
|
genMeshScene,
|
|
LocationEnum,
|
|
LocationEnum,
|
|
} from "@/store/scene";
|
|
} from "@/store/scene";
|
|
|
|
+import { getSceneListTree } from "@/store/case";
|
|
import { QuoteSceneStatusDesc } from "@/constant/scene";
|
|
import { QuoteSceneStatusDesc } from "@/constant/scene";
|
|
import { OpenType, openSceneUrl } from "../case/help";
|
|
import { OpenType, openSceneUrl } from "../case/help";
|
|
import { confirm } from "@/helper/message";
|
|
import { confirm } from "@/helper/message";
|
|
|
|
+import { router } from "@/router";
|
|
import { sceneDownload } from "./quisk";
|
|
import { sceneDownload } from "./quisk";
|
|
import { useScenePaggingParams, ScenePagging } from "./pagging";
|
|
import { useScenePaggingParams, ScenePagging } from "./pagging";
|
|
import { QuiskExpose } from "@/helper/mount";
|
|
import { QuiskExpose } from "@/helper/mount";
|
|
-import { onMounted, ref, watch, watchEffect } from "vue";
|
|
|
|
|
|
+import { onMounted, ref, watch, watchEffect, computed, nextTick } from "vue";
|
|
import {
|
|
import {
|
|
getCaseSceneList,
|
|
getCaseSceneList,
|
|
getCaseScenes,
|
|
getCaseScenes,
|
|
@@ -106,7 +105,8 @@ import {
|
|
replaceCaseScenes,
|
|
replaceCaseScenes,
|
|
setCaseaddOrUpdate,
|
|
setCaseaddOrUpdate,
|
|
} from "@/store/case";
|
|
} from "@/store/case";
|
|
-const params = useScenePaggingParams();
|
|
|
|
|
|
+// const params = useScenePaggingParams();
|
|
|
|
+const caseId = computed(() => (router.currentRoute.value?.params?.caseId));
|
|
const tableRef = ref(null);
|
|
const tableRef = ref(null);
|
|
const caseScenes = ref([
|
|
const caseScenes = ref([
|
|
{
|
|
{
|
|
@@ -118,9 +118,15 @@ const caseScenes = ref([
|
|
numList: [],
|
|
numList: [],
|
|
}
|
|
}
|
|
]);
|
|
]);
|
|
|
|
+const selectList = ref({
|
|
|
|
+ 0: [],
|
|
|
|
+ 1: [],
|
|
|
|
+})
|
|
|
|
+caseScenes.value = getSceneListTree()
|
|
|
|
+console.log('caseScenes', selectList);
|
|
const submit = async () => {
|
|
const submit = async () => {
|
|
const apiData = {
|
|
const apiData = {
|
|
- caseTitle: props.caseId,
|
|
|
|
|
|
+ caseTitle: caseId.value,
|
|
sceneNumParam: caseScenes.value,
|
|
sceneNumParam: caseScenes.value,
|
|
};
|
|
};
|
|
await setCaseaddOrUpdate(apiData)
|
|
await setCaseaddOrUpdate(apiData)
|
|
@@ -130,6 +136,10 @@ defineExpose<QuiskExpose>({
|
|
submit
|
|
submit
|
|
});
|
|
});
|
|
const props = defineProps<{ pagging: ScenePagging, numList: Array<string> }>();
|
|
const props = defineProps<{ pagging: ScenePagging, numList: Array<string> }>();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+const isObj = ref(props.pagging.state.query?.isObj);
|
|
const delSceneHandler = async (scene: QuoteScene) => {
|
|
const delSceneHandler = async (scene: QuoteScene) => {
|
|
if (await confirm("确定要删除当前场景吗?")) {
|
|
if (await confirm("确定要删除当前场景吗?")) {
|
|
await delQuoteScene(scene);
|
|
await delQuoteScene(scene);
|
|
@@ -138,37 +148,65 @@ const delSceneHandler = async (scene: QuoteScene) => {
|
|
};
|
|
};
|
|
console.log('propsnumList', props.numList);
|
|
console.log('propsnumList', props.numList);
|
|
const selectable = (row) => {
|
|
const selectable = (row) => {
|
|
- return !props.numList.includes(row.num)
|
|
|
|
|
|
+ // let selectlist = selectList.find(item => item.type == params.pagging.state.query?.isObj)?.numList;
|
|
|
|
+ return row.statusString == '计算成功'// && !selectlist.includes(row.num)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// watch(()=>props.pagging.state.query.isObj, (newVal, oldVal) => {
|
|
|
|
+// let scene = selectList.value[newVal]
|
|
|
|
+// if (params.pagging.loading) return;
|
|
|
|
+// console.log('newVal---', selectList.value, scene, tableRef.value); //newVal--- 修改的数据1
|
|
|
|
+// scene.forEach(item => {
|
|
|
|
+// tableRef.value!.toggleRowSelection(item, true);
|
|
|
|
+// })
|
|
|
|
+// // props.pagging.changeSelectRows(selectList.value)
|
|
|
|
+// // tableRef.value.toggleRowSelection(scene, true);
|
|
|
|
+// console.log('newVal---', newVal); //newVal--- 修改的数据1
|
|
|
|
+// console.log('oldVal---', oldVal); //oldVal--- ref数据
|
|
|
|
+// });
|
|
// 复选框同步
|
|
// 复选框同步
|
|
|
|
+let changIng = false;
|
|
|
|
+
|
|
watchEffect(() => {
|
|
watchEffect(() => {
|
|
|
|
+ const type = props.pagging.state.query.isObj;
|
|
if (!tableRef.value) return;
|
|
if (!tableRef.value) return;
|
|
const selectKeys = caseScenes.value.find(
|
|
const selectKeys = caseScenes.value.find(
|
|
- (item) => item.type === params.pagging.state.query.isObj
|
|
|
|
|
|
+ (item) => item.type === type
|
|
)!.numList;
|
|
)!.numList;
|
|
-
|
|
|
|
- params.pagging.state.table.rows.forEach((scene) => {
|
|
|
|
- tableRef.value!.toggleRowSelection(scene, selectKeys.includes(getSceneKey(scene)));
|
|
|
|
|
|
+ props.pagging.state.table.rows
|
|
|
|
+ // console.log('watchEffect', selectKeys);
|
|
|
|
+ changIng = true;
|
|
|
|
+ props.pagging.state.table.rows.forEach((scene) => {
|
|
|
|
+ tableRef.value!.toggleRowSelection(scene, selectKeys.includes(scene.num));
|
|
});
|
|
});
|
|
-});
|
|
|
|
-const changeSelection = (selectScenes) => {
|
|
|
|
- if (params.pagging.loading) return;
|
|
|
|
- const pagScenes = params.pagging.state.table.rows;
|
|
|
|
- const type = params.pagging.state.query.isObj;
|
|
|
|
- console.log('changeSelection', params, type);
|
|
|
|
|
|
+ changIng = false;
|
|
|
|
+ // console.log(tableRef.value!.getSelectionRows())
|
|
|
|
+ // console.log('watchEffect', props.pagging.state.table.rows);
|
|
|
|
+}, { flush: 'post' });
|
|
|
|
+const changeSelection = async (selectScenes) => {
|
|
|
|
+ if (changIng) return;
|
|
|
|
+ changIng = true
|
|
|
|
+ // selectScenes.lnegth === 2 && console.log(toRaw(selectScenes[0]) === toRaw(selectScenes[1]))
|
|
|
|
+ console.log(selectScenes.length)
|
|
|
|
+ if (props.pagging.loading) return;
|
|
|
|
+ const pagScenes = props.pagging.state.table.rows;
|
|
|
|
+ const type = props.pagging.state.query.isObj;
|
|
|
|
+ const selectKeys = selectScenes.map(ele => ele.num);
|
|
const typeCaseScenes = caseScenes.value.find((item) => item.type == type)!;
|
|
const typeCaseScenes = caseScenes.value.find((item) => item.type == type)!;
|
|
const oldKeys = caseScenes.value.find((item) => item.type == type)!.numList;
|
|
const oldKeys = caseScenes.value.find((item) => item.type == type)!.numList;
|
|
- const pagKeys = pagScenes.map(getSceneKey);
|
|
|
|
- const selectKeys = selectScenes.map(getSceneKey);
|
|
|
|
- console.log('changeSelection', oldKeys, pagKeys, selectKeys);
|
|
|
|
|
|
+ const pagKeys = pagScenes.map(ele => ele.num);
|
|
|
|
+
|
|
|
|
+ // console.log(pagKeys, oldKeys)
|
|
let newlist = oldKeys
|
|
let newlist = oldKeys
|
|
// 保留其他页的key,剔除当前页的key
|
|
// 保留其他页的key,剔除当前页的key
|
|
.filter((key) => !pagKeys.includes(key))
|
|
.filter((key) => !pagKeys.includes(key))
|
|
// 拼接上当前页选中的key
|
|
// 拼接上当前页选中的key
|
|
.concat(selectKeys);
|
|
.concat(selectKeys);
|
|
- typeCaseScenes.numList = [...new Set(newlist)];
|
|
|
|
- console.log('changeSelection', selectScenes, caseScenes.value);
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+ typeCaseScenes.numList = [...new Set(newlist)];
|
|
|
|
+ // tableRef.value!.clearSelection()
|
|
|
|
+ changIng = false
|
|
};
|
|
};
|
|
const sceneDownloadHandler = (scene: QuoteScene) => {
|
|
const sceneDownloadHandler = (scene: QuoteScene) => {
|
|
sceneDownload({ scene });
|
|
sceneDownload({ scene });
|