|
|
@ -10,7 +10,8 @@ import { |
|
|
|
Select, |
|
|
|
Tabs, |
|
|
|
Descriptions, |
|
|
|
Popover |
|
|
|
Popover, |
|
|
|
InputNumber |
|
|
|
} from "antd"; |
|
|
|
import moment from "moment"; |
|
|
|
import ajax from '@/services' |
|
|
@ -19,11 +20,30 @@ import { dictionary } from "@/config/common.js"; |
|
|
|
import "./index.scss"; |
|
|
|
// 信用积分管理 |
|
|
|
function CreditScoreMgm() { |
|
|
|
const [resultData, setResultData] = useState([]) |
|
|
|
const [detailData, setDetailData] = useState([]) |
|
|
|
const [resultData, setResultData] = useState([])//列表数据 |
|
|
|
const [detailData, setDetailData] = useState([])//使用记录列表 |
|
|
|
const [saveData, setSaveData] = useState({})//积分规则配置保存 |
|
|
|
const [redeemData, setRedeemData] = useState([])//积分兑换配置列表 |
|
|
|
const [addData, setAddData] = useState({})//积分兑换添加数据 |
|
|
|
const [award, setAward] = useState({}) |
|
|
|
const [loading, setLoading] = useState(false) |
|
|
|
const [total, setTotal] = useState(0); |
|
|
|
const [redeemTotal, setRedeemTotal] = useState(0); |
|
|
|
const [userId, setUserId] = useState(); |
|
|
|
const [awardId, setAwardId] = useState(); |
|
|
|
const [pageInfo, setPageInfo] = useState({ |
|
|
|
pn: 1, |
|
|
|
page_size: 15 |
|
|
|
}); |
|
|
|
const [redeemPageInfo, setRedeemPageInfo] = useState({ |
|
|
|
pn: 1, |
|
|
|
page_size: 15 |
|
|
|
}); |
|
|
|
const [visible, setVisible] = useState(false); |
|
|
|
const [tipVisible, setTipVisible] = useState(false); |
|
|
|
const [ruleVisible, setRuleVisible] = useState(false); |
|
|
|
const [redeemVisible, setRedeemVisible] = useState(false); |
|
|
|
const [editVisible, setEditVisible] = useState({ visible: false, type: 0 }); |
|
|
|
const [searchSelectList, setSearchSelectList] = useState([]); //搜索下拉数据 |
|
|
|
const columns = [ |
|
|
|
{ |
|
|
@ -35,43 +55,43 @@ function CreditScoreMgm() { |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "用户ID", |
|
|
|
dataIndex: "1", |
|
|
|
key: "2", |
|
|
|
dataIndex: "id", |
|
|
|
key: "id", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "手机号", |
|
|
|
dataIndex: "re", |
|
|
|
key: "re", |
|
|
|
dataIndex: "phone", |
|
|
|
key: "phone", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "用户昵称", |
|
|
|
dataIndex: "re", |
|
|
|
key: "rec", |
|
|
|
dataIndex: "name", |
|
|
|
key: "name", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "信用积分", |
|
|
|
dataIndex: "av", |
|
|
|
key: "ave", |
|
|
|
dataIndex: "points", |
|
|
|
key: "points", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "绑定车牌", |
|
|
|
dataIndex: "av", |
|
|
|
key: "ave", |
|
|
|
dataIndex: "plate", |
|
|
|
key: "plate", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "更新时间", |
|
|
|
dataIndex: "average_park_time", |
|
|
|
key: "average_park_time", |
|
|
|
dataIndex: "update_time", |
|
|
|
key: "update_time", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
@ -83,27 +103,12 @@ function CreditScoreMgm() { |
|
|
|
fixed: "right", |
|
|
|
render: (_, record) => { |
|
|
|
return ( |
|
|
|
// <Popover |
|
|
|
// content={ |
|
|
|
// <div className="popover-content"> |
|
|
|
// <div> |
|
|
|
// <a |
|
|
|
// onClick={() => { |
|
|
|
|
|
|
|
// }} |
|
|
|
// > |
|
|
|
// 查看 |
|
|
|
// </a> |
|
|
|
// </div> |
|
|
|
// </div> |
|
|
|
// } |
|
|
|
// > |
|
|
|
// <Button type="primary">操作</Button> |
|
|
|
// </Popover> |
|
|
|
<div className="popover-content"> |
|
|
|
<div> |
|
|
|
<a |
|
|
|
onClick={() => { |
|
|
|
setUserId(record.id) |
|
|
|
searchDetail({ id: record.id }) |
|
|
|
setVisible(true); |
|
|
|
}} |
|
|
|
> |
|
|
@ -118,37 +123,108 @@ function CreditScoreMgm() { |
|
|
|
const detailColumns = [ |
|
|
|
{ |
|
|
|
title: "使用时间", |
|
|
|
dataIndex: "ave", |
|
|
|
key: "avera", |
|
|
|
dataIndex: "time", |
|
|
|
key: "time", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "内容", |
|
|
|
dataIndex: "re", |
|
|
|
key: "rec", |
|
|
|
dataIndex: "content", |
|
|
|
key: "content", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "消耗", |
|
|
|
dataIndex: "av", |
|
|
|
key: "ave", |
|
|
|
dataIndex: "consume", |
|
|
|
key: "consume", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
|
|
|
|
]; |
|
|
|
//积分兑换配置 |
|
|
|
const redeemColumns = [ |
|
|
|
{ |
|
|
|
title: "序号", |
|
|
|
dataIndex: "index", |
|
|
|
key: "index", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "奖品名称", |
|
|
|
dataIndex: "award", |
|
|
|
key: "award", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "兑换所需积分", |
|
|
|
dataIndex: "redeem_points", |
|
|
|
key: "redeem_points", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "奖品总量", |
|
|
|
dataIndex: "total_num", |
|
|
|
key: "total_num", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "奖品剩余", |
|
|
|
dataIndex: "surplus_num", |
|
|
|
key: "surplus_num", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "操作", |
|
|
|
dataIndex: "operation", |
|
|
|
key: "operation", |
|
|
|
align: "center", |
|
|
|
fixed: "right", |
|
|
|
render: (_, record) => { |
|
|
|
return ( |
|
|
|
<div className="popover-content"> |
|
|
|
<div> |
|
|
|
<a |
|
|
|
style={{ marginRight: 10 }} |
|
|
|
onClick={() => { |
|
|
|
setAwardId(record.id) |
|
|
|
setRedeemEdit({ id: record.id }) |
|
|
|
setEditVisible({ visible: true, type: 0 }) |
|
|
|
}} |
|
|
|
> |
|
|
|
编辑 |
|
|
|
</a> |
|
|
|
<a |
|
|
|
onClick={() => { |
|
|
|
setAwardId(record.id) |
|
|
|
setTipVisible(true) |
|
|
|
}} |
|
|
|
> |
|
|
|
删除 |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
); |
|
|
|
}, |
|
|
|
}, |
|
|
|
]; |
|
|
|
//检索条件 |
|
|
|
const formSearch = [ |
|
|
|
{ |
|
|
|
name: "r", |
|
|
|
name: "phone", |
|
|
|
type: "Input", |
|
|
|
label: "手机号", |
|
|
|
placeholder: "请输入手机号", |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "r3", |
|
|
|
name: "plate", |
|
|
|
type: "Input", |
|
|
|
label: "车牌号", |
|
|
|
placeholder: "请输入车牌号", |
|
|
@ -160,26 +236,121 @@ function CreditScoreMgm() { |
|
|
|
defaultValue: [moment().startOf("day"), moment()], |
|
|
|
} |
|
|
|
] |
|
|
|
|
|
|
|
//分页基础配置 |
|
|
|
const paginationProps = { |
|
|
|
className: "pagination-common", |
|
|
|
showQuickJumper: true, |
|
|
|
showSizeChanger: true, |
|
|
|
pageSizeOptions: Array.from( |
|
|
|
new Set([...[15], ...(dictionary?.pageSizeOptions || [])]) |
|
|
|
), |
|
|
|
} |
|
|
|
//列表数据 |
|
|
|
function search(e) { |
|
|
|
ajax.getParkingAlyReportList(e).then((res) => { |
|
|
|
ajax.getCreditScoreList(e).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
if (data.list) { |
|
|
|
setResultData(data.list) |
|
|
|
setTotal(data.total_records) |
|
|
|
} else { |
|
|
|
setResultData(data) |
|
|
|
setTotal(total) |
|
|
|
} |
|
|
|
} else { |
|
|
|
setResultData([]) |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}).catch(e => { |
|
|
|
console.log(e) |
|
|
|
//setResultData([{index:1}]) |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//使用记录 列表 |
|
|
|
function searchDetail(e) { |
|
|
|
ajax.getCreditScoreDetailList({ ...pageInfo, ...e }).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
if (data.list) { |
|
|
|
setDetailData(data.list) |
|
|
|
setTotal(data.total_records) |
|
|
|
} else { |
|
|
|
setDetailData(data) |
|
|
|
setTotal(total) |
|
|
|
} |
|
|
|
} else { |
|
|
|
setDetailData([]) |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}).catch(e => { |
|
|
|
console.log(e) |
|
|
|
setDetailData([{}]) |
|
|
|
}) |
|
|
|
} |
|
|
|
//积分规则配置 保存 |
|
|
|
function setRule(e) { |
|
|
|
ajax.getCreditScoreRule(e).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
setAddData(data) |
|
|
|
setRuleVisible(false) |
|
|
|
} else { |
|
|
|
setAddData({}) |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//积分兑换配置 列表 |
|
|
|
function getRedeemList(e) { |
|
|
|
ajax.getCreditScoreRedeem({ ...redeemPageInfo, ...e }).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
if (data.list) { |
|
|
|
setRedeemData(data.list) |
|
|
|
setRedeemTotal(data.total_records) |
|
|
|
} else { |
|
|
|
setRedeemData(data) |
|
|
|
setRedeemTotal(total) |
|
|
|
} |
|
|
|
} else { |
|
|
|
setRedeemData([]) |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}).catch(e => { |
|
|
|
console.log(e) |
|
|
|
setRedeemData([{}]) |
|
|
|
}) |
|
|
|
} |
|
|
|
//积分兑换配置 编辑保存 |
|
|
|
function setRedeemEdit(e) { |
|
|
|
ajax.getCreditScoreRedeemAdd(e).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
if (data.list) { |
|
|
|
setAddData(data.list) |
|
|
|
} else { |
|
|
|
setAddData(data) |
|
|
|
} |
|
|
|
getRedeemList() |
|
|
|
setEditVisible(false) |
|
|
|
} else { |
|
|
|
setAddData({}) |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
//积分兑换配置 删除保存 |
|
|
|
function setRedeemDel(e) { |
|
|
|
ajax.getCreditScoreRedeemDel(e).then((res) => { |
|
|
|
let { status, data, total } = res |
|
|
|
if (status == 20000) { |
|
|
|
getRedeemList() |
|
|
|
setTipVisible(false) |
|
|
|
} else { |
|
|
|
message.error(res.message) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
// 获取下拉数据 |
|
|
|
const getSelectList = () => { |
|
|
|
ajax.getOperator().then((e) => { |
|
|
@ -203,7 +374,7 @@ function CreditScoreMgm() { |
|
|
|
search={search} |
|
|
|
total={total} |
|
|
|
isExport={false} |
|
|
|
rowKey={"road_name"} |
|
|
|
rowKey={"id"} |
|
|
|
initFormData={{}} |
|
|
|
diyButton={ |
|
|
|
<> |
|
|
@ -211,6 +382,7 @@ function CreditScoreMgm() { |
|
|
|
type="primary" |
|
|
|
style={{ width: '116px' }} |
|
|
|
onClick={() => { |
|
|
|
setRule() |
|
|
|
setRuleVisible(true) |
|
|
|
}} |
|
|
|
> |
|
|
@ -220,6 +392,8 @@ function CreditScoreMgm() { |
|
|
|
type="primary" |
|
|
|
style={{ width: '116px' }} |
|
|
|
onClick={() => { |
|
|
|
getRedeemList(); |
|
|
|
setRedeemVisible(true) |
|
|
|
}} |
|
|
|
> |
|
|
|
积分兑换配置 |
|
|
@ -244,15 +418,144 @@ function CreditScoreMgm() { |
|
|
|
columns={detailColumns} |
|
|
|
dataSource={detailData} |
|
|
|
scroll={{ y: 670 }} |
|
|
|
//loading={loading} |
|
|
|
loading={loading} |
|
|
|
pagination={false} |
|
|
|
/> |
|
|
|
<Pagination |
|
|
|
{...paginationProps} |
|
|
|
className="pagination-common" |
|
|
|
current={pageInfo.pn} |
|
|
|
pageSize={pageInfo.page_size} |
|
|
|
total={total} |
|
|
|
onChange={(current, size) => { |
|
|
|
setPageInfo({ |
|
|
|
...pageInfo, |
|
|
|
...{ pn: current, page_size: size } |
|
|
|
}); |
|
|
|
searchDetail({ id: userId, pn: current, page_size: size }) |
|
|
|
}} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</Modal> |
|
|
|
<Modal |
|
|
|
open={redeemVisible} |
|
|
|
width={1600} |
|
|
|
title={'积分兑换配置'} |
|
|
|
className="credit-modal" |
|
|
|
onCancel={() => { |
|
|
|
setRedeemVisible(false); |
|
|
|
}} |
|
|
|
onOk={() => { getRedeemList({ award: award }) }} |
|
|
|
> |
|
|
|
<div> |
|
|
|
<div className="form-search"> |
|
|
|
{/* <div className="form-item"> |
|
|
|
<Input |
|
|
|
addonBefore={"奖品名称"} |
|
|
|
placeholder="请输入奖品名称" |
|
|
|
value={redeemData.road_name} |
|
|
|
onChange={(e) => { setFormData({ ...redeemData, road_name: e.target.value }) }} |
|
|
|
></Input> |
|
|
|
</div> */} |
|
|
|
<div className="form-item"> |
|
|
|
<span>奖品名称</span> |
|
|
|
<Select |
|
|
|
value={''} |
|
|
|
placeholder="请选择" |
|
|
|
options={[]} |
|
|
|
onChange={(e) => { setAward(e) }} |
|
|
|
></Select> |
|
|
|
</div> |
|
|
|
<div className="search-btn" onClick={() => { }}>查询</div> |
|
|
|
</div> |
|
|
|
<Table |
|
|
|
rowKey={(row) => row?.order_id || row?.id || row?.deal_record_id || Math.random() * 10000} |
|
|
|
columns={redeemColumns} |
|
|
|
dataSource={redeemData || [{}]} |
|
|
|
scroll={{ y: 670 }} |
|
|
|
loading={loading} |
|
|
|
pagination={false} |
|
|
|
/> |
|
|
|
<Pagination |
|
|
|
{...paginationProps} |
|
|
|
className="pagination-common" |
|
|
|
current={redeemPageInfo.pn} |
|
|
|
pageSize={redeemPageInfo.page_size} |
|
|
|
total={redeemTotal} |
|
|
|
onChange={(current, size) => { |
|
|
|
setRedeemPageInfo({ |
|
|
|
...redeemPageInfo, |
|
|
|
...{ pn: current, page_size: size } |
|
|
|
}); |
|
|
|
searchDetail({ award: award, pn: current, page_size: size }) |
|
|
|
}} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</Modal> |
|
|
|
<Modal |
|
|
|
open={editVisible.visible} |
|
|
|
width={550} |
|
|
|
title={editVisible.type ? '编辑' : '添加'} |
|
|
|
className="credit-modal" |
|
|
|
onCancel={() => { |
|
|
|
setEditVisible({ visible: false, type: 0 }) |
|
|
|
}} |
|
|
|
onOk={() => { }} |
|
|
|
> |
|
|
|
<div className="ltc-box"> |
|
|
|
<div className="ltc-content"> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">奖品名称</div> |
|
|
|
<div className="new-value"> |
|
|
|
<Select |
|
|
|
value={addData?.award} |
|
|
|
placeholder="请选择" |
|
|
|
options={[]} |
|
|
|
onChange={(e) => { setAddData({ ...addData, award: e }) }} |
|
|
|
></Select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">兑换所需积分</div> |
|
|
|
<div className="new-value"> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
value={addData?.redeem_points} |
|
|
|
onChange={(e) => { setAddData({ ...addData, redeem_points: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">奖品总量</div> |
|
|
|
<div className="new-value"> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
value={addData?.total_num} |
|
|
|
onChange={(e) => { setAddData({ ...addData, total_num: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Modal> |
|
|
|
<Modal |
|
|
|
open={tipVisible} |
|
|
|
width={300} |
|
|
|
title={'提示'} |
|
|
|
className="credit-modal" |
|
|
|
onCancel={() => { |
|
|
|
setTipVisible(false); |
|
|
|
}} |
|
|
|
onOk={() => { setRedeemDel({ id: awardId }) }} |
|
|
|
> |
|
|
|
<div> |
|
|
|
确定要删除该条数据? |
|
|
|
</div> |
|
|
|
</Modal> |
|
|
|
<Modal |
|
|
|
open={ruleVisible} |
|
|
|
width={800} |
|
|
|
title={'积分规则配置'} |
|
|
|
width={550} |
|
|
|
title={'积分配置'} |
|
|
|
className="credit-modal" |
|
|
|
onCancel={() => { |
|
|
|
setRuleVisible(false); |
|
|
@ -261,21 +564,68 @@ function CreditScoreMgm() { |
|
|
|
> |
|
|
|
<div className="ltc-box"> |
|
|
|
<div className="ltc-box-title"> |
|
|
|
<div className="text">停车订单</div> |
|
|
|
<div className="line"></div> |
|
|
|
</div> |
|
|
|
<div className="ltc-box-title"> |
|
|
|
<div className="text">车厂详情</div> |
|
|
|
<div className="line" style={{ width: "40%" }}></div><div className="text">注册和支付积分</div><div className="line" style={{ width: "40%" }}></div> |
|
|
|
</div> |
|
|
|
<div className="ltc-content"> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">用户ID</div><div className="new-value"></div> |
|
|
|
<div className="new-item">注册可得积分</div> |
|
|
|
<div className="new-value"> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
min={0} |
|
|
|
value={saveData?.enroll_points} |
|
|
|
onChange={(e) => { setSaveData({ ...saveData, enroll_points: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">支付一元可得积分</div> |
|
|
|
<div className="new-value"> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
min={0} |
|
|
|
value={saveData?.cover_value} |
|
|
|
onChange={(e) => { setSaveData({ ...saveData, cover_value: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="ltc-box-title"> |
|
|
|
<div className="line" style={{ width: "40%" }}></div><div className="text">积分倒扣机制</div><div className="line" style={{ width: "40%" }}></div> |
|
|
|
</div> |
|
|
|
<div className="ltc-content"> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">手机号</div><div className="new-value"></div> |
|
|
|
<div className="new-item golit">欠费金额每高于</div> |
|
|
|
<div className="new-value" style={{ width: "100px" }}> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
min={0} |
|
|
|
value={saveData?.amount_owed} |
|
|
|
onChange={(e) => { setSaveData({ ...saveData, amount_owed: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div className="new-item golit">元扣除</div> |
|
|
|
<div className="new-value" style={{ width: "100px" }}> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
min={0} |
|
|
|
value={saveData?.deducting_points} |
|
|
|
onChange={(e) => { setSaveData({ ...saveData, deducting_points: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div className="new-item golit">积分</div> |
|
|
|
</div> |
|
|
|
<div className="ltc-item"> |
|
|
|
<div className="new-item">昵称</div><div className="new-value"></div> |
|
|
|
<div className="new-item golit">欠费每超过一月,倒扣</div> |
|
|
|
<div className="new-value" style={{ width: "100px" }}> |
|
|
|
<InputNumber |
|
|
|
className="credit-inputnum" |
|
|
|
min={0} |
|
|
|
value={saveData?.month_deducting_points} |
|
|
|
onChange={(e) => { setSaveData({ ...saveData, month_deducting_points: e }) }} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div className="new-item golit">积分</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|