weixin_52219567 3 هفته پیش
والد
کامیت
9bef646dbd
2فایلهای تغییر یافته به همراه49 افزوده شده و 6 حذف شده
  1. 40 4
      src/layout/index.vue
  2. 9 2
      src/views/greg/index.vue

+ 40 - 4
src/layout/index.vue

@@ -4,8 +4,8 @@
     <Search v-if="meta.search != 'hide'" />
     <Nav v-if="meta.nav" />
     <Breadcrumb v-if="meta.breadcrumb" />
-    <div class="pages-bos" :class="meta.workbench ? 'pages-bos1' : 'pages-bos2'">
-      <Workbench v-if="meta.workbench" />
+    <div class="pages-bos" :class="meta.workbench ? 'pages-bos1' : 'pages-bos2'" :style="{ minHeight: boxHeight }">
+      <Workbench ref="WorkbenchRef" v-if="meta.workbench" />
       <router-view> </router-view>
     </div>
     <Foot />
@@ -17,8 +17,44 @@ import { Header, Search, Nav, Breadcrumb, Foot, Workbench } from './components';
 
 const route = useRoute();
 const meta = ref<any>({});
-meta.value = route.meta;
+const WorkbenchRef = ref<any>(null);
+const boxHeight = ref<any>('0px');
+
+const observeHeight = () => {
+  if (!WorkbenchRef.value?.$el) return;
+
+  const resizeObserver = new ResizeObserver((entries) => {
+    for (const entry of entries) {
+      boxHeight.value = entry.contentRect.height + 'px';
+    }
+  });
 
+  resizeObserver.observe(WorkbenchRef.value.$el);
+
+  // 组件卸载时清理
+  onUnmounted(() => {
+    resizeObserver.disconnect();
+  });
+};
+
+onMounted(() => {
+  nextTick(() => {
+    if (route.meta.workbench) {
+      observeHeight();
+    }
+  });
+});
+
+watch(
+  () => route.meta.workbench,
+  (newVal) => {
+    if (newVal) {
+      nextTick(() => observeHeight());
+    }
+  }
+);
+
+meta.value = route.meta;
 watch(route, () => {
   meta.value = route.meta;
 });
@@ -43,7 +79,7 @@ watch(route, () => {
 
     &.pages-bos1 {
       width: 1200px;
-      margin: 20px auto 0 auto;
+      margin: 20px auto;
     }
 
     &.pages-bos2 {

+ 9 - 2
src/views/greg/index.vue

@@ -217,7 +217,9 @@
           >
             <el-icon class="avatar-uploader-icon"><Plus /></el-icon>
           </el-upload>
-          <img class="upload-img" v-if="form.businessLicense" :src="form.businessLicense" />
+          <div v-if="form.businessLicense && form.businessLicense != ''">
+            <img class="upload-img" v-for="(item, index) in form.businessLicense.split(',')" :key="index" :src="item" />
+          </div>
         </div>
       </template>
       <template v-if="nextNum == 3">
@@ -446,7 +448,11 @@ const handleRegionChange = (value: string[]) => {
 //上传成功
 const handleAvatarSuccess = (res: any) => {
   if (res.code == 200) {
-    form.value.businessLicense = res.data.url;
+    if (form.value.businessLicense == '') {
+      form.value.businessLicense = res.data.url;
+    } else {
+      form.value.businessLicense = form.value.businessLicense + ',' + res.data.url;
+    }
   } else {
     ElMessage({
       message: res.msg,
@@ -844,6 +850,7 @@ onUnmounted(() => {
     width: 108px;
     height: 108px;
     border-radius: 2px;
+    margin-right: 15px;
   }
 
   .el-icon.avatar-uploader-icon {