Browse Source

fix():修改bug

tags/PMS_Frontend_v1.0.6-develop
xingjx 1 year ago
parent
commit
5f466d517c
  1. 2
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkBerthAly/loadable.jsx
  2. 2
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkTurnoverAly/loadable.jsx
  3. 1
      src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
  4. 117
      src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.jsx
  5. 10
      src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.scss
  6. 244
      src/pages/OperationCenter/UserMgm/UserAuth/index.scss
  7. 365
      src/pages/OperationCenter/UserMgm/UserAuth/loadable.jsx

2
src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkBerthAly/loadable.jsx

@ -452,7 +452,7 @@ function ParkBerthAly() {
<div className="result-header reb">
<div className="result-content">
<div className="title">日均泊位周转次数</div>
<div className="num">{baseData.turnover || "--"}</div>
<div className="num">{baseData.turnover || "--"}</div>
</div>
</div>
<div className="result-header rec">

2
src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkTurnoverAly/loadable.jsx

@ -584,7 +584,7 @@ function ParkTurnoverAly() {
<i>?</i>
</Tooltip>
{
lineData ?
lineData=={} ?
<ReactEcharts
option={lineData}
style={{ height: "300px", width: "100%", overflow: "hidden" }}

1
src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx

@ -625,6 +625,7 @@ function ParkingOrderInquiry(props) {
}
//
function renderTable(columns, arr, dataSource, exportUrl, initFormData = {}, limit) {
console.log(213123,dataSource)
initFormData = getQueryString('order_id') ? { 'order_id': getQueryString('order_id') } : initFormData
return (
<div style={{ height: '800px' }}>

117
src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.jsx

@ -10,8 +10,10 @@ import {
Select,
Tabs,
Descriptions,
Timeline
Timeline,
Popover,
} from "antd";
import { Link } from "react-router-dom";
import moment from "moment";
import ajax from '@/config/ajax.js'
import { TableModule } from "@/components";
@ -58,15 +60,76 @@ function ProductOrderInquiry() {
align: "center",
}
switch (type) {
case 1:
obj.render = (_, record) => (
<Popover
content={
<div
style={{
display: "flex",
flexDirection: "column",
textAlign: "center",
}}
>
<Link
to={{
pathname: "/operationCenter/parkingCardOrder",
//search: `?id=${record.id}`,
}}
>
查看
</Link>
<Link
to={{
pathname: "/operationCenter/parkingCardOrder",
//search: `?id=${record.id}`,
}}
>
修改
</Link>
</div>
}
trigger="click"
>
<Button type="primary">操作</Button>
</Popover>
)
arr.push(obj)
break
case 2:
obj.render = (text, record) => (<>
<span type="primary" style={{ display: 'block', textAlign: 'center' }} onClick={() => {
setYcddData(record)
setDetailVisible(true)
}}>
<a>详情</a>
</span>
</>)
obj.render = (_, record) => (
<Popover
content={
<div
style={{
display: "flex",
flexDirection: "column",
textAlign: "center",
}}
>
<Link
to={{
pathname: "/operationCenter/staggeredOrder",
//search: `?id=${record.id}`,
}}
>
查看
</Link>
{/* <a
onClick={() => {
const type = record.no_pwd_pay === 1 ? 2 : 1;
handleAlipayNoPassword(type, record.poi, record.road_code);
}}
>
{record.no_pwd_pay === 1 ? "关闭" : "开通"}支付宝免密支付
</a> */}
</div>
}
trigger="click"
>
<Button type="primary">操作</Button>
</Popover>
)
arr.push(obj)
break
default: break
@ -291,8 +354,8 @@ function ProductOrderInquiry() {
name: "timePeriod",
type: "RangePicker",
label: "时间段",
defaultTitle: ['支付时间', '至']
// defaultValue: [moment().startOf("day"), moment()],
defaultTitle: ['支付时间', '至'],
defaultValue: [moment().startOf("day"), moment()],
},
{//17
name: "timePeriod",
@ -367,8 +430,8 @@ function ProductOrderInquiry() {
name: "timePeriod",
type: "RangePicker",
label: "时间段",
defaultTitle: ['订单修改时间', '至']
// defaultValue: [moment().startOf("day"), moment()],
defaultTitle: ['订单修改时间', '至'],
defaultValue: [moment().startOf("day"), moment()],
},
{//29
name: "b",
@ -534,7 +597,7 @@ function ProductOrderInquiry() {
);
}
//
function renderTable(columns, arr, dataSource, type,url) {
function renderTable(columns, arr, dataSource, type, url) {
let initFormData = type == "停车卡" ? {
pn: 1,
page_size: 15,
@ -569,7 +632,31 @@ function ProductOrderInquiry() {
tableData={dataSource}
formSearch={arr}
total={total}
initFormData={initFormData}
diyButton={
type == "停车卡" ?
// <Button
// type="primary"
// onClick={() => { }}
// style={{ width: '100px' }}
// >
//
// </Button>
<Link
class="add-btn"
to={{
pathname: "/operationCenter/parkingCardOrder",
//search: `?id=${record.id}`,
}}
>
添加订单
</Link>
: null
}
//initFormData={initFormData}
otherData={{
export: '0',
export_file_name: '',
}}
exportUrl={url}
search={searchOther}
/>

10
src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.scss

@ -320,3 +320,13 @@ $color-primary: var(--color-primary);
cursor: pointer;
z-index: 9999;
}
.add-btn {
margin: 0 5px;
width: 78px;
height: 34px;
background: linear-gradient(180deg, #3aa9ff, #59b7ff);
border-radius: 4px;
color: #fff;
text-align: center;
line-height: 34px;
}

244
src/pages/OperationCenter/UserMgm/UserAuth/index.scss

@ -3,3 +3,247 @@ $color-container-bg : var(--color-container-bg);
$color-user-list-bg : var(--color-user-list-bg);
$color-text : var(--color-text);
$color-primary : var(--color-primary);
.cc-container {
overflow: auto;
}
.push-box {
padding: 20px;
background: var(--color-user-list-bg);
border-top-left-radius: 20px;
box-shadow: 0px 3px 8px 0px rgb(0 0 0 / 8%);
margin-top: 10px;
.push-back {
float: right;
border: 1px solid;
border-radius: 5px;
margin: 0 10px;
width: 60px;
height: 35px;
line-height: 35px;
text-align: center;
background: #ffffff;
color: #000000;
font-weight: 100;
cursor: pointer;
}
.push-item {
display: flex;
margin: 14px 0;
.title {
width: 100px;
}
.ant-input-textarea {
width: 400px;
}
}
.push-btn-box {
text-align: center;
.push-btn {
display: inline-block;
border: 1px solid;
border-radius: 5px;
margin: 0 10px;
width: 60px;
height: 35px;
line-height: 35px;
text-align: center;
background: #409eff;
color: #fff;
font-weight: 100;
cursor: pointer;
}
.push-cancel {
background: #fff;
color: #000;
}
}
.ltc-box {
width: 100%;
.ltc-box-title {
font-size: 18px;
font-weight: bolder;
width: 100%;
white-space: nowrap;
overflow: hidden;
.text {
display: inline-block;
}
.line {
display: inline-block;
border: 1px dotted #607092;
width: inherit;
margin-bottom: 6px;
}
.ltc-icon {
width: 5px;
background: #0080db;
height: 19px;
display: inline-block;
margin-right: 10px;
}
.ltc-btn {
display: inline-block;
border: 1px solid;
border-radius: 5px;
margin: 0 10px;
width: 60px;
height: 35px;
line-height: 35px;
text-align: center;
background: #409eff;
color: #fff;
font-weight: 100;
cursor: pointer;
}
.ltc-cancel {
background: #fff;
color: #000;
}
}
.ltc-box-line {
border: 1px solid #e7e7e7;
margin: 8px 0;
}
.ltc-box-in {
margin-left: 20px;
.ant-descriptions {
margin-left: 20px;
}
}
.ltc-title {
margin: auto;
width: 50%;
text-align: center;
font-size: 18px;
font-weight: 600;
}
.ltc-content {
margin: auto;
padding: 20px;
.ltc-item {
font-size: 14px;
margin: 6px 0;
display: inline-flex;
width: 470px;
.new-item {
display: inline-block;
width: 120px;
height: 32px;
line-height: 32px;
background: rgba(150,161,192,0.24);
text-align: center;
}
.new-value {
display: inline-block;
width: 320px;
height: 32px;
line-height: 32px;
text-align: center;
background: #3E4557;
box-shadow: 0px 3px 8px 0px rgba(0,0,0,0.12);
}
.ltc-item-input {
display: inline-block;
width: 200px;
}
div {
width: 150px;
}
}
.ltc-item-img {
width: 540px;
height: 300px;
border: 1px solid;
background: rgb(62 69 87);
margin-right: 20px !important;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
}
}
}
.search-box {
width: 100%;
padding: 20px;
height: calc(100% - 10px);
background: var(--color-user-list-bg);
border-top-left-radius: 20px;
box-shadow: 0px 3px 8px 0px rgb(0 0 0 / 8%);
margin-top: 10px;
.time {
display: inline-block;
}
.btn-box {
display: inline-block;
.search-btn {
margin: 0 10px ;
}
}
}
.result-box {
width: 100%;
height: 600px;
.table-wrap {
height: calc(100% - 32px - 65px);
}
.ant-tabs {
margin-bottom: 16px;
.ant-tabs-nav {
margin-bottom: 0 !important;
&::before {
border-bottom: 1px solid var(--color-card-line) !important;
}
}
.ant-tabs-nav-wrap {
width: 100%;
box-sizing: content-box;
.ant-tabs-nav-list {
width: 340px;
.ant-tabs-ink-bar {
height: 3px;
background-color: #00ccff;
}
.ant-tabs-tab {
flex: 1;
width: 100%;
display: flex;
justify-content: center;
padding-bottom: 10px;
text-align: center;
cursor: pointer;
font-size: 14px !important;
font-family: MicrosoftYaHei;
text-align: center;
letter-spacing: 0.7px;
}
.ant-tabs-tab-active {
div {
color: #00ccff;
}
}
}
}
}
.pop-card {
display: flex;
flex-direction: row;
}
}
.pass-icon {
height: 22px;
width: 20px;
border-radius: 10px;
background: #ffbb26;
display: inline-block;
text-align: center;
font-weight: 800;
}
.eae-modal {
.eae-modal-item {
display: flex;
margin-left: 10px;
}
}

365
src/pages/OperationCenter/UserMgm/UserAuth/loadable.jsx

@ -1,15 +1,360 @@
import React, { useState, useRef, useEffect } from "react";
// import { message, Pagination, Table, Space, Modal, } from "antd";
// import { dictionary, utils } from "@/config/common";
// import moment from 'moment'
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
// import ajax from "@/services"
// import { FormInput, FormSelect, OptionPanel, ResultPanel, FormSliderPicker, AreaCascader, ImgResize, ImgZoom, } from "@/components"
// import "./index.scss";
// import errorImg from "@/assets/images/layout/error.png"
// import { useLocation } from "react-router-dom";
import {
message,
Pagination,
Table,
Form,
Space,
Modal,
DatePicker,
Input,
Button,
Select,
} from "antd";
const { TextArea } = Input;
import ajax from '@/config/ajax.js'
import { TableModule, ResultFlow, QuickMenu } from "@/components";
import { dictionary, utils } from "@/config/common";
import "./index.scss";
function UserAuth() {
return <div>UserAuth</div>
const columns = [
{
title: "序号",
dataIndex: "index",
key: "index",
align: "center",
fixed: "left",
render: (text, record, index) => index + 1,
width: 100,
},
{
title: "提交人",
dataIndex: "operator",
key: "operator",
align: "center",
},
{
title: "审核状态",
dataIndex: "auditState",
key: "auditState",
align: "center",
render: (text, record, index) => {
var color = ''
switch (text) {
case "待审核":
case "残疾车待审核":
color = 'rgb(16, 141, 233)';
break;
case "已审核":
case "残疾车已审核":
color = 'red';
break;
case "已作废":
case "残疾车已作废":
color = 'rgb(152, 152, 152)';
default:
break;
}
return (<>
<span type="primary" style={{ width: ' 5px', height: ' 5px', borderRadius: '50%', background: color, display: ' inline-block' }}>
</span>
{text}
</>)
},
},
{
title: "操作人",
dataIndex: "operator",
key: "operator",
align: "center",
},
{
title: "提交日期",
dataIndex: "create_time",
key: "create_time",
align: "center",
},
{
title: "更新时间",
dataIndex: "operate_time",
key: "operate_time",
align: "center",
},
{
title: "操作",
dataIndex: "operation",
key: "operation",
fixed: "right",
align: "center",
render: (text, record, index) => (
<>
<span type="primary" style={{ display: 'block', textAlign: 'center' }} onClick={() => {
setTag('2');
setCarId(record.carId)
setMyId(record.id)
setIndexby(index)
}}>
<a>通过</a>
<a>查看</a>
<a>驳回</a>
</span>
</>
),
},
];
const [carId, setCarId] = useState();
const [myId, setMyId] = useState();
const [loading, setLoading] = useState(false);
const [tag, setTag] = useState('1');
const [bigpicVisible, setBigpicVisible] = useState(false);//
const [passVisible, setPassVisible] = useState(false);
const [refuseVisible, setRefuseVisible] = useState(false);
const [toText, setToText] = useState();
const [bigPic, setBigPic] = useState();
const [resultData, setResultData] = useState([]);
const [total, setTotal] = useState(0);
const [indexby, setIndexby] = useState(0);
const [formData, setFormData] = useState({})
const [pageData, setPageData] = useState({
//
pn: 1,
page_size: 15,
});
function onShowSizeChange(pn, page_size) {
setPageData({
pn,
page_size,
});
}
const handleChange = (value) => {
console.log(value);
setFormData({ ...formData, type: value })
setPageData({ ...pageData, pn: 1 })
//setSendData({ ...sendData, receiver_type: value })
};
function search() {
ajax({
url: "/api/ope/car/certification_list",
type: "post",
data: { ...formData, ...pageData },
}).then((res) => {
let { status, data, total } = res
if (status == 20000) {
setResultData(data)
setTotal(total)
} else {
message.error(res.message)
}
})
}
function toAudits(e) {
ajax({
url: "/api/ope/car/audit",
type: "post",
data: { id: myId, audit: e ? "pass" : "refuse", text: e ? null : toText },
}).then((res) => {
if (res.status == 20000) {
message.success(res.message)
setPassVisible(false)
setRefuseVisible(false)
setToText('')
setTimeout(() => {
window.location.reload()
}, 1000)
} else {
message.error(res.message)
}
})
}
const handleOpinion = (v) => {
setToText(v.target.value)
}
useEffect(() => {
search()
}, [formData, pageData]);
return (
<>
{
tag == 2 ?
<div className="push-box">
<div className="push-back" onClick={() => { setTag('1') }}>返回</div>
<div className="ltc-box">
<div className="ltc-box-title"><div className="ltc-icon"></div>身份认证</div>
<div className="ltc-content">
<div className="ltc-item">
<div className="new-item">姓名</div>
<div className="new-value">{resultData[indexby]?.mo || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">性别</div>
<div className="new-value">{resultData[indexby].p || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">年龄</div>
<div className="new-value">{resultData[indexby].c || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">会员手机号</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">身份证号</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">出生日期</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">认证状态</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">提交日期</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
<div className="ltc-item">
<div className="new-item">更新日期</div>
<div className="new-value">{resultData[indexby].a || "--"}</div>
</div>
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].vehicle_travel_license_img1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].vehicle_travel_license_img2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} />
</div>
</div>
</div>
{resultData[indexby].auditState == '待审核' || resultData[indexby].auditState == '残疾车待审核' ?
<div className="push-btn-box">
<div className="push-btn" onClick={() => { setPassVisible(true) }}>通过</div>
<div className="push-btn push-cancel" onClick={() => { setRefuseVisible(true) }}>驳回</div>
<div className="push-btn push-cancel" onClick={() => { setTag('1') }}>取消</div>
</div> : null}
</div > :
<div>
<div className="search-box">
<div className="time">审核状态:
<div style={{ width: "400px", display: "inline-block" }}>
<Select
style={{
width: 180,
}}
onChange={handleChange}
placeholder={"请选择审核状态"}
options={[
{
value: 0,
label: '全部',
},
{
value: 1,
label: '待审核',
},
{
value: 2,
label: '已审核',
},
{
value: 3,
label: '已作废',
},
]}
/>
</div>
</div>
</div>
<div className="result-box right-list">
<ResultFlow
hasLoad={true}
loading={loading}
resultData={resultData}
message={"暂无数据"}
>
<div className="table-wrap">
<Table
columns={columns}
dataSource={resultData}
pagination={false}
// scroll={{ x: 1500 }}
/>
</div>
<div>
<Pagination
className="pagination-common"
showSizeChanger={true}
showQuickJumper={true}
//showTotal={() => ` ${total} `}
total={total}
current={pageData.pn}
pageSize={pageData.page_size}
pageSizeOptions={dictionary?.pageSizeOptions}
onChange={onShowSizeChange}
onShowSizeChange={onShowSizeChange}
/>
</div>
</ResultFlow>
</div>
</div>
}
<Modal
open={bigpicVisible}
width={1500}
title={''}
className="eae-modal"
onCancel={() => {
setBigpicVisible(false);
}}
footer={false}
>
<div>
<div className="eae-modal-item">
<img src={bigPic} width={1420} />
</div>
</div>
</Modal>
<Modal
open={passVisible}
width={500}
title={'提示'}
className="eae-modal"
onCancel={() => {
setPassVisible(false);
}}
onOk={() => { toAudits(1) }}
>
<div>
<div className="pass-icon">!</div>请您确认审核资料是否无误
</div>
</Modal>
<Modal
open={refuseVisible}
width={800}
title={'拒绝详情'}
className="eae-modal"
onCancel={() => {
setRefuseVisible(false);
}}
onOk={() => { toAudits(0) }}
>
<div>
<div className="eae-modal-item">
<div className="eae-text">请输入拒审理由</div>
<TextArea
placeholder="请输入"
value={formData.text}
style={{ width: 500 }}
onChange={handleOpinion}
/>
</div>
</div>
</Modal>
</>
);
}
export default UserAuth;
Loading…
Cancel
Save