Bläddra i källkod

feat(live): live 绑定问题

gemercheung 3 år sedan
förälder
incheckning
4a993a0051

+ 21 - 1
src/api/scene/list.ts

@@ -1,10 +1,11 @@
 import { defHttp } from '/@/utils/http/axios';
-import { PageParams, RentListGetResultModel, SceneEditParam } from './model';
+import { PageParams, RentListGetResultModel, SceneEditParam, SceneDownloadParam } from './model';
 import { Result } from '/#/axios';
 
 enum Api {
   pageList = '/zfb-api/zfb/scene/pageList',
   generateSceneEditToken = '/zfb-api/zfb/api/platform/generateSceneEditToken',
+  downloadSceneData = '/zfb-api/zfb/scene/downloadSceneData',
   getDownloadProcess = '/zfb-api/zfb/scene/getDownloadProcess"',
 }
 
@@ -22,6 +23,25 @@ export const ListApi = (params: PageParams) =>
     },
   });
 
+export const downloadSceneDataAPi = (params: SceneDownloadParam) =>
+  defHttp.get<RentListGetResultModel>({
+    url: Api.downloadSceneData,
+    params,
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });
+export const getDownloadProcessApi = (params: SceneDownloadParam) =>
+  defHttp.get<RentListGetResultModel>({
+    url: Api.getDownloadProcess,
+    params,
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });
+
 export const generateSceneEditTokenApi = (params: SceneEditParam) =>
   defHttp.post<Result>({
     url: Api.generateSceneEditToken,

+ 3 - 1
src/api/scene/model.ts

@@ -9,7 +9,9 @@ export interface bindAnchorListParam extends BasicPageParams {
   type?: number;
   userId?: string;
 }
-
+export interface SceneDownloadParam {
+  sceneNum?: string;
+}
 export interface SceneEditParam {
   sceneNum: string;
   userName: string;

+ 3 - 3
src/views/corporation/cameraModal.vue

@@ -31,7 +31,7 @@
                 label: t('routes.corporation.unBind'),
                 popConfirm: {
                   title: t('routes.corporation.isUnBind'),
-                  confirm: handleunbindDevice.bind(null, record),
+                  confirm: handleUnbindDevice.bind(null, record),
                 },
               },
             ]"
@@ -170,7 +170,7 @@
       }
 
       function handleVisibleChange() {}
-      async function handleunbindDevice(record: Recordable) {
+      async function handleUnbindDevice(record: Recordable) {
         console.log('record');
         await unDeviceApi({
           childName: record.childName,
@@ -191,7 +191,7 @@
         t,
         registerDeviceTable,
         searchInfo,
-        handleunbindDevice,
+        handleUnbindDevice,
       };
     },
   });

+ 32 - 11
src/views/scenes/bindModal.vue

@@ -5,6 +5,7 @@
     title="绑定主播"
     width="800px"
     @ok="handleSubmit"
+    @cancel="clearSelectedRowKeys"
   >
     <div class="pt-2px pr-3px">
       <BasicTable
@@ -120,7 +121,17 @@
       });
       const headerInfo = reactive<Recordable>({});
       const searchInfo = reactive<Recordable>({});
-      const [registerTable, { reload, getSelectRows }] = useTable({
+      const [
+        registerTable,
+        {
+          reload,
+          getSelectRows,
+          getSelectRowKeys,
+          clearSelectedRowKeys,
+          setSelectedRowKeys,
+          getRawDataSource,
+        },
+      ] = useTable({
         title: '主播列表',
         api: bindAnchorListApi,
         columns: columns,
@@ -144,34 +155,43 @@
         searchInfo.brandId = data.id;
         headerInfo.name = data.name;
         headerInfo.sceneName = data.sceneName;
-        // searchInfo.key = data.id;
         reload();
+        if (data.bindShowerId) {
+          console.log('存在已邦,选择');
+          setSelectedRowKeys([Number(data.bindShowerId)]);
+        }
       }
       const handleSubmit = async () => {
         try {
           const rows = getSelectRows();
-
+          const rawData = getRawDataSource();
+          const userStore = useUserStore();
+          let paramsRow: bindAnchorListParam[];
           if (rows?.length > 0) {
-            const userStore = useUserStore();
-            const paramsRow: bindAnchorListParam[] = rows.map((row) => {
+            paramsRow = rows.map((row) => {
               return {
                 brandId: row.id,
-                canShow: ~~row.canShow,
-                type: row.type,
+                canShow: row.canShow ? 1 : 0,
+                type: 1,
                 userId: String(userStore.getUserInfo?.id),
               } as bindAnchorListParam;
             });
             await bindUserApi(paramsRow);
             createMessage.success(t('common.optSuccess'));
-            closeModal();
-            emit('success');
           } else {
+            console.log(
+              'rawData',
+              rawData.filter((i) => getSelectRowKeys().includes(i.id)),
+            );
           }
+          closeModal();
+          emit('success');
+          clearSelectedRowKeys();
         } catch (error) {}
       };
-      const handleSelect = async (key) => {
+      const handleSelect = async () => {
         // const keys = getSelectRowKeys();
-        console.log('key', key);
+        // console.log('key', key);
       };
 
       return {
@@ -184,6 +204,7 @@
         closeModal,
         handleSelect,
         headerInfo,
+        clearSelectedRowKeys,
       };
     },
   });

+ 2 - 0
src/views/scenes/live.vue

@@ -78,6 +78,7 @@
         {
           title: t('routes.scenes.anchorRoom'),
           dataIndex: 'name',
+          ellipsis: false,
           width: 130,
         },
         {
@@ -161,6 +162,7 @@
             field: 'sceneName',
             label: t('routes.scenes.anchorRoom'),
             component: 'Input',
+
             colProps: {
               xl: 5,
               xxl: 5,