wangxingyuan 9 months ago
parent
commit
83c2365d16
17 changed files with 831 additions and 404 deletions
  1. +24
    -0
      src/api/administration.js
  2. +29
    -30
      src/api/equipment/entry.js
  3. +24
    -0
      src/api/equipment/equipment.js
  4. +8
    -0
      src/api/equipment/equipment_type.js
  5. +1
    -1
      src/api/monitor/job.js
  6. +9
    -0
      src/api/point/point_mang.js
  7. +25
    -0
      src/api/point/site_management.js
  8. +4
    -2
      src/lang/en/index.js
  9. +11
    -0
      src/lang/en/prompt.json
  10. +5
    -1
      src/lang/zh/index.js
  11. +11
    -0
      src/lang/zh/prompt.json
  12. +113
    -16
      src/views/administration/administration.vue
  13. +236
    -96
      src/views/equipment/equipment.vue
  14. +62
    -38
      src/views/equipment/equipment_type.vue
  15. +2
    -0
      src/views/point/point_mang.vue
  16. +266
    -220
      src/views/point/site_management.vue
  17. +1
    -0
      vue.config.js

+ 24
- 0
src/api/administration.js View File

@ -54,3 +54,27 @@ export function getTreeProMainDevicePatrolEquSelect(query) {
method: 'get',
})
}
// 复制任务
export function getCopyTask(query) {
return request({
url: `/patrol/task/copyTask`,
method: 'get',
params: query
})
}
// 立即执行
export function getControlChange(query) {
return request({
url: `/patrol/taskstatus/controlChange`,
method: 'get',
params: query
})
}
// 任务下发
export function getTaskIsSue(query) {
return request({
url: `/patrol/task/issue`,
method: 'get',
params: query
})
}

+ 29
- 30
src/api/equipment/entry.js View File

@ -7,36 +7,35 @@ export function treeAreaDeviceSelect(query) {
})
}
export function devicetypeList(query) {
return request({
url: '/basedata/devicetype/list',
method: 'get',
params: {
powerMainEquFlag:'Yes'
}
})
}
return request({
url: '/basedata/devicetype/list',
method: 'get',
params: {
powerMainEquFlag: 'Yes'
}
})
}
export function deviceQuery(id) {
return request({
url:`/basedata/prodevmnt/device/${id}?id=${id}`,
method: 'get',
export function deviceQuery(id) {
return request({
url: `/basedata/prodevmnt/device/${id}?id=${id}`,
method: 'get',
// params: query
})
}
export function insertMainDeviceAndCommByDeviceType(data) {
return request({
url:`/basedata/prodevmnt/device/insertMainDeviceAndCommByDeviceType`,
method: 'post',
data:data
})
}
})
}
export function insertMainDeviceAndCommByDeviceType(data) {
return request({
url: `/basedata/prodevmnt/device/insertMainDeviceAndCommByDeviceType`,
method: 'post',
data: data
})
}
export function deviceRemove(id) {
console.log(id)
// return
return request({
url:`/basedata/prodevmnt/device/remove/${id}`,
method: 'post',
})
}
export function deviceRemove(id) {
console.log(id)
// return
return request({
url: `/basedata/prodevmnt/device/remove/${id}`,
method: 'post',
})
}

+ 24
- 0
src/api/equipment/equipment.js View File

@ -14,3 +14,27 @@ export function getList(query) {
params: query
})
}
// 区域名称选择Tree树
export function getTreeselect(query) {
return request({
url: '/basedata/area/treeselect',
method: 'get',
params: query
})
}
//
// 删除
export function postRemove(query) {
return request({
url: `/basedata/eqpbook/remove/${query}`,
method: 'post',
})
}
// 单条数据查询
export function getEqpbook(query) {
return request({
url: `/basedata/eqpbook/${query}`,
method: 'get',
})
}

+ 8
- 0
src/api/equipment/equipment_type.js View File

@ -0,0 +1,8 @@
import request from '@/utils/request';
export function getProDeviceTypeTreeSelect(query) {
return request({
url: '/basedata/devicetype/getProDeviceTypeTreeSelect',
method: 'get',
// params: query
})
}

+ 1
- 1
src/api/monitor/job.js View File

@ -29,7 +29,7 @@ export function addJob(data) {
// 修改定时任务调度
export function updateJob(data) {
return request({
url: '/monitor/job',
url: '/schedule/job/edit',
method: 'put',
data: data
})


+ 9
- 0
src/api/point/point_mang.js View File

@ -0,0 +1,9 @@
import request from '@/utils/request';
// 初始化树结构
export function getTreeAreaDeviceSelect(query) {
return request({
url: '/basedata/prodevmnt/device/treeAreaDeviceSelect',
method: 'get',
// params: query
})
}

+ 25
- 0
src/api/point/site_management.js View File

@ -0,0 +1,25 @@
import request from '@/utils/request';
// 初始化树结构
export function getTreeAreaDeviceSelect(query) {
return request({
url: '/basedata/prodevmnt/device/treeAreaDeviceSelect',
method: 'get',
// params: query
})
}
// 点击树结构查询
export function getMonitor(query) {
return request({
url: '/basedata/patrolpointmnt/patrolpoint/list/monitor',
method: 'get',
params: query
})
}
//
// 巡检类型
export function getPatroltypeList(query) {
return request({
url: `/basedata/patrolpointmnt/patroltype/list`,
method: 'get',
})
}

+ 4
- 2
src/lang/en/index.js View File

@ -18,7 +18,8 @@ import patroltype from './basedata/patrolpointmnt/patroltype.json';
import mainsystem from './basedata/bdconfig/mainsystem.json';
import algconvert from './basedata/bdconfig/algconvert.json';
import deviceconvert from './basedata/bdconfig/deviceconvert.json';
// 提示信息
import prompt from './prompt.json'
export default {
routerIl8n: {
homePage: 'homePage'
@ -93,5 +94,6 @@ export default {
patroltype:patroltype,
mainsystem:mainsystem,
algconvert:algconvert,
deviceconvert:deviceconvert
deviceconvert:deviceconvert,
prompt
}

+ 11
- 0
src/lang/en/prompt.json View File

@ -0,0 +1,11 @@
{
"success": {
"queryWasSuccessful":"query was successful",
"taskCopySuccess": "Task copied successfully",
"OperationSuccessful":"Operation successful"
},
"error": {
"PleaseSelectATime": "Please select a time",
"delete_Data":"Please select the data to be deleted"
}
}

+ 5
- 1
src/lang/zh/index.js View File

@ -17,6 +17,9 @@ import patroltype from './basedata/patrolpointmnt/patroltype.json';
import mainsystem from './basedata/bdconfig/mainsystem.json';
import algconvert from './basedata/bdconfig/algconvert.json';
import deviceconvert from './basedata/bdconfig/deviceconvert.json';
// 提示信息
import prompt from './prompt.json'
export default {
routerIl8n: {
homePage: '首页'
@ -90,5 +93,6 @@ export default {
patroltype:patroltype,
mainsystem:mainsystem,
algconvert:algconvert,
deviceconvert:deviceconvert
deviceconvert:deviceconvert,
prompt
}

+ 11
- 0
src/lang/zh/prompt.json View File

@ -0,0 +1,11 @@
{
"success": {
"queryWasSuccessful":"查询成功",
"taskCopySuccess": "任务复制成功",
"OperationSuccessful":"操作成功"
},
"error": {
"PleaseSelectATime": "请选择时间",
"delete_Data":"请选择要删除的数据"
}
}

+ 113
- 16
src/views/administration/administration.vue View File

@ -177,13 +177,21 @@
>
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<!-- 立即执行 -->
<el-button size="mini" type="text" icon="el-icon-edit">{{
$t("administration.ImmediateExecution")
}}</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleImmediateExecution(scope.row.taskId)"
>{{ $t("administration.ImmediateExecution") }}</el-button
>
<!-- 下发 -->
<el-button size="mini" type="text" icon="el-icon-edit">{{
$t("administration.issue")
}}</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleIssue(scope.row.taskId)"
>{{ $t("administration.issue") }}</el-button
>
<!-- 复制任务 -->
<el-button
size="mini"
@ -216,6 +224,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="init"
/>
<el-dialog :title="title" :visible.sync="dialogTableVisible">
<el-steps :active="active" style="margin-bottom: 20px">
@ -516,13 +525,16 @@
class="dialogTableVisibleStepQurey"
style="margin-bottom: 10px"
>
<el-input :placeholder="$t('share.content')" v-model="input3">
<el-input
:placeholder="$t('share.content')"
v-model="treeWatchInput"
>
</el-input>
<el-button
<!-- <el-button
slot="append"
icon="el-icon-search"
type="primary"
></el-button>
></el-button> -->
</div>
<el-tree
:data="selectTreeData"
@ -533,6 +545,7 @@
:props="defaultProps"
@check="selectTreeHandleCheckChange"
:check-strictly="true"
:filter-node-method="selectTreeDataWacth"
>
</el-tree>
</div>
@ -608,11 +621,17 @@
width="30%"
:before-close="handleClose"
>
<el-time-picker :placeholder="$t('share.PleaseChoose')+$t('administration.time')"> </el-time-picker>
<el-time-picker
v-model="copyTask.time"
format="HH:mm:ss"
value-format="HH:mm:ss"
:placeholder="$t('share.PleaseChoose') + $t('administration.time')"
>
</el-time-picker>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="copyDialogVisible = false"
>{{ $t('administration.Copy') }}</el-button
>
<el-button type="primary" @click="copyOk()">{{
$t("administration.Copy")
}}</el-button>
</span>
</el-dialog>
</div>
@ -627,6 +646,9 @@ import {
getAreaList,
getProDeviceTreeSelect,
getTreeProMainDevicePatrolEquSelect,
getCopyTask,
getControlChange,
getTaskIsSue,
} from "@/api/administration";
export default {
data() {
@ -814,8 +836,18 @@ export default {
},
],
},
copyTask: {
taskId: null,
time: null,
},
treeWatchInput: "",
};
},
watch: {
treeWatchInput(val) {
this.$refs.selectTree.filter(val);
},
},
mounted() {
this.init();
},
@ -827,6 +859,10 @@ export default {
this.loading = false;
this.dataList = res.rows;
this.total = res.total;
this.$message({
message: this.$t("prompt.success.queryWasSuccessful"),
type: "success",
});
}
});
},
@ -893,12 +929,26 @@ export default {
handleDeleteAll() {
if (this.ids.length <= 0) {
this.$message({
message: "请选择要删除的数据",
message: this.$t("prompt.error.delete_Data"),
type: "warning",
});
return;
} else {
console.log(this.ids);
console.log(this.ids.toString());
postRemove(this.ids.toString()).then((res) => {
if (res.code == 200) {
this.$message({
message: this.$t("prompt.success.queryWasSuccessful"),
type: "success",
});
this.init();
} else {
this.$message({
message: res.msg,
type: "warning",
});
}
});
}
},
//
@ -975,7 +1025,6 @@ export default {
getProDeviceTreeSelect(areaIdS.join(",")).then((res) => {
if (res.code == 200) {
this.proDeviceTreeSelect = res.data;
console.log(this.proDeviceTreeSelect);
}
});
}
@ -1021,6 +1070,7 @@ export default {
},
//
handleCopy(row) {
this.copyTask.taskId = row.taskId;
this.copyDialogVisible = true;
},
//
@ -1030,6 +1080,53 @@ export default {
handleClose() {
this.copyDialogVisible = false;
},
//
copyOk() {
console.log(this.copyTask.time);
if (this.copyTask.time) {
getCopyTask(this.copyTask).then((res) => {
if (res.code == 200) {
this.$message({
message: this.$t("prompt.success.taskCopySuccess"),
type: "success",
});
this.init();
this.copyDialogVisible = false;
}
});
} else {
this.$message.error(this.$t("prompt.error.PleaseSelectATime"));
}
},
//
handleImmediateExecution(taskId) {
getControlChange({ taskId }).then((res) => {
console.log(res, 111111111);
if (res.code == 200) {
this.$message({
message: this.$t("prompt.success.OperationSuccessful"),
type: "success",
});
}
});
},
//
handleIssue(taskId) {
getTaskIsSue({ taskId }).then((res) => {
if (res.code == 200) {
this.$message({
message: this.$t("prompt.success.OperationSuccessful"),
type: "success",
});
}
});
},
// Tree
selectTreeDataWacth(value, data) {
console.log(value, data, 11111111);
if (!value) return true;
return data.areaName.indexOf(value) !== -1;
},
},
};
</script>


+ 236
- 96
src/views/equipment/equipment.vue View File

@ -3,36 +3,36 @@
<el-form :inline="true" :model="queryParams" class="demo-form-inline">
<el-form-item :label="$t('equipment.DeviceType')">
<el-select
v-model="queryParams.region"
v-model="queryParams.type"
:placeholder="$t('share.PleaseChoose') + $t('equipment.DeviceType')"
>
<!-- <el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option> -->
<el-option
v-for="dict in deviceTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
<!-- <treeselect v-model="queryParams.region" :options="enabledDeptOptions" :show-count="true" placeholder="请选择归属部门" /> -->
</el-form-item>
<el-form-item :label="$t('equipment.EquipmentName')">
<el-input
v-model="queryParams.user"
v-model="queryParams.patroldeviceName"
:placeholder="$t('share.PleaseEnter') + $t('equipment.EquipmentName')"
></el-input>
</el-form-item>
<el-form-item :label="$t('equipment.EquipmentCode')">
<el-input
v-model="queryParams.user"
v-model="queryParams.patroldeviceCode"
:placeholder="$t('share.PleaseEnter') + $t('equipment.EquipmentCode')"
></el-input>
</el-form-item>
<el-form-item :label="$t('equipment.Manufacturer')">
<el-input
v-model="queryParams.user"
v-model="queryParams.manufacturer"
:placeholder="$t('share.PleaseEnter') + $t('equipment.Manufacturer')"
></el-input>
</el-form-item>
@ -67,7 +67,7 @@
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
@click="handleEdit(null,0)"
>{{ $t("share.edit") }}</el-button
>
</el-col>
@ -78,7 +78,7 @@
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
@click="handleDeleteAll"
>{{ $t("share.delete") }}</el-button
>
</el-col>
@ -102,12 +102,16 @@
>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-upload" size="mini">{{
<el-button type="primary" plain icon="el-icon-upload" size="mini" :disabled="uploadBtn">{{
$t("equipment.ModelSynchronization")
}}</el-button>
</el-col>
</el-row>
<el-table :data="tableData" style="width: 100%">
<el-table
:data="tableData"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
@ -115,7 +119,7 @@
fixed="left"
/>
<el-table-column
prop="date"
prop="patroldeviceName"
min-width="130px"
:label="$t('equipment.EquipmentName')"
align="center"
@ -123,7 +127,7 @@
>
</el-table-column>
<el-table-column
prop="name"
prop="patroldeviceCode"
min-width="130px"
:label="$t('equipment.EquipmentCode')"
align="center"
@ -131,7 +135,7 @@
>
</el-table-column>
<el-table-column
prop="address"
prop="videoNvrCode"
min-width="150px"
:label="$t('equipment.VideoNVREncoding')"
align="center"
@ -139,7 +143,7 @@
>
</el-table-column>
<el-table-column
prop="address"
prop="manufacturer"
min-width="110px"
:label="$t('equipment.Manufacturer')"
align="center"
@ -147,13 +151,14 @@
>
</el-table-column>
<el-table-column
prop="address"
prop="mainSystemCode"
min-width="150px"
:label="$t('equipment.MainSystemNumber')"
align="center"
fixed="left"
>
</el-table-column>
<!-- 变电站名称 -->
<el-table-column
prop="address"
min-width="140px"
@ -161,6 +166,7 @@
align="center"
>
</el-table-column>
<!-- 变电站编码 -->
<el-table-column
prop="address"
min-width="140px"
@ -168,133 +174,134 @@
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="areaName"
min-width="140px"
:label="$t('equipment.areaName')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="type"
min-width="110px"
:label="$t('equipment.DeviceType')"
align="center"
>
<template slot-scope="scope">
<el-tag>{{ typeFn(scope.row.type) }}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="address"
prop="deviceModel"
min-width="130px"
:label="$t('equipment.EquipmentModel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="useUnit"
min-width="110px"
:label="$t('equipment.UnitOfUse')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="deviceSource"
min-width="140px"
:label="$t('equipment.EquipmentSource')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="productionDate"
min-width="150px"
:label="$t('equipment.dateOfManufacture')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="productionCode"
min-width="130px"
:label="$t('equipment.factoryNumber')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="istransport"
min-width="150px"
:label="$t('equipment.IsItARotatingWheel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="useMode"
min-width="100px"
:label="$t('equipment.UseType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="videoMode"
min-width="100px"
:label="$t('equipment.VideoType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="place"
min-width="150px"
:label="$t('equipment.InstallationPosition')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="positionX"
min-width="180px"
:label="$t('equipment.RelativeSpatialPosition') + ' x'"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="positionY"
min-width="180px"
:label="$t('equipment.RelativeSpatialPosition') + ' y'"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="positionZ"
min-width="180px"
:label="$t('equipment.RelativeSpatialPosition') + ' z'"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="robotsCode"
min-width="130px"
:label="$t('equipment.BelongingRobot')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="ipAddr"
min-width="100px"
:label="$t('equipment.ipAddress')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
prop="port"
min-width="100px"
:label="$t('equipment.port')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
:label="$t('equipment.user')"
align="center"
>
<el-table-column prop="user" :label="$t('equipment.user')" align="center">
</el-table-column>
<el-table-column
prop="address"
prop="password"
min-width="100px"
:label="$t('equipment.password')"
align="center"
@ -311,14 +318,14 @@
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
@click="handleEdit(scope.row.eqpbookId, 1)"
>{{ $t("share.edit") }}</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
@click="handleDelete(scope.row.eqpbookId)"
>{{ $t("share.delete") }}</el-button
>
<el-button size="mini" type="text" icon="el-icon-s-promotion">{{
@ -335,6 +342,7 @@
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="init"
/>
<el-dialog
@ -343,55 +351,54 @@
width="70%"
:before-close="handleClose"
>
<el-row :gutter="10">
<el-form
:model="dialogForm"
class="demo-form-inline"
label-position="right"
label-width="190px"
>
<el-form :model="dialogForm" label-width="190px">
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.areaName')">
<el-select
v-model="dialogForm.region"
<treeselect
v-model="dialogForm.areaName"
:options="areaNameOptions"
:show-count="true"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.areaName')
"
style="display: block; width: 100%"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
</el-select>
/>
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item :label="$t('equipment.DeviceType')">
<el-select
v-model="dialogForm.region"
v-model="dialogForm.type"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.areaName')
$t('share.PleaseChoose') + $t('equipment.DeviceType')
"
style="display: block; width: 100%"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
<el-option
v-for="dict in deviceTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col span="8">
<el-form-item :label="$t('equipment.EquipmentName')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.type"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.EquipmentName')
"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.EquipmentCode')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.patroldeviceCode"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.EquipmentCode')
"
@ -401,7 +408,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.EquipmentModel')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.deviceModel"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.EquipmentModel')
"
@ -411,27 +418,28 @@
<el-col span="8">
<el-form-item :label="$t('equipment.Manufacturer')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.manufacturer"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.Manufacturer')
"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item
:label="$t('equipment.mainSystem')"
class="mainSystem"
>
<el-select
v-model="dialogForm.region"
v-model="dialogForm.mainSystemCode"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.mainSystem')
"
style="display: block; width: 100%"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
</el-select>
</el-form-item>
</el-col>
@ -439,7 +447,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.UnitOfUse')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.useUnit"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.UnitOfUse')
"
@ -449,17 +457,20 @@
<el-col span="8">
<el-form-item :label="$t('equipment.EquipmentSource')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.deviceSource"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.EquipmentSource')
"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.dateOfManufacture')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.productionDate"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.dateOfManufacture')
"
@ -469,7 +480,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.factoryNumber')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.productionCode"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.factoryNumber')
"
@ -479,7 +490,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.IsItARotatingWheel')">
<el-select
v-model="dialogForm.region"
v-model="dialogForm.istransport"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.IsItARotatingWheel')
"
@ -490,10 +501,13 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.UseType')">
<el-select
v-model="dialogForm.region"
v-model="dialogForm.useMode"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.UseType')
"
@ -507,7 +521,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.VideoType')">
<el-select
v-model="dialogForm.region"
v-model="dialogForm.videoMode"
:placeholder="
$t('share.PleaseChoose') + $t('equipment.VideoType')
"
@ -521,17 +535,20 @@
<el-col span="8">
<el-form-item :label="$t('equipment.InstallationPosition')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.place"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.InstallationPosition')
"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.BelongingRobot')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.robotsCode"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.BelongingRobot')
"
@ -543,7 +560,7 @@
:label="$t('equipment.RelativeSpatialPosition') + 'x'"
>
<el-input
v-model="dialogForm.region"
v-model="dialogForm.positionX"
:placeholder="
$t('share.PleaseEnter') +
$t('equipment.RelativeSpatialPosition') +
@ -557,7 +574,7 @@
:label="$t('equipment.RelativeSpatialPosition') + 'y'"
>
<el-input
v-model="dialogForm.region"
v-model="dialogForm.positionY"
:placeholder="
$t('share.PleaseEnter') +
$t('equipment.RelativeSpatialPosition') +
@ -566,12 +583,15 @@
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item
:label="$t('equipment.RelativeSpatialPosition') + 'z'"
>
<el-input
v-model="dialogForm.region"
v-model="dialogForm.positionZ"
:placeholder="
$t('share.PleaseEnter') +
$t('equipment.RelativeSpatialPosition') +
@ -583,7 +603,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.ipAddress')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.ipAddr"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.ipAddress')
"
@ -593,15 +613,18 @@
<el-col span="8">
<el-form-item :label="$t('equipment.port')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.port"
:placeholder="$t('share.PleaseEnter') + $t('equipment.port')"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col span="8">
<el-form-item :label="$t('equipment.user')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.user"
:placeholder="$t('share.PleaseEnter') + $t('equipment.user')"
></el-input>
</el-form-item>
@ -609,7 +632,7 @@
<el-col span="8">
<el-form-item :label="$t('equipment.password')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.password"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.password')
"
@ -619,16 +642,15 @@
<el-col span="8">
<el-form-item :label="$t('equipment.VideoNVREncoding')">
<el-input
v-model="dialogForm.region"
v-model="dialogForm.videoNvrCode"
:placeholder="
$t('share.PleaseEnter') + $t('equipment.VideoNVREncoding')
"
></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"
@ -640,9 +662,19 @@
</template>
<script >
import { getDeviceType,getList } from "@/api/equipment/equipment";
import {
getDeviceType,
getList,
getTreeselect,
postRemove,
getEqpbook,
} from "@/api/equipment/equipment";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "equipment",
components: { Treeselect },
computed: {},
data() {
return {
queryParams: {
@ -656,26 +688,44 @@ export default {
dialogForm: {},
// //
// enabledDeptOptions: undefined,
//
deviceTypeOptions: [],
// Tree
areaNameOptions: [],
ids: [],
single: true,
multiple: true,
uploadBtn:true,
};
},
mounted() {
// this.init();
this.init();
this.getDeviceTypeInit();
getTreeselect().then((res) => {
if (res.code == 200) {
this.areaNameOptions = res.data;
}
});
},
methods: {
init() {
getList(this.queryParams).then((res) => {
console.log(res, 11111);
if (res.code == 200) {
this.tableData = res.rows;
this.total = res.total;
this.$message({
message: "查询成功",
type: "success",
});
}
});
},
getDeviceTypeInit(){
getDeviceType().then(res=>{
console.log(res)
})
getDeviceTypeInit() {
getDeviceType().then((res) => {
if (res.code == 200) {
this.deviceTypeOptions = res.data;
}
});
},
handleClose() {
this.dialogVisible = false;
@ -683,6 +733,96 @@ export default {
handleAdd() {
this.dialogVisible = true;
},
//
handleQuery() {
this.queryParams.pageNum = 1;
this.init();
},
//
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
};
this.init();
},
typeFn(type) {
for (let i = 0; i <= this.deviceTypeOptions.length; i++) {
if (this.deviceTypeOptions[i].dictValue == type) {
return this.deviceTypeOptions[i].dictLabel;
}
}
},
//
handleDelete(eqpbookId) {
postRemove(eqpbookId).then((res) => {
if (res.code == 200) {
this.$message({
// message: this.$t("prompt.success.queryWasSuccessful"),
message: "删除成功",
type: "success",
});
this.init();
}
});
},
//
handleDeleteAll() {
console.log(this.ids, 1111111);
if (this.ids.length <= 0) {
this.$message({
message: this.$t("prompt.error.delete_Data"),
type: "warning",
});
return;
} else {
postRemove(this.ids.toString()).then((res) => {
if (res.code == 200) {
this.$message({
message: this.$t("prompt.success.queryWasSuccessful"),
type: "success",
});
this.init();
this.multiple = true;
} else {
this.$message({
message: res.msg,
type: "warning",
});
}
});
}
},
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.eqpbookId);
if (this.ids.length >= 0) {
this.multiple = false;
}
if (this.ids.length == 1) {
this.single = false;
this.uploadBtn = false;
} else {
this.single = true;
this.uploadBtn = true;
}
},
//
handleEdit(id=null,type) {
if (type == 0) {
let eqpbookId = this.ids[0];
this.getEqpbookFn(eqpbookId);
} else {
this.getEqpbookFn(id);
}
},
getEqpbookFn(id) {
getEqpbook(id).then((res) => {
if (res.code == 200) {
this.dialogVisible = true;
this.dialogForm = res.data;
}
});
},
},
};
</script>


+ 62
- 38
src/views/equipment/equipment_type.vue View File

@ -10,31 +10,32 @@
:placeholder="$t('equipment_type.EnterKeywordsForFiltering')"
v-model="queryParams"
></el-input>
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
default-expand-all
>
<span slot-scope="{ node, data }" class="slot-node">
<template>
<i
class="el-icon-box"
v-if="data.type == 1 || data.type == 2 || data.type == 3"
></i>
<i
class="el-icon-s-operation"
v-if="data.type == 4"
:class="{
'el-icon-folder': !node.expanded,
'el-icon-folder-opened': node.expanded,
'el-icon-s-operation': data.type === 4,
}"
></i>
<span>{{ node.label }}</span>
</template>
</span>
</el-tree>
<div class="treeScroll">
<el-tree
:data="treeData"
:props="defaultProps"
@node-click="handleNodeClick"
>
<span slot-scope="{ node, data }" class="slot-node">
<template>
<i
class="el-icon-box"
v-if="data.type == 1 || data.type == 2 || data.type == 3"
></i>
<i
class="el-icon-s-operation"
v-if="data.type == 4"
:class="{
'el-icon-folder': !node.expanded,
'el-icon-folder-opened': node.expanded,
'el-icon-s-operation': data.type === 4,
}"
></i>
<span>{{ node.label }}</span>
</template>
</span>
</el-tree>
</div>
</el-col>
<el-col :span="19">
<div class="right">
@ -119,7 +120,9 @@
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="subunit()">{{ $t("share.confirm") }}</el-button>
<el-button type="primary" @click="subunit()">{{
$t("share.confirm")
}}</el-button>
</el-form-item>
</el-form>
</div>
@ -130,7 +133,7 @@
</template>
<script>
import { getProDeviceTypeTreeSelect } from "@/api/equipment/equipment_type";
export default {
name: "equipment_type",
data() {
@ -165,7 +168,7 @@ export default {
],
defaultProps: {
children: "children",
label: "label",
label: "devicetypeName",
},
rightTitle: this.$t("equipment_type.AddDevice"),
queryParams: "",
@ -202,6 +205,17 @@ export default {
},
};
},
mounted() {
getProDeviceTypeTreeSelect().then((res) => {
if (res.code == 200) {
this.treeData = res.data;
this.$message({
message: "查询成功",
type: "success",
});
}
});
},
methods: {
handleNodeClick(data) {
console.log(data.type);
@ -225,16 +239,16 @@ export default {
close() {
this.show = false;
},
subunit(){
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
}
subunit() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
},
};
</script>
@ -266,4 +280,14 @@ export default {
cursor: pointer;
}
}
.treeScroll {
height: 80vh;
// overflow: hidden;
overflow-y: scroll;
padding: 10px;
margin-top: 10px;
}
::v-deep .el-tree-node__content {
height: 30px;
}
</style>

