This commit is contained in:
PC-202306242200\Administrator
2024-09-26 14:46:50 +08:00
parent c077cf601b
commit dd7d2c3f8b
27 changed files with 177 additions and 173 deletions

View File

@@ -62,7 +62,7 @@ export async function getRoutes() {
'user/register/index': React.lazy(() => import(/* webpackChunkName: "src__pages__user__register__index" */'../../../src/pages/user/register/index.tsx')),
'user/register/_mock': React.lazy(() => import(/* webpackChunkName: "src__pages__user__register___mock" */'../../../src/pages/user/register/_mock.ts')),
'activity/513/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__513__index" */'../../../src/pages/activity/513/index.tsx')),
'activity/813/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__813__index" */'../../../src/pages/activity/813/index.jsx')),
'activity/813/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__813__index" */'../../../src/pages/activity/813/index.tsx')),
'config/banner/edit': React.lazy(() => import(/* webpackChunkName: "src__pages__config__banner__edit" */'../../../src/pages/config/banner/edit.tsx')),
'goodsSetMeal/index': React.lazy(() => import(/* webpackChunkName: "src__pages__goodsSetMeal__index" */'../../../src/pages/goodsSetMeal/index.tsx')),
'system/menu/index': React.lazy(() => import(/* webpackChunkName: "src__pages__system__menu__index" */'../../../src/pages/system/menu/index.tsx')),

View File

@@ -62,7 +62,7 @@ export async function getRoutes() {
'user/register/index': React.lazy(() => import(/* webpackChunkName: "src__pages__user__register__index" */'../../../src/pages/user/register/index.tsx')),
'user/register/_mock': React.lazy(() => import(/* webpackChunkName: "src__pages__user__register___mock" */'../../../src/pages/user/register/_mock.ts')),
'activity/513/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__513__index" */'../../../src/pages/activity/513/index.tsx')),
'activity/813/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__813__index" */'../../../src/pages/activity/813/index.jsx')),
'activity/813/index': React.lazy(() => import(/* webpackChunkName: "src__pages__activity__813__index" */'../../../src/pages/activity/813/index.tsx')),
'config/banner/edit': React.lazy(() => import(/* webpackChunkName: "src__pages__config__banner__edit" */'../../../src/pages/config/banner/edit.tsx')),
'goodsSetMeal/index': React.lazy(() => import(/* webpackChunkName: "src__pages__goodsSetMeal__index" */'../../../src/pages/goodsSetMeal/index.tsx')),
'system/menu/index': React.lazy(() => import(/* webpackChunkName: "src__pages__system__menu__index" */'../../../src/pages/system/menu/index.tsx')),

View File

@@ -44,7 +44,7 @@ export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
<ProFormText
rules={[{ required: true, message: '请输入' }]}
width="md"
name="username"
name="userName"
label="用户名"
placeholder="请输入"
/>
@@ -53,33 +53,11 @@ export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
<ProFormText
rules={[{ required: true, message: '请输入' }]}
width="md"
name="mobile"
name="phone"
label="手机号"
placeholder="请输入"
/>
</ProForm.Group>
<ProForm.Group>
<ProFormCaptcha
placeholder={'请输入验证码'}
captchaTextRender={(timing, count) => {
if (timing) {
return `${count} ${'获取验证码'}`;
}
return '获取验证码';
}}
label="验证码"
name="code"
rules={[
{
required: true,
message: '请输入验证码!',
},
]}
onGetCaptcha={async () => {
const { data } = await smsSendcode();
}}
/>
</ProForm.Group>
</ModalForm>
</>
);

View File

@@ -36,7 +36,7 @@ export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
return (
<>
<ModalForm
title="513活动-添加"
title="买桩送车活动"
formRef={restFormRef}
submitter={{
searchConfig: {
@@ -56,71 +56,71 @@ export default ({ values, modalOpenState, onModalOpenState, onSubmit }) => {
<ProForm.Group>
<ProFormText
width="md"
name="username"
name="userName"
label="用户名"
placeholder="请输入用户名"
rules={[{ required: true, message: '请输入' }]}
/>
<ProFormText
width="md"
name="mobile"
name="phone"
label="手机号"
placeholder="请输入手机号"
rules={[{ required: true, message: '请输入手机号' },{ pattern: /^1[3-9]\d{9}$/, message: '请输入有效的手机号' }]}
/>
<ProFormRadio.Group
label="时间"
name="m"
name="freezeDate"
initialValue="6月"
rules={[{ required: true, message: '请选择' }]}
options={[
{ label: '6月', value: '6' },
{ label: '12月', value: '12' },
{ label: '24月', value: '24' },
{ label: '36月', value: '36' },
{ label: '48月', value: '48' },
{ label: '60月', value: '60' },
{ label: '6月', value: '6' },
{ label: '12月', value: '12' },
{ label: '24月', value: '24' },
{ label: '36月', value: '36' },
{ label: '48月', value: '48' },
{ label: '60月', value: '60' },
]}
/>
<ProFormText
width="md"
name={['info', 'car_name']}
name={['userInformation', 'carModel']}
label="车辆型号"
placeholder="请输入车辆型号"
/>
<ProFormText
width="md"
name={['info', 'realname']}
name={['userInformation', 'ownerName']}
label="车主姓名"
placeholder="请输入车主姓名"
/>
<ProFormText
width="md"
name={['info', 'plate_code']}
name={['userInformation', 'licensePlateNumber']}
label="车牌号码"
placeholder="请输入车牌号码"
/>
<ProFormText
width="md"
name={['info', 'car_code']}
name={['userInformation', 'chassisNumber']}
label="车架号码"
placeholder="请输入车架号码"
/>
<ProFormText
width="md"
name={['info', 'bank_num']}
name={['userInformation', 'repaymentCardNumber']}
label="还款卡号"
placeholder="请输入还款卡号"
/>
<ProFormText
width="md"
name={['info', 'bank_name']}
name={['userInformation', 'bankName']}
label="银行名称"
placeholder="请输入银行名称"
/>
<ProFormText
width="md"
name={['info', 'todate']}
name={['userInformation', 'repaymentDate']}
label="还款日期"
placeholder="请输入还款日期"
/>

View File

@@ -6,6 +6,7 @@ import { Select, Space, Image, Button } from 'antd';
import {
PageContainer,
ProTable,
ActionType
} from '@ant-design/pro-components';
import dayjs from 'dayjs';
@@ -14,8 +15,8 @@ import { exportLink } from '@/utils/func';
import AuthConsumer from '@/components/Authority';
import { activity10CarUserList } from '@/services/activity/index';
import { activity10CarUserList, activity10CarUserAdd, activity10CarUserRepeal } from '@/services/activity/index';
import { usersPage } from '@/services/user/user';
// import services from '@/services/admin';
// const { shopActivityItems, shopDeleteItems } = services.ShopActivityController;
@@ -32,9 +33,8 @@ export default () => {
};
const initRowCancellationModal = {
username: "",
mobile: "",
code: ""
userName: "",
phone: "",
}
@@ -45,24 +45,21 @@ export default () => {
const [rowCancellationModal, setRowCancellationModal] = useState(initRowCancellationModal);
const actionRef = useRef();
const actionRef = useRef<ActionType>();
const [config, setConfig] = useState();
const [shopOption, setShopOption] = useState([]);
const [searchParams, setSearchParams] = useState(null);
const searchShop = (value) => {
shopItems({
username: value
}).then(({ data }) => {
const arr = [];
data?.data?.map((item) => {
item.label = `${item.username} ${item.mobile}`;
arr.push(item);
});
setShopOption(arr);
const [shopOption, setShopOption] = useState([]);
const searchShop = async (value) => {
const { success, data } = await usersPage({
userName: value
});
data.records.map((i) => {
i.userName = i.userName + ' ' + i.phone
})
setShopOption(data.records)
}
const handleCreate = async (fields) => {
@@ -71,7 +68,7 @@ export default () => {
// const { m, mobile, username, ...rest } = data;
// const extracted = { m, mobile, username };
// const remainingData = { ...rest };
const { success } = await shopActivity(fields);
const { success } = await activity10CarUserAdd(fields);
if (success) {
setRow(initRow);
@@ -82,7 +79,7 @@ export default () => {
const handleCreateFormModal = async (fields) => {
setRowCancellationModal(fields)
const { success } = await shopDeleteItems(fields);
const { success } = await activity10CarUserRepeal(fields);
if (success) {
setRowCancellationModal(initRow);
actionRef.current?.reload();
@@ -99,7 +96,7 @@ export default () => {
},
{
title: '投资人',
dataIndex: 'shop_id',
dataIndex: 'userId',
render: (_, record) => {
return <>
<div>{record?.usersInfo?.userName}</div>
@@ -116,7 +113,7 @@ export default () => {
{...fieldProps}
allowClear
showSearch
placeholder="请输入用户名"
placeholder="请输入用户名或手机号"
style={{ width: "100%" }}
filterOption={false}
onSearch={
@@ -128,7 +125,7 @@ export default () => {
}
}
fieldNames={{
label: "label",
label: "userName",
value: "id"
}}
options={shopOption}
@@ -137,10 +134,10 @@ export default () => {
},
{
title: '时间',
dataIndex: 'm',
dataIndex: 'freezeDate',
search: false,
render: (_, record) => {
return record?.m + '个月'
return record?.freezeDate + '个月'
},
},
{
@@ -150,23 +147,32 @@ export default () => {
},
{
title: '客户资料',
dataIndex: 'type',
dataIndex: 'information',
search: false,
render: (_, record) => {
console.log(_);
let data = {}
if (_ && _ != '-') {
data = JSON.parse(_)
}
return <>
<div>{record?.info?.car_name}</div>
<div>{record?.info?.realname}</div>
<div>{record?.info?.plate_code}</div>
<div>{record?.info?.car_code}</div>
<div>{record?.info?.bank_num}</div>
<div>{record?.info?.bank_name}</div>
<div>{record?.info?.todate}</div>
<div>{data?.carModel}</div>
<div>{data?.ownerName}</div>
<div>{data?.licensePlateNumber}</div>
<div>{data?.chassisNumber}</div>
<div>{data?.repaymentCardNumber}</div>
<div>{data?.bankName}</div>
<div>{data?.repaymentDate}</div>
</>
},
},
{
title: '创建时间',
dataIndex: 'created_at',
dataIndex: 'createTime',
search: false,
}
];
@@ -195,33 +201,29 @@ export default () => {
defaultCollapsed: false,
}}
toolBarRender={() => [
<AuthConsumer action={'admin/shop_activity/create'} key="admin/shop_activity/create">
<Button
type="primary"
style={{ background: '#67c23a' }}
onClick={() => {
setCreateFormModal(true)
}}
>
</Button>
</AuthConsumer>,
<AuthConsumer action={'admin/shop_activity/export'} key="admin/shop_activity/export">
<Button type="primary" onClick={() => {
window.location.href = exportLink(searchParams, '/admin/shop_activity/export');
}}></Button>
</AuthConsumer>,
<AuthConsumer action={'admin/shop_activity/delete'} key="admin/shop_activity/delete">
<Button
danger
type="primary"
onClick={() => {
setCancellationModal(true)
}}
>
</Button>
</AuthConsumer>
<Button
type="primary"
style={{ background: '#67c23a' }}
onClick={() => {
setCreateFormModal(true)
}}
>
</Button>,
// <AuthConsumer action={'admin/shop_activity/export'} key="admin/shop_activity/export">
// <Button type="primary" onClick={() => {
// window.location.href = exportLink(searchParams, '/admin/shop_activity/export');
// }}>导出表格</Button>
// </AuthConsumer>,
<Button
danger
type="primary"
onClick={() => {
setCancellationModal(true)
}}
>
</Button>
]}
request={async (params, sorter, filter) => {
setSearchParams({ token: '', ...params });

View File

@@ -5,7 +5,7 @@ import {
ProTable,
} from '@ant-design/pro-components';
import { activity10s1UserList } from '@/services/activity/index';
import { usersPage } from '@/services/user/user';
export default () => {
@@ -30,84 +30,87 @@ export default () => {
const actionRef = useRef();
const [shopOption, setShopOption] = useState([]);
const [searchParams, setSearchParams] = useState(null);
const searchShop = (value) => {
shopItems({
username: value
}).then(({ data }) => {
const arr = [];
data?.data?.map((item) => {
item.label = `${item.username} ${item.mobile}`;
arr.push(item);
const [shopOption, setShopOption] = useState([]);
const searchShop = async (value) => {
const { success, data } = await usersPage({
userName: value
});
setShopOption(arr);
});
data.records.map((i) => {
i.userName = i.userName + ' ' + i.phone
})
setShopOption(data.records)
}
const columns = [
{
title: 'ID',
dataIndex: 'id',
search: false,
},
{
title: '活动名称',
dataIndex: 'title',
search: false,
},
{
title: '投资人',
dataIndex: 'shop_id',
title: '用户信息',
dataIndex: 'userId',
render: (_, record) => {
return <>
<div>{record?.shop?.username}</div>
<div>{record?.shop?.mobile}</div>
<div>{record?.usersInfo?.userName}</div>
<div>{record?.usersInfo?.phone}</div>
<div>{record?.usersInfo?.level}</div>
</>
},
renderFormItem: (
_,
{ type, defaultRender, formItemProps, fieldProps, ...rest },
form,
) => {
return <Select
},
renderFormItem: (
_,
{ type, defaultRender, formItemProps, fieldProps, ...rest },
form,
) => {
return <Select
{...fieldProps}
allowClear
showSearch
placeholder="请输入用户名"
placeholder="请输入用户名或手机号"
style={{ width: "100%" }}
filterOption={false}
onSearch={
(e) => {
if (!e) {
return;
(e) => {
if (!e) {
return;
}
searchShop(e);
}
searchShop(e);
}
}
fieldNames={{
label: "label",
value: "id"
label: "userName",
value: "id"
}}
options={shopOption}
/>
},
/>
},
},
{
title: '认领时间',
dataIndex: 'todate',
dataIndex: 'confirmDate',
search: false,
},
{
title: '充电桩',
dataIndex: 'device',
search: false,
render: (_, record) => {
let ids = record?.device.map((item) => {
return item.id
})
return ids.join(',')
},
},
// {
// title: '充电桩',
// dataIndex: 'device',
// search: false,
// render: (_, record) => {
// let ids = record?.device.map((item) => {
// return item.id
// })
// return ids.join(',')
// },
// },
{
title: '创建时间',
dataIndex: 'created_at',
dataIndex: 'createTime',
search: false,
}
];

View File

@@ -5,7 +5,7 @@ import {
ProForm,
ProFormDigit,
ProFormText,
ProFormDateTimePicker
ProFormDatePicker
} from '@ant-design/pro-components';
import { Form, Modal, InputNumber } from 'antd';
import { useIntl } from '@umijs/max';
@@ -124,12 +124,12 @@ const RoleForm: React.FC = (props: any) => {
/>
</ProForm.Group>
<ProForm.Group>
<ProFormDateTimePicker
< ProFormDatePicker
rules={[{ required: true, message: '请选择' }]}
name="startTime"
label="开始日期"
/>
<ProFormDateTimePicker
< ProFormDatePicker
rules={[{ required: true, message: '请选择' }]}
name="endTime"
label="结束日期"

View File

@@ -60,7 +60,7 @@ const LogTableList: React.FC = () => {
},
{
title: '用户信息',
dataIndex: 'usersId',
dataIndex: 'userId',
valueType: 'text',
render: (_: any, record: any) => {
return <div className={'flex'}>
@@ -155,7 +155,7 @@ const LogTableList: React.FC = () => {
search: true,
render: (_: any, record: any) => {
let color = record.orderPlatform == 1 ? 'volcano' : record.orderPlatform == 2 ? 'orange' : 'red'
return <Tag color={color}>{record.orderPlatform == 1 ? '钱包' : record.orderPlatform == 2 ? '钱包' : record.orderPlatform == 3 ? '支付宝' : '-'}</Tag>
return <Tag color={color}>{record.orderPlatform == 1 ? '钱包' : record.orderPlatform == 2 ? '微信' : record.orderPlatform == 3 ? '支付宝' : '-'}</Tag>
},
renderFormItem: (
_,
@@ -332,16 +332,16 @@ const LogTableList: React.FC = () => {
request={async (params, sorter, filter) => {
setSearchParams({ ...params });
let { data } = await orderPage(params)
// let _count1 = await getWeiXinCollect()
// let _count2 = await getBalance()
// let _count3 = await getCollect()
// let _count4 = await getZhiFuBaoCollect()
let _count1 = await getWeiXinCollect()
let _count2 = await getBalance()
let _count3 = await getCollect()
let _count4 = await getZhiFuBaoCollect()
// setCount1(_count1.data);
// setCount2(_count2.data);
// setCount3(_count3.data);
// setCount4(_count4.data);
setCount1(_count1.data);
setCount2(_count2.data);
setCount3(_count3.data);
setCount4(_count4.data);

View File

@@ -59,3 +59,24 @@ export async function activity10CarUserList(body) {
data: body || {},
});
}
export async function activity10CarUserAdd(body) {
return request('/api/activity/activity10CarUserAdd', {
method: 'POST',
headers: {
'contentcategory-Type': 'application/json;charset=UTF-8',
},
data: body || {},
});
}
export async function activity10CarUserRepeal(body) {
return request('/api/activity/activity10CarUserRepeal', {
method: 'POST',
headers: {
'contentcategory-Type': 'application/json;charset=UTF-8',
},
data: body || {},
});
}