gemercheung 3 лет назад
Родитель
Сommit
074a5d95b7

+ 1 - 0
src/api/staff/list.ts

@@ -13,6 +13,7 @@ export const ListApi = (params: PageParams) =>
   defHttp.post<ListGetResultModel>({
     url: Api.pageList,
     params,
+    data: params,
     headers: {
       // @ts-ignore
       ignoreCancelToken: true,

+ 2 - 2
src/locales/lang/zh-CN/common.ts

@@ -33,8 +33,8 @@ export default {
   fullName: '姓名',
   print: '打印',
   all: '全部',
-  optSuccess: '操作成功',
-  optFail: '操作失败',
+  optSuccess: '操作成功!',
+  optFail: '操作失败!',
   notConnect: '暂未接入',
   delConfirm: '是否确认删除',
   mobile: '手机',

+ 54 - 41
src/views/scenes/bindModal.vue

@@ -11,7 +11,13 @@
         @register="registerTable"
         :searchInfo="searchInfo"
         :rowSelection="{ type: 'checkbox', onChange: handleSelect }"
-      />
+      >
+        <template #headerTop>
+          <div class="pt-4 pb-4">
+            场景名称: {{ headerInfo?.sceneName }} 直播间名称:{{ headerInfo?.name }}</div
+          >
+        </template>
+      </BasicTable>
       <!-- <BasicForm @register="registerForm" :model="model" /> -->
     </div>
     <template #centerFooter>
@@ -23,32 +29,23 @@
   import { defineComponent, reactive, h } from 'vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   // import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
-  import { BasicTable, useTable, BasicColumn } from '/@/components/Table';
-  // import { useMessage } from '/@/hooks/web/useMessage';
+  import { BasicTable, useTable, BasicColumn, FormSchema } from '/@/components/Table';
+  import { useMessage } from '/@/hooks/web/useMessage';
   // import { checkUserAddAble } from '/@/api/corporation/modal';
-  // import { useI18n } from '/@/hooks/web/useI18n';
+  import { useI18n } from '/@/hooks/web/useI18n';
   import { bindAnchorListApi, bindUserApi } from '/@/api/scene/live';
+  import { bindAnchorListParam } from '/@/api/scene/model';
   import { Time } from '/@/components/Time';
+  import { useUserStore } from '/@/store/modules/user';
+
+  const { t } = useI18n();
+  const { createMessage } = useMessage();
 
-  // const { t } = useI18n();
   const schemas: FormSchema[] = [
     {
       field: 'own',
       label: '主播选择:',
-      component: 'ApiSelect',
-      componentProps: {
-        api: bindAnchorListApi,
-        // resultField: 'list',
-        numberToString: true,
-        labelField: 'name',
-        valueField: 'id',
-        immediate: true,
-        params: {
-          page: 1,
-          // brandId:
-          limit: 1000,
-        },
-      },
+      component: 'Input',
     },
   ];
   const columns: BasicColumn[] = [
@@ -77,15 +74,15 @@
     {
       title: '是否同时开通一起逛',
       dataIndex: 'canShow',
-      width: 100,
-      editComponent: 'Checkbox',
-      // edit: true,
-      editRow: true,
+      width: 140,
+      editComponent: 'Switch',
+      ellipsis: false,
+      edit: true,
+      editable: true,
       editValueMap: (value) => {
-        console.log('value', value);
-        return value === 0 ? '是' : '否';
+        return value ? '是' : '否';
       },
-      // editable: true,
+
       // customRender: ({ record }) => {
       //   return (
       //     record.createTime &&
@@ -116,13 +113,14 @@
     props: {
       userData: { type: Object },
     },
-    setup() {
+    emits: ['register', 'success'],
+    setup(_, { emit }) {
       const [register, { closeModal }] = useModalInner((data) => {
         data && onDataReceive(data);
       });
-
+      const headerInfo = reactive<Recordable>({});
       const searchInfo = reactive<Recordable>({});
-      const [registerTable, { reload, getSelectRowKeys }] = useTable({
+      const [registerTable, { reload, getSelectRows }] = useTable({
         title: '主播列表',
         api: bindAnchorListApi,
         columns: columns,
@@ -134,28 +132,42 @@
         immediate: false,
         rowKey: 'id',
         pagination: { pageSize: 1000 },
+        clickToRowSelect: false,
         bordered: true,
+        afterFetch: (data) => {
+          console.log('data', data);
+        },
       });
 
       function onDataReceive(data) {
         console.log('Data Received', data.id);
         searchInfo.brandId = data.id;
+        headerInfo.name = data.name;
+        headerInfo.sceneName = data.sceneName;
         // searchInfo.key = data.id;
         reload();
       }
       const handleSubmit = async () => {
-        const keys = getSelectRowKeys();
-        console.log('keys', keys);
-        const params = [
-          {
-            brandId: '1046662',
-            canShow: 0,
-            type: 1,
-            userId: '1',
-          },
-        ];
-        const result = await bindUserApi(params);
-        console.log('result', result);
+        try {
+          const rows = getSelectRows();
+
+          if (rows?.length > 0) {
+            const userStore = useUserStore();
+            const paramsRow: bindAnchorListParam[] = rows.map((row) => {
+              return {
+                brandId: row.id,
+                canShow: ~~row.canShow,
+                type: row.type,
+                userId: String(userStore.getUserInfo?.id),
+              } as bindAnchorListParam;
+            });
+            await bindUserApi(paramsRow);
+            createMessage.success(t('common.optSuccess'));
+            closeModal();
+            emit('success');
+          } else {
+          }
+        } catch (error) {}
       };
       const handleSelect = async (key) => {
         // const keys = getSelectRowKeys();
@@ -171,6 +183,7 @@
         searchInfo,
         closeModal,
         handleSelect,
+        headerInfo,
       };
     },
   });

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

@@ -38,7 +38,7 @@
         />
       </template>
     </BasicTable>
-    <bindModal @register="registerBindModal" />
+    <bindModal @register="registerBindModal" @success="reload" />
   </div>
 </template>
 <script lang="ts">
@@ -107,6 +107,7 @@
         {
           title: t('routes.scenes.bindShowerNameList'),
           dataIndex: 'bindShowerNameList',
+          ellipsis: false,
           width: 180,
         },
 
@@ -229,7 +230,7 @@
         }
       }
 
-      const [registerTable] = useTable({
+      const [registerTable, { reload }] = useTable({
         title: t(`routes.scenes.liveBroadcast`),
         api: ListApi,
         columns: columns,
@@ -264,6 +265,8 @@
         t,
         registerBindModal,
         handleBindAnchor,
+
+        reload,
       };
     },
   });