Sfoglia il codice sorgente

feat(corporation): finish upload

gemercheung 3 anni fa
parent
commit
89a0dc20d6

+ 12 - 1
src/api/corporation/list.ts

@@ -1,5 +1,5 @@
 import { defHttp } from '/@/utils/http/axios';
-import { PageParams, CorporationListGetResultModel } from './model';
+import { PageParams, CorporationListGetResultModel, updateCompanyParam } from './model';
 
 import { Result, UploadFileParams } from '/#/axios';
 
@@ -8,6 +8,7 @@ enum Api {
   listAllCompany = '/zfb-api/zfb/company/getListAll',
   selectCompanyByType = '/zfb-api/zfb/company/selectCompanyByType',
   uploadLogo = '/zfb-api/zfb/company/uploadLogo',
+  updateCompany = '/zfb-api/zfb/company/updateCompany',
 }
 
 /**
@@ -44,6 +45,16 @@ export const ListVerifyApi = (params: PageParams) =>
     },
   });
 
+export const updateCompnayApi = (params: updateCompanyParam) =>
+  defHttp.post<Result>({
+    url: Api.updateCompany,
+    params,
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });
+
 export function uploadLogoApi(
   params: UploadFileParams,
   onUploadProgress: (progressEvent: ProgressEvent) => void,

+ 4 - 0
src/api/corporation/model.ts

@@ -3,6 +3,10 @@ import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
  * @description: Request list interface parameters
  */
 export type PageParams = BasicPageParams;
+export interface updateCompanyParam {
+  id: number;
+  sceneLogo?: string;
+}
 export interface addDeiceParam {
   childNames: string | null;
   id: number;

+ 2 - 2
src/components/Cropper/src/CropperAvatar.vue

@@ -91,9 +91,9 @@
         },
       );
 
-      function handleUploadSuccess({ source }) {
+      function handleUploadSuccess({ source, data }) {
         sourceValue.value = source;
-        emit('change', source);
+        emit('change', source, data);
         createMessage.success(t('component.cropper.uploadSuccess'));
       }
 

+ 35 - 2
src/views/corporation/index.vue

@@ -8,6 +8,11 @@
           :width="80"
           :uploadApi="uploadLogoApi"
           :value="record.sceneLogo"
+          @change="
+            (_, data) => {
+              updateSceneLogo(record, data);
+            }
+          "
         />
       </template>
       <template #floorLogo="{ record }">
@@ -16,6 +21,11 @@
           :width="80"
           :uploadApi="uploadLogoApi"
           :value="record.floorLogo"
+          @change="
+            (_, data) => {
+              updateFloorLogo(record, data);
+            }
+          "
         />
       </template>
       <template #bgMusic="{ record }">
@@ -69,7 +79,7 @@
 </template>
 <script lang="ts">
   import { useI18n } from '/@/hooks/web/useI18n';
-  import { defineComponent, provide } from 'vue';
+  import { defineComponent, provide, nextTick } from 'vue';
   import { BasicTable, useTable, BasicColumn, FormProps, TableAction } from '/@/components/Table';
   // import { CollapseContainer } from '/@/components/Container';
   import { CropperAvatar } from '/@/components/Cropper';
@@ -77,12 +87,13 @@
   // import { uploadApi } from '/@/api/sys/upload';
   // import { Avatar } from 'ant-design-vue';
   // import { getBasicColumns, getBasicData } from './tableData';
-  import { ListApi, uploadLogoApi } from '/@/api/corporation/list';
+  import { ListApi, uploadLogoApi, updateCompnayApi } from '/@/api/corporation/list';
   import { useModal } from '/@/components/Modal';
   import chargeModal from './chargeModal.vue';
   import deviceModal from './deviceModal.vue';
   import SubaccountModal from './SubaccountModal.vue';
   import { Time } from '/@/components/Time';
+  import type { Result } from '/#/axios';
 
   export default defineComponent({
     components: {
@@ -231,6 +242,26 @@
         // });
       }
       function handleMusicUpload() {}
+      async function updateSceneLogo(record: Recordable, data: Result) {
+        console.log('src', data.message);
+        console.log('record', record);
+        await updateCompnayApi({
+          id: record.id,
+          sceneLogo: data.message,
+        });
+        nextTick(reload);
+        // updateCompnayApi
+      }
+      async function updateFloorLogo(record: Recordable, data: Result) {
+        console.log('src', data.message);
+        console.log('record', record);
+        await updateCompnayApi({
+          id: record.id,
+          floorLogo: data.message,
+        });
+        nextTick(reload);
+        // updateCompnayApi
+      }
 
       return {
         t,
@@ -242,6 +273,8 @@
         uploadLogoApi: uploadLogoApi as any,
         tablereload,
         handleMusicUpload,
+        updateSceneLogo,
+        updateFloorLogo,
       };
     },
   });