Browse Source

Merge branch 'develop' of http://120.27.195.166:3000/chenglb/PMS_Frontend_v1.0.0 into develop

tags/PMS_V1.0.0_Alpha5
wanghx 1 year ago
parent
commit
0c4b9273ea
  1. 131
      src/pages/DataAnalysisPrediction/ParkingOverview/loadable.jsx
  2. 6
      src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/index.scss
  3. 36
      src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/loadable.jsx
  4. 2
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx
  5. 2
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx
  6. 83
      src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredMgm/loadable.jsx
  7. 2
      src/pages/SystemMgm/RoleMgm/loadable.jsx

131
src/pages/DataAnalysisPrediction/ParkingOverview/loadable.jsx

@ -60,6 +60,11 @@ const ParkingOverview = connect(function mapStateToProps(state) {
}; };
})((props) => { })((props) => {
const navigate = useNavigate(); const navigate = useNavigate();
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
let hoveredIndex = ""; let hoveredIndex = "";
//is //is
const MapS = [ const MapS = [
@ -628,7 +633,7 @@ const ParkingOverview = connect(function mapStateToProps(state) {
return 0; return 0;
} }
} }
const getPie3D = (pieData, internalDiameterRatio) => {
const getPie3D = (pieData, bool) => {
//internalDiameterRatio: //internalDiameterRatio:
let series = []; let series = [];
let sumValue = 0; let sumValue = 0;
@ -710,9 +715,43 @@ const ParkingOverview = connect(function mapStateToProps(state) {
legendData.push(series[i].name); legendData.push(series[i].name);
} }
//
let boxHeight = getHeight3D(series, 25); //3d/2626px let boxHeight = getHeight3D(series, 25); //3d/2626px
// legendDataseries // legendDataseries
// series.push({
// name: "mouseoutSeries",
// type: "surface",
// parametric: true,
// wireframe: {
// show: false,
// },
// itemStyle: {
// opacity: 0,
// },
// parametricEquation: {
// u: {
// min: 0,
// max: Math.PI * 2,
// step: Math.PI / 20,
// },
// v: {
// min: 0,
// max: Math.PI,
// step: Math.PI / 20,
// },
// x: function (u, v) {
// return Math.sin(v) * Math.sin(u) + Math.sin(u);
// },
// y: function (u, v) {
// return Math.sin(v) * Math.cos(u) + Math.cos(u);
// },
// z: function (u, v) {
// return Math.cos(v) > 0 ? 0.1 : -0.1;
// },
// },
// });
let option = { let option = {
// backgroundColor: "#203598", // backgroundColor: "#203598",
// labelLine: { // labelLine: {
@ -751,6 +790,26 @@ const ParkingOverview = connect(function mapStateToProps(state) {
}, },
tooltip: { tooltip: {
backgroundColor: "#fff", backgroundColor: "#fff",
// formatter: (params) => {
// if (
// params.seriesName !== "mouseoutSeries" &&
// params.seriesName !== "pie2d"
// ) {
// let bfb = (
// (option.series[params.seriesIndex].pieData.endRatio -
// option.series[params.seriesIndex].pieData.startRatio) *
// 100
// ).toFixed(2);
// if (bfb == "NaN") {
// bfb = 0;
// }
// return (
// `${params.seriesName}<br/>` +
// `<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>` +
// `${bfb}%`
// );
// }
// },
formatter: (params) => { formatter: (params) => {
if ( if (
params.seriesName !== "mouseoutSeries" && params.seriesName !== "mouseoutSeries" &&
@ -761,13 +820,23 @@ const ParkingOverview = connect(function mapStateToProps(state) {
option.series[params.seriesIndex].pieData.startRatio) * option.series[params.seriesIndex].pieData.startRatio) *
100 100
).toFixed(2); ).toFixed(2);
return (
`${params.seriesName}<br/>` +
`<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>` +
`${bfb}%`
);
if (bfb == "NaN") {
bfb = 0;
}
if (params.seriesName !== "mouseoutSeries") {
return `<div class="pojj">${params.seriesName}
<br/>${params.marker} ${
bool ? "0" : option.series[params.seriesIndex].pieData.value
} ${bfb}%
</div>`;
}
} }
}, },
rich: {
a: {
color: "#FFF",
},
},
}, },
xAxis3D: { xAxis3D: {
min: -1, min: -1,
@ -806,6 +875,12 @@ const ParkingOverview = connect(function mapStateToProps(state) {
series.sort((a, b) => { series.sort((a, b) => {
return b.pieData.value - a.pieData.value; return b.pieData.value - a.pieData.value;
}); });
if ((height * 25) / series[0].pieData.value > 30) {
return 30;
}
// if (!(height * 25) / series[0].pieData.value > 30) {
// return 20;
// }
return (height * 25) / series[0].pieData.value; return (height * 25) / series[0].pieData.value;
}; };
@ -888,17 +963,10 @@ const ParkingOverview = connect(function mapStateToProps(state) {
// option.series // option.series
// //
let option = RightTwo; let option = RightTwo;
console.log(option);
let isSelected;
let isHovered;
let startRatio;
let endRatio;
let k;
// mouseover // mouseover
if (hoveredIndex === params.seriesIndex) { if (hoveredIndex === params.seriesIndex) {
return; return;
// //
} else { } else {
// option // option
@ -922,7 +990,7 @@ const ParkingOverview = connect(function mapStateToProps(state) {
); );
option.series[hoveredIndex].pieStatus.hovered = isHovered; option.series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
// seriesIndex
hoveredIndex = ""; hoveredIndex = "";
} }
@ -952,8 +1020,8 @@ const ParkingOverview = connect(function mapStateToProps(state) {
} }
// 使 option // 使 option
setRightTwo(option);
} }
setRightTwo(option);
}, },
globalout: (params) => { globalout: (params) => {
// option.series // option.series
@ -961,11 +1029,11 @@ const ParkingOverview = connect(function mapStateToProps(state) {
let option = RightTwo; let option = RightTwo;
if (hoveredIndex !== "") { if (hoveredIndex !== "") {
// option.series true // option.series true
let isSelected = option.series[hoveredIndex].pieStatus.selected;
let isHovered = false;
let k = option.series[hoveredIndex].pieStatus.k;
let startRatio = option.series[hoveredIndex].pieData.startRatio;
let endRatio = option.series[hoveredIndex].pieData.endRatio;
isSelected = option.series[hoveredIndex].pieStatus.selected;
isHovered = false;
k = option.series[hoveredIndex].pieStatus.k;
startRatio = option.series[hoveredIndex].pieData.startRatio;
endRatio = option.series[hoveredIndex].pieData.endRatio;
// option // option
option.series[hoveredIndex].parametricEquation = getParametricEquation( option.series[hoveredIndex].parametricEquation = getParametricEquation(
@ -978,7 +1046,7 @@ const ParkingOverview = connect(function mapStateToProps(state) {
); );
option.series[hoveredIndex].pieStatus.hovered = isHovered; option.series[hoveredIndex].pieStatus.hovered = isHovered;
// seriesIndex
// seriesIndex
hoveredIndex = ""; hoveredIndex = "";
} }
// 使 option // 使 option
@ -995,8 +1063,12 @@ const ParkingOverview = connect(function mapStateToProps(state) {
] ]
) => { ) => {
// //
let bfg = true;
const data = const data =
datas.map((ele) => { datas.map((ele) => {
if (ele.value != 0) {
bfg = false;
}
return { return {
name: ele.key, name: ele.key,
value: ele.value, value: ele.value,
@ -1004,8 +1076,23 @@ const ParkingOverview = connect(function mapStateToProps(state) {
endRatio: 1, endRatio: 1,
}; };
}) || []; }) || [];
let option;
if (bfg) {
//0
option = getPie3D(
data.map((ele) => {
return {
...ele,
value: 1,
};
}),
true
);
} else {
//0
option = getPie3D(data, false);
}
let option = getPie3D(data, 0.8);
// label线2d使labelLine3dsetOption // label线2d使labelLine3dsetOption
option.series.push({ option.series.push({
// name: "pie2d", // name: "pie2d",

6
src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/index.scss

@ -385,6 +385,12 @@ $color-primary: var(--color-primary);
} }
} }
.deal-reason { .deal-reason {
.logpTip{
display: flex;
.redLogo{
line-height: 44px;
}
}
.title { .title {
font-family: font-family:
PingFangSC-Medium, PingFangSC-Medium,

36
src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/loadable.jsx

@ -424,7 +424,7 @@ function CallbackSuggestion(props) {
item.key = item.id item.key = item.id
return item return item
}) })
setOrderVisible(true)
setOrderVisible(true)
setGetDealData({ setGetDealData({
...getDealData, ...getDealData,
data: resDataArr data: resDataArr
@ -448,7 +448,7 @@ function CallbackSuggestion(props) {
const handleChoose = (value) => { const handleChoose = (value) => {
setGetValueList(value) setGetValueList(value)
// setSubmitDeploy({ ...submitDeploy, change_content: value }) // setSubmitDeploy({ ...submitDeploy, change_content: value })
if(value){
if (value) {
setSubmitDeploy({ setSubmitDeploy({
...submitDeploy, ...submitDeploy,
update_value: '', update_value: '',
@ -460,7 +460,7 @@ function CallbackSuggestion(props) {
const [getAdjustTimeValue, setGetAdjustTimeValue] = useState(1) const [getAdjustTimeValue, setGetAdjustTimeValue] = useState(1)
const handleAdjust = (value) => { const handleAdjust = (value) => {
setGetAdjustTimeValue(value) setGetAdjustTimeValue(value)
submitDeploy.update_value=''
submitDeploy.update_value = ''
} }
const handleAdjustTime = (v, dateString) => { const handleAdjustTime = (v, dateString) => {
setSubmitDeploy({ ...submitDeploy, update_value: dateString }) setSubmitDeploy({ ...submitDeploy, update_value: dateString })
@ -497,8 +497,9 @@ function CallbackSuggestion(props) {
message.error('请输入处理理由') message.error('请输入处理理由')
} else if (submitDeploy.change_content === '') { } else if (submitDeploy.change_content === '') {
message.error('请选择对应的更改项') message.error('请选择对应的更改项')
}
else {
}else if (submitDeploy.update_value === '') {
message.error('请输入对应的更改项')
}else {
ajax.submitData(data).then(res => { ajax.submitData(data).then(res => {
if (res.status === 20000) { if (res.status === 20000) {
setOrderVisible(false) setOrderVisible(false)
@ -627,10 +628,10 @@ function CallbackSuggestion(props) {
</div> </div>
<div className="timePicker "> <div className="timePicker ">
<div className="btnBox"> <div className="btnBox">
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { getSearchData() }}>
查询
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { getSearchData() }}>
查询
</Button> </Button>
<Button type="primary" className="yisa-btn colorReset" onClick={() => { getResetData() }}>
<Button type="primary" className="yisa-btn colorReset" onClick={() => { getResetData() }}>
重置 重置
</Button> </Button>
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}> <Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
@ -922,7 +923,10 @@ function CallbackSuggestion(props) {
<span className="font">异常停车处理信息</span> <span className="font">异常停车处理信息</span>
</div> </div>
<div className="deal-reason"> <div className="deal-reason">
<div className="title">处理理由</div>
<div className="logpTip">
<div className="redLogo">*</div>
<div className="title">处理理由</div>
</div>
<TextArea showCount maxLength={30} value={submitDeploy.deal_reason} className="text" onChange={onChangeReason} /> <TextArea showCount maxLength={30} value={submitDeploy.deal_reason} className="text" onChange={onChangeReason} />
</div> </div>
<div className="deal-style"> <div className="deal-style">
@ -979,13 +983,14 @@ function CallbackSuggestion(props) {
]} ]}
onChange={handleAdjust} onChange={handleAdjust}
/> />
<label style={{ marginLeft: 30 }}>调整为</label>
<div className="redLogo" style={{ marginLeft: 30 }}>*</div>
<label >调整为</label>
{ {
getAdjustTimeValue === 1 ? getAdjustTimeValue === 1 ?
<DatePicker <DatePicker
format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss"
placement='topRight' placement='topRight'
value={parseDate(submitDeploy?.update_value,'YYYY-MM-DD HH:mm:ss')}
value={parseDate(submitDeploy?.update_value, 'YYYY-MM-DD HH:mm:ss')}
style={{ width: 300 }} style={{ width: 300 }}
showTime showTime
onChange={handleAdjustTime} onChange={handleAdjustTime}
@ -1009,7 +1014,8 @@ function CallbackSuggestion(props) {
{ {
getValueList === 2 ? getValueList === 2 ?
<> <>
<label style={{ marginLeft: 30 }}>车牌号:</label>
<div className="redLogo" style={{ marginLeft: 30 }}>*</div>
<label >车牌号:</label>
<Select <Select
style={{ width: 100 }} style={{ width: 100 }}
placeholder="请选择" placeholder="请选择"
@ -1028,7 +1034,8 @@ function CallbackSuggestion(props) {
} }
{ {
getValueList === 3 ? <> getValueList === 3 ? <>
<label style={{ marginLeft: 30 }}>/:</label>
<div className="redLogo" style={{ marginLeft: 30 }}>*</div>
<label >/:</label>
<Select <Select
style={{ width: 100 }} style={{ width: 100 }}
placeholder="请选择" placeholder="请选择"
@ -1046,7 +1053,8 @@ function CallbackSuggestion(props) {
]} ]}
onChange={handleAdd} onChange={handleAdd}
/> />
<label style={{ marginLeft: 30 }}>金额-</label>
<div className="redLogo" style={{ marginLeft: 30 }}>*</div>
<label>金额-</label>
<Input <Input
placeholder="请输入内容" placeholder="请输入内容"
value={submitDeploy.update_value} value={submitDeploy.update_value}

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

@ -845,7 +845,7 @@ function ParkingCardMgm(props) {
<Descriptions.Item label="销售价格" span={1}> <Descriptions.Item label="销售价格" span={1}>
{(cardItem?.original_price - cardItem?.discount_amount).toFixed(2) || '---'} {(cardItem?.original_price - cardItem?.discount_amount).toFixed(2) || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="备注" span={1.5}>
<Descriptions.Item label="备注" span={3}>
{cardItem?.text || '---'} {cardItem?.text || '---'}
</Descriptions.Item> </Descriptions.Item>
</Descriptions> </Descriptions>

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

@ -847,7 +847,7 @@ function ParkingCardOrder() {
{listItem?.effective_start || '---'} {listItem?.effective_start || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item style={{ margin: '20px' }} label="有效天数" span={3}> <Descriptions.Item style={{ margin: '20px' }} label="有效天数" span={3}>
{listItem?.days || '---'}
{listItem?.days || '---'}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item style={{ margin: '20px' }} label="生效结束日期" span={1.5}> <Descriptions.Item style={{ margin: '20px' }} label="生效结束日期" span={1.5}>
{listItem?.effective_end || '---'} {listItem?.effective_end || '---'}

83
src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredMgm/loadable.jsx

@ -99,7 +99,7 @@ function StaggeredMgm(props) {
} }
// //
const handleDeployType = (value) => { const handleDeployType = (value) => {
setFormData({ ...formData, operator_id: value, road:''})
setFormData({ ...formData, operator_id: value, road: '' })
setGetOperatorId(value) setGetOperatorId(value)
setGetRoadName([]) setGetRoadName([])
} }
@ -297,7 +297,8 @@ function StaggeredMgm(props) {
const handleAddDeployType = (value) => { const handleAddDeployType = (value) => {
setGetCarMsg({ setGetCarMsg({
...getCarMsg, ...getCarMsg,
operator_id: value
operator_id: value,
road: ''
}) })
setGetOperatorId(value) setGetOperatorId(value)
setData([]) setData([])
@ -400,45 +401,57 @@ function StaggeredMgm(props) {
} }
const placeSaveBtn = () => { const placeSaveBtn = () => {
let infoArr = [...getSaleMsg] let infoArr = [...getSaleMsg]
infoArr.map((item, index) => {
let data = {
...getCarMsg,
info: infoArr
}
if (getCarMsg.operator_id === '') {
message.error('请选择所属商户')
} else if (getCarMsg.road === '') {
message.error('请输入车场名称')
} else if (item?.start_date === '' || item?.end_date === '') {
if (!getCarMsg.operator_id) {
message.error('请选择所属商户')
return
}
if (!getCarMsg.road) {
message.error('请输入车场名称')
return
}
for (var result = 0; result < infoArr.length; result++) {
console.log(infoArr[result]);
if (!infoArr[result]?.start_date || !infoArr[result]?.end_date) {
message.error('请选择错峰日期') message.error('请选择错峰日期')
} else if (item?.start_time === '' || item?.end_time === '') {
return
}
if (!infoArr[result]?.start_time || !infoArr[result]?.end_time) {
message.error('请选择错峰时间') message.error('请选择错峰时间')
} else if (item?.num === '') {
return
}
if (!infoArr[result]?.num) {
message.error('请输入错峰卡数量') message.error('请输入错峰卡数量')
} else if (item?.price === '') {
return
}
if (!infoArr[result]?.price) {
message.error('请输入销售价格') message.error('请输入销售价格')
} else {
if (item.week.length != []) {
item.week = item.week.join(',')
}
ajax.getAddStaggered(data).then(res => {
if (res.status === 20000) {
message.success(res.message)
setAddVisible(false)
setGetCarMsg({
operator_id: ''
})
setValue({})
getData(formData)
setGetOperatorId('')
setGetSaleMsg([infoData])
} else {
message.error(res.message)
}
return
}
if (!infoArr[result].week.length) {
message.error('请选择星期配置')
return
}
infoArr[result].week = infoArr[result].week.join(',')
}
let data = {
...getCarMsg,
info: infoArr
}
ajax.getAddStaggered(data).then(res => {
if (res.status === 20000) {
message.success(res.message)
setAddVisible(false)
setGetCarMsg({
operator_id: ''
}) })
setValue({})
getData(formData)
setGetOperatorId('')
setGetSaleMsg([infoData])
} else {
message.error(res.message)
} }
}) })
} }
const checkStaggeredBtn = () => { const checkStaggeredBtn = () => {
setCheckVisible(false) setCheckVisible(false)
@ -615,7 +628,7 @@ function StaggeredMgm(props) {
</div> </div>
<Modal <Modal
visible={checkVisible} visible={checkVisible}
onCancel={checkModal}
onCancel={checkStaggeredBtn}
footer={null} footer={null}
className="roadModal" className="roadModal"
> >

2
src/pages/SystemMgm/RoleMgm/loadable.jsx

@ -754,7 +754,7 @@ function RoleMgm(props) {
<Cascader <Cascader
style={{ width: 260, marginLeft: 50 }} style={{ width: 260, marginLeft: 50 }}
placeholder="请选择" placeholder="请选择"
value={getAdminId.depart_id}
value={getAdminId.depart_arr}
options={getPlateColor} options={getPlateColor}
changeOnSelect changeOnSelect
onChange={(v) => { onChange={(v) => {

Loading…
Cancel
Save