|
@@ -208,16 +208,19 @@ const Status = observer((props: Props) => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
-
|
|
|
|
|
// 设备接入网关
|
|
// 设备接入网关
|
|
|
const diagnoseGateway = () =>
|
|
const diagnoseGateway = () =>
|
|
|
new Promise((resolve) => {
|
|
new Promise((resolve) => {
|
|
|
|
|
+ const desc =
|
|
|
|
|
+ providerType && ['child-device', 'cloud'].includes(providerType)
|
|
|
|
|
+ ? '诊断设备接入网关状态是否正常,网关配置是否正确'
|
|
|
|
|
+ : '诊断设备接入网关状态是否正常,禁用状态将导致连接失败';
|
|
|
if (device.state?.value === 'online') {
|
|
if (device.state?.value === 'online') {
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
DiagnoseStatusModel.list = modifyArrayList(DiagnoseStatusModel.list, {
|
|
DiagnoseStatusModel.list = modifyArrayList(DiagnoseStatusModel.list, {
|
|
|
key: 'gateway',
|
|
key: 'gateway',
|
|
|
name: '设备接入网关',
|
|
name: '设备接入网关',
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
|
|
+ desc: desc,
|
|
|
status: 'success',
|
|
status: 'success',
|
|
|
text: '正常',
|
|
text: '正常',
|
|
|
info: null,
|
|
info: null,
|
|
@@ -233,19 +236,81 @@ const Status = observer((props: Props) => {
|
|
|
if (response.status === 200) {
|
|
if (response.status === 200) {
|
|
|
DiagnoseStatusModel.gateway = response.result;
|
|
DiagnoseStatusModel.gateway = response.result;
|
|
|
if (response.result?.state?.value === 'enabled') {
|
|
if (response.result?.state?.value === 'enabled') {
|
|
|
- item = {
|
|
|
|
|
- key: 'gateway',
|
|
|
|
|
- name: '设备接入网关',
|
|
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
- status: 'success',
|
|
|
|
|
- text: '正常',
|
|
|
|
|
- info: null,
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ if (providerType === 'cloud' || device?.accessProvider === 'gb28181-2016') {
|
|
|
|
|
+ item = {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'error',
|
|
|
|
|
+ text: '可能存在异常',
|
|
|
|
|
+ info: (
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <div className={styles.infoItem}>
|
|
|
|
|
+ <Badge
|
|
|
|
|
+ status="default"
|
|
|
|
|
+ text={
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 请
|
|
|
|
|
+ <a
|
|
|
|
|
+ onClick={async () => {
|
|
|
|
|
+ const config = await service.getGatewayDetail(
|
|
|
|
|
+ response.result?.id || '',
|
|
|
|
|
+ );
|
|
|
|
|
+ if (config.status === 200) {
|
|
|
|
|
+ manualInspection({
|
|
|
|
|
+ type: providerType,
|
|
|
|
|
+ key: `gateway`,
|
|
|
|
|
+ name: `设备接入网关`,
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ data: { name: `${device?.accessProvider}配置` },
|
|
|
|
|
+ configuration: { ...config.result },
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }}
|
|
|
|
|
+ >
|
|
|
|
|
+ 人工检查
|
|
|
|
|
+ </a>
|
|
|
|
|
+ 网关配置是否已填写正确,若您确定该项无需诊断可
|
|
|
|
|
+ <Popconfirm
|
|
|
|
|
+ title="确认忽略?"
|
|
|
|
|
+ onConfirm={() => {
|
|
|
|
|
+ DiagnoseStatusModel.list = modifyArrayList(
|
|
|
|
|
+ DiagnoseStatusModel.list,
|
|
|
|
|
+ {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'success',
|
|
|
|
|
+ text: '正常',
|
|
|
|
|
+ info: null,
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+ }}
|
|
|
|
|
+ >
|
|
|
|
|
+ <a>忽略</a>
|
|
|
|
|
+ </Popconfirm>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ }
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ ),
|
|
|
|
|
+ };
|
|
|
|
|
+ } else {
|
|
|
|
|
+ item = {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'success',
|
|
|
|
|
+ text: '正常',
|
|
|
|
|
+ info: null,
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
item = {
|
|
item = {
|
|
|
key: 'gateway',
|
|
key: 'gateway',
|
|
|
name: '设备接入网关',
|
|
name: '设备接入网关',
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
|
|
+ desc: desc,
|
|
|
status: 'error',
|
|
status: 'error',
|
|
|
text: '异常',
|
|
text: '异常',
|
|
|
info: (
|
|
info: (
|
|
@@ -270,7 +335,7 @@ const Status = observer((props: Props) => {
|
|
|
{
|
|
{
|
|
|
key: 'gateway',
|
|
key: 'gateway',
|
|
|
name: '设备接入网关',
|
|
name: '设备接入网关',
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
|
|
+ desc: desc,
|
|
|
status: 'success',
|
|
status: 'success',
|
|
|
text: '正常',
|
|
text: '正常',
|
|
|
info: null,
|
|
info: null,
|
|
@@ -306,19 +371,81 @@ const Status = observer((props: Props) => {
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
if (DiagnoseStatusModel.gateway?.state?.value === 'enabled') {
|
|
if (DiagnoseStatusModel.gateway?.state?.value === 'enabled') {
|
|
|
- item = {
|
|
|
|
|
- key: 'gateway',
|
|
|
|
|
- name: '设备接入网关',
|
|
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
- status: 'success',
|
|
|
|
|
- text: '正常',
|
|
|
|
|
- info: null,
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ if (providerType === 'cloud' || device?.accessProvider === 'gb28181-2016') {
|
|
|
|
|
+ item = {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'error',
|
|
|
|
|
+ text: '可能存在异常',
|
|
|
|
|
+ info: (
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <div className={styles.infoItem}>
|
|
|
|
|
+ <Badge
|
|
|
|
|
+ status="default"
|
|
|
|
|
+ text={
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 请
|
|
|
|
|
+ <a
|
|
|
|
|
+ onClick={async () => {
|
|
|
|
|
+ const config = await service.getGatewayDetail(
|
|
|
|
|
+ DiagnoseStatusModel.gateway?.id || '',
|
|
|
|
|
+ );
|
|
|
|
|
+ if (config.status === 200) {
|
|
|
|
|
+ manualInspection({
|
|
|
|
|
+ type: providerType,
|
|
|
|
|
+ key: `gateway`,
|
|
|
|
|
+ name: `设备接入网关`,
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ data: { name: `${device?.accessProvider}配置` },
|
|
|
|
|
+ configuration: { ...config.result },
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }}
|
|
|
|
|
+ >
|
|
|
|
|
+ 人工检查
|
|
|
|
|
+ </a>
|
|
|
|
|
+ 网关配置是否已填写正确,若您确定该项无需诊断可
|
|
|
|
|
+ <Popconfirm
|
|
|
|
|
+ title="确认忽略?"
|
|
|
|
|
+ onConfirm={() => {
|
|
|
|
|
+ DiagnoseStatusModel.list = modifyArrayList(
|
|
|
|
|
+ DiagnoseStatusModel.list,
|
|
|
|
|
+ {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'success',
|
|
|
|
|
+ text: '正常',
|
|
|
|
|
+ info: null,
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+ }}
|
|
|
|
|
+ >
|
|
|
|
|
+ <a>忽略</a>
|
|
|
|
|
+ </Popconfirm>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ }
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ ),
|
|
|
|
|
+ };
|
|
|
|
|
+ } else {
|
|
|
|
|
+ item = {
|
|
|
|
|
+ key: 'gateway',
|
|
|
|
|
+ name: '设备接入网关',
|
|
|
|
|
+ desc: desc,
|
|
|
|
|
+ status: 'success',
|
|
|
|
|
+ text: '正常',
|
|
|
|
|
+ info: null,
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
item = {
|
|
item = {
|
|
|
key: 'gateway',
|
|
key: 'gateway',
|
|
|
name: '设备接入网关',
|
|
name: '设备接入网关',
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
|
|
+ desc: desc,
|
|
|
status: 'error',
|
|
status: 'error',
|
|
|
text: '异常',
|
|
text: '异常',
|
|
|
info: (
|
|
info: (
|
|
@@ -341,7 +468,7 @@ const Status = observer((props: Props) => {
|
|
|
{
|
|
{
|
|
|
key: 'gateway',
|
|
key: 'gateway',
|
|
|
name: '设备接入网关',
|
|
name: '设备接入网关',
|
|
|
- desc: '诊断设备接入网关状态是否正常,禁用状态将导致连接失败',
|
|
|
|
|
|
|
+ desc: desc,
|
|
|
status: 'success',
|
|
status: 'success',
|
|
|
text: '正常',
|
|
text: '正常',
|
|
|
info: null,
|
|
info: null,
|
|
@@ -428,7 +555,7 @@ const Status = observer((props: Props) => {
|
|
|
} else {
|
|
} else {
|
|
|
let item: ListProps | undefined = undefined;
|
|
let item: ListProps | undefined = undefined;
|
|
|
const response = await service.detail(device?.parentId);
|
|
const response = await service.detail(device?.parentId);
|
|
|
- DiagnoseStatusModel.parent = resp.result;
|
|
|
|
|
|
|
+ DiagnoseStatusModel.parent = response.result;
|
|
|
if (response.status === 200) {
|
|
if (response.status === 200) {
|
|
|
if (response?.result?.state?.value === 'notActive') {
|
|
if (response?.result?.state?.value === 'notActive') {
|
|
|
item = {
|
|
item = {
|
|
@@ -704,7 +831,7 @@ const Status = observer((props: Props) => {
|
|
|
const diagnoseProductAuthConfig = () =>
|
|
const diagnoseProductAuthConfig = () =>
|
|
|
new Promise(async (resolve) => {
|
|
new Promise(async (resolve) => {
|
|
|
if (device?.productId) {
|
|
if (device?.productId) {
|
|
|
- const response = await service.queryDeviceConfig(device.productId);
|
|
|
|
|
|
|
+ const response = await service.queryProductConfig(device.productId);
|
|
|
if (response.status === 200 && response.result.length > 0) {
|
|
if (response.status === 200 && response.result.length > 0) {
|
|
|
DiagnoseStatusModel.configuration.product = response.result;
|
|
DiagnoseStatusModel.configuration.product = response.result;
|
|
|
const list = [...DiagnoseStatusModel.list];
|
|
const list = [...DiagnoseStatusModel.list];
|
|
@@ -1758,21 +1885,15 @@ const Status = observer((props: Props) => {
|
|
|
await diagnoseDeviceAuthConfig();
|
|
await diagnoseDeviceAuthConfig();
|
|
|
} else if (providerType === 'child-device') {
|
|
} else if (providerType === 'child-device') {
|
|
|
DiagnoseStatusModel.list = [...childInitList];
|
|
DiagnoseStatusModel.list = [...childInitList];
|
|
|
- await diagnoseNetwork();
|
|
|
|
|
await diagnoseGateway();
|
|
await diagnoseGateway();
|
|
|
DiagnoseStatusModel.percent = 20;
|
|
DiagnoseStatusModel.percent = 20;
|
|
|
await diagnoseParentDevice();
|
|
await diagnoseParentDevice();
|
|
|
await diagnoseProduct();
|
|
await diagnoseProduct();
|
|
|
- await diagnoseDevice();
|
|
|
|
|
DiagnoseStatusModel.percent = 40;
|
|
DiagnoseStatusModel.percent = 40;
|
|
|
|
|
+ await diagnoseDevice();
|
|
|
|
|
+ DiagnoseStatusModel.percent = 60;
|
|
|
await diagnoseProductAuthConfig();
|
|
await diagnoseProductAuthConfig();
|
|
|
await diagnoseDeviceAuthConfig();
|
|
await diagnoseDeviceAuthConfig();
|
|
|
- DiagnoseStatusModel.percent = 60;
|
|
|
|
|
- // await diagnoseModbus();
|
|
|
|
|
- // await diagnoseOpcua();
|
|
|
|
|
- // await diagnoseModbusState();
|
|
|
|
|
- // await diagnoseOpcuaState();
|
|
|
|
|
- // await diagnoseDataPointBind();
|
|
|
|
|
DiagnoseStatusModel.percent = 80;
|
|
DiagnoseStatusModel.percent = 80;
|
|
|
} else if (providerType === 'media') {
|
|
} else if (providerType === 'media') {
|
|
|
DiagnoseStatusModel.list = [...mediaInitList];
|
|
DiagnoseStatusModel.list = [...mediaInitList];
|
|
@@ -1981,6 +2102,7 @@ const Status = observer((props: Props) => {
|
|
|
info: null,
|
|
info: null,
|
|
|
});
|
|
});
|
|
|
InstanceModel.detail.parentId = parentId;
|
|
InstanceModel.detail.parentId = parentId;
|
|
|
|
|
+ setBindParentVisible(false);
|
|
|
}}
|
|
}}
|
|
|
/>
|
|
/>
|
|
|
)}
|
|
)}
|