shenwu 1 năm trước cách đây
mục cha
commit
ab7059d4d1

+ 9 - 8
config/routerConfig.ts

@@ -23,10 +23,10 @@ function headrRouter(initialState: any, history: any) {
             }
         })
     }
-    if (history?.location?.pathname === '/adMonitor') { //当切换一级菜单的辅助跳转
+    if (history?.location?.pathname === '/toutiao') { //当切换一级菜单的辅助跳转
         history?.goBack()
         initialState?.menu?.data.forEach((item: { roles: string[], path: string, routes: { path: string, routes: any[] }[] }) => {
-            if (item?.routes?.some((i: { path: string }) => i.path?.includes('/adMonitor'))) {
+            if (item?.routes?.some((i: { path: string }) => i.path?.includes('/toutiao'))) {
                 let path = item?.routes?.length > 0 ? (item?.routes[0]?.routes?.length > 0 && item?.routes[0]?.routes[0]?.path) ? item?.routes[0]?.routes[0]?.path : item?.routes[0].path : item?.routes[0].path
                 isPhone ? history.push(path) : window.open(location.origin + '/#' + path)
             }
@@ -145,17 +145,18 @@ const launchSystem = {
                 },
             ],
         },
-    ]
+    ],
+
 }
-/** 广告监控 */
+/** 头条 */
 const adMonitor = {
-    path: '/adMonitor',
+    path: '/toutiao',
     routes: [
         {
-            path: '/adMonitor/adMonitorList',
+            path: '/toutiao/ttAccountManage',
             name: '广告监控',
-            component: './adMonitor/adMonitorList',
-            access: 'adMonitorList',
+            component: './toutiao/ttAccountManage',
+            access: 'ttAccountManage',
         },
     ]
 }

+ 1 - 1
src/app.tsx

@@ -59,7 +59,7 @@ export async function getInitialState(): Promise<{
         if (userInfo?.data?.userInfo?.account === 'admin' && path.length > 0) {//假如是ADMIN加入api测试
           path[0].routes.push({ key: 0, path: '/operatePage/apitest', name: 'api测试', icon: '', component: './operatePage/apitest', roles: 'admin' })
         }
-        return { data: path }
+        return { data: path.reverse() }
       });
       localStorage.setItem('sex', userInfo?.data?.userInfo?.sex)
       localStorage.setItem('userId', userInfo?.data?.userInfo?.userId)

+ 9 - 0
src/pages/toutiao/ttAccountManage/index.less

@@ -0,0 +1,9 @@
+.manage {
+    height: calc(100% - 42px);
+    display: flex;
+    justify-content: flex-start;
+  
+    &__left {
+      width: calc(100% - 200px);
+    }
+  }

+ 84 - 0
src/pages/toutiao/ttAccountManage/index.tsx

@@ -0,0 +1,84 @@
+import HocError from '@/Hoc/HocError'
+import GroupLeft from '@/pages/launchSystemNew/account/groupLeft'
+import TeamMembers from '@/pages/launchSystemNew/components/teamMembers'
+import { GetAdAccountParams } from '@/services/launchAdq/adAuthorize'
+import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'
+import { Tabs } from 'antd'
+import React, { useCallback, useEffect, useState } from 'react'
+import style from './index.less'
+import { getAdAccountAllOfMember } from '@/services/launchAdq/adq'
+import { useAjax } from '@/Hook/useAjax'
+import TableData from '@/pages/launchSystemNew/components/TableData'
+import { oceanengine_adAccount_listOfUser } from '@/services/toutiao/ttAccountManage'
+function ttAccountManage() {
+    const [activeKey, setActiveKey] = useState<string>('1')
+    const [showLeft, setShowLeft] = useState<boolean>(false)
+    const [queryForm, setQueryForm] = useState<GetAdAccountParams>({ pageNum: 1, pageSize: 20 })
+
+    const allOfMember = useAjax(() => getAdAccountAllOfMember(), { formatResult: true })
+    const getAdAccountList = useAjax((params) => oceanengine_adAccount_listOfUser(params), { formatResult: true })
+
+    useEffect(() => {
+        getList()
+    }, [])
+
+
+    /** 获取账号列表 */
+    const getList = useCallback(() => {
+        let params = JSON.parse(JSON.stringify(queryForm))
+        if (params.accountIds) {
+            params.accountIds = params.accountIds.split(/[\,\,]/)
+        } else {
+            delete params?.accountIds
+        }
+        getAdAccountList.run(params)
+    }, [queryForm])
+    return <div style={{ height: '100%' }}>
+        <Tabs
+            tabBarStyle={{ marginBottom: 1 }}
+            activeKey={activeKey}
+            type="card"
+            // tabBarExtraContent={<Button type='primary' onClick={()=>setVisible(true)}><PlusOutlined />广告账号授权</Button>}
+            onChange={(activeKey) => {
+                if (activeKey !== 'contract') {
+                    let newQueryForm = JSON.parse(JSON.stringify(queryForm))
+                    delete newQueryForm?.groupId
+                    delete newQueryForm?.putUserId
+                    setQueryForm(newQueryForm)
+                    setActiveKey(activeKey)
+                } else {
+                    setShowLeft(!showLeft)
+                }
+            }}
+        >
+            <Tabs.TabPane tab='我的' key='1' />
+            <Tabs.TabPane tab='组员' key='2' />
+            <Tabs.TabPane tab={showLeft ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />} key='contract' />
+        </Tabs>
+        <div className={style.manage}>
+            {!showLeft && activeKey === '1' && <GroupLeft onChange={(groupId) => setQueryForm({ ...queryForm, groupId, pageNum: 1 })} value={queryForm?.groupId} />}
+            {!showLeft && activeKey === '2' && <TeamMembers allOfMember={allOfMember} onChange={(putUserId) => setQueryForm({ ...queryForm, putUserId, pageNum: 1 })} value={queryForm?.putUserId} />}
+            <div className={style.manage__left} style={showLeft ? { width: '100%' } : { width: 'calc(100% - 200px)' }}>
+                <TableData
+                    ajax={getAdAccountList}
+                    dataSource={getAdAccountList?.data?.data?.records}
+                    loading={getAdAccountList?.loading}
+                    columns={() => []}
+                    total={getAdAccountList?.data?.data?.total}
+                    page={getAdAccountList?.data?.data?.current}
+                    pageSize={getAdAccountList?.data?.data?.size}
+                    size="small"
+                    scroll={{ y: 600 }}
+                    // leftChild={null}
+                    onChange={(props: any) => {
+                        let { pagination } = props
+                        let { current, pageSize } = pagination
+                        setQueryForm({ ...queryForm, pageNum: current, pageSize })
+                    }}
+                />
+            </div>
+        </div>
+    </div>
+}
+
+export default HocError(ttAccountManage)

+ 34 - 0
src/services/toutiao/ttAccountManage.ts

@@ -0,0 +1,34 @@
+import { request } from 'umi';
+import { api } from '../api'
+
+
+
+
+/**用户所有头条账号*/ 
+// export async function oceanengine_adAccount_allOfUser(mpId: number) {
+//     return request(`${api}/oceanengine/adAccount/allOfUser`);
+// }
+/**所有有该账号操作权限的用户 投放助理回填*/ 
+export async function oceanengine_adAccount_accountOperationUser(accountId: number) {
+    return request(`${api}/oceanengine/adAccount/accountOperationUser/${accountId}`);
+}
+/**账号列表(拥有账号所有权)*/ 
+export async function oceanengine_adAccount_listOfUser(params: any) {
+    return request(`${api}/oceanengine/adAccount/listOfUser`, {
+        method: 'POST',
+        data: params
+    });
+}
+/**批量指派操作权的用户*/ 
+export async function oceanengine_adAccount_configOperationUser(params: any) {
+    let {accountId,operationUserIds} = params
+    return request(`${api}/oceanengine/adAccount/configOperationUser/${accountId}/${operationUserIds}`, {
+        method: 'PUT',
+    });
+}
+
+
+
+
+
+

+ 1 - 1
src/services/user.ts

@@ -16,7 +16,7 @@ export async function queryCurrent() {
 export async function getMenu(): Promise<any> {
   return request(api + '/erp/menu/getRouters', {
     method: 'PUT',
-    data: ["adq_put"]// "ad_monitor"
+    data: ["adq_put","ad_tt"]// "ad_monitor"
   })
 }