完成合并
This commit is contained in:
parent
c3fe409c04
commit
c7e168c840
|
|
@ -6,4 +6,58 @@ export function getDzWarnList(query) {
|
|||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/* 近电感应设备列表 */
|
||||
export function getJdList(query) {
|
||||
return request({
|
||||
url: '/bracelet/consControl/getJdList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/* 线路属性 */
|
||||
export function getLineStats(query) {
|
||||
return request({
|
||||
url: '/system/select/getLineStats',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/* 线路属性的电压等级 */
|
||||
export function getVoltageLevelByLineStats(query) {
|
||||
return request({
|
||||
url: '/system/select/getVoltageLevelByLineStats',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/* 添加近电感应配置 */
|
||||
export function configJdDevice(data) {
|
||||
return request({
|
||||
url: '/bracelet/consControl/configJdDevice',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
/* 查询近电感应设备配置 */
|
||||
export function getConfigJdDevice(query) {
|
||||
return request({
|
||||
url: '/bracelet/consControl/getConfigJdDevice',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/* 近电感应设备预警信息 */
|
||||
export function getJdWarnList(query) {
|
||||
return request({
|
||||
url: '/bracelet/consControl/getJdWarnList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 539 B |
Binary file not shown.
|
After Width: | Height: | Size: 297 B |
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -62,7 +62,7 @@ service.interceptors.request.use(config => {
|
|||
const s_url = sessionObj.url; // 请求地址
|
||||
const s_data = sessionObj.data; // 请求数据
|
||||
const s_time = sessionObj.time; // 请求时间
|
||||
const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
|
||||
const interval = 3000; // 间隔时间(ms),小于此时间视为重复提交
|
||||
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
|
||||
const message = '数据正在处理,请勿重复提交';
|
||||
console.warn(`[${s_url}]: ` + message)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
placeholder="请输入班组名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组长" prop="teamLeader">
|
||||
|
|
@ -23,6 +24,7 @@
|
|||
placeholder="请输入班组长"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="项目部" prop="roleCode">
|
||||
|
|
@ -88,10 +90,15 @@
|
|||
|
||||
<el-table v-loading="loading" :data="teamList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="班组名称" align="center" prop="teamName" />
|
||||
<el-table-column label="所属工程 " align="center" prop="proName" />
|
||||
<el-table-column label="班组长" align="center" prop="teamLeader" />
|
||||
<el-table-column label="班组成员(在施\未施)" align="center" prop="workNum">
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="班组名称" align="center" prop="teamName" sortable/>
|
||||
<el-table-column label="所属工程 " align="center" prop="proName" sortable/>
|
||||
<el-table-column label="班组长" align="center" prop="teamLeader" sortable/>
|
||||
<el-table-column label="班组成员(在施\未施)" align="center" prop="workNum" sortable>
|
||||
<template slot-scope="scope">
|
||||
<div style="cursor: pointer;" @click="openTeamTable(scope.row)">
|
||||
<span style="color: green;">{{ scope.row.workNum }}/</span><span>{{ scope.row.notWorkNum }}</span>
|
||||
|
|
@ -100,13 +107,13 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="班组状态" align="center" prop="teamStatus">
|
||||
<el-table-column label="班组状态" align="center" prop="teamStatus" sortable>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.teamStatus==0" style="color: green;">{{ stateList[Number(scope.row.teamStatus)] }}</div>
|
||||
<div v-if="scope.row.teamStatus==1" style="color: red;">{{ stateList[Number(scope.row.teamStatus)] }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180" sortable>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
|
|
@ -126,13 +133,13 @@
|
|||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['basic:team:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['basic:team:del']"
|
||||
>删除</el-button>
|
||||
>删除</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
|
|
@ -166,6 +173,7 @@
|
|||
placeholder="请输入姓名"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
maxlength="30"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别" prop="sex">
|
||||
|
|
@ -274,7 +282,7 @@
|
|||
<el-table-column label="电话" align="center" prop="phone" />
|
||||
<el-table-column label="操作" align="center" >
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="delUser(scope.row)">删除</el-button>
|
||||
<el-button size="mini" type="text" @click="delUser(scope.row)" v-if="scope.row.isLeader!=0">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -385,6 +393,7 @@
|
|||
// 表单参数
|
||||
form: {},
|
||||
teamUserList:[],//新增编辑弹窗-班组成员
|
||||
leaderData:{},//新增编辑弹窗-班组长
|
||||
chosenUser:[],//人员列表右侧-选中人员
|
||||
peopleDataList:[],//接口获取-所有人员列表
|
||||
peopleList:[],//人员列表左侧-表格渲染
|
||||
|
|
@ -411,7 +420,7 @@
|
|||
|
||||
created() {
|
||||
this.getProList();
|
||||
this.getPersonList();
|
||||
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -422,12 +431,12 @@
|
|||
});
|
||||
},
|
||||
// 获取人员列表
|
||||
getPersonList(){
|
||||
getPersonList(teamId){
|
||||
let param = {
|
||||
type:1,//1.全部人员 2.未分配人员 3.已分配人员 4.班组长
|
||||
type:4,//1.全部人员 2.未分配人员 3.已分配人员 4.班组长
|
||||
roleCode: this.$store.getters.roleCode,
|
||||
departId: this.$store.getters.departId,
|
||||
teamId: this.$store.getters.teamId,
|
||||
teamId: teamId
|
||||
}
|
||||
getPersonList(param).then(response => {
|
||||
this.personList = response.data;
|
||||
|
|
@ -440,8 +449,21 @@
|
|||
if(item.id==val){
|
||||
this.form.teamLeader = item.name;
|
||||
this.form.leaderPhone = item.phone;
|
||||
this.leaderData=item;
|
||||
}
|
||||
})
|
||||
this.leaderData.isLeader=0;//是否班组长,0是1否
|
||||
if(this.teamUserList.length==0){
|
||||
this.teamUserList.push(this.leaderData)
|
||||
}else{
|
||||
var index = this.teamUserList.findIndex(uItem => {return uItem.isLeader == 0})
|
||||
if(index>-1){
|
||||
this.teamUserList.splice(index,1)
|
||||
this.teamUserList.unshift(this.leaderData)
|
||||
}else{
|
||||
this.teamUserList.unshift(this.leaderData)
|
||||
}
|
||||
}
|
||||
},
|
||||
/** 查询班组列表 */
|
||||
getList() {
|
||||
|
|
@ -594,21 +616,15 @@
|
|||
},
|
||||
//选择人员弹窗-确认
|
||||
submitPeople(){
|
||||
// let arrs=[...this.chosenUser,...this.teamUserList];
|
||||
// //根据id去重
|
||||
// let map=new Map();
|
||||
// for(let item of arrs){
|
||||
// if(!map.has(item.id)){
|
||||
// map.set(item.id,item)
|
||||
// }
|
||||
// }
|
||||
// let newArr=[...map.values()];
|
||||
// console.log(this.teamUserList)
|
||||
// console.log(this.chosenUser)
|
||||
this.teamUserList = this.chosenUser;
|
||||
|
||||
this.teamUserList.unshift(this.leaderData)
|
||||
this.openPeople = false;
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.getPersonList("");
|
||||
this.reset();
|
||||
this.checkList = []
|
||||
this.open = true;
|
||||
|
|
@ -618,12 +634,20 @@
|
|||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const teamId = row.teamId
|
||||
this.getPersonList(teamId);
|
||||
getTeamInfo({id:teamId}).then(response => {
|
||||
this.form = response.data;
|
||||
this.personList.forEach(item=>{
|
||||
if(item.id==this.form.teamLeaderId){
|
||||
this.leaderData=item;
|
||||
this.leaderData.isLeader=0;
|
||||
}
|
||||
})
|
||||
this.$set(this.form,'proId',response.data.proId+'')
|
||||
this.checkList = response.data.checkList;
|
||||
// this.$set(this.form,'sex',response.data.sex+'')
|
||||
this.teamUserList = response.data.checkList.slice();
|
||||
this.teamUserList.unshift(this.leaderData)
|
||||
this.open = true;
|
||||
this.title = "修改班组";
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<div class="left">
|
||||
<div class="layout">
|
||||
<el-input placeholder="请输入关键字" prefix-icon="el-icon-search" v-model="keyWord" maxlength="30"
|
||||
style="margin: 10px 10px 10px 0;width: 80%;" @keydown="searchData"></el-input>
|
||||
style="margin: 10px 10px 10px 0;width: 80%;" @keydown.enter="searchData"></el-input>
|
||||
<el-button type="primary" plain @click="searchData">查询</el-button>
|
||||
</div>
|
||||
<div class="dev-box" v-if="isShow">
|
||||
|
|
@ -19,7 +19,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="no-data-box layout" v-if="!isShow">
|
||||
<!-- <div>暂无数据</div> -->
|
||||
<el-empty description="暂无数据"></el-empty>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -45,124 +44,137 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="dev-config"></div>
|
||||
<div class="warn-info"></div>
|
||||
</div>
|
||||
|
||||
<el-dialog title="近电感应配置" :visible.sync="dialogVisible" :append-to-body="true" :draggable="true"
|
||||
:destroy-on-close="true" width="40%" custom-class="my-dialog1">
|
||||
<div style="width: 100%;height: 50vh;overflow: auto;">
|
||||
<div v-for="(item, index) in hoistSetUpData" style="width: 100%;height: 60%;">
|
||||
<div>配置{{ index + 1 }}</div>
|
||||
<el-form label-width="120px">
|
||||
<el-form-item label="线路属性:">
|
||||
<el-radio-group v-model="item.lineType" class="ml-4" @change="lineTypeRadioChange(item, index)"
|
||||
style="margin-top: 10px;">
|
||||
<el-radio label="1" size="large">交流</el-radio>
|
||||
<el-radio label="2" size="large">直流</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级:">
|
||||
<el-radio-group v-model="item.level" class="ml-4" @change="levelRadioChange(item, index)"
|
||||
style="margin-top: 10px;">
|
||||
<el-radio label="1" size="large">≤10kV</el-radio>
|
||||
<el-radio label="2" size="large">20~35kV</el-radio>
|
||||
<el-radio label="3" size="large">66~110kV</el-radio>
|
||||
<el-radio label="4" size="large">220kV</el-radio>
|
||||
<el-radio label="5" size="large">330kV</el-radio>
|
||||
<el-radio label="6" size="large">500kV</el-radio>
|
||||
<el-radio label="7" size="large">700kV</el-radio>
|
||||
<el-radio label="8" size="large">1000kV</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="报警距离:">
|
||||
<el-input v-model="item.distance" type="number" placeholder="请输入" style="width: 25%;">
|
||||
</el-input> 米
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-button @click="delHoistSetUp(index)" v-if="index > 0" style="margin-left: 80%;">删除配置</el-button>
|
||||
<div class="dev-config layout" v-if="isShow2">
|
||||
<div class="jd-dev-info layout" v-for="item in jdDevArr" :key="item.devId">
|
||||
<div class="jd-dev-detail layout">
|
||||
<img :src="jd_dev_img" alt="近电感应设备" style="margin-right: 5px;">
|
||||
<span>{{ item.devName }}</span>
|
||||
</div>
|
||||
<div class="jd-dev-elec layout">
|
||||
<img :src="battery1" alt="电量" v-if="parseFloat(item.electricQuantity) == 100">
|
||||
<img :src="battery2" alt="电量"
|
||||
v-if="parseFloat(item.electricQuantity) < 100 && parseFloat(item.electricQuantity) >= 20">
|
||||
<img :src="battery3" alt="电量" v-if="parseFloat(item.electricQuantity) < 20">
|
||||
<span style="margin-left: 5px;">{{ item.electricQuantity }}%</span>
|
||||
</div>
|
||||
<div class="jd-dev-img layout"><img :src="config" alt="配置" @click.stop="clickJdDev(item.devId)"></div>
|
||||
</div>
|
||||
</div>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button type="primary" @click="addHoistSetUp">添加配置</el-button>
|
||||
<el-button @click="provingDialogClose">取消</el-button>
|
||||
<el-button type="primary" @click="provingDialogConfirm">确定</el-button>
|
||||
</span>
|
||||
</template>
|
||||
<div class="no-data-box layout" v-if="!isShow2">
|
||||
<el-empty description="暂无数据"></el-empty>
|
||||
</div>
|
||||
<div class="warn-info">
|
||||
<el-table :data="tableData" style="width: 100%" max-height="400">
|
||||
<el-table-column prop="devName" label="设备名称" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="warnTime" label="告警时间" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="warnContent" label="告警内容" align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog title="近电感应配置" :visible.sync="dialogVisible" :append-to-body="true" width="700px"
|
||||
@close="closeConfigItem">
|
||||
<el-form ref="form" :model="form" :rules="rules" v-loading="loading" element-loading-text="数据加载中,请稍候..."
|
||||
element-loading-spinner="el-icon-loading">
|
||||
<div class="form-box">
|
||||
<div v-for="(data, index) in form.configItems" :key="data.key">
|
||||
<h3>配置{{ index + 1 }}</h3>
|
||||
<el-form-item label="线路属性" :key="data.key">
|
||||
<el-radio-group v-model="data.configType">
|
||||
<el-radio v-for="item in configTypeArr" :label="item.id" :key="item.id"
|
||||
@change="chooseConfigType(index, data.configType)">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="电压等级">
|
||||
<el-radio-group v-model="data.voltageLevel" v-if="data.configType === 'communication'">
|
||||
<el-radio v-for="item in jlArr" :label="item.id" :key="item.id">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-radio-group v-model="data.voltageLevel" v-if="data.configType === 'direct_current'">
|
||||
<el-radio v-for="item in zlArr" :label="item.id" :key="item.id">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="报警距离" :prop="'configItems.' + index + '.distance'" :rules="[
|
||||
{
|
||||
required: true, message: '报警距离不能为空', trigger: 'blur'
|
||||
},
|
||||
{
|
||||
pattern: /^(?:100(?:\.0{1,2})?|[1-9][0-9]?(?:\.\d{1,2})?|1(?:\.\d{1,2})?)$/,
|
||||
message: '距离为(1-100米)区间内,最多保留两位小数',
|
||||
trigger: 'blur'
|
||||
}
|
||||
]">
|
||||
<el-col :span="12">
|
||||
<el-input v-model="data.distance"></el-input>
|
||||
</el-col>
|
||||
<el-col :span="5" style="margin-left: 10px;"><el-button type="danger" plain
|
||||
@click.prevent="removeConfig(data)"><i class="el-icon-delete"></i></el-button></el-col>
|
||||
</el-form-item>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
<el-button type="primary" @click="addConfigItem">添加配置</el-button>
|
||||
<el-button @click="closeConfigItem">取消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getDzWarnList } from "@/api/construction/manage/hoistManage.js";
|
||||
import { getDzWarnList, getJdList, getLineStats, getVoltageLevelByLineStats, configJdDevice, getConfigJdDevice,getJdWarnList } from "@/api/construction/manage/hoistManage.js";
|
||||
import dz_dev_img from "@/assets/images/dz_dev.png";
|
||||
import dz_dev_warn_img from "@/assets/images/test.jpg";
|
||||
import jd_dev_img from "@/assets/images/jd_dev.png";
|
||||
export default {
|
||||
name: 'hoistManage',
|
||||
data() {
|
||||
return {
|
||||
keyWord: '',
|
||||
// 吊装设备图片
|
||||
dz_dev_img: dz_dev_img,
|
||||
dz_dev_warn_img: dz_dev_warn_img,
|
||||
jd_dev_img: jd_dev_img,
|
||||
//保存左侧 吊装设备信息
|
||||
devArr: [],
|
||||
// 近电感应设备
|
||||
jdDevArr: [],
|
||||
// 吊装预警设备无数据时处理
|
||||
isShow: true,
|
||||
isShow: false,
|
||||
// 近电感应设备无数据时处理
|
||||
isShow2: false,
|
||||
// 线路属性配置
|
||||
configTypeArr: [],
|
||||
// 交流属性的电压等级
|
||||
jlArr: [],
|
||||
// 直流属性的电压等级
|
||||
zlArr: [],
|
||||
loading: false,
|
||||
//电量图标
|
||||
batterys: {
|
||||
battery1: require('../../../../assets/images/battery1.png'),
|
||||
battery2: require('../../../../assets/images/battery2.png'),
|
||||
battery3: require('../../../../assets/images/battery3.png'),
|
||||
},
|
||||
|
||||
//近电感应设备信息
|
||||
vibeDeviceData: [
|
||||
{
|
||||
name: '近电感应设备DX-J431',
|
||||
battery: 90
|
||||
},
|
||||
{
|
||||
name: '近电感应设备DX-J431',
|
||||
battery: 30
|
||||
}
|
||||
],
|
||||
|
||||
battery1: require('../../../../assets/images/battery1.png'),
|
||||
battery2: require('../../../../assets/images/battery2.png'),
|
||||
battery3: require('../../../../assets/images/battery3.png'),
|
||||
config: require('../../../../assets/images/config.png'),
|
||||
//右侧表格数据
|
||||
tableData: [
|
||||
{
|
||||
deviceName: '近电感应设备DX-J431',
|
||||
time: '2024-03-03 13:26',
|
||||
reason: '低于安全施工sss距离'
|
||||
},
|
||||
{
|
||||
deviceName: '近电感应设备DX-J431',
|
||||
time: '2024-03-03 13:26',
|
||||
reason: '低于安全施工sss距离'
|
||||
},
|
||||
{
|
||||
deviceName: '近电感应设备DX-J431',
|
||||
time: '2024-03-03 13:26',
|
||||
reason: '低于安全施工sss距离'
|
||||
},
|
||||
],
|
||||
tableData: [],
|
||||
//对话框开关
|
||||
dialogVisible: false,
|
||||
|
||||
//保存近电感应设置信息
|
||||
hoistSetUpData: [
|
||||
{
|
||||
lineType: '1',
|
||||
level: '1',
|
||||
distance: 10
|
||||
}
|
||||
]
|
||||
form: {
|
||||
devId: null,
|
||||
configItems: [],
|
||||
},
|
||||
// 表单校验
|
||||
rules: {},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.laodDzWarnList();
|
||||
this.loadJdList();
|
||||
this.loadJdWarnList();
|
||||
},
|
||||
methods: {
|
||||
/* 加载吊装预警设备列表 */
|
||||
|
|
@ -180,12 +192,173 @@ export default {
|
|||
}
|
||||
}).catch(() => { })
|
||||
},
|
||||
/* 加载近电感应设备 */
|
||||
loadJdList() {
|
||||
let params = {};
|
||||
getJdList(params).then((res) => {
|
||||
const data = res.data
|
||||
this.jdDevArr = data;
|
||||
if (data && data.length > 0) {
|
||||
this.isShow2 = true;
|
||||
} else {
|
||||
this.isShow2 = false;
|
||||
}
|
||||
}).catch(() => { })
|
||||
},
|
||||
/* 加载近电感应设备预警信息 */
|
||||
loadJdWarnList() {
|
||||
let params = {};
|
||||
getJdWarnList(params).then((res) => {
|
||||
const data = res.data
|
||||
this.tableData = data;
|
||||
}).catch(() => { })
|
||||
},
|
||||
/* 加载线路属性 */
|
||||
async loadLineStats() {
|
||||
this.loading = true;
|
||||
let params = {};
|
||||
await getLineStats(params).then((res) => {
|
||||
const data = res.data
|
||||
this.configTypeArr = data;
|
||||
}).catch(() => { })
|
||||
await this.loadVoltageLevelByLineStats(this.configTypeArr[0].id);
|
||||
await this.loadVoltageLevelByLineStats(this.configTypeArr[1].id);
|
||||
await this.loadConfigJdDevice();
|
||||
if (this.form.configItems.length === 0) {
|
||||
this.form.configItems.push({
|
||||
configType: this.configTypeArr[0].id,
|
||||
voltageLevel: this.jlArr[0].id,
|
||||
distance: 1,
|
||||
key: Date.now()
|
||||
});
|
||||
}
|
||||
this.loading = false;
|
||||
// loading.close();
|
||||
},
|
||||
/* 线路属性的电压等级 */
|
||||
async loadVoltageLevelByLineStats(param) {
|
||||
let params = {
|
||||
id: param
|
||||
};
|
||||
await getVoltageLevelByLineStats(params).then((res) => {
|
||||
const data = res.data
|
||||
if (param === 'communication') { // 交流
|
||||
this.jlArr = data;
|
||||
} else if (param === 'direct_current') { // 直流
|
||||
this.zlArr = data;
|
||||
}
|
||||
}).catch(() => { })
|
||||
},
|
||||
/* 加载近电感应设备配置 */
|
||||
async loadConfigJdDevice() {
|
||||
const params = {
|
||||
'devId': this.form.devId
|
||||
}
|
||||
await getConfigJdDevice(params).then((res) => {
|
||||
const data = res.data
|
||||
data.forEach((item, index) => {
|
||||
this.form.configItems.push({
|
||||
configType: item.configType,
|
||||
voltageLevel: item.voltageLevel,
|
||||
distance: item.distance,
|
||||
key: Date.now()
|
||||
})
|
||||
})
|
||||
}).catch(() => { })
|
||||
},
|
||||
searchData() {
|
||||
this.laodDzWarnList();
|
||||
},
|
||||
/* 吊装设备点击事件 */
|
||||
clickDev(id) {
|
||||
|
||||
},
|
||||
/* 近电感应设备点击事件 */
|
||||
clickJdDev(id) {
|
||||
this.form.devId = id;
|
||||
this.loadLineStats();
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
// 添加配置
|
||||
addConfigItem() {
|
||||
if (this.form.configItems.length >= 10) {
|
||||
return this.$message({
|
||||
message: '最多添加十个配置',
|
||||
type: 'warning'
|
||||
});
|
||||
}
|
||||
this.form.configItems.push({
|
||||
configType: this.configTypeArr[0].id,
|
||||
voltageLevel: this.jlArr[0].id,
|
||||
distance: 1,
|
||||
key: Date.now()
|
||||
});
|
||||
},
|
||||
// 删除配置
|
||||
removeConfig(item) {
|
||||
if (this.form.configItems.length === 1) {
|
||||
return this.$message({
|
||||
message: '最少保留一个配置',
|
||||
type: 'warning'
|
||||
});
|
||||
}
|
||||
var index = this.form.configItems.indexOf(item)
|
||||
if (index !== -1) {
|
||||
this.form.configItems.splice(index, 1)
|
||||
}
|
||||
},
|
||||
// 关闭配置
|
||||
closeConfigItem() {
|
||||
this.form.configItems.splice(0);
|
||||
this.form.devId = null;
|
||||
this.dialogVisible = false;
|
||||
},
|
||||
// 线路属性切换
|
||||
chooseConfigType(index, val) {
|
||||
if (val === 'communication') { // 交流
|
||||
this.form.configItems[index].voltageLevel = this.jlArr[0].id
|
||||
} else if (val === 'direct_current') { // 直流
|
||||
this.form.configItems[index].voltageLevel = this.zlArr[0].id
|
||||
}
|
||||
|
||||
},
|
||||
//验证对话框确认按钮
|
||||
submitForm: function () {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
const flag = this.hasDuplicates();
|
||||
if (flag) {
|
||||
return this.$message({
|
||||
message: '存在相同配置',
|
||||
type: 'warning'
|
||||
});
|
||||
}
|
||||
const obj = {
|
||||
'devId': this.form.devId,
|
||||
'configItems': this.form.configItems
|
||||
}
|
||||
configJdDevice(obj).then((res) => {
|
||||
this.$modal.msgSuccess(res.msg);
|
||||
this.closeConfigItem();
|
||||
}).catch((res) => { });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 判断是否存在相同数据
|
||||
hasDuplicates() {
|
||||
const configTypes = new Set();
|
||||
const voltageLevels = new Set();
|
||||
const distances = new Set();
|
||||
for (const item of this.form.configItems) {
|
||||
if (configTypes.has(item.configType) && voltageLevels.has(item.voltageLevel) && distances.has(item.distance)) {
|
||||
return true;
|
||||
}
|
||||
configTypes.add(item.configType);
|
||||
voltageLevels.add(item.voltageLevel);
|
||||
distances.add(item.distance);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
//搜索框点击
|
||||
searchClick() {
|
||||
|
|
@ -324,17 +497,51 @@ export default {
|
|||
|
||||
.dev-config {
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
border: 1px solid #cccccc;
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.jd-dev-info {
|
||||
width: 100%;
|
||||
min-height: 50px;
|
||||
flex-direction: row;
|
||||
|
||||
}
|
||||
|
||||
.jd-dev-detail {
|
||||
width: calc(100% - 130px);
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.jd-dev-elec {
|
||||
width: 100px;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.jd-dev-img {
|
||||
width: 30px;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.warn-info {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
min-height: calc(100% - 300px);
|
||||
max-height: calc(100% - 150px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.form-box {
|
||||
min-height: 12vh;
|
||||
max-height: 70vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -111,7 +111,7 @@
|
|||
</div>
|
||||
|
||||
|
||||
<el-dialog title="选择抽检范围" :visible.sync="dialogVisible1" :append-to-body="true" width="500px">
|
||||
<el-dialog title="选择抽检范围" :visible.sync="dialogVisible1" :append-to-body="true" width="500px" @close="dialogVisible1 = false">
|
||||
<el-input placeholder="请输入关键字" prefix-icon="el-icon-search" v-model="filterText2" maxlength="30"
|
||||
style="margin-bottom: 10px;"></el-input>
|
||||
<el-tree :data="teamTreeData" class="tree-container tree" icon="el-icon-search" show-checkbox node-key="id"
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
</el-dialog>
|
||||
|
||||
|
||||
<el-dialog title="自动验证人脸配置" :visible.sync="dialogVisible2" :append-to-body="true" width="500px">
|
||||
<el-dialog title="自动验证人脸配置" :visible.sync="dialogVisible2" :append-to-body="true" width="500px" @close="closeTimeConfig">
|
||||
<el-form ref="form" :model="form" :label-position="labelPosition" :rules="rules">
|
||||
<el-form-item label="模式选择">
|
||||
<el-radio-group v-model="form.configType">
|
||||
|
|
|
|||
|
|
@ -2,8 +2,17 @@
|
|||
<div class="realTimeManage">
|
||||
<div class="left">
|
||||
<!-- 云平台 -->
|
||||
<div class="cloud-platform-box">
|
||||
|
||||
<div class="cloud-platform-box layout">
|
||||
<div id="platform-left" class="layout">
|
||||
<div class="left-right-btn-box layout"></div>
|
||||
</div>
|
||||
<div id="platform-center">
|
||||
<div id="center-btn-top-box"></div>
|
||||
<div id="center-btn-bottom-box"></div>
|
||||
</div>
|
||||
<div id="platform-right">
|
||||
<div class="left-right-btn-box layout"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 球机树 -->
|
||||
<div class="tree-box tree">
|
||||
|
|
@ -56,8 +65,6 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
// 默认播放窗口
|
||||
winDom: 'videoPlayer1',
|
||||
//页码
|
||||
pageNo: 1,
|
||||
//每页条数
|
||||
|
|
@ -167,7 +174,7 @@ export default {
|
|||
// 点击球机时触发的事件
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
//给梳妆街头不同层级设置不同的icon
|
||||
renderContent(h, { node, data }) {
|
||||
// 根据层级使用不同的图标
|
||||
|
|
@ -217,12 +224,48 @@ export default {
|
|||
|
||||
.cloud-platform-box {
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
height: 35%;
|
||||
justify-items: center;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
#platform-left,
|
||||
#platform-right {
|
||||
width: 15%;
|
||||
height: 52%;
|
||||
margin-top: 30%;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.left-right-btn-box {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url("../../../../assets/images/video/left_btn.png") no-repeat;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
#platform-center {
|
||||
width: 67%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#center-btn-top-box {
|
||||
width: 100%;
|
||||
height: 80%;
|
||||
background: url("../../../../assets/images/video/back.png") no-repeat;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
#center-btn-bottom-box {
|
||||
width: 100%;
|
||||
height: 20%;
|
||||
background: url("../../../../assets/images/video/back3.png") no-repeat;
|
||||
background-position: center center !important;
|
||||
}
|
||||
|
||||
.tree-box {
|
||||
width: 100%;
|
||||
height: calc(100% - 250px);
|
||||
height: 65%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue