1
0

index.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div class="scene">
  3. <el-button class="w-full" @click="handleAdddyrh">编辑多元融合</el-button>
  4. <el-button class="w-full my-4" @click="handleAdd" style="margin-left: 0; margin-right: 0">添加场景</el-button>
  5. <div class="scene-list">
  6. <div class="scene-title flex justify-between content-center">
  7. <span class="title1" style="line-height: 32px ">场景列表</span>
  8. <!-- <el-switch v-model="active" @change="handleActive" /> -->
  9. </div>
  10. <div class="list" v-if="active" style="min-height: 630px;">
  11. <div
  12. class="listItem flex justify-between py-2"
  13. v-for="item,index in list"
  14. :key="index"
  15. >
  16. <span class="anmc" :title="item.name">{{ item.name || '多元融合' }}</span>
  17. <div class="cursor-pointer" quaternary type="primary">
  18. <span class="mr-4" @click="handlegotoelT(item)">移除</span>
  19. <span @click="handlegotoEdit(item)">编辑</span>
  20. </div>
  21. <!-- <div @click="handlegotoEdit(item)" class="cursor-pointer" quaternary type="primary">编辑</div> -->
  22. </div>
  23. </div>
  24. <!-- <el-button
  25. class="w-full"
  26. type="primary"
  27. @click="submitForm"
  28. >
  29. 保存
  30. </el-button> -->
  31. </div>
  32. </div>
  33. </template>
  34. <script setup lang="ts">
  35. import { getCaseSceneList, getUrlSrc, getSceneListTree, setCaseaddOrUpdate } from "@/store/case";
  36. import { router } from "@/router";
  37. import comSelect from "@/components/company-select/index.vue";
  38. import List from "./list.vue";
  39. import SceneContent from "./sceneContent.vue";
  40. import { ElMessage } from "element-plus";
  41. import ModelContent from "./modelContent.vue";
  42. import { useScenePaggingParams } from "./pagging";
  43. import { computed, ref, onMounted } from "vue";
  44. import { tableModelScene } from "./quisk";
  45. const active = ref(true);
  46. const list = ref([]);
  47. const isEdit = ref(false)
  48. const showModal = ref(false);
  49. const params = useScenePaggingParams();
  50. const caseId = computed(() => (router.currentRoute.value?.params?.caseId));
  51. onMounted(() => {
  52. geiList();
  53. console.log("router.currentRoute.value", caseId);
  54. });
  55. async function geiList() {
  56. list.value = await getCaseSceneList(caseId.value);
  57. console.log("res", list.value);
  58. }
  59. function handlegotoEdit(record) {
  60. let url = record.type == 2 || record.type == 5 ? `/mega/index.html?m=${record.num}` : `/epg.html?m=${record.num}`
  61. window.open(url.replace("spg", "epg"));
  62. }
  63. function handleAdddyrh(record) {
  64. let url = `/code/index.html?caseId=${caseId.value}#/fuseEdit/merge`
  65. window.open(url);
  66. }
  67. async function handlegotoelT(record) {
  68. isEdit.value = true;
  69. if (await confirm("确定要移除当前场景吗?")) {
  70. list.value = list.value.filter((item) => item.num !== record.num);
  71. submitForm();
  72. }
  73. // console.log("handleActive", params);
  74. }
  75. async function submitForm() {
  76. isEdit.value = false;
  77. let sublist = getSceneListTree(list.value)
  78. const apiData = {
  79. caseTitle: caseId.value,
  80. caseId: caseId.value,
  81. sceneNumParam: sublist,
  82. };
  83. await setCaseaddOrUpdate(apiData)
  84. ElMessage({
  85. message: '操作成功',
  86. type: 'success',
  87. })
  88. geiList();
  89. // console.log("handleActive", params);
  90. }
  91. async function handleAdd() {
  92. if(isEdit.value){
  93. await confirm("请先保存当前移除的场景信息!")
  94. return
  95. }
  96. let numList = list.value.map((item) => item.num);
  97. console.log("handleAdd", numList);
  98. let val = await tableModelScene({numList: numList});
  99. geiList();
  100. if (val) {
  101. console.log("刷新列表");
  102. }
  103. }
  104. </script>
  105. <style scoped>
  106. .anmc {
  107. overflow: hidden;
  108. text-overflow: ellipsis;
  109. white-space: nowrap;
  110. width: 190px;
  111. }
  112. </style>