Procházet zdrojové kódy

Merge branch 'develop' of http://git.zanxiangnet.com/wjx/ad-manage

wjx před 3 měsíci
rodič
revize
dd551df4e5

+ 62 - 16
src/pages/launchSystemV3/adqv3/creative/index.tsx

@@ -11,6 +11,7 @@ import '../../tencentAdPutIn/index.less'
 import HandleLog from "./handleLog"
 import moment from "moment"
 import RetriaModal from "./retriaModal"
+import ReplacePage from "./replacePage"
 
 /** 审核结果 */
 export const AD_STATUS = {
@@ -31,6 +32,7 @@ const Creative: React.FC<ADQV3.CreativeProps> = ({ queryForm, setQueryForm, user
     const [failVisible, setFailVisible] = useState<boolean>(false)
     const [logVisible, setLogVisible] = useState<boolean>(false)
     const [handleType, setHandleType] = useState<number>(1)
+    const [replaceVisible, setReplaceVisible] = useState<boolean>(false)
 
     const getDynamicCreativeV3List = useAjax((params) => getDynamicCreativeV3ListApi(params), { formatResult: true })
     const delBatchCreative = useAjax((params) => delBatchCreativeApi(params))
@@ -235,7 +237,11 @@ const Creative: React.FC<ADQV3.CreativeProps> = ({ queryForm, setQueryForm, user
                     }}
                     value={handleType}
                     dropdownMatchSelectWidth={false}
-                    options={[{ label: '基本操作', value: 1 }, { label: '复审操作', value: 2 }]}
+                    options={[
+                        { label: '基本操作', value: 1 },
+                        { label: '复审操作', value: 2 },
+                        // { label: '落地页替换', value: 3 },
+                    ]}
                 />
                 {handleType === 1 ? <>
                     <Button type='primary' style={{ background: '#67c23a', borderColor: '#67c23a' }} loading={updateBatchDynamicCreativesInfo.loading} icon={<PlayCircleOutlined />} disabled={selectedRows.length === 0} onClick={() => dynamicHandle('启动')}>启动</Button>
@@ -247,43 +253,70 @@ const Creative: React.FC<ADQV3.CreativeProps> = ({ queryForm, setQueryForm, user
                     >
                         <Button type='primary' danger icon={<DeleteOutlined />} loading={delBatchCreative.loading} disabled={selectedRows.length === 0}>删除</Button>
                     </Popconfirm>
-                </> : <>
-                    <RetriaModal 
+                </> : handleType === 2 ? <>
+                    <RetriaModal
                         selectedRows={selectedRows}
                         onChange={() => setSelectedRows([])}
                     />
-                </>}
+                </> : <Button
+                    type='primary'
+                    disabled={selectedRows.length === 0}
+                    onClick={() => { setReplaceVisible(true) }}
+                >修改落地页</Button>}
 
                 <Button type='dashed' onClick={() => { setLogVisible(true) }}>操作记录</Button>
             </Space>}
             rowSelection={{
                 selectedRowKeys: selectedRows.map(item => item.dynamicCreativeId.toString()),
-                getCheckboxProps: (record: any) => ({
-                    disabled: handleType === 2 ? record.isDeleted || record.reviewStatus !== 'AD_STATUS_DENIED' : record.isDeleted
-                }),
+                getCheckboxProps: (record: any) => {
+                    if (handleType === 3) {
+                        if (selectedRows.length) {
+                            const { deliveryMode, creativeTemplateId, creativeComponents: { mainJumpInfo } } = selectedRows[0]
+                            const pageType: string | undefined = mainJumpInfo?.[0]?.value?.pageType
+                            const pageLength: number | undefined = mainJumpInfo?.length
+                            return {
+                                disabled: record.isDeleted || record.deliveryMode !== deliveryMode || record.creativeTemplateId !== creativeTemplateId || record?.creativeComponents?.mainJumpInfo?.[0]?.value?.pageType !== pageType || pageLength !== record?.creativeComponents?.mainJumpInfo?.length
+                            }
+                        } else {
+                            return { disabled: record.isDeleted }
+                        }
+                    }
+                    return { disabled: handleType === 2 ? record.isDeleted || record.reviewStatus !== 'AD_STATUS_DENIED' : record.isDeleted }
+                },
                 onSelect: (record: { dynamicCreativeId: number }, selected: boolean) => {
                     if (selected) {
                         selectedRows.push({ ...record })
                         setSelectedRows([...selectedRows])
                     } else {
-                        let newSelectAccData = selectedRows.filter((item: { dynamicCreativeId: number }) => item.dynamicCreativeId !== record.dynamicCreativeId)
+                        const newSelectAccData = selectedRows.filter((item: { dynamicCreativeId: number }) => item.dynamicCreativeId !== record.dynamicCreativeId)
                         setSelectedRows([...newSelectAccData])
                     }
                 },
-                onSelectAll: (selected: boolean, selectedRowss: { dynamicCreativeId: number }[], changeRows: { dynamicCreativeId: number }[]) => {
+                onSelectAll: (selected: boolean, selectedRowss: { dynamicCreativeId: number }[], changeRows: { dynamicCreativeId: number, isDeleted: boolean }[]) => {
                     if (selected) {
-                        let newSelectAccData = [...selectedRows]
-                        changeRows.forEach((item: { dynamicCreativeId: number }) => {
-                            let index = newSelectAccData.findIndex((ite: { dynamicCreativeId: number }) => ite.dynamicCreativeId === item.dynamicCreativeId)
+                        const newSelectAccData = [...selectedRows]
+                        const firstData = selectedRows?.[0] || changeRows?.find((item: { isDeleted: boolean }) => !item.isDeleted)
+                        changeRows.forEach((item: any) => {
+                            const index = newSelectAccData.findIndex((ite: { dynamicCreativeId: number }) => ite.dynamicCreativeId === item.dynamicCreativeId)
                             if (index === -1) {
-                                let data: any = { ...item }
-                                newSelectAccData.push(data)
+                                if (handleType === 3) {
+                                    const isValid = !item.isDeleted &&
+                                        item.deliveryMode === firstData.deliveryMode &&
+                                        item.creativeTemplateId === firstData.creativeTemplateId &&
+                                        item?.creativeComponents?.mainJumpInfo?.[0]?.value?.pageType === firstData?.creativeComponents?.mainJumpInfo?.[0]?.value?.pageType &&
+                                        firstData?.creativeComponents?.mainJumpInfo?.length === item?.creativeComponents?.mainJumpInfo?.length;
+                                    if (isValid) {
+                                        newSelectAccData.push({ ...item });
+                                    }
+                                } else {
+                                    newSelectAccData.push({ ...item });
+                                }
                             }
                         })
                         setSelectedRows([...newSelectAccData])
                     } else {
-                        let newSelectAccData = selectedRows.filter((item: { dynamicCreativeId: number }) => {
-                            let index = changeRows.findIndex((ite: { dynamicCreativeId: number }) => ite.dynamicCreativeId === item.dynamicCreativeId)
+                        const newSelectAccData = selectedRows.filter((item: { dynamicCreativeId: number }) => {
+                            const index = changeRows.findIndex((ite: { dynamicCreativeId: number }) => ite.dynamicCreativeId === item.dynamicCreativeId)
                             if (index !== -1) {
                                 return false
                             } else {
@@ -351,6 +384,19 @@ const Creative: React.FC<ADQV3.CreativeProps> = ({ queryForm, setQueryForm, user
             }}
             userId={userId}
         />}
+
+        {/* 修改落地页 */}
+        {replaceVisible && <ReplacePage
+            selectedRows={selectedRows}
+            visible={replaceVisible}
+            onClose={() => {
+                setReplaceVisible(false)
+            }}
+            onChange={() => {
+                setReplaceVisible(false)
+                setSelectedRows([])
+            }}
+        />}
     </>
 }
 

+ 151 - 0
src/pages/launchSystemV3/adqv3/creative/replacePage.tsx

@@ -0,0 +1,151 @@
+import { Button, Checkbox, Input, Modal, Select, Space } from "antd";
+import React, { useEffect, useState } from "react"
+import '../../tencentAdPutIn/index.less'
+import style from '../../components/GoodsModal/index.less'
+import { getAdqLandingPageListApi, getWXDownPageAuthInfoListApi } from "@/services/adqV3/global"
+import { getAdqV3AdListApi } from "@/services/launchAdq/adqv3";
+import { useAjax } from "@/Hook/useAjax";
+import { SyncOutlined } from "@ant-design/icons";
+
+interface ReplacePageProps {
+    selectedRows: any[];
+    visible?: boolean;
+    onClose?: () => void;
+    onChange?: () => void;
+}
+/**
+ * 替换落地页
+ * @returns 
+ */
+const ReplacePage: React.FC<ReplacePageProps> = ({ selectedRows, visible, onChange, onClose }) => {
+
+    /***********************************************/
+    const { deliveryMode, creativeTemplateId, creativeComponents: { mainJumpInfo } } = selectedRows[0]
+    const pageType: string | undefined = mainJumpInfo?.[0]?.value?.pageType
+    const pageLength: number | undefined = mainJumpInfo?.length
+
+    const [selectAdz, setSelectAdz] = useState<number>(1)   // 选择创意
+    const [selectData, setSelectData] = useState<any>(selectedRows[0])   // 选择创意
+    const [loading, setLoading] = useState<boolean>(false)
+    const [wXDownPageAuthInfo, setWXDownPageAuthInfo] = useState<any>({})
+    const [queryForm, setQueryForm] = useState<{ accountId?: number, pageName?: string, ownerUid?: number, pageSize: number, pageNum: number, isSqDownPage: boolean, isCanvasType?: boolean }>({ pageNum: 1, pageSize: 20, isSqDownPage: false })
+
+    const getAdqLandingPageList = useAjax((params) => getAdqLandingPageListApi(params))
+    /***********************************************/
+
+    useEffect(() => {
+        if (selectedRows?.length > 0) {
+            setLoading(true)
+            const accountDataList = [...new Set(selectedRows.map(item => item.accountId))]
+            const infoAjax = accountDataList.map(accountId => getWXDownPageAuthInfoListApi(accountId))
+            const newData: any = {}
+            Promise.all(infoAjax).then(res => {
+                res?.forEach((item, index) => {
+                    newData[accountDataList[index]] = item?.data || []
+                })
+                setWXDownPageAuthInfo(newData)
+                setLoading(false)
+            }).catch(() => setLoading(false))
+            const adIdDataList = [...new Set(selectedRows.map(item => item.adgroupId))]
+            const adInfoAjax = adIdDataList.map(item => getAdqV3AdListApi({ adgroupIdList: [item], pageNum: 1, pageSize: 1 } as ADQV3.GetAdListProps))
+            Promise.all(adInfoAjax).then(res => {
+                // res?.forEach((item, index) => {
+                //     selectedRows[index].pageList = item?.data?.list || []
+                // })
+                // setSelectData(selectedRows[0])
+                setLoading(false)
+            }).catch(() => setLoading(false))
+        }
+    }, [])
+
+    useEffect(() => {
+        if (selectData) {
+            getList()
+        }
+    }, [queryForm, selectData])
+
+    const getList = async () => {
+
+    }
+
+    const handleOk = () => {
+
+    }
+
+    /** 设置选中广告主 */
+    const handleSelectAdz = (value: number) => {
+        if (value === selectAdz) {
+            return
+        }
+        const accountId = selectedRows[value - 1].accountId
+        setSelectData(selectedRows[value - 1])
+        setQueryForm({ ...queryForm, pageNum: 1, accountId, ownerUid: wXDownPageAuthInfo[accountId]?.[0]?.accountId })
+        setSelectAdz(value)
+    }
+
+    return <Modal
+        title={<strong>替换落地页</strong>}
+        open={visible}
+        onCancel={onClose}
+        onOk={handleOk}
+        width={1100}
+        className={`${style.SelectPackage} modalResetCss`}
+        bodyStyle={{ padding: '0 10px 0 10px' }}
+    >
+        <div className={style.content}>
+            <div className={style.left} style={{ width: 180 }}>
+                <h4 className={style.title}>创意</h4>
+                <div className={style.accountIdList}>
+                    {selectedRows?.map((item, index) => (
+                        <div key={item?.accountId + '_' + item.dynamicCreativeId} onClick={() => { if (!loading) handleSelectAdz(index + 1) }} className={`${style.accItem} ${selectAdz === index + 1 && style.select} `}>
+                            {item.dynamicCreativeId}({item?.accountId})
+                            {/* {data[index].pageList?.length > 0 && <CheckOutlined style={{ color: '#1890ff' }} />} */}
+                        </div>
+                    ))}
+                </div>
+            </div>
+            <div className={style.right}>
+                <Space style={{ marginBottom: 10 }}>
+                    <Checkbox
+                        onChange={(e) => {
+                            setQueryForm({ ...queryForm, pageNum: 1, isCanvasType: e.target.checked })
+                        }}
+                        checked={queryForm.isCanvasType}
+                    ><span style={{ fontSize: 12 }}>展示外换内组件原生页</span></Checkbox>
+                    <Checkbox
+                        onChange={(e) => {
+                            if (e.target.checked && wXDownPageAuthInfo && Object.keys(wXDownPageAuthInfo).length) {
+                                setQueryForm({ ...queryForm, pageNum: 1, ownerUid: wXDownPageAuthInfo[selectedRows[selectAdz - 1].accountId]?.[0]?.accountId, isSqDownPage: true })
+                            } else {
+                                setQueryForm({ ...queryForm, pageNum: 1, ownerUid: undefined, isSqDownPage: false })
+                            }
+                        }}
+                        checked={queryForm.isSqDownPage}
+                    ><span style={{ fontSize: 12 }}>被授权落地页</span></Checkbox>
+                    {queryForm.isSqDownPage && <Select
+                        placeholder='选择原生页授权方信息'
+                        style={{ width: 210 }}
+                        showSearch
+                        filterOption={(input: any, option: any) =>
+                            (option!.children as unknown as string).toLowerCase().includes(input.toLowerCase())
+                        }
+                        allowClear
+                        onChange={(value) => {
+                            setQueryForm({ ...queryForm, pageNum: 1, ownerUid: value })
+                        }}
+                        value={queryForm?.ownerUid}
+                        dropdownMatchSelectWidth={false}
+                    >
+                        {wXDownPageAuthInfo?.[selectedRows[selectAdz - 1].accountId]?.map((item: { accountId: number; accountName: string }) => {
+                            return <Select.Option value={item.accountId} key={item.accountId}>{item.accountName}({item.accountId})</Select.Option>
+                        })}
+                    </Select>}
+                    <Input value={queryForm?.pageName} style={{ width: 150 }} allowClear placeholder='请输入落地页名称' onChange={(e) => setQueryForm({ ...queryForm, pageNum: 1, pageName: e.target.value })} />
+                    <Button style={{ padding: 0, margin: 0 }} icon={<SyncOutlined />} type='link' loading={getAdqLandingPageList?.loading} onClick={() => { getAdqLandingPageList?.refresh() }}><span style={{ fontSize: 12 }}>刷新</span></Button>
+                </Space>
+            </div>
+        </div>
+    </Modal>
+}
+
+export default React.memo(ReplacePage)

+ 1 - 1
src/pages/launchSystemV3/adqv3/creative/reviewDetails.tsx

@@ -1,5 +1,5 @@
 import { useAjax } from "@/Hook/useAjax"
-import { getCreativeReviewDetailApi, getFsResultApi } from "@/services/adqV3/global"
+import { getCreativeReviewDetailApi } from "@/services/adqV3/global"
 import { Card, Drawer, Table } from "antd"
 import React, { useEffect, useState } from "react"
 import { tableConfigDetail } from "./tableConfig"

+ 1 - 1
src/pages/launchSystemV3/components/AdgroupTooltip/index.tsx

@@ -79,7 +79,7 @@ const AdgroupTooltip: React.FC<Props> = ({ data: adgroups, taskType }) => {
             <p>一键起量:{autoAcquisitionEnabled ? '开启' : '关闭'}</p>
             {autoAcquisitionEnabled && <p>起量预算:{autoAcquisitionBudget}元/天</p>}
             <p>广告日预算:{dailyBudget ? dailyBudget + '元/天' : '不限'}</p>
-            <p style={{ fontWeight: 'bold', color: '#000' }}>投放日期:{beginDate} 至 {endDate}</p>
+            <p style={{ fontWeight: 'bold', color: '#000' }}>投放日期:{beginDate} 至 {endDate || '长期投放'}</p>
             <p>投放时段:{timeSeries.includes('0') ? <TimeSeriesLook timeSeries={timeSeries} /> : '全天'}</p>
             <p>首日开始时间:{firstDayBeginTime ? firstDayBeginTime : '关闭'}</p>
             <p>广告状态:{AD_STATUS_ENUM[configuredStatus as keyof typeof AD_STATUS_ENUM]}</p>

+ 4 - 1
src/pages/launchSystemV3/material/tencent/search.tsx

@@ -1,4 +1,4 @@
-import { Button, Card, Col, DatePicker, Form, InputNumber, Row, Segmented, Select, Space } from "antd"
+import { Button, Card, Col, DatePicker, Form, Input, InputNumber, Row, Segmented, Select, Space } from "antd"
 import React, { useEffect } from "react"
 import { getUserAllApi } from "@/services/operating/account";
 import { useAjax } from "@/Hook/useAjax";
@@ -120,6 +120,9 @@ const Search: React.FC<Props> = ({ onSearch, pageShowType, setPageShowType }) =>
                     <Col><Form.Item name={['sizeQueries', 'height']}>
                         <InputNumber placeholder="素材高" />
                     </Form.Item></Col>
+                    <Col><Form.Item name={'materialName'}>
+                        <Input placeholder="素材名称" style={{ width: 120 }} allowClear/>
+                    </Form.Item></Col>
                     <Col>
                         <Form.Item name={['sizeQueries', 'relation']}>
                             <Select

+ 30 - 2
src/pages/launchSystemV3/tencentAdPutIn/create/Ad/adgroupsAdSetting.tsx

@@ -23,6 +23,7 @@ const AdgroupsAdSetting: React.FC<{ value?: any }> = ({ value }) => {
     const isSetfirstDayBeginTime = Form.useWatch('isSetfirstDayBeginTime', form)
     const marketingGoal = Form.useWatch('marketingGoal', form)
     const marketingTargetType = Form.useWatch('marketingTargetType', form)
+    const dateType = Form.useWatch('dateType', form)
     /****************************************/
 
     useEffect(() => {
@@ -43,9 +44,36 @@ const AdgroupsAdSetting: React.FC<{ value?: any }> = ({ value }) => {
         title={<strong style={{ fontSize: 18 }}>广告设置</strong>}
         className="cardResetCss"
     >
-        <Form.Item label={<strong>投放日期</strong>} name='date' rules={[{ required: true, message: '请选择投放日期' }]}>
-            <DatePicker.RangePicker disabledDate={disabledDate} />
+        <Form.Item label={<strong>投放日期</strong>} required>
+            <Space direction="vertical">
+                <Form.Item name='dateType' noStyle>
+                    <Radio.Group
+                        onChange={e => {
+                            if (e.target.value === '0') {
+                                form.setFieldsValue({
+                                    date: [moment().startOf('day').add(7, 'day'), moment().startOf('day').add(20, 'day')],
+                                    beginDate: undefined
+                                })
+                            } else {
+                                form.setFieldsValue({
+                                    date: undefined,
+                                    beginDate: moment().startOf('day').add(7, 'day')
+                                })
+                            }
+                        }}
+                    >
+                        <Radio value="0">指定开始及结束日期</Radio>
+                        <Radio value="1">长期投放</Radio>
+                    </Radio.Group>
+                </Form.Item>
+                {dateType === '0' ? <Form.Item name='date' rules={[{ required: true, message: '请选择投放日期' }]} noStyle>
+                    <DatePicker.RangePicker disabledDate={disabledDate} />
+                </Form.Item> : <Form.Item label={<strong>投放日期</strong>} name='beginDate' rules={[{ required: true, message: '请选择开始投放日期' }]} noStyle>
+                    <DatePicker disabledDate={disabledDate} />
+                </Form.Item>}
+            </Space>
         </Form.Item>
+
         <Form.Item label={<strong>投放时间</strong>}>
             <Card bordered className="cardResetCss newCss" bodyStyle={{ padding: 0 }}>
                 <div className={style.newSpace}>

+ 1 - 1
src/pages/launchSystemV3/tencentAdPutIn/create/Ad/index.tsx

@@ -97,7 +97,7 @@ const Ad: React.FC = () => {
                         <p>一键起量:{autoAcquisitionEnabled ? '开启' : '关闭'}</p>
                         {autoAcquisitionEnabled && <p>起量预算:{autoAcquisitionBudget}元/天</p>}
                         <p>广告日预算:{dailyBudget ? dailyBudget + '元/天' : '不限'}</p>
-                        <p style={{ fontWeight: 'bold', color: '#000' }}>投放日期:{beginDate} 至 {endDate}</p>
+                        <p style={{ fontWeight: 'bold', color: '#000' }}>投放日期:{beginDate} 至 {endDate || '长期投放'}</p>
                         <p>投放时段:{timeSeries.includes('0') ? <TimeSeriesLook timeSeries={timeSeries} /> : '全天'}</p>
                         <p>首日开始时间:{firstDayBeginTime ? firstDayBeginTime : '关闭'}</p>
                         <p>自动衍生创意:{autoDerivedCreativeEnabled ? '系统衍生' : '关闭衍生'}</p>

+ 18 - 5
src/pages/launchSystemV3/tencentAdPutIn/create/Ad/newCreateAd.tsx

@@ -47,6 +47,8 @@ const NewCreateAd: React.FC<Props> = ({ accountIdList, value, visible, onChange,
             marketingTargetType,     // 推广产品
             tencentNewsType,
             displaySceneType,
+            dateType,
+            beginDate,
             date,                    // 开始时间 结束时间
             timeSeriesType,          // 选择时段类型
             timeSeries,              // 时段
@@ -55,10 +57,14 @@ const NewCreateAd: React.FC<Props> = ({ accountIdList, value, visible, onChange,
             ...surplusValues
         } = values
         console.log(values)
-        let adgroupsValues: any = {
-            ...surplusValues,
-            beginDate: moment(date?.[0]).format('YYYY-MM-DD'),
-            endDate: moment(date?.[1]).format('YYYY-MM-DD'),
+        let adgroupsValues: any = { ...surplusValues }
+
+        if (dateType === '1') {
+            adgroupsValues.beginDate = moment(beginDate).format('YYYY-MM-DD')
+            adgroupsValues.endDate = ""
+        } else {
+            adgroupsValues.beginDate = moment(date?.[0]).format('YYYY-MM-DD')
+            adgroupsValues.endDate = moment(date?.[1]).format('YYYY-MM-DD')
         }
 
         if (marketingTargetType) {
@@ -128,7 +134,13 @@ const NewCreateAd: React.FC<Props> = ({ accountIdList, value, visible, onChange,
             adgroupsValues.timeSeries = timeSeries?.split('') || getTimeSeriesList()
 
             // 投放时间
-            adgroupsValues.date = [moment(beginDate), moment(endDate)]
+            if (endDate) {
+                adgroupsValues.dateType = '0'
+                adgroupsValues.date = [moment(beginDate), moment(endDate)]
+            } else {
+                adgroupsValues.dateType = '1'
+                adgroupsValues.beginDate = moment(beginDate)
+            }
 
             // 微信公众号与小程序定投
             if (sceneSpec?.wechatPosition?.length > 0) {
@@ -220,6 +232,7 @@ const NewCreateAd: React.FC<Props> = ({ accountIdList, value, visible, onChange,
                 // adgroupName: '<营销目的>-<推广产品>-<日期>-<时分秒>',
                 // marketingTargetType: 'MARKETING_TARGET_TYPE_FICTION'
                 // 自定义字段
+                dateType: '0',
                 date: [moment().startOf('day').add(7, 'day'), moment().startOf('day').add(20, 'day')],
                 wechatPositionType: '0',
                 wechatSceneType: '0',

+ 7 - 50
src/pages/user/login/index.tsx

@@ -1,14 +1,13 @@
 import { Button, message, Radio, Spin } from 'antd';
 import React, { useCallback, useEffect, useState } from 'react';
 import { useModel, useRequest } from 'umi';
-import { fakeAccountLogin, getCode, getDingKey, ddlogin, phoneLogin, getNoteCode, isPreserve, loginByOldErpApi } from '@/services/login';
+import { getCode, getDingKey, ddlogin, phoneLogin, getNoteCode } from '@/services/login';
 import styles from './style.less';
 import { CopyrightOutlined, SwapRightOutlined } from '@ant-design/icons';
 import { useBase64 } from '@/Hook/useBase64'
 import Bg from './components/bg';
 import { history } from 'umi'
 import { api } from '@/services/api'
-import { useAjax } from '@/Hook/useAjax';
 
 /**
  * 退出登录,并且将当前的 url 保存
@@ -19,15 +18,13 @@ const loginOut = async () => {
 };
 
 const Login: React.FC<{}> = () => {
-  const { encrypt, decode } = useBase64()
+  const { decode } = useBase64()
   const { setInitialState, initialState } = useModel('@@initialState');
   const codeRes = useRequest((phone) => getCode(phone), { manual: true, formatResult: (res: any) => res })//钉钉验证码
   const noteCode = useRequest((phone) => getNoteCode(phone), { manual: true, formatResult: (res: any) => res })//短信验证码
   const getKey = useRequest(() => getDingKey(), { manual: true, formatResult: (res: any) => res })//获取服务器KEY
   const Ddlogin = useRequest((params: any) => ddlogin(params), { manual: true, formatResult: (res: any) => res })//用钉钉登录
   const phone_login = useRequest((params: any) => phoneLogin(params), { manual: true, formatResult: (res: any) => res })//用手机登录
-  const loginByOldErp = useRequest((params: any) => loginByOldErpApi(params), { manual: true, formatResult: (res: any) => res })//用手机登录
-  const ispreserve = useAjax(() => isPreserve())
   let phone = decode('phone')
   let code = decode('code')
   const [values, setValues] = useState<{ phone: string, code: string }>({ phone: phone || '', code: code || '' })
@@ -48,30 +45,8 @@ const Login: React.FC<{}> = () => {
     let hash = window.location.hash
     if (hash?.includes('token')) {
       let token = hash?.split('token=')[1]
-      loginByOldErp.run({ token }).then(res => {
-        try {
-          if (res.code === 200) {
-            setIsLogin(false)
-            sessionStorage.setItem('Admin-Token', res?.data?.token)
-            let companyInfo = res?.data?.companyRelationInfo?.filter((item: { companyId: number }) => item.companyId !== 4 && item.companyId !== 3)
-            if (companyInfo?.length === 0) {
-              sessionStorage.removeItem('Admin-Token')
-              message.error('登录失败,请用趣程运营平台账号登录')
-              return
-            } else if (companyInfo?.length === 1) {
-              setCompanyHandle(res?.data?.companyRelationInfo[0].companyId)
-            } else {
-              setCompanyList(companyInfo)
-            }
-            return;
-          } else {
-            setIsLogin(false)
-          }
-        } catch (error) {
-          setIsLogin(false)
-          message.error('登录失败,请重试!');
-        }
-      })
+      sessionStorage.setItem('Admin-Token', token)
+      window.location.href = '/';
     }
   }, [])
 
@@ -93,24 +68,6 @@ const Login: React.FC<{}> = () => {
     }
   }, [initialState?.currentUser?.companyList])
 
-  //登录事件
-  // const handleSubmit = async () => {
-  //   setIsLogin(true)
-  //   values.account = values.account ? values.account : account || '';
-  //   values.password = values.password ? values.password : password || '';
-  //   if (!Object.keys(values).every((key) => !!values[key])) {
-  //     message.error('请填写完整!')
-  //     setIsLogin(false)
-  //     return
-  //   } else {
-  //     let { code, ...value } = values
-  //     Object.keys(value).forEach((key) => {
-  //       encrypt({ key, value: value[key] })
-  //     })
-  //   }
-  //   console.log(values)
-
-  // };
   //显示隐藏登录
   let handleShow = useCallback((props?: boolean) => {
     if (props && !show) {
@@ -122,6 +79,7 @@ const Login: React.FC<{}> = () => {
       setShow(false)
     }
   }, [show])
+
   // 钉钉登录
   useEffect(() => {
     if (!sessionStorage.getItem('Admin-Token')) {
@@ -191,6 +149,7 @@ const Login: React.FC<{}> = () => {
     }
 
   }, [tab, sessionStorage.getItem('Admin-Token')])
+
   // 选择公司
   const setCompanyHandle = (companyId: number) => {
     setLoading(() => true)
@@ -231,7 +190,6 @@ const Login: React.FC<{}> = () => {
   }
   // 获取手机钉钉验证码
   const getPhoneCode = () => {
-    let reg = new RegExp(/^(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}$/g)
     if (values) {
       setM(30)
       codeRes.run(values?.phone).then(res => {
@@ -250,7 +208,6 @@ const Login: React.FC<{}> = () => {
   }
   // 获取手机短信验证码
   const getPhoneNoteCode = () => {
-    let reg = new RegExp(/^(13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8}$/g)
     if (values) {
       setM(30)
       noteCode.run(values?.phone).then(res => {
@@ -400,7 +357,7 @@ const Login: React.FC<{}> = () => {
                     <div id='login_container' />
                 }
               </div>}
-              
+
             </div>
             {/**背景 */}
             {!isMobile && <Bg data={videoMenu} open={setVideoMenu} show={handleShow} isShow={show} />}

+ 0 - 8
src/services/login.ts

@@ -72,12 +72,4 @@ export async function phoneLogin(params: { phone: string, code: string }) {
 // 查询是否在更新
 export async function isPreserve() {
   return request(api + '/erp/config/sysVersion/preserve')
-}
-
-/** */
-export async function loginByOldErpApi(params: { token: string }) {
-  return request(api + `/erp/user/loginByOldErp`, {
-    method: 'POST',
-    params
-  })
 }