Browse Source

feat(): 停车卡管理数据对接

tags/PMS_Frontend_v1.0.6-develop
lisf 1 year ago
parent
commit
6f635d7a6d
  1. 82
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx
  2. 38
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx
  3. 6
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardStat/loadable.jsx
  4. 4
      src/services/OperationCenter/ParkingCardMgm/index.js

82
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx

@ -25,7 +25,7 @@ function ParkingCardMgm(props) {
}) })
const parameter = { const parameter = {
name: '',// name: '',//
channel_id: '',//
channel: '',//
status: 0,// status: 0,//
operator_id: '',// operator_id: '',//
pn: 1, pn: 1,
@ -46,7 +46,7 @@ function ParkingCardMgm(props) {
} }
// //
const handleSaleChannel = (v) => { const handleSaleChannel = (v) => {
setFormData({ ...formData, channel_id: v })
setFormData({ ...formData, channel: v })
} }
// //
const handleSaleType = (v) => { const handleSaleType = (v) => {
@ -99,6 +99,11 @@ function ParkingCardMgm(props) {
title: '序号', title: '序号',
dataIndex: 'id', dataIndex: 'id',
key: 'id', key: 'id',
render:(_,record,index) => {
return (
<span>{index + 1}</span>
)
}
}, },
{ {
title: '商品名称', title: '商品名称',
@ -140,13 +145,13 @@ function ParkingCardMgm(props) {
}, },
{ {
title: '销售渠道', title: '销售渠道',
dataIndex: 'channel',
key: 'channel',
dataIndex: 'channel_name',
key: 'channel_name',
}, },
{ {
title: '商品状态', title: '商品状态',
dataIndex: 'status',
key: 'status',
dataIndex: 'status_name',
key: 'status_name',
}, },
{ {
title: '创建人', title: '创建人',
@ -166,7 +171,7 @@ function ParkingCardMgm(props) {
<div className="operateBtn"> <div className="operateBtn">
<div onClick={() => { CheckBtn(record) }}>查看</div> <div onClick={() => { CheckBtn(record) }}>查看</div>
{ {
record.status_id === 1 ?
record.status == 1 ?
<> <>
<div onClick={() => { translateBtn(record) }}>修改</div> <div onClick={() => { translateBtn(record) }}>修改</div>
{/* <div onClick={() => { translateBtn(record) }}>上架</div> */} {/* <div onClick={() => { translateBtn(record) }}>上架</div> */}
@ -176,7 +181,7 @@ function ParkingCardMgm(props) {
</> : '' </> : ''
} }
{ {
record.status_id === 3 || record.status_id === 4 ?
record.status == 3 || record.status == 4 ?
<> <>
{/* <div onClick={() => { translateBtn(record) }}>下架</div> */} {/* <div onClick={() => { translateBtn(record) }}>下架</div> */}
<Popconfirm placement="left" title="下架的停车卡将不可购买,已购买的会继续生效,确认下架?" onConfirm={() => { $deleteConfirm(record?.id, "下架") }} okText="确定" cancelText="取消"> <Popconfirm placement="left" title="下架的停车卡将不可购买,已购买的会继续生效,确认下架?" onConfirm={() => { $deleteConfirm(record?.id, "下架") }} okText="确定" cancelText="取消">
@ -379,26 +384,25 @@ function ParkingCardMgm(props) {
setGetScope("") setGetScope("")
} }
let param = { let param = {
operator: '',
name: '',
effective_start: '', effective_start: '',
effective_end: '', effective_end: '',
days: '', days: '',
effective_days: '', effective_days: '',
operator_id: '', operator_id: '',
scope: '', scope: '',
channel_id: "",
uid: '',
channel: "",
sale_start:"", sale_start:"",
sale_end:"", sale_end:"",
card_num:0, card_num:0,
remark:"",
text:"",
} }
// //
const [checkData, setCheckData] = useState(param) const [checkData, setCheckData] = useState(param)
const handleParkName = (v) => { const handleParkName = (v) => {
setCheckData( setCheckData(
Object.assign({}, checkData, { operator: v.target.value })
Object.assign({}, checkData, { name: v.target.value })
); );
}; };
// //
@ -460,6 +464,7 @@ function ParkingCardMgm(props) {
// //
const handleOperator = (v) => { const handleOperator = (v) => {
setCheckData({ ...checkData, operator_id: v }) setCheckData({ ...checkData, operator_id: v })
getEtcStatus(v)
} }
// //
const [getScope, setGetScope] = useState("") const [getScope, setGetScope] = useState("")
@ -467,14 +472,14 @@ function ParkingCardMgm(props) {
setGetScope(v) setGetScope(v)
setCheckData({ setCheckData({
...checkData, ...checkData,
scope:v
scope:v == "1" ? "" : v
}) })
} }
// //
const handleSales = (v) => { const handleSales = (v) => {
setCheckData({ setCheckData({
...checkData, ...checkData,
channel_id:v
channel:v
}) })
} }
// //
@ -489,15 +494,15 @@ function ParkingCardMgm(props) {
return return
} }
setCheckData({...checkData,discount_amount:v,selling_price: checkData.original_price - v})
setCheckData({...checkData,discount_amount:v})
} }
const [getEtcList, setGetEtcList] = useState([]) const [getEtcList, setGetEtcList] = useState([])
const [EtctargetKeys, setEtcTargetKeys] = useState([]); const [EtctargetKeys, setEtcTargetKeys] = useState([]);
const [selectedEtcKeys, setSelectedEtcKeys] = useState([]); const [selectedEtcKeys, setSelectedEtcKeys] = useState([]);
const getEtcStatus = (id) => { const getEtcStatus = (id) => {
let road_id = id
const params = road_id !== null ? { road_id } : {};
ajax.getParkList(params).then(
// let road_id = id
// const params = road_id !== null ? { road_id } : {};
ajax.getParkList({id}).then(
(res) => { (res) => {
if (res.status === 20000) { if (res.status === 20000) {
let _data = [...res.data].map((item) => { let _data = [...res.data].map((item) => {
@ -570,11 +575,11 @@ function ParkingCardMgm(props) {
setCheckData({...checkData,original_price:''}) setCheckData({...checkData,original_price:''})
return return
} }
setCheckData({...checkData,original_price:v,selling_price: v - checkData.discount_amount})
setCheckData({...checkData,original_price:v})
} }
const placeSaveBtn = () => { const placeSaveBtn = () => {
let url = actionType == 1 ? ajax.saveData : ajax.updataGoods
let url = actionType == 1 ? ajax.saveCardOrder : ajax.updataGoods
let data = { let data = {
...checkData, ...checkData,
} }
@ -688,8 +693,9 @@ function ParkingCardMgm(props) {
merchantDataName() merchantDataName()
recipientName() recipientName()
getCascaderList() getCascaderList()
getEtcStatus()
// getEtcStatus()
}, []) }, [])
return <> return <>
<div className="paid-ParkingCardMgm"> <div className="paid-ParkingCardMgm">
<div className="paid-search"> <div className="paid-search">
@ -718,7 +724,7 @@ function ParkingCardMgm(props) {
<Select <Select
style={{ width: 270 }} style={{ width: 270 }}
placeholder="请选择" placeholder="请选择"
value={formData.channel_id}
value={formData.channel}
options={sysConfig.saleChannel} options={sysConfig.saleChannel}
onChange={handleSaleChannel} onChange={handleSaleChannel}
/> />
@ -793,7 +799,7 @@ function ParkingCardMgm(props) {
{cardItem?.name || '---'} {cardItem?.name || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="商品状态" span={1.5}> <Descriptions.Item label="商品状态" span={1.5}>
{cardItem?.status || '---'}
{cardItem?.status_name || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="生效日期" span={3}> <Descriptions.Item label="生效日期" span={3}>
<span>自购买后{cardItem?.days || '---'}天开始生效</span> <span>自购买后{cardItem?.days || '---'}天开始生效</span>
@ -817,25 +823,26 @@ function ParkingCardMgm(props) {
labelStyle={{wordBreak:"keep-all"}} labelStyle={{wordBreak:"keep-all"}}
> >
<Descriptions.Item label="销售日期" span={3}> <Descriptions.Item label="销售日期" span={3}>
{cardItem?.name || '---'}
{cardItem?.sale_start || '---'}&ensp;&ensp;
{cardItem?.sale_end || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="停车卡数量" span={2}> <Descriptions.Item label="停车卡数量" span={2}>
{cardItem?.card_num || '---'}
{cardItem?.card_num || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="销售渠道" span={1.5}> <Descriptions.Item label="销售渠道" span={1.5}>
{cardItem?.channel || '---'}
{cardItem?.channel_name || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="原价" span={1}> <Descriptions.Item label="原价" span={1}>
{cardItem?.original_price || '---'}
{cardItem?.original_price || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="优惠价格" span={1}> <Descriptions.Item label="优惠价格" span={1}>
{cardItem?.discount_amount || '---'}
{cardItem?.discount_amount || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="销售价格" span={1}> <Descriptions.Item label="销售价格" span={1}>
{cardItem?.selling_price || '---'}
{cardItem?.original_price - cardItem?.discount_amount || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="备注" span={1.5}> <Descriptions.Item label="备注" span={1.5}>
{cardItem?.remark || '---'}
{cardItem?.text || '---'}
</Descriptions.Item> </Descriptions.Item>
</Descriptions> </Descriptions>
</div> </div>
@ -858,7 +865,7 @@ function ParkingCardMgm(props) {
<label>停车卡名称</label> <label>停车卡名称</label>
<Input <Input
placeholder="请输入内容" placeholder="请输入内容"
value={checkData.operator}
value={checkData.name}
style={{ width: 250, marginLeft: 10 }} style={{ width: 250, marginLeft: 10 }}
maxLength={30} maxLength={30}
onChange={handleParkName} onChange={handleParkName}
@ -873,11 +880,6 @@ function ParkingCardMgm(props) {
<Space direction="vertical" size={12}> <Space direction="vertical" size={12}>
<RangePicker <RangePicker
disabledDate={disabledDate} disabledDate={disabledDate}
disabledTime={disabledRangeTime}
// showTime={{
// hideDisabledOptions: true,
// defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('00:00:00', 'HH:mm:ss')],
// }}
showTime showTime
onChange={changeTime} onChange={changeTime}
format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss"
@ -1035,7 +1037,7 @@ function ParkingCardMgm(props) {
label: '后台录入' label: '后台录入'
} }
]} ]}
value={String(checkData.channel_id)}
value={String(checkData.channel)}
/> />
</div> </div>
<div className="yisa-search extra-style"> <div className="yisa-search extra-style">
@ -1076,9 +1078,9 @@ function ParkingCardMgm(props) {
<label>备注</label> <label>备注</label>
<TextArea <TextArea
placeholder="输入内容" placeholder="输入内容"
value={checkData.remark}
value={checkData.text}
style={{ width: 250, marginLeft: 20 }} style={{ width: 250, marginLeft: 20 }}
onChange={(v)=> setCheckData({...checkData,remark:v.target.value})}
onChange={(v)=> setCheckData({...checkData,text:v.target.value})}
/> />
</div> </div>
</div> </div>

38
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx

@ -149,8 +149,8 @@ function ParkingCardOrder() {
channel:'0',// channel:'0',//
equipment:"0",// equipment:"0",//
serial_number:'',// serial_number:'',//
start_time: "",//
end_time: "",//
start_time: moment(moment().startOf("days")).format("YYYY-MM-DD HH:mm:ss"),//
end_time: moment().format("YYYY-MM-DD HH:mm:ss"),//
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
}) })
@ -482,56 +482,40 @@ function ParkingCardOrder() {
}, },
{ {
value: '1', value: '1',
label: '系统自动扣款'
label: '余额'
}, },
{ {
value: '2', value: '2',
label: '微信公众号'
label: '现金'
}, },
{ {
value: '3', value: '3',
label: 'MS'
label: '微信'
}, },
{ {
value: '4', value: '4',
label: "PDA"
label: '支付宝'
}, },
{ {
value: '5', value: '5',
label: '开放平台支付'
label: "系统录入"
}, },
{ {
value: '6', value: '6',
label: '扫码抢'
label: '招商银行'
}, },
{ {
value: '7', value: '7',
label: '微信小程序'
label: '数字人民币'
}, },
{ {
value: '8', value: '8',
label: '支付宝生活号'
label: '车场自收'
}, },
{ {
value: '9', value: '9',
label: '支付宝小程序'
},
{
value: '10',
label: '自主缴费机'
},
{
value: '11',
label: '后台录入'
},
{
value: '12',
label: 'H5'
},
{
value: '13',
label: 'ETC' label: 'ETC'
}
},
]} ]}
onChange={e=>{setFormData({channel:e}) }} onChange={e=>{setFormData({channel:e}) }}
/> />

6
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardStat/loadable.jsx

@ -39,8 +39,8 @@ function ParkingCardStat() {
] ]
// //
const [formData, setFormData] = useSetState({ const [formData, setFormData] = useSetState({
start_date:'', //
end_date:'' //
start_date:moment(moment().startOf("days")).format("YYYY-MM-DD HH:mm:ss"), //
end_date:moment().format("YYYY-MM-DD HH:mm:ss") //
}) })
const [dataList, setDataList] = useState([]) const [dataList, setDataList] = useState([])
// //
@ -147,7 +147,7 @@ function ParkingCardStat() {
style={{width:270}} style={{width:270}}
showTime showTime
allowClear={false} allowClear={false}
format={"YYYY-MM-DD HH:mm:ss"}
format={"YYYY-MM-DD HH:mm:SS"}
value={formData?.start_date ? moment(formData.start_date) : null} value={formData?.start_date ? moment(formData.start_date) : null}
// disabledDate={(current) => current < moment(formData.start_date)} // disabledDate={(current) => current < moment(formData.start_date)}
onChange={(date, time) => { onChange={(date, time) => {

4
src/services/OperationCenter/ParkingCardMgm/index.js

@ -10,7 +10,7 @@ const getParkcardrList = (params) => {
const getParkList = (params) => { const getParkList = (params) => {
return ajax({ return ajax({
url: "/api/ope/parkcard/park_list", url: "/api/ope/parkcard/park_list",
type: "get",
type: "post",
data: params, data: params,
}); });
}; };
@ -49,7 +49,7 @@ const getCardOrderList = (params) => {
// 添加订单保存 // 添加订单保存
const saveCardOrder = (params) => { const saveCardOrder = (params) => {
return ajax({ return ajax({
url:'/api/ope/parkcard/order_insert',
url:'/api/ope/parkcard/insert',
type:'post', type:'post',
data:params data:params
}) })

Loading…
Cancel
Save