Commit 040b17ff authored by 皮倩雯's avatar 皮倩雯

fix: '修改视频平台界面样式'

parent 6ed0615d
Pipeline #46599 skipped with stages
......@@ -2,7 +2,7 @@
* @Description:
* @Author: leizhe
* @Date: 2022-03-04 18:33:24
* @LastEditTime: 2022-03-22 10:11:21
* @LastEditTime: 2022-03-24 17:41:25
* @LastEditors: leizhe
*/
import { Tree } from 'antd';
......@@ -23,10 +23,6 @@ export default props => {
}, [expandedKeys]);
const handleExpand = (keys, { expanded, node }) => {
console.log(keys);
console.log(expanded);
console.log(node);
console.log(keepTree);
if (keepTree && keepTree.indexOf(node.key) != -1 && epKeys.indexOf(node.key) == -1) {
setEpKeys([node.key]);
} else {
......@@ -39,10 +35,6 @@ export default props => {
};
const handleSelect = (keys, e) => {
console.log(keys);
console.log(e);
console.log(epKeys);
console.log(keepTree);
if (keepTree && keepTree.indexOf(keys[0]) != -1 && epKeys.indexOf(keys[0]) == -1) {
setEpKeys(keys);
} else {
......
......@@ -58,7 +58,7 @@ const ProxyConfig = () => {
if (res.code === 0) {
message.success('保存成功');
} else {
message.error('保存失败');
message.error(res.msg);
}
});
};
......@@ -78,20 +78,10 @@ const ProxyConfig = () => {
StartNginx().then(res => {
setLoading(false);
if (res.code === 0) {
// message.success('开启成功');
notification.success({
message: '提示',
duration: 15,
description: '开启成功',
});
message.success('开启成功');
setFlag(flag + 1);
} else {
// message.error('开启失败');
notification.error({
message: '提示',
duration: 15,
description: res.msg,
});
message.error(res.msg);
}
});
};
......@@ -101,18 +91,10 @@ const ProxyConfig = () => {
StopNginx().then(res => {
setLoading(false);
if (res.code === 0) {
notification.success({
message: '提示',
duration: 15,
description: '关闭成功',
});
message.success('关闭成功');
setFlag(flag + 1);
} else {
notification.error({
message: '提示',
duration: 15,
description: res.msg,
});
message.error(res.msg);
}
});
};
......
......@@ -99,7 +99,7 @@ const ProjectManage = props => {
dataIndex: 'type',
align: 'center',
key: 'type',
render: (text, record) => <div>{text === null ? '-' : text}</div>,
render: (text, record) => <div>{text === null || !text ? '-' : text}</div>,
},
{
title: '推送方式',
......@@ -117,7 +117,7 @@ const ProjectManage = props => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -144,7 +144,7 @@ const ProjectManage = props => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......
......@@ -135,14 +135,14 @@ const TemplateManage = () => {
dataIndex: 'type',
key: 'type',
align: 'center',
render: text => <span>{text == null ? '-' : text}</span>,
render: text => <span>{text == null || !text ? '-' : text}</span>,
},
{
title: '第三方模板名称',
dataIndex: 'third_name',
key: 'third_name',
align: 'center',
render: text => <span>{text == null ? '-' : text}</span>,
render: text => <span>{text == null || !text ? '-' : text}</span>,
},
{
title: '企业微信ID',
......@@ -160,7 +160,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -187,7 +187,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -213,7 +213,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -239,7 +239,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -265,7 +265,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......@@ -292,7 +292,7 @@ const TemplateManage = () => {
}),
render: (text, record) => (
<span>
{text === null ? (
{text === null || !text ? (
'-'
) : (
<Tooltip placement="topLeft" title={text}>
......
......@@ -60,10 +60,21 @@ const AddModal = props => {
return (
<SiteModal
{...props}
title="模板添加"
title={
<span>
<span style={{ marginRight: '20px' }}>
<span>模板添加</span>
</span>
<span style={{ fontSize: '14px' }}>当前解析版本规则</span>
<span style={{ color: 'rgb(24, 144, 255)' }}>{messageVersion}</span>
</span>
}
style={{ top: 200, borderRadius: '20px' }}
width="820px"
destroyOnClose
afterClose={() => {
form.resetFields();
}}
cancelText="取消"
okText="确认"
onOk={() => onSubmit()}
......@@ -116,7 +127,7 @@ const AddModal = props => {
<Row>
<Col span={12}>
<Item
label="请选择第三方模板名称"
label="第三方模板名称"
name="third_name"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
......@@ -166,7 +177,7 @@ const AddModal = props => {
<Row>
<Col span={12}>
<Item
label="请选择第三方模板名称"
label="第三方模板名称"
wrapperCol={{ span: 12 }}
labelCol={{ span: 12 }}
name="third_name"
......@@ -222,16 +233,7 @@ const AddModal = props => {
placeholder="first: 标题信息|Second: 展示内容|Third: 时间|Four: 备注信息"
/>
</Item>
<Item
label={
<>
<span>当前解析规则版本</span>
<span>{messageVersion}</span>
</>
}
name="analysis_params"
labelCol={{ span: 6 }}
>
<Item label="解析规则版本(仅针对1.0规则)" name="analysis_params" labelCol={{ span: 6 }}>
<TextArea rows={2} style={{ width: '95%' }} placeholder="param1|param2|param3|param4" />
</Item>
</Form>
......
......@@ -39,7 +39,7 @@ const EditModal = props => {
if (option) {
setTemplateName(option.filter(item => item.Type === props.template.type));
}
}, [props.template]);
}, [props.template, visible]);
const layout = {
layout: 'horizontal',
......@@ -71,11 +71,22 @@ const EditModal = props => {
return (
<SiteModal
{...props}
title="模板编辑"
title={
<span>
<span style={{ marginRight: '20px' }}>
<span>模板编辑</span>
</span>
<span style={{ fontSize: '14px' }}>当前解析版本规则</span>
<span style={{ color: 'rgb(24, 144, 255)' }}>{messageVersion}</span>
</span>
}
bodyStyle={{ width: '100%', minHeight: '100px' }}
style={{ top: 200, borderRadius: '20px' }}
width="820px"
destroyOnClose
afterClose={() => {
form.resetFields();
}}
cancelText="取消"
okText="确认"
onOk={() => onSubmit()}
......@@ -239,12 +250,7 @@ const EditModal = props => {
/>
</Item>
<Item
label={
<>
<span>当前解析规则版本</span>
<span>{messageVersion}</span>
</>
}
label="当前解析规则版本(仅针对1.0规则)"
labelCol={{ span: 6 }}
name="analysis_params"
>
......
......@@ -3,623 +3,671 @@ import { Form, Modal, Row, Col, Input, Select, notification } from 'antd';
import { addInsertVideoConfig, editInsertVideoConfig } from '@/services/videoManger/videoManger';
const AddModal = props => {
const { callBackSubmit = () => { }, visible, onCancel, type, type1, kind, obj } = props;
const { callBackSubmit = () => {}, visible, onCancel, type, type1, kind, obj } = props;
const [form] = Form.useForm();
const { Item } = Form;
const { TextArea } = Input;
const [form] = Form.useForm();
const { Item } = Form;
const { TextArea } = Input;
const [selectChange, setSelectChange] = useState('轻应用')
const [selectChange1, setSelectChange1] = useState('否')
const [selectChange2, setSelectChange2] = useState('主码流')
const [selectChange, setSelectChange] = useState('轻应用');
const [selectChange1, setSelectChange1] = useState('否');
const [selectChange2, setSelectChange2] = useState('主码流');
const onChange = value => {
setSelectChange(value)
}
const onChange = value => {
setSelectChange(value);
};
const onChange1 = value => {
setSelectChange1(value)
}
const onChange1 = value => {
setSelectChange1(value);
};
const onChange2 = value => {
setSelectChange2(value)
}
const onChange2 = value => {
setSelectChange2(value);
};
useEffect(() => {
useEffect(() => {
if (kind === 'add') {
form.resetFields();
} else {
form.setFieldsValue({ ...obj });
}
}, [visible]);
const onSubmit = () => {
form.validateFields().then(validate => {
if (validate) {
let getValue = form.getFieldsValue();
console.log(getValue);
if (getValue.PlayModel === undefined) {
getValue.PlayModel = '轻应用';
}
if (getValue.PlayZeroChannel === undefined) {
getValue.PlayZeroChannel = '否';
}
if (getValue.StreamType === undefined) {
getValue.StreamType = '主码流';
}
getValue.VideoManufacturer = type;
if (kind === 'add') {
form.resetFields();
} else {
form.setFieldsValue({ ...obj })
addInsertVideoConfig(getValue).then(res => {
if (res.msg === 'Ok') {
form.resetFields();
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: '新增成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
}
}, [visible])
const onSubmit = () => {
form.validateFields().then(validate => {
if (validate) {
let getValue = form.getFieldsValue();
console.log(getValue)
if (getValue.PlayModel === undefined) {
getValue.PlayModel = '轻应用'
}
if (getValue.PlayZeroChannel === undefined) {
getValue.PlayZeroChannel = '否'
}
if (getValue.StreamType === undefined) {
getValue.StreamType = '主码流'
}
getValue.VideoManufacturer = type
if (kind === 'add') {
addInsertVideoConfig(getValue).then(res => {
if (res.msg === 'Ok') {
form.resetFields();
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: '新增成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
})
}
if(kind === 'edit'){
editInsertVideoConfig({
...getValue,
Id:obj.Id
}).then(res => {
if (res.msg === 'Ok') {
form.resetFields();
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: '编辑成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
})
}
if (kind === 'edit') {
editInsertVideoConfig({
...getValue,
Id: obj.Id,
}).then(res => {
if (res.msg === 'Ok') {
form.resetFields();
callBackSubmit();
notification.success({
message: '提示',
duration: 3,
description: '编辑成功',
});
} else {
notification.error({
message: '提示',
duration: 3,
description: res.msg,
});
}
});
});
}
}
});
};
}
if (type1 == 'aa') {
return (
<Modal
visible={visible}
title={
kind === 'add' ? (
<span style={{ fontSize: '18px' }}>新增配置</span>
) : (
<span style={{ fontSize: '18px' }}>编辑配置</span>
)
}
width="1000px"
destroyOnClose
maskClosable={false}
onCancel={onCancel}
onOk={onSubmit}
>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>基本信息</p>
<Form
form={form}
labelCol={{ span: 7 }}
style={{ height: '25rem', overflowY: 'scroll' }}
autocomplete="off"
>
<Row>
<Col span={11}>
<Item
label="名称"
name="Name"
rules={[
{
required: true,
message: '请输入名称',
},
]}
>
<Input placeholder="请输入名称" />
</Item>
</Col>
{(() => {
switch (type) {
case '海康1.2':
return (
<>
<Col span={12}>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康1.2" disabled />
</Item>
</Col>
</>
);
case '海康NVR':
return (
<>
<Col span={12}>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康NVR" disabled />
</Item>
</Col>
</>
);
}
})()}
<Col span={11}>
<Item
label="设备编码"
name="EquipmentCode"
rules={[
{
required: true,
message: '请输入设备编码',
},
]}
>
<Input placeholder="设备台账对应设备编码字段" />
</Item>
</Col>
<Col span={12}>
<Item
label="通道ID"
name="PassageId"
rules={[
{
required: true,
message: '请输入通道ID',
},
]}
>
<TextArea placeholder="视频监控点ID,请用英文逗好分隔" />
</Item>
</Col>
<Col span={24}>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>{type}</p>
</Col>
{(() => {
switch (type) {
case '海康1.2':
return (
<>
<Col span={11}>
<Item
label="设备序列号"
name="EquipmentNumber"
rules={[
{
required: true,
message: '请输入设备序列号',
},
]}
>
<Input placeholder="视频设备序列号" />
</Item>
</Col>
</>
);
case '海康NVR':
return (
<>
<Col span={11}>
<Item
label="视频流地址"
name="HLSPath"
rules={[
{
required: true,
message: '请输入视频流地址',
},
]}
>
<TextArea placeholder="视频流地址" />
</Item>
</Col>
</>
);
}
})()}
<Col span={12}>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder="刻录机名称" />
</Item>
</Col>
<Col span={11}>
<Item
label="视频名称"
name="VideoName"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频监控点名称" />
</Item>
</Col>
<Col span={12}>
<Item label="默认通道ID" name="DefaultPassageId">
<TextArea placeholder="默认视频监控点ID,请用英文逗好分隔" />
</Item>
</Col>
<Col span={11}>
<Item
label="视频服务地址"
name="VideoPath"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频服务地址" />
</Item>
</Col>
</Row>
</Form>
</Modal>
);
} else {
return (
<Modal
visible={visible}
title={
kind === 'add' ? (
<span style={{ fontSize: '18px' }}>新增配置</span>
) : (
<span style={{ fontSize: '18px' }}>编辑配置</span>
)
}
width="1000px"
destroyOnClose
maskClosable={false}
onCancel={onCancel}
onOk={onSubmit}
>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>基本信息</p>
<Form
form={form}
labelCol={{ span: 7 }}
style={{ height: '27rem', overflowY: 'scroll' }}
autocomplete="off"
>
<Row>
<Col span={11}>
<Item
label="名称"
name="Name"
rules={[
{
required: true,
message: '请输入名称',
},
]}
>
<Input placeholder="请输入名称" />
</Item>
</Col>
{(() => {
switch (type) {
case '萤石云':
return (
<>
<Col span={12}>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="萤石云" disabled />
</Item>
</Col>
</>
);
case '海康':
return (
<>
<Col span={12}>
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item label="视频厂商" name="VideoManufacturer">
<Input placeholder="海康" disabled />
</Item>
</Col>
</>
);
}
})()}
if (type1 == 'aa') {
return (
<Modal
visible={visible}
title={
kind === 'add' ? <span style={{ fontSize: '18px' }}>新增配置</span> : <span style={{ fontSize: '18px' }}>编辑配置</span>
}
width="1000px"
destroyOnClose
maskClosable={false}
onCancel={onCancel}
onOk={onSubmit}
>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>基本信息</p>
<Form form={form} labelCol={{ span: 7 }} style={{ height: '25rem', overflowY: 'scroll' }} autocomplete='off'>
<Row>
<Col span={11}>
<Item
label="登录名"
name="LoginName"
rules={[
{
required: true,
message: '请输入登录名',
},
]}
>
<Input placeholder="账户登录名" />
</Item>
</Col>
<Col span={12}>
<Item
label="登录密码"
name="LoginPwd"
rules={[
{
required: true,
message: '请输入登录密码',
},
]}
>
<Input.Password placeholder="请输入登录密码" />
</Item>
</Col>
<Col span={11}>
<Item
label="设备编码"
name="EquipmentCode"
rules={[
{
required: true,
message: '请输入设备编码',
},
]}
>
<Input placeholder="设备台账对应设备编码字段" />
</Item>
</Col>
<Col span={12}>
<Item
label="通道ID"
name="PassageId"
rules={[
{
required: true,
message: '请输入通道ID',
},
]}
>
<Input placeholder="视频设备通道ID" />
</Item>
</Col>
<Col span={24}>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>{type}</p>
</Col>
{(() => {
switch (type) {
case '萤石云':
return (
<>
<Row>
<Col span={11}>
<Item
label="名称"
name="Name"
rules={[
{
required: true,
message: '请输入名称',
},
]}
>
<Input placeholder="请输入名称" />
</Item>
<Item
label="视频路径"
name="VideoPath"
rules={[
{
required: true,
message: '请输入视频路径',
},
]}
>
<TextArea placeholder="视频Rtmp路径,请使用英文逗号分隔" />
</Item>
</Col>
<Col span={12}>
<Item
label="HLS路径"
name="HLSPath"
rules={[
{
required: true,
message: '请输入HLS路径',
},
]}
>
<TextArea placeholder="视频HLS路径,请使用英文逗号分隔" />
</Item>
</Col>
{(() => {
switch (type) {
case '海康1.2':
return <>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<Input placeholder="海康1.2" disabled />
</Item>
</Col>
</>
case '海康NVR':
return <>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<Input placeholder="海康NVR" disabled />
</Item>
</Col>
</>
}
})()}
<Col span={11}>
<Item
label="设备编码"
name="EquipmentCode"
rules={[
{
required: true,
message: '请输入设备编码',
},
]}
>
<Input placeholder="设备台账对应设备编码字段" />
</Item>
<Item
label="设备序列号"
name="EquipmentNumber"
rules={[
{
required: true,
message: '请输入设备序列号',
},
]}
>
<Input placeholder="视频设备序列号" />
</Item>
</Col>
<Col span={12}>
<Item
label="通道ID"
name="PassageId"
rules={[
{
required: true,
message: '请输入通道ID',
},
]}
>
<TextArea placeholder="视频监控点ID,请用英文逗好分隔" />
</Item>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder="刻录机名称" />
</Item>
</Col>
<Col span={24}>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>{type}</p>
<Col span={11}>
<Item label="默认播放方式" name="PlayModel">
<Select defaultValue="轻应用" value={selectChange} onChange={onChange}>
<Option value="轻应用">轻应用</Option>
<Option value="直播流">直播流</Option>
</Select>
</Item>
</Col>
{(() => {
switch (type) {
case '海康1.2':
return <>
<Col span={11}>
<Item
label="设备序列号"
name="EquipmentNumber"
rules={[
{
required: true,
message: '请输入设备序列号',
},
]}
>
<Input placeholder="视频设备序列号" />
</Item>
</Col>
</>
case '海康NVR':
return <>
<Col span={11}>
<Item
label="视频流地址"
name="HLSPath"
rules={[
{
required: true,
message: '请输入视频流地址',
},
]}
>
<TextArea placeholder="视频流地址" />
</Item>
</Col>
</>
}
})()}
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder="刻录机名称" />
</Item>
<Item label="默认通道ID" name="DefaultPassageId">
<Input placeholder="默认通道ID" />
</Item>
</Col>
</Row>
</>
);
case '海康':
return (
<>
<Row>
<Col span={11}>
<Item
label="视频名称"
name="VideoName"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频监控点名称" />
</Item>
<Item
label="登录IP"
name="LoginIp"
rules={[
{
required: true,
message: '请输入登录ID',
},
]}
>
<Input placeholder="登录ID" />
</Item>
</Col>
<Col span={12}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<TextArea placeholder="默认视频监控点ID,请用英文逗好分隔" />
</Item>
<span
style={{
position: 'absolute',
left: '9%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item
label="播放零通道"
name="PlayZeroChannel"
rules={[
{
validator: (rule, value) => {
if (form.getFieldsValue().PlayZeroChannel == '') {
return Promise.reject('请输入设备端口');
}
return Promise.resolve();
},
},
]}
>
<Select defaultValue="否" value={selectChange1} onChange={onChange1}>
<Option value="否"></Option>
<Option value="是"></Option>
</Select>
</Item>
</Col>
<Col span={11}>
<Item
label="视频服务地址"
name="VideoPath"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频服务地址" />
</Item>
<Item
label="设备端口"
name="EquipmentPort"
rules={[
{
required: true,
message: '请输入设备端口',
},
]}
>
<Input placeholder="设备端口" />
</Item>
</Col>
</Row>
</Form>
</Modal>
)
} else {
return (
<Modal
visible={visible}
title={
kind === 'add' ? <span style={{ fontSize: '18px' }}>新增配置</span> : <span style={{ fontSize: '18px' }}>编辑配置</span>
}
width="1000px"
destroyOnClose
maskClosable={false}
onCancel={onCancel}
onOk={onSubmit}
>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>基本信息</p>
<Form form={form} labelCol={{ span: 7 }} style={{ height: '27rem', overflowY: 'scroll' }} autocomplete='off'>
<Row>
<Col span={11}>
<Item
label="名称"
name="Name"
rules={[
{
required: true,
message: '请输入名称',
},
]}
>
<Input placeholder="请输入名称" />
</Item>
<Col span={12}>
<Item
label="视频端口"
name="VideoPort"
rules={[
{
required: true,
message: '请输入视频端口',
},
]}
>
<Input placeholder="视频端口" />
</Item>
</Col>
{(() => {
switch (type) {
case '萤石云':
return <>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<Input placeholder="萤石云" disabled />
</Item>
</Col>
</>
case '海康':
return <>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="视频厂商"
name="VideoManufacturer"
>
<Input placeholder="海康" disabled />
</Item>
</Col>
</>
}
})()}
<Col span={11}>
<Item
label="登录名"
name="LoginName"
rules={[
{
required: true,
message: '请输入登录名',
},
]}
>
<Input placeholder="账户登录名" />
</Item>
<Item
label="媒体流端口"
name="StreamingMediaPort"
rules={[
{
required: true,
message: '请输入媒体流端口',
},
]}
>
<Input placeholder="媒体流端口" />
</Item>
</Col>
<Col span={12}>
<Item
label="登录密码"
name="LoginPwd"
rules={[
{
required: true,
message: '请输入登录密码',
},
]}
<span
style={{
position: 'absolute',
left: '12%',
top: '9%',
color: 'red',
fontSize: '16px',
}}
>
*
</span>
<Item
label="码流类型"
name="StreamType"
rules={[
{
validator: (rule, value) => {
if (form.getFieldsValue().StreamType == '') {
return Promise.reject('请选择码流类型');
}
return Promise.resolve();
},
},
]}
>
<Select
defaultValue="主码流"
value={selectChange2}
onChange={onChange2}
>
<Input placeholder="请输入登录密码" />
</Item>
<Option value="主码流">主码流</Option>
<Option value="子码流">子码流</Option>
</Select>
</Item>
</Col>
<Col span={11}>
<Item
label="设备编码"
name="EquipmentCode"
rules={[
{
required: true,
message: '请输入设备编码',
},
]}
>
<Input placeholder="设备台账对应设备编码字段" />
</Item>
<Item
label="视频名称"
name="VideoName"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频名称" />
</Item>
</Col>
<Col span={12}>
<Item
label="通道ID"
name="PassageId"
rules={[
{
required: true,
message: '请输入通道ID',
},
]}
>
<Input placeholder="视频设备通道ID" />
</Item>
<Item label="刻录机名称" name="RecorderName">
<Input placeholder="刻录机名称" />
</Item>
</Col>
<Col span={24}>
<p style={{ fontSize: '16px', marginLeft: '16px' }}>{type}</p>
<Col span={11}>
<Item label="默认通道ID" name="DefaultPassageId">
<Input placeholder="默认通道ID" />
</Item>
</Col>
{(() => {
switch (type) {
case '萤石云':
return <>
<Row>
<Col span={11}>
<Item
label="视频路径"
name="VideoPath"
rules={[
{
required: true,
message: '请输入视频路径',
},
]}
>
<TextArea placeholder="视频Rtmp路径,请使用英文逗号分隔" />
</Item>
</Col>
<Col span={12}>
<Item
label="HLS路径"
name="HLSPath"
rules={[
{
required: true,
message: '请输入HLS路径',
},
]}
>
<TextArea placeholder="视频HLS路径,请使用英文逗号分隔" />
</Item>
</Col>
<Col span={11}>
<Item
label="设备序列号"
name="EquipmentNumber"
rules={[
{
required: true,
message: '请输入设备序列号',
},
]}
>
<Input placeholder="视频设备序列号" />
</Item>
</Col>
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder="刻录机名称" />
</Item>
</Col>
<Col span={11}>
<Item
label="默认播放方式"
name="PlayModel"
>
<Select
defaultValue="轻应用"
value={selectChange}
onChange={onChange}
>
<Option value="轻应用">轻应用</Option>
<Option value="直播流">直播流</Option>
</Select>
</Item>
</Col>
<Col span={12}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<Input placeholder="默认通道ID" />
</Item>
</Col>
</Row>
</>
case '海康':
return <>
<Row>
<Col span={11}>
<Item
label="登录IP"
name="LoginIp"
rules={[
{
required: true,
message: '请输入登录ID',
},
]}
>
<Input placeholder="登录ID" />
</Item>
</Col>
<Col span={12}>
<span style={{ position: 'absolute', left: '9%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="播放零通道"
name="PlayZeroChannel"
rules={[
{
validator: (rule, value) => {
if (form.getFieldsValue().PlayZeroChannel == '') {
return Promise.reject('请输入设备端口')
}
return Promise.resolve();
}
}
]}
>
<Select
defaultValue="否"
value={selectChange1}
onChange={onChange1}
>
<Option value="否"></Option>
<Option value="是"></Option>
</Select>
</Item>
</Col>
<Col span={11}>
<Item
label="设备端口"
name="EquipmentPort"
rules={[
{
required: true,
message: '请输入设备端口',
},
]}
>
<Input placeholder="设备端口" />
</Item>
</Col>
<Col span={12}>
<Item
label="视频端口"
name="VideoPort"
rules={[
{
required: true,
message: '请输入视频端口',
},
]}
>
<Input placeholder="视频端口" />
</Item>
</Col>
<Col span={11}>
<Item
label="媒体流端口"
name="StreamingMediaPort"
rules={[
{
required: true,
message: '请输入媒体流端口',
},
]}
>
<Input placeholder="媒体流端口" />
</Item>
</Col>
<Col span={12}>
<span style={{ position: 'absolute', left: '12%', top: '9%', color: 'red', fontSize: '16px' }}>*</span>
<Item
label="码流类型"
name="StreamType"
rules={[
{
validator: (rule, value) => {
if (form.getFieldsValue().StreamType == '') {
return Promise.reject('请选择码流类型')
}
return Promise.resolve();
}
}
]}
>
<Select
defaultValue="主码流"
value={selectChange2}
onChange={onChange2}
>
<Option value="主码流">主码流</Option>
<Option value="子码流">子码流</Option>
</Select>
</Item>
</Col>
<Col span={11}>
<Item
label="视频名称"
name="VideoName"
rules={[
{
required: true,
message: '请输入视频名称',
},
]}
>
<Input placeholder="视频名称" />
</Item>
</Col>
<Col span={12}>
<Item
label="刻录机名称"
name="RecorderName"
>
<Input placeholder="刻录机名称" />
</Item>
</Col>
<Col span={11}>
<Item
label="默认通道ID"
name="DefaultPassageId"
>
<Input placeholder="默认通道ID" />
</Item>
</Col>
</Row>
</>
}
}
)()}
</Row>
</Form>
</Modal>
)
}
}
export default AddModal;
\ No newline at end of file
</Row>
</>
);
}
})()}
</Row>
</Form>
</Modal>
);
}
};
export default AddModal;
......@@ -58,7 +58,20 @@ const videoManager = () => {
key: 'Name',
width: 200,
align: 'center',
render: item => searchStyle(item),
onCell: () => ({
style: {
maxWidth: 200,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
cursor: 'pointer',
},
}),
render: item => (
<Tooltip placement="topLeft" title={item}>
{searchStyle(item)}
</Tooltip>
),
},
{
title: '视频厂商',
......@@ -75,18 +88,18 @@ const videoManager = () => {
align: 'center',
render: item => searchStyle(item),
},
{
title: '登录密码',
dataIndex: 'LoginPwd',
key: 'LoginPwd',
width: 350,
align: 'center',
},
// {
// title: '登录密码',
// dataIndex: 'LoginPwd',
// key: 'LoginPwd',
// width: 350,
// align: 'center',
// },
{
title: '设备编码',
dataIndex: 'EquipmentCode',
key: 'EquipmentCode',
width: 150,
width: 200,
align: 'center',
render: item => searchStyle(item),
},
......@@ -94,15 +107,43 @@ const videoManager = () => {
title: '通道ID',
dataIndex: 'PassageId',
key: 'PassageId',
width: 100,
width: 150,
align: 'center',
onCell: () => ({
style: {
maxWidth: 150,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
cursor: 'pointer',
},
}),
render: item => (
<Tooltip placement="topLeft" title={item}>
{item}
</Tooltip>
),
},
{
title: '刻录机名称',
dataIndex: 'RecorderName',
key: 'RecorderName',
width: 100,
width: 150,
align: 'center',
onCell: () => ({
style: {
maxWidth: 150,
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
cursor: 'pointer',
},
}),
render: item => (
<Tooltip placement="topLeft" title={item}>
{item}
</Tooltip>
),
},
{
// title: '录入时间',
......@@ -272,6 +313,7 @@ const videoManager = () => {
VideoType: type,
pageIndex: 1,
pageSize: 1000,
QueryWhere: searchWord,
}).then(res => {
setLoading(false);
if (res.msg === 'Ok') {
......@@ -389,27 +431,51 @@ const videoManager = () => {
</Row>
<Spin spinning={loading} tip="loading">
<div className={styles.table}>
<Table
size="small"
bordered
rowKey={record => record.Id}
columns={columns}
dataSource={tableData}
scroll={{ y: 'calc(100vh - 210px)', x: 'max-content' }}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
edit(record);
}, // 双击
})}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 20,
showQuickJumper: true,
showSizeChanger: true,
}}
/>
{tableData.length > 0 ? (
<Table
size="small"
bordered
rowKey={record => record.Id}
columns={columns}
dataSource={tableData}
scroll={{ y: 'calc(100vh - 210px)', x: 'max-content' }}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
edit(record);
}, // 双击
})}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 20,
showQuickJumper: true,
showSizeChanger: true,
}}
/>
) : (
<Table
size="small"
bordered
rowKey={record => record.Id}
columns={columns}
dataSource={tableData}
scroll={{ y: 'calc(100vh - 116px)', x: 'max-content' }}
onRow={record => ({
onDoubleClick: event => {
event.stopPropagation();
edit(record);
}, // 双击
})}
pagination={{
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条`,
pageSizeOptions: [10, 20, 50, 100],
defaultPageSize: 20,
showQuickJumper: true,
showSizeChanger: true,
}}
/>
)}
</div>
</Spin>
<AddModal
......
......@@ -532,6 +532,7 @@ const UserManage = () => {
// 点击树节点,获取当前机构下所有用户
const onSelect = (props, e) => {
console.log(props);
if (e) {
props[0] = e.node.key;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment