Browse Source

feat(): 路内已知问题处理

tags/PMS_V1.0.0_Alpha6
wanghx 1 year ago
parent
commit
67e97e2ca9
  1. 8
      src/components/ImportBtn/index.jsx
  2. 6
      src/components/layout/Header/downloadModal.jsx
  3. 3
      src/pages/InRoadMgm/EquipmentMgm/EquipmentStatus/Device/index.jsx
  4. 4
      src/pages/InRoadMgm/EquipmentMgm/EquipmentStatus/index.scss
  5. 63
      src/pages/InRoadMgm/EquipmentMgm/NvrMgm/loadable.jsx
  6. 3
      src/pages/InRoadMgm/PersonMgm/Attendance/WorkerAttendance/loadable.jsx
  7. 6
      src/pages/InRoadMgm/RoadMgm/RoadConf/loadable.jsx
  8. 4
      src/pages/OffPeak/OffPeakShareRecords/ShareParkMgm/infoModal/index.jsx
  9. 2
      src/pages/OffPeak/OffPeakShareRecords/ShareParkMgm/loadable.jsx

8
src/components/ImportBtn/index.jsx

@ -23,7 +23,7 @@ function ImportBtn(props) {
if (e && e.status == 20000) {
setMsg(e.message)
} else {
// message.error(e.message)
message.error(e?.message)
}
}
@ -32,6 +32,12 @@ function ImportBtn(props) {
onOk(msg)
}
useEffect(() => {
if (!visible) {
setFileList([])
}
}, [visible])
return (
<>
<Button type="primary" className="yisa-btn colorBtn" style={{marginTop:22}} onClick={() => { setVisible(true) }}>

6
src/components/layout/Header/downloadModal.jsx

@ -13,7 +13,7 @@ function DownloadModal (props) {
const [formData, setFormData] = useState({
type: '0',
pn: 1,
length: 20
length: 15
})
const [loading, setLoading] = useState(false)
const [resultData, setResultDate] = useState({
@ -189,12 +189,12 @@ function DownloadModal (props) {
setFormData({
type: '0',
pn: 1,
length: 20
length: 15
})
ajaxGetDownloadList({
type: '0',
pn: 1,
length: 20
length: 15
})
}
}, [visible])

3
src/pages/InRoadMgm/EquipmentMgm/EquipmentStatus/Device/index.jsx

@ -134,6 +134,7 @@ function Road(props) {
{
title: '对应杆位号',
dataIndex: 'pole_position_code',
width: 110
},
{
title: '区域',
@ -253,7 +254,7 @@ function Road(props) {
ajax.deviceDimensionExport({...formData, start: start, end: end}).then(e => {
if (e.status == 20000) {
// window.open(e.data.url)
message.success(res?.message);
message.success(e?.message);
exportRef.current.handleCancel()
} else {
exportRef.current.handleError()

4
src/pages/InRoadMgm/EquipmentMgm/EquipmentStatus/index.scss

@ -9,6 +9,10 @@ $color-primary : var(--color-primary);
.paid-EquipmentStatus{
height: 100%;
padding: 5px;
.tab-change {
margin-left: 10px;
margin-top: 5px;
}
.searchResult{
display: flex;
padding: 15px;

63
src/pages/InRoadMgm/EquipmentMgm/NvrMgm/loadable.jsx

@ -179,22 +179,47 @@ function Fence(props) {
{
title: "设备名称",
dataIndex: "device_name",
width: 90,
render: (text) => {
if (text && text.length > 30) {
return <div title={text}>{text.slice(0, 30) + '...'}</div>
} else {
return text
}
}
},
{
title: "所属商户",
dataIndex: "operqator",
width: 90
},
{
title: "所属路段",
dataIndex: "road_name",
width: 90,
render: (text) => {
if (text && text.length > 10) {
return <div title={text}>{text.slice(0, 10) + '...'}</div>
} else {
return text
}
}
},
{
title: "地址",
dataIndex: "address",
render: (text) => {
if (text && text.length > 10) {
return <div title={text}>{text.slice(0, 10) + '...'}</div>
} else {
return text
}
}
},
{
title: "网络模式",
dataIndex: "network_mode",
width: 90
},
{
title: "IP地址/设备编码",
@ -464,6 +489,28 @@ function Fence(props) {
}
);
};
const validateNonChineseCharacters = (rule, value, callback) => {
// 使
const nonChineseCharactersRegex = /^[^\u4e00-\u9fa5]+$/;
if (!value || nonChineseCharactersRegex.test(value)) {
callback();
} else {
callback('密码请勿包含中文内容');
}
};
const validateIPAddress = (rule, value, callback) => {
const ipAddressRegex = /^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)$/;
if (!value || ipAddressRegex.test(value)) {
callback();
} else {
callback('请输入正确的ip地址');
}
};
useEffect(() => {
getSelectList();
if (formData?.operator) {
@ -739,6 +786,7 @@ function Fence(props) {
name={"video_port"}
rules={[
{ required: true, message: "视频端口号不能为空" },
{ type: 'number', message: '视频端口号格式错误' }
]}
>
<Input />
@ -750,7 +798,10 @@ function Fence(props) {
<Form.Item
label={"IP地址"}
name={"ip_address"}
rules={[{ required: true, message: "ip地址不能为空" }]}
rules={[
{ required: true, message: "ip地址不能为空" },
{ validator: validateIPAddress }
]}
>
<Input />
</Form.Item>
@ -759,7 +810,10 @@ function Fence(props) {
<Form.Item
label={"端口号"}
name={"port"}
rules={[{ required: true, message: "端口号不能为空" }]}
rules={[
{ required: true, message: "端口号不能为空" },
{ type: 'number', message: '端口号格式错误' }
]}
>
<Input />
</Form.Item>
@ -779,7 +833,10 @@ function Fence(props) {
<Form.Item
label={"密码"}
name={"password"}
rules={[{ required: true, message: "密码不能为空" }]}
rules={[
{ validator: validateNonChineseCharacters },
{ required: true, message: "密码不能为空" }
]}
>
<Input />
</Form.Item>

3
src/pages/InRoadMgm/PersonMgm/Attendance/WorkerAttendance/loadable.jsx

@ -492,6 +492,9 @@ function WorkerAttendance (props) {
totalRecords={resultData.total_records || 0}
imgno={false}
isTableModule={true}
postdata={{
formData: formData
}}
onOk={handleExport}
/>
</div>

6
src/pages/InRoadMgm/RoadMgm/RoadConf/loadable.jsx

@ -523,6 +523,12 @@ function RoadConf() {
totalRecords={resultData.total_records || 0}
exportUrl={"/api/bpm/road/export"}
imgno={false}
postdata={{
formData: {
...searchForm.getFieldsValue(),
...pageData
}
}}
isTableModule={true}
onOk={handleExport}
/>

4
src/pages/OffPeak/OffPeakShareRecords/ShareParkMgm/infoModal/index.jsx

@ -75,6 +75,8 @@ function InfoModal (props) {
{/* <Input></Input> */}
<Select
options={parkList}
showSearch
optionFilterProp='label'
onChange={handleParkChange}
/>
</Form.Item>
@ -89,7 +91,7 @@ function InfoModal (props) {
<Row>
<Col span={11}>
<Form.Item label="可预约车位数" name="kyycws" rules={[{required: true, message: '此为必填字段'}, {validator: validateCws}]}>
<Input type='number'></Input>
<Input type='number' min={0}></Input>
</Form.Item>
</Col>
<Col span={2}></Col>

2
src/pages/OffPeak/OffPeakShareRecords/ShareParkMgm/loadable.jsx

@ -165,7 +165,7 @@ function ShareParkMgm() {
const getTimeRulesData = () => {
ajax.getTimeRulesData().then(res => {
if (res.status == 20000 && res.data.list) {
setTimeRulesData(res.data.list)
setTimeRulesData(res.data.list.map(item => ({...item, value: Number(item.value)})))
} else {
setTimeRulesData([])
}

Loading…
Cancel
Save