From d1ce79c837650689ab47bbf587d076743fcb3a5f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 19 五月 2025 17:25:38 +0800
Subject: [PATCH] 1. 问题审核界面新增场景信息编辑入口 2. 问题审核界面场景图片查询新增图片类型修改功能

---
 src/views/fysp/scene/SceneEditDialog.vue |  139 ++++++++++++++++++++++++++++++++++++----------
 1 files changed, 109 insertions(+), 30 deletions(-)

diff --git a/src/views/fysp/scene/SceneEditDialog.vue b/src/views/fysp/scene/SceneEditDialog.vue
index b730af4..5f237cf 100644
--- a/src/views/fysp/scene/SceneEditDialog.vue
+++ b/src/views/fysp/scene/SceneEditDialog.vue
@@ -1,31 +1,29 @@
 <template>
-  <el-dialog>
-    <div class="sub-title">璐︽埛淇℃伅</div>
-    <el-row>
-      <FormCol>
-        <CompUserInfo :form-info="formUser" />
-      </FormCol>
-    </el-row>
-    <el-divider />
-    <div class="sub-title">鍩烘湰淇℃伅</div>
-    <el-row>
-      <FormCol>
-        <CompSceneBaseInfo :model="formScene" />
-      </FormCol>
-    </el-row>
-    <template v-if="formScene.typeid == 1">
-      <el-divider />
-      <div class="sub-title">宸ュ湴淇℃伅</div>
-      <el-row>
-        <FormCol>
-          <CompSceneConstructionInfo
-            showStyle="form"
-            :form-info="formSubScene"
-          />
-        </FormCol>
-      </el-row>
-      <el-divider />
-      <div class="sub-title">璁惧淇℃伅</div>
+  <el-dialog
+    :model-value="modelValue"
+    @update:model-value="handleDialogChange"
+    top="2vh"
+    class="dialog-wrapper"
+    v-loading="loading"
+  >
+    <el-scrollbar
+      ref="scrollbarRef"
+      height="86vh"
+      v-loading="loading"
+      :always="true"
+    >
+      <template v-if="formScene && formScene.typeid == 1">
+        <div class="sub-title">宸ュ湴淇℃伅</div>
+        <el-row>
+          <FormCol>
+            <CompSceneConstructionInfo
+              showStyle="form"
+              :form-info="formSubScene"
+            />
+          </FormCol>
+        </el-row>
+        <!-- <el-divider /> -->
+        <!-- <div class="sub-title">璁惧淇℃伅</div>
       <el-row>
         <FormCol>
           <CompSceneDeviceInfo
@@ -33,12 +31,27 @@
             :scene-type="formScene.typeid"
           />
         </FormCol>
+      </el-row> -->
+        <el-divider />
+      </template>
+      <div class="sub-title">鍩烘湰淇℃伅</div>
+      <el-row>
+        <FormCol>
+          <CompSceneBaseInfo :model="formScene" />
+        </FormCol>
       </el-row>
-    </template>
+      <el-divider />
+      <div class="sub-title">璐︽埛淇℃伅</div>
+      <el-row>
+        <FormCol>
+          <CompUserInfo :form-info="formUser" />
+        </FormCol>
+      </el-row>
+    </el-scrollbar>
   </el-dialog>
 </template>
 <script setup>
-import { ref } from 'vue';
+import { ref, watch } from 'vue';
 
 import sceneApi from '@/api/fysp/sceneApi';
 import userApi from '@/api/fysp/userApi';
@@ -48,11 +61,77 @@
 import CompUserInfo from '../user/CompUserInfo.vue';
 
 const props = defineProps({
+  modelValue: Boolean,
   sceneId: String
 });
 
+const emits = defineEmits(['update:modelValue']);
+
 const formUser = ref({});
-const formScene = ref({});
+const formScene = ref();
 const formSubScene = ref({});
 const formSceneDevice = ref({});
+const loading = ref(false);
+const scrollbarRef = ref();
+
+watch(
+  () => [props.modelValue, props.sceneId],
+  (nV, oV) => {
+    if (nV[0] && nV[1]) {
+      fetchSceneInfo();
+    }
+  }
+);
+
+function handleDialogChange(value) {
+  formUser.value = {};
+  formScene.value = undefined;
+  formSubScene.value = {};
+  formSceneDevice.value = {};
+
+  emits('update:modelValue', value);
+}
+
+function fetchSceneInfo() {
+  const sid = props.sceneId;
+  loading.value = true;
+  sceneApi
+    .getSceneDetail(sid)
+    .then((res) => {
+      userApi
+        .getUserByScene(sid)
+        .then((user) => {
+          //鍦烘櫙
+          if (res.data.scense) formScene.value = res.data.scense;
+          if (res.data.subScene) {
+            formSubScene.value = res.data.subScene;
+          } else {
+            formSubScene.value = {
+              sGuid: formScene.value.guid
+            };
+          }
+          if (res.data.sceneDevice) {
+            formSceneDevice.value = res.data.sceneDevice;
+          } else {
+            formSceneDevice.value = {
+              sGuid: formScene.value.guid
+            };
+          }
+          //璐︽埛
+          if (user) {
+            formUser.value = user;
+          } else {
+            formUser.value = {
+              dguid: sid
+            };
+          }
+        })
+        .finally(() => {
+          loading.value = false;
+          scrollbarRef.value.setScrollTop(0);
+        });
+    })
+    .catch(() => (loading.value = false));
+}
 </script>
+<style scoped></style>

--
Gitblit v1.9.3