Browse Source

Merge branch 'master' of http://192.168.0.115:3000/bill/fuse-code

xzw 2 years ago
parent
commit
79c164c139

+ 0 - 3
src/layout/edit/scene-select.vue

@@ -103,16 +103,13 @@ const okHandler = createLoadPack(async () => {
     .map(addFuseModel)
 
   await Promise.all(addPromises)
-  console.log('111')
   await new Promise<void>((resolve) => {
     nextTick(() => {
       const stop = watchEffect(() => {
-        console.log('222')
         if (fuseModelsLoaded.value) {
           nextTick(() => {
             stop()
             resolve()
-            console.log('333')
           })
         }
         

+ 7 - 2
src/layout/scene-list/index.vue

@@ -22,7 +22,12 @@
           </template>
         </ModelList>
       </div>
-      <div class="scene" @click="updateCurrent(item.raw)" v-else>
+      <div 
+        class="scene" 
+        :class="{disabled: item.raw.status !== SceneStatus.SUCCESS}" 
+        @click="updateCurrent(item.raw)" 
+        v-else
+      >
         <p>{{ item.raw.name }}</p>
         <p>{{ SceneTypeDesc[item.raw.type as SceneType] }}</p>
       </div>
@@ -32,7 +37,7 @@
 
 <script lang="ts" setup>
 import { computed, nextTick, ref, watch } from 'vue'
-import { scenes, SceneType, SceneTypeDesc, fuseModels } from '@/store'
+import { scenes, SceneType, SceneTypeDesc, fuseModels, SceneStatus } from '@/store'
 import List from '@/components/list/index.vue'
 import ModelList from '../model-list/index.vue'
 import { fuseModel, getModelTypeDesc } from '@/model'

+ 1 - 1
src/main.ts

@@ -15,7 +15,7 @@ app.mount('#app')
 
 
 watchEffect((onCleanup) => {
-  if (currentLayout.value === RoutesName.show) {
+  if ([RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)) {
     const untokenURLS = params.share 
       ? [
           URL.FUSE_MODEL_LIST,

+ 0 - 1
src/router/constant.ts

@@ -84,7 +84,6 @@ export const metas = {
   [RoutesName.view]: { sysTitle: '视图提取' },
   [RoutesName.record]: { sysTitle: '屏幕录制' },
   [RoutesName.show]: { sysTitle: '' },
-  [RoutesName.signModel]: { sysTitle: '单一模型' },
 
 
   [RoutesName.summaryShow]: {

+ 3 - 2
src/sdk/association.ts

@@ -18,6 +18,7 @@ import {
   togetherCallback
 } from '@/utils'
 import { 
+  dynamicAddedModelIds,
   fuseModels, 
   taggings, 
   isEdit, 
@@ -27,8 +28,7 @@ import {
   MeasureType,
   measures,
   fuseModelsLoaded,
-  getMeasureIsShow,
-  unSetModelUpdate
+  getMeasureIsShow
 } from '@/store'
 
 import TaggingComponent from '@/components/tagging/list.vue'
@@ -86,6 +86,7 @@ const associationModels = (sdk: SDK) => {
         sceneModel = sdk.addModel({
           ...itemRaw,
           ...modelRange,
+          isDynamicAdded: dynamicAddedModelIds.value.some(id => itemRaw.id === id),
           type: item.type === SceneType.SWSS ? 'laser' : item.modelType,
           url: item.type === SceneType.SWSS ? item.url : getResource(item.url)
         })

+ 1 - 1
src/sdk/cover/index.js

@@ -472,7 +472,7 @@ export const enter = (dom, isLocal) => {
         //scaleRange: { min, max }, opacityRange: { min, max }, bottomRange: { min, max } })
         
         addModel(props){ 
-            
+            console.log(props.isDynamicAdded)
             let bus = mitt()  
             //console.log('addModel',props)
             props.isFirstLoad = isLocal && props.bottom == void 0  //离地高度去掉了这怎么办 // //在编辑时用户添加的

+ 1 - 1
src/sdk/sdk.ts

@@ -49,7 +49,7 @@ export type ModelAttrRange = {
 
 export type AddModelProps = Pick<FuseModel, 'url' | 'id'> 
   & FuseModelAttrs 
-  & { type: string }
+  & { type: string, isDynamicAdded: boolean }
   & ModelAttrRange
 
 

+ 12 - 3
src/store/fuse-model.ts

@@ -26,6 +26,8 @@ export type FuseModels = FuseModel[]
 export type { FuseModelAttrs } from '@/api'
 
 export const fuseModels = ref<FuseModels>([])
+export const dynamicAddedModelIds = ref<FuseModel['id'][]>([])
+
 export const defaultFuseModelAttrs: FuseModelAttrs = {
   show: true,
   scale: 100,
@@ -126,14 +128,21 @@ export const recoverFuseModels = () => {
 }
 
 export const updateFuseModel = updateStoreItem(fuseModels, postUpdateFuseModels)
-export const deleteFuseModel = deleteStoreItem(fuseModels, postDeleteFuseModel)
+export const deleteFuseModel = deleteStoreItem(fuseModels, async (model) => {
+  await postDeleteFuseModel(model)
+  const index = dynamicAddedModelIds.value.indexOf(model.id)
+  ~index && dynamicAddedModelIds.value.splice(index, 1)
+})
+
 export const addFuseModel = async (model: FuseModel) => {
   const addModel = reactive(serviceToLocal(await postAddFuseModel(model)))
   initFuseModel(addModel)
-  unSetModelUpdate(() => fuseModels.value.push(addModel))
+  unSetModelUpdate(() => {
+    fuseModels.value.push(addModel)
+    dynamicAddedModelIds.value.push(addModel.id)
+  })
 }
 
-
 export const initialFuseModels = fetchStoreItems(
   fuseModels, 
   fetchFuseModels, 

+ 1 - 1
src/store/scene.ts

@@ -15,4 +15,4 @@ export const initialScenes = fetchStoreItems(
   fetchScenes, 
 )
 
-export { SceneType, SceneTypeDesc } from '@/api'
+export { SceneType, SceneTypeDesc, SceneStatus } from '@/api'

+ 1 - 1
src/views/record/shot.vue

@@ -76,7 +76,7 @@ export default defineComponent({
   setup(props, { emit }) {
     const config: any = {
       uploadUrl: '',
-      resolution: '2k',
+      resolution: '4k',
       debug: false,
     }
   

+ 4 - 3
src/views/sign-model/index.vue

@@ -6,7 +6,7 @@
 import { ref } from 'vue'
 import { loadModel, fuseModel as FModel } from '@/model'
 import { fetchScene } from '@/api'
-import { createFuseModels, fuseModels } from '@/store'
+import { createFuseModels, defTitle, fuseModels, SceneStatus } from '@/store'
 import { params, showModelsMapStack } from '@/env'
 import { Dialog } from 'bill/index'
 import { useViewStack, useActive } from '@/hook';
@@ -16,10 +16,12 @@ const active = useActive()
 let pop: () => void
 const loadSignModel = async () => {
   const scene = await fetchScene(Number(params.modelId))
-  if (!scene) {
+  if (!scene || scene.status === SceneStatus.SUCCESS) {
     return Dialog.alert(`模型不存在!`)
   }
   if (active.value) {
+    defTitle.value = scene.title || scene.modelTitle
+    
     const fuseModel = createFuseModels({
       modelId: scene.modelId,
       show: true,
@@ -36,7 +38,6 @@ const loadSignModel = async () => {
   }
 }
 
-
 useViewStack(() => {
   const bcModels = fuseModels.value
   fuseModels.value = []