+ 2
- 0
src/views/point/point_mang.vue View File

@ -175,6 +175,7 @@
</template>
<script>
export default {
data() {
return {
@ -228,6 +229,7 @@ export default {
intelligenceTypeData: [],
};
},
methods: {
// *
addRedStar(h, { column }) {


+ 266
- 220
src/views/point/site_management.vue View File

@ -72,31 +72,40 @@
fixed="left"
align="center"
:render-header="addRedStar"
prop="patrolpointName"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.patrolpointName"
:placeholder="
$t('share.PleaseEnter') + $t('site_management.PointName')
"
></el-input>
</template>
</el-table-column>
<el-table-column
:label="$t('site_management.MonitoringContent')"
width="150"
align="center"
prop="patrolContent"
>
</el-table-column>
<el-table-column :label="$t('site_management.purpose')">
<el-table-column
:label="$t('site_management.purpose')"
prop="purpose"
>
</el-table-column>
<el-table-column
:label="$t('site_management.MonitoringNumber')"
width="200"
align="center"
:render-header="addRedStar"
prop="patrolpointCode"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.patrolpointCode"
:placeholder="
$t('share.PleaseEnter') +
$t('site_management.MonitoringPointNumber')
@ -104,6 +113,7 @@
></el-input>
</template>
</el-table-column>
<el-table-column
:label="$t('site_management.InspectionType')"
width="150"
@ -112,13 +122,20 @@
>
<template slot-scope="scope">
<el-select
multiple
v-model="scope.row.patrolTypeId"
:placeholder="
$t('share.PleaseChoose') +
$t('site_management.InspectionType')
"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
<el-option
v-for="item in InspectionTypeData"
:key="item.patrolTypeId"
:label="item.patrolTypeName"
:value="item.patrolTypeId"
>
</el-option>
</el-select>
</template>
</el-table-column>
@ -128,14 +145,23 @@
align="center"
:render-header="addRedStar"
>
<el-select
:placeholder="
$t('share.PleaseChoose') + $t('site_management.ImportantLevel')
"
>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
</el-select>
<template slot-scope="scope">
<el-select
:placeholder="
$t('share.PleaseChoose') +
$t('site_management.ImportantLevel')
"
v-model="scope.row.pointImptLevel"
>
<el-option
v-for="item in pointImptLevelData"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
:label="$t('site_management.3DCoordinates')"
@ -144,9 +170,9 @@
>
<template slot-scope="scope">
<div class="tableXYZ">
<el-input placeholder="x(-20,20)"></el-input>
<el-input placeholder="y(66)"></el-input>
<el-input placeholder="z(-6,20)"></el-input>
<el-input placeholder="x(-20,20)" v-model="scope.row.positionX"></el-input>
<el-input placeholder="y(66)" v-model="scope.row.positionY"></el-input>
<el-input placeholder="z(-6,20)" v-model="scope.row.positionZ"></el-input>
</div>
</template>
</el-table-column>
@ -539,12 +565,9 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
>{{ $t("share.search") }}</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini">{{
$t("share.search")
}}</el-button>
<el-button icon="el-icon-refresh" size="mini">{{
$t("share.reset")
}}</el-button>
@ -556,177 +579,177 @@
@row-click="InspectionChangeCurrentRow"
highlight-current-row
>
<el-table-column
type="selection"
width="55"
align="center"
fixed="left"
/>
<el-table-column
prop="date"
min-width="130px"
:label="$t('equipment.EquipmentName')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="name"
min-width="130px"
:label="$t('equipment.EquipmentCode')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.VideoNVREncoding')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.Manufacturer')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.MainSystemNumber')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.SubstationName')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.SubstationCode')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.areaName')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.DeviceType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.EquipmentModel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.UnitOfUse')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.EquipmentSource')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.dateOfManufacture')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.factoryNumber')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.IsItARotatingWheel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.UseType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.VideoType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.InstallationPosition')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.BelongingRobot')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.ipAddress')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.port')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
:label="$t('equipment.user')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.password')"
align="center"
>
</el-table-column>
<el-table-column
type="selection"
width="55"
align="center"
fixed="left"
/>
<el-table-column
prop="date"
min-width="130px"
:label="$t('equipment.EquipmentName')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="name"
min-width="130px"
:label="$t('equipment.EquipmentCode')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.VideoNVREncoding')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.Manufacturer')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.MainSystemNumber')"
align="center"
fixed="left"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.SubstationName')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.SubstationCode')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.areaName')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.DeviceType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.EquipmentModel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="110px"
:label="$t('equipment.UnitOfUse')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="140px"
:label="$t('equipment.EquipmentSource')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.dateOfManufacture')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.factoryNumber')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.IsItARotatingWheel')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.UseType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.VideoType')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="150px"
:label="$t('equipment.InstallationPosition')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="130px"
:label="$t('equipment.BelongingRobot')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.ipAddress')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.port')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
:label="$t('equipment.user')"
align="center"
>
</el-table-column>
<el-table-column
prop="address"
min-width="100px"
:label="$t('equipment.password')"
align="center"
>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
@ -784,6 +807,12 @@
<script >
import videoPlayer from "@/components/videoPlayer/index.vue";
import { getToken } from "@/utils/auth";
import {
getTreeAreaDeviceSelect,
getMonitor,
getPatroltypeList,
} from "@/api/point/site_management";
export default {
name: "SiteManagement",
components: {
@ -791,35 +820,12 @@ export default {
},
data() {
return {
treeData: [
{
label: "一级 1",
type: 1,
children: [
{
label: "二级 1-1",
children: [
{
label: "三级 1-1-1",
children: [
{
label: "四级 1-1-1-1",
type: 4,
},
{
label: "四级 1-1-1-2",
type: 4,
},
],
},
],
},
],
},
],
treeData: [],
defaultProps: {
children: "children",
label: "label",
label: function (data) {
return data.areaName || data.deviceName;
},
},
tableData: [],
activeName: "first",
@ -929,9 +935,36 @@ export default {
//
// url: import.meta.env.VITE_APP_BASE_API + "/zhxx/device/import",
},
InspectionTypeData: [],
pointImptLevelData:[
{
value: 'I',
label: 'I类'
},
{
value: 'II',
label: 'II类'
},
{
value: "III",
label: "III类"
}
]
};
},
mounted() {},
mounted() {
getTreeAreaDeviceSelect().then((res) => {
if (res.code == 200) {
this.treeData = res.data;
}
}),
getPatroltypeList().then((res) => {
if (res.code == 200) {
this.InspectionTypeData = res.rows;
}
});
},
methods: {
// *
addRedStar(h, { column }) {
@ -940,7 +973,20 @@ export default {
h("span", " " + column.label),
];
},
handleNodeClick() {},
handleNodeClick(data, e) {
let obj = {
areaId: data.areaId,
};
if (data.deviceId) {
obj.deviceId = data.deviceId;
}
getMonitor(obj).then((res) => {
console.log(res, 11111111);
if (res.code == 200) {
this.tableData = res.rows;
}
});
},
changeCurrentRow(row) {
this.currentRowId = row.id; // ID


+ 1
- 0
vue.config.js View File

@ -38,6 +38,7 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:8080`,
target:'http://192.168.1.116:18888',
// target:'http://192.168.1.116:18890',
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''


Loading…
Cancel
Save