Explorar el Código

Merge branch 'all-v4-fjc' into 'all-v4'

fix: 布局管理-场景布局 修复手机端场景保存不生效问题

See merge request skyeye/skyeye_frontend/skyeye-admin!329
Fei Liu hace 1 año
padre
commit
45e789b5c8
Se han modificado 2 ficheros con 24 adiciones y 43 borrados
  1. 13 13
      src/api/scene/scene.ts
  2. 11 30
      src/views/page-config/ConfigEdit.vue

+ 13 - 13
src/api/scene/scene.ts

@@ -3,6 +3,7 @@ import { CompanyInfoList, CompanyLayoutInfoList } from '@/types/scene-layout/typ
 import { ViewType } from '@/types/scene/constant';
 import * as SceneTypes from '@/types/scene/type';
 import { CompanyInfoItem } from '@/types/scene/type';
+import { ViewType as newViewType } from '@/types/page-config/type';
 
 /** 获取公司-工厂-工位数据 */
 export const getShopSpaceList = () => {
@@ -69,8 +70,15 @@ export const getCamerasByWorkShopId = (params: { workshopId: number }) => {
   });
 };
 
+interface UploadCompanyLayoutType {
+  labelId: number;
+  layout: string;
+  targetId: number;
+  viewType: newViewType;
+}
+
 /** 新增公司主页配置 */
-export const uploadCompanyLayoutApi = (data: SceneTypes.UpdateCompanyLayoutParam) => {
+export const uploadCompanyLayout = (data: UploadCompanyLayoutType) => {
   return http.request({
     url: '/admin/homepageConfig/saveCompanyLayout',
     method: 'post',
@@ -78,15 +86,12 @@ export const uploadCompanyLayoutApi = (data: SceneTypes.UpdateCompanyLayoutParam
   });
 };
 
-/** ??? */
-export const uploadCompanyLayout = (
-  param: Omit<SceneTypes.UpdateCompanyLayoutParam, 'viewType'>,
-) => {
-  return uploadCompanyLayoutApi({ ...param, viewType: ViewType.safety });
-};
+interface UpdateCompanyLayoutType extends UploadCompanyLayoutType {
+  id: number;
+}
 
 /** 更新公司主页配置 */
-export const updateCompanyLayoutApi = (data: SceneTypes.UpdateCompanyLayoutParam) => {
+export const updateCompanyLayout = (data: UpdateCompanyLayoutType) => {
   return http.request({
     url: '/admin/homepageConfig/updateCompanyLayout',
     method: 'put',
@@ -94,11 +99,6 @@ export const updateCompanyLayoutApi = (data: SceneTypes.UpdateCompanyLayoutParam
   });
 };
 
-/** ??? */
-export const updateCompanyLayout = (param: SceneTypes.UpdateCompanyLayoutParam) => {
-  return updateCompanyLayoutApi({ ...param });
-};
-
 /** 根据公司查询Mobile主页布局 */
 export const getMobileCompanyLayoutApi = (params: { companyId: number }) => {
   return http.request({

+ 11 - 30
src/views/page-config/ConfigEdit.vue

@@ -28,9 +28,7 @@
               <el-button :icon="Refresh" :disabled="!hasBg"> 替换照片 </el-button>
             </el-upload>
 
-            <el-button :icon="Refresh" :disabled="!hasBg" @click="clearLayout">
-              重置布局
-            </el-button>
+            <el-button :icon="Refresh" :disabled="!hasBg" @click="clearLayout"> 重置布局 </el-button>
 
             <el-button @click="handleSave" type="primary" :disabled="!companyId"> 保存 </el-button>
           </div>
@@ -81,9 +79,7 @@
           :headers="getHeaders()"
         >
           <img src="~@/assets/images/img-upload.png" />
-          <div class="upload-tips-text">
-            请上传1920*1080尺寸的布局背景图,其他尺寸会影响布局准确性!
-          </div>
+          <div class="upload-tips-text"> 请上传1920*1080尺寸的布局背景图,其他尺寸会影响布局准确性! </div>
         </el-upload>
       </div>
       <div class="shop-tag-edit-area" v-if="hasBg">
@@ -91,12 +87,7 @@
       </div>
     </div>
 
-    <ConfigFinish
-      :visible="visibleResult"
-      :status="configStatus"
-      @on-close="closeResult"
-      class="feedback-position"
-    />
+    <ConfigFinish :visible="visibleResult" :status="configStatus" @on-close="closeResult" class="feedback-position" />
   </div>
 </template>
 
@@ -127,8 +118,7 @@
   import { ViewType } from '@/types/page-config/type';
 
   const mapEditor = useMapEditor();
-  const { bgImg, addedShops, activeShopId, showShops, mapHeight, mapWidth } =
-    storeToRefs(mapEditor);
+  const { bgImg, addedShops, activeShopId, showShops, mapHeight, mapWidth } = storeToRefs(mapEditor);
   const { addShop, addBg, calcLayout, resetMap, createMap, deleteShop } = mapEditor;
 
   const router = useRouter();
@@ -148,7 +138,7 @@
 
   const companyId = ref<number>();
   const companyName = ref<string>();
-  const viewType = ref<number>();
+  const viewType = ref<ViewType>();
 
   const shopList = ref<ShopType[]>([]); // 车间列表
 
@@ -156,20 +146,13 @@
   const mapContainerStageSize = reactive({ height: 0, width: 0 });
   // // mapContainer缩放比例
   const scale = computed(() =>
-    Math.min(
-      mapContainerStageSize.width / mapWidth.value,
-      mapContainerStageSize.height / mapHeight.value,
-    ),
+    Math.min(mapContainerStageSize.width / mapWidth.value, mapContainerStageSize.height / mapHeight.value),
   );
 
   const defaultLayoutString = ref(''); // 默认布局的string,用于点击返回时判断是否未保存布局就离开
 
   const handleBeforeUpload = (rawFile) => {
-    if (
-      rawFile.type !== 'image/jpg' &&
-      rawFile.type !== 'image/jpeg' &&
-      rawFile.type !== 'image/png'
-    ) {
+    if (rawFile.type !== 'image/jpg' && rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/png') {
       ElMessage.error('请上传jpg、jpeg、png格式的图片!');
       return false;
     }
@@ -317,6 +300,7 @@
       layout,
       targetId: companyId.value || 2,
       labelId: label.value || 1,
+      viewType: viewType.value!,
     };
     if (!layoutId.value) {
       uploadCompanyLayout(param).then((res) => {
@@ -324,11 +308,9 @@
         ElMessage.success('保存成功');
       });
     } else {
-      updateCompanyLayout({ ...param, id: layoutId.value, viewType: viewType.value! }).then(
-        (_res) => {
-          ElMessage.success('更新成功');
-        },
-      );
+      updateCompanyLayout({ ...param, id: layoutId.value }).then((_res) => {
+        ElMessage.success('更新成功');
+      });
     }
     defaultLayoutString.value = layout;
   };
@@ -383,7 +365,6 @@
 </script>
 
 <style scoped lang="scss">
-
   .page-head {
     height: 54px;
     padding-left: 15px;