|
@@ -3,7 +3,7 @@
|
|
<el-breadcrumb separator=">">
|
|
<el-breadcrumb separator=">">
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
- <a href="#">系统管理</a>
|
|
|
|
|
|
+ <a href="#">基础信息</a>
|
|
</el-breadcrumb-item>
|
|
</el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<el-breadcrumb-item>
|
|
<a href="/deviceInfo">设备管理</a>
|
|
<a href="/deviceInfo">设备管理</a>
|
|
@@ -30,19 +30,55 @@
|
|
></el-option>
|
|
></el-option>
|
|
</el-select>-->
|
|
</el-select>-->
|
|
<el-select-tree
|
|
<el-select-tree
|
|
|
|
+ size="mini"
|
|
:props="props"
|
|
:props="props"
|
|
:options="companyResult"
|
|
:options="companyResult"
|
|
- :value="queryModel.companyId"
|
|
|
|
- @getValue="getSelectedValue($event)"
|
|
|
|
|
|
+ v-model="queryModel.companyId"
|
|
height="200"
|
|
height="200"
|
|
></el-select-tree>
|
|
></el-select-tree>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="关联单位" prop="companyName">
|
|
|
|
+ <el-input type="text" size="mini" v-model="queryModel.companyName"></el-input>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="设备编号" prop="deviceNo">
|
|
<el-form-item label="设备编号" prop="deviceNo">
|
|
<el-input type="text" size="mini" v-model="queryModel.deviceNo"></el-input>
|
|
<el-input type="text" size="mini" v-model="queryModel.deviceNo"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="设备别名" prop="aliasName">
|
|
<el-form-item label="设备别名" prop="aliasName">
|
|
<el-input type="text" size="mini" v-model="queryModel.aliasName"></el-input>
|
|
<el-input type="text" size="mini" v-model="queryModel.aliasName"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="内部编号" prop="code">
|
|
|
|
+ <el-input type="text" size="mini" v-model="queryModel.code" style="width:100px;"></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="立柱颜色" prop="columnColor">
|
|
|
|
+ <el-select v-model="queryModel.columnColor" size="mini" style="width:100px;" clearable>
|
|
|
|
+ <el-option v-for="(item,index) in columnColorList"
|
|
|
|
+ :label="item.name" :value="item.value" :key="index"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="立柱高度" prop="columnHeight">
|
|
|
|
+ <el-select v-model="queryModel.columnHeight" size="mini" style="width:100px;" clearable>
|
|
|
|
+ <el-option v-for="(item,index) in columnHeightList"
|
|
|
|
+ :label="item.name" :value="item.value" :key="index"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="模块类型" prop="type">
|
|
|
|
+ <el-select v-model="queryModel.type" size="mini" style="width:100px;" clearable>
|
|
|
|
+ <el-option v-for="(item,index) in moduleTypeList"
|
|
|
|
+ :label="item.name" :value="item.value" :key="index"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="设备类型" prop="deviceType">
|
|
|
|
+ <el-select v-model="queryModel.deviceType" size="mini" style="width:100px;" clearable>
|
|
|
|
+ <el-option v-for="(item,index) in deviceTypeList"
|
|
|
|
+ :label="item.name" :value="item.value" :key="index"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="设备厂家" prop="manufacturer">
|
|
|
|
+ <el-select v-model="queryModel.manufacturer" size="mini" style="width:100px;" clearable>
|
|
|
|
+ <el-option v-for="(item,index) in manufacturerList"
|
|
|
|
+ :label="item.name" :value="item.value" :key="index"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
@@ -77,23 +113,29 @@
|
|
icon="el-icon-search"
|
|
icon="el-icon-search"
|
|
@click="showChannelListModal = true"
|
|
@click="showChannelListModal = true"
|
|
>设备连接列表</el-button>
|
|
>设备连接列表</el-button>
|
|
|
|
+ <el-button type="primary" size="small" plain icon="el-icon-download" @click="exportXls()">导出</el-button>
|
|
</el-row>
|
|
</el-row>
|
|
<el-table
|
|
<el-table
|
|
ref="formTable"
|
|
ref="formTable"
|
|
:data="tableData"
|
|
:data="tableData"
|
|
v-loading="loading"
|
|
v-loading="loading"
|
|
|
|
+ :element-loading-text="loadingText"
|
|
stripe
|
|
stripe
|
|
:height="tableHeight"
|
|
:height="tableHeight"
|
|
@sort-change="sortChange"
|
|
@sort-change="sortChange"
|
|
@selection-change="handleSelectionChange"
|
|
@selection-change="handleSelectionChange"
|
|
>
|
|
>
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
<el-table-column type="selection" width="55"></el-table-column>
|
|
- <el-table-column prop="deviceNo" label="设备编号" width="200" fixed="left"></el-table-column>
|
|
|
|
<el-table-column type="index" label="序号" :index="indexMethod" width="50"></el-table-column>
|
|
<el-table-column type="index" label="序号" :index="indexMethod" width="50"></el-table-column>
|
|
- <el-table-column prop="companyName" label="单位" width="280" show-overflow-tooltip></el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column prop="aliasName" label="设备别名" width="250" show-overflow-tooltip></el-table-column>
|
|
|
|
- <el-table-column prop="isOnline" label="运行状态" width="80">
|
|
|
|
|
|
+ <el-table-column prop="deviceNo" label="设备编号" width="200" sort-by="a.device_no"
|
|
|
|
+ sortable="custom"></el-table-column>
|
|
|
|
+ <el-table-column prop="code" label="内部编号" width="100" sort-by="a.code_"
|
|
|
|
+ sortable="custom"></el-table-column>
|
|
|
|
+ <el-table-column prop="companyName" label="单位" width="250" show-overflow-tooltip sort-by="b.name_"
|
|
|
|
+ sortable="custom"></el-table-column>
|
|
|
|
+ <el-table-column prop="aliasName" label="设备别名" width="200" show-overflow-tooltip></el-table-column>
|
|
|
|
+ <el-table-column prop="isOnline" label="运行状态" width="100" sort-by="a.is_online"
|
|
|
|
+ sortable="custom">
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
<div
|
|
<div
|
|
v-if="row.isOnline"
|
|
v-if="row.isOnline"
|
|
@@ -105,17 +147,27 @@
|
|
></div>
|
|
></div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="ipAddress" label="ip地址" width="150"></el-table-column>
|
|
|
|
- <el-table-column prop="port" label="端口" width="80"></el-table-column>
|
|
|
|
|
|
+ <!-- <el-table-column prop="ipAddress" label="ip地址" width="150"></el-table-column>
|
|
|
|
+ <el-table-column prop="port" label="端口" width="80"></el-table-column> -->
|
|
<!-- <el-table-column prop="unlockPassword" label="开锁密码" width="150"></el-table-column>
|
|
<!-- <el-table-column prop="unlockPassword" label="开锁密码" width="150"></el-table-column>
|
|
<el-table-column prop="codeAddress" label="二维码地址" width="180"></el-table-column>-->
|
|
<el-table-column prop="codeAddress" label="二维码地址" width="180"></el-table-column>-->
|
|
- <el-table-column prop="typeN" label="类型" width="80"></el-table-column>
|
|
|
|
- <el-table-column label="照片库">
|
|
|
|
|
|
+ <el-table-column prop="typeN" label="模块类型"></el-table-column>
|
|
|
|
+ <el-table-column prop="deviceTypeN" label="设备类型"></el-table-column>
|
|
|
|
+ <el-table-column prop="columnColorN" label="立柱颜色"></el-table-column>
|
|
|
|
+ <el-table-column prop="columnHeightN" label="立柱高度"></el-table-column>
|
|
|
|
+ <el-table-column prop="manufacturerN" label="设备厂家"></el-table-column>
|
|
|
|
+ <el-table-column prop="heartbeatUpdateTime" sort-by="a.heartbeat_update_time"
|
|
|
|
+ sortable="custom" label="心跳更新时间" width="160"></el-table-column>
|
|
|
|
+ <el-table-column label="照片库" width="120">
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
- <el-link type="primary" @click="handleViewPersonLib(row)">查看</el-link>
|
|
|
|
|
|
+ <el-link
|
|
|
|
+ v-if="row.manufacturer=='1'"
|
|
|
|
+ type="primary" @click="handleViewPersonLib(row)" icon="el-icon-view" :disabled="!row.isOnline">查看</el-link>
|
|
|
|
+
|
|
|
|
+ <el-link type="primary" @click="handleExistPersonImageInDevice(row)" icon="el-icon-refresh" :disabled="!row.isOnline">同步</el-link>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="操作" width="250">
|
|
|
|
|
|
+ <el-table-column label="操作" width="250" fixed="right">
|
|
<template slot-scope="{row}">
|
|
<template slot-scope="{row}">
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
@@ -127,12 +179,15 @@
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-link type="primary" @click="handlePoint(row)">定位</el-link>
|
|
<el-link type="primary" @click="handlePoint(row)">定位</el-link>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+ <!-- <el-col :span="6">
|
|
|
|
+ <el-link type="primary" @click="handleBindCompany(row)">单位关联</el-link>
|
|
|
|
+ </el-col> -->
|
|
</el-row>
|
|
</el-row>
|
|
<el-row>
|
|
<el-row>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-link type="primary" @click="handleBindPerson(row)">用户关联</el-link>
|
|
<el-link type="primary" @click="handleBindPerson(row)">用户关联</el-link>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="8" v-if="row.manufacturer=='1'">
|
|
<el-link type="primary" @click="handleEditRule(row)">验证规则</el-link>
|
|
<el-link type="primary" @click="handleEditRule(row)">验证规则</el-link>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
@@ -154,7 +209,6 @@
|
|
v-if="showModal"
|
|
v-if="showModal"
|
|
:businessKey="businessKey"
|
|
:businessKey="businessKey"
|
|
:title="modalTitle"
|
|
:title="modalTitle"
|
|
- :typeData="typeData"
|
|
|
|
:companyResult="companyResult"
|
|
:companyResult="companyResult"
|
|
@close="onDetailModalClose"
|
|
@close="onDetailModalClose"
|
|
></deviceInfo-detail>
|
|
></deviceInfo-detail>
|
|
@@ -174,6 +228,17 @@
|
|
:label-width="'100px'"
|
|
:label-width="'100px'"
|
|
style="text-align:left;"
|
|
style="text-align:left;"
|
|
>
|
|
>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col>
|
|
|
|
+ <el-form-item label="开门模式">
|
|
|
|
+ <el-radio-group v-model="ruleModel.mode">
|
|
|
|
+ <el-radio :label="0">校验通过</el-radio>
|
|
|
|
+ <el-radio :label="1">刷脸</el-radio>
|
|
|
|
+ <el-radio :label="2">远程</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
<el-row>
|
|
<el-row>
|
|
<el-col>
|
|
<el-col>
|
|
<el-form-item label="安全帽">
|
|
<el-form-item label="安全帽">
|
|
@@ -287,21 +352,19 @@
|
|
v-if="showMapModal"
|
|
v-if="showMapModal"
|
|
:businessKey="businessKey"
|
|
:businessKey="businessKey"
|
|
:title="modalTitle"
|
|
:title="modalTitle"
|
|
- :typeData="typeData"
|
|
|
|
- :companyResult="companyResult"
|
|
|
|
@close="onDetailModalClose"
|
|
@close="onDetailModalClose"
|
|
></deviceInfo-map>
|
|
></deviceInfo-map>
|
|
|
|
+ <deviceInfo-channelList
|
|
|
|
+ v-if="showChannelListModal"
|
|
|
|
+ :companyResult="companyResult"
|
|
|
|
+ @close="onDetailModalClose"
|
|
|
|
+ ></deviceInfo-channelList>
|
|
<devicePhoto-list
|
|
<devicePhoto-list
|
|
:device="selectedDevice"
|
|
:device="selectedDevice"
|
|
v-if="showPhotoListModal"
|
|
v-if="showPhotoListModal"
|
|
@close="onDevicePhotoListClose"
|
|
@close="onDevicePhotoListClose"
|
|
>
|
|
>
|
|
</devicePhoto-list>
|
|
</devicePhoto-list>
|
|
- <deviceInfo-channelList
|
|
|
|
- v-if="showChannelListModal"
|
|
|
|
- :companyResult="companyResult"
|
|
|
|
- @close="onDetailModalClose"
|
|
|
|
- ></deviceInfo-channelList>
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
@@ -314,12 +377,12 @@ import deviceInfoApi from "@/api/base/deviceInfo";
|
|
import dataDictionaryApi from "@/api/sys/dataDictionary";
|
|
import dataDictionaryApi from "@/api/sys/dataDictionary";
|
|
import companyInfoApi from "@/api/base/companyInfo";
|
|
import companyInfoApi from "@/api/base/companyInfo";
|
|
import SelectTree from "@/components/SelectTree";
|
|
import SelectTree from "@/components/SelectTree";
|
|
-
|
|
|
|
|
|
+import pageUtil from "@/utils/page";
|
|
import NProgress from "nprogress"; // progress bar
|
|
import NProgress from "nprogress"; // progress bar
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
import "nprogress/nprogress.css"; // progress bar style
|
|
|
|
|
|
export default {
|
|
export default {
|
|
- name: "BaseDeviceInfoList",
|
|
|
|
|
|
+ name: 'BaseDeviceInfoList',
|
|
data() {
|
|
data() {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
@@ -334,9 +397,16 @@ export default {
|
|
queryModel: {
|
|
queryModel: {
|
|
deviceNo: "",
|
|
deviceNo: "",
|
|
aliasName: "",
|
|
aliasName: "",
|
|
- companyId: ""
|
|
|
|
|
|
+ companyId: "",
|
|
|
|
+ companyName: "",
|
|
|
|
+ code: "",
|
|
|
|
+ columnColor: "",
|
|
|
|
+ columnHeight: "",
|
|
|
|
+ moduleType: "",
|
|
|
|
+ deviceType: ""
|
|
},
|
|
},
|
|
loading: false,
|
|
loading: false,
|
|
|
|
+ loadingText: "加载中",
|
|
tableData: [],
|
|
tableData: [],
|
|
pageIndex: 1,
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
@@ -349,14 +419,12 @@ export default {
|
|
showModal: false,
|
|
showModal: false,
|
|
modalTitle: "",
|
|
modalTitle: "",
|
|
businessKey: "",
|
|
businessKey: "",
|
|
- typeData: [],
|
|
|
|
companyResult: [],
|
|
companyResult: [],
|
|
tableHeight: 400,
|
|
tableHeight: 400,
|
|
dialogVisible: false,
|
|
dialogVisible: false,
|
|
ruleDeviceId: "",
|
|
ruleDeviceId: "",
|
|
- // ruleList: [],
|
|
|
|
- // temperatureRule: "",
|
|
|
|
ruleModel: {
|
|
ruleModel: {
|
|
|
|
+ mode: "",
|
|
needCap: "",
|
|
needCap: "",
|
|
needMask: "",
|
|
needMask: "",
|
|
measureTemperature: "",
|
|
measureTemperature: "",
|
|
@@ -374,17 +442,49 @@ export default {
|
|
children: "children"
|
|
children: "children"
|
|
},
|
|
},
|
|
showMapModal: false,
|
|
showMapModal: false,
|
|
- showPhotoListModal: false,
|
|
|
|
showChannelListModal: false,
|
|
showChannelListModal: false,
|
|
- selectedDevice: {}
|
|
|
|
|
|
+ showPhotoListModal: false,
|
|
|
|
+ selectedDevice: {},
|
|
|
|
+ columnColorList: [],
|
|
|
|
+ columnHeightList: [],
|
|
|
|
+ moduleTypeList: [],
|
|
|
|
+ deviceTypeList: [],
|
|
|
|
+ manufacturerList: []
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
- var formData = new FormData();
|
|
|
|
- formData.append("catalogName", "设备类型");
|
|
|
|
- dataDictionaryApi.findByCatalogName(formData).then(response => {
|
|
|
|
|
|
+ dataDictionaryApi.findByCatalogName({
|
|
|
|
+ "catalogName" : "立柱颜色"
|
|
|
|
+ }).then(response => {
|
|
var jsonData = response.data;
|
|
var jsonData = response.data;
|
|
- this.typeData = jsonData.data;
|
|
|
|
|
|
+ this.columnColorList = jsonData.data;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ dataDictionaryApi.findByCatalogName({
|
|
|
|
+ "catalogName" : "立柱高度"
|
|
|
|
+ }).then(response => {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ this.columnHeightList = jsonData.data;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ dataDictionaryApi.findByCatalogName({"catalogName": "模块类型"})
|
|
|
|
+ .then(response => {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ this.moduleTypeList = jsonData.data;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ dataDictionaryApi.findByCatalogName({
|
|
|
|
+ "catalogName" : "设备类型"
|
|
|
|
+ }).then(response => {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ this.deviceTypeList = jsonData.data;
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ dataDictionaryApi.findByCatalogName({
|
|
|
|
+ "catalogName" : "设备厂家"
|
|
|
|
+ }).then(response => {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+ this.manufacturerList = jsonData.data;
|
|
});
|
|
});
|
|
|
|
|
|
var self = this;
|
|
var self = this;
|
|
@@ -401,9 +501,6 @@ export default {
|
|
indexMethod(index) {
|
|
indexMethod(index) {
|
|
return (this.pageIndex - 1) * this.pageSize + (index + 1);
|
|
return (this.pageIndex - 1) * this.pageSize + (index + 1);
|
|
},
|
|
},
|
|
- getSelectedValue(value) {
|
|
|
|
- this.queryModel.companyId = value;
|
|
|
|
- },
|
|
|
|
loadTree() {
|
|
loadTree() {
|
|
var formData = new FormData();
|
|
var formData = new FormData();
|
|
|
|
|
|
@@ -433,24 +530,60 @@ export default {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- changePage(pageIndex) {
|
|
|
|
|
|
+ changePage(pageIndex,exportFlag) {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
self.loading = true;
|
|
self.loading = true;
|
|
|
|
+ self.loadingText = "加载中...";
|
|
|
|
|
|
self.pageIndex = pageIndex;
|
|
self.pageIndex = pageIndex;
|
|
var formData = new FormData();
|
|
var formData = new FormData();
|
|
|
|
|
|
formData.append("pageIndex", self.pageIndex);
|
|
formData.append("pageIndex", self.pageIndex);
|
|
- formData.append("pageSize", self.pageSize);
|
|
|
|
|
|
+
|
|
|
|
+ if(exportFlag!=null) {
|
|
|
|
+ formData.append("exportFlag", 1);
|
|
|
|
+ formData.append("pageSize", 10000);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ formData.append("pageSize", self.pageSize);
|
|
|
|
+ }
|
|
|
|
|
|
formData.append("deviceNo", self.queryModel.deviceNo);
|
|
formData.append("deviceNo", self.queryModel.deviceNo);
|
|
formData.append("aliasName", self.queryModel.aliasName);
|
|
formData.append("aliasName", self.queryModel.aliasName);
|
|
- var companyId = self.queryModel.companyId;
|
|
|
|
- if (companyId == null) {
|
|
|
|
- companyId = "";
|
|
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.companyId != null) {
|
|
|
|
+ formData.append("companyId", self.queryModel.companyId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.companyName != null) {
|
|
|
|
+ formData.append("companyName", self.queryModel.companyName);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.code != null) {
|
|
|
|
+ formData.append("code", self.queryModel.code);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.columnColor != null) {
|
|
|
|
+ formData.append("columnColor", self.queryModel.columnColor);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.columnHeight != null) {
|
|
|
|
+ formData.append("columnHeight", self.queryModel.columnHeight);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.moduleType != null) {
|
|
|
|
+ formData.append("moduleType", self.queryModel.moduleType);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.deviceType != null) {
|
|
|
|
+ formData.append("deviceType", self.queryModel.deviceType);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.queryModel.manufacturer != null) {
|
|
|
|
+ formData.append("manufacturer", self.queryModel.manufacturer);
|
|
}
|
|
}
|
|
- formData.append("companyId", companyId);
|
|
|
|
|
|
+
|
|
|
|
|
|
if (this.field != null) {
|
|
if (this.field != null) {
|
|
formData.append("field", this.field);
|
|
formData.append("field", this.field);
|
|
@@ -464,29 +597,44 @@ export default {
|
|
.pageList(formData)
|
|
.pageList(formData)
|
|
.then(function(response) {
|
|
.then(function(response) {
|
|
self.loading = false;
|
|
self.loading = false;
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ if(jsonData.result) {
|
|
|
|
+ if(exportFlag){
|
|
|
|
+ //导出
|
|
|
|
+ self.$message({
|
|
|
|
+ showClose: true,
|
|
|
|
+ type: "success",
|
|
|
|
+ message: `报表已生成,<a href="${jsonData.data}">请点击链接下载</a>`,
|
|
|
|
+ dangerouslyUseHTMLString: true,
|
|
|
|
+ duration: 30000
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ //分页查看
|
|
|
|
+ var page = jsonData.data;
|
|
|
|
|
|
- var jsonData = response.data.data;
|
|
|
|
-
|
|
|
|
- self.tableData = jsonData.data;
|
|
|
|
- self.totalPages = jsonData.totalPages;
|
|
|
|
- self.totalElements = jsonData.recordsTotal;
|
|
|
|
-
|
|
|
|
- //45为分页栏的高度
|
|
|
|
- //页面高度-列表上面的高度-分页栏高度
|
|
|
|
- self.tableHeight =
|
|
|
|
- window.innerHeight - self.$refs.formTable.$el.offsetTop - 100;
|
|
|
|
|
|
+ self.tableData = page.data;
|
|
|
|
+ self.totalPages = page.totalPages;
|
|
|
|
+ self.totalElements = page.recordsTotal;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ self.$message.warning(jsonData.message + "");
|
|
|
|
+ }
|
|
})
|
|
})
|
|
.catch(error => {
|
|
.catch(error => {
|
|
self.loading = false;
|
|
self.loading = false;
|
|
- // self.$message.error(error + "");
|
|
|
|
});
|
|
});
|
|
},
|
|
},
|
|
pageSizeChange(pageSize) {
|
|
pageSizeChange(pageSize) {
|
|
this.pageSize = pageSize;
|
|
this.pageSize = pageSize;
|
|
},
|
|
},
|
|
sortChange(data) {
|
|
sortChange(data) {
|
|
- this.field = data.column.field;
|
|
|
|
- this.direction = data.order;
|
|
|
|
|
|
+ console.log(data);
|
|
|
|
+
|
|
|
|
+ this.field = data.column.sortBy;
|
|
|
|
+ this.direction = data.order == "ascending" ? "asc" : "desc";
|
|
|
|
|
|
this.changePage(this.pageIndex);
|
|
this.changePage(this.pageIndex);
|
|
},
|
|
},
|
|
@@ -568,6 +716,15 @@ export default {
|
|
this.changePage(this.pageIndex);
|
|
this.changePage(this.pageIndex);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ handleRestart(record) {
|
|
|
|
+ //重启
|
|
|
|
+ },
|
|
|
|
+ handleClear(record) {
|
|
|
|
+ //清楚人脸数据
|
|
|
|
+ },
|
|
|
|
+ handleQRcode(record) {
|
|
|
|
+ //二维码地址
|
|
|
|
+ },
|
|
handleEditRule(record) {
|
|
handleEditRule(record) {
|
|
var self = this;
|
|
var self = this;
|
|
self.loading = true;
|
|
self.loading = true;
|
|
@@ -598,6 +755,9 @@ export default {
|
|
self.ruleModel.maximum = temperatureRule.Maximum;
|
|
self.ruleModel.maximum = temperatureRule.Maximum;
|
|
self.ruleModel.preAlarmOffset = temperatureRule.PreAlarmOffset;
|
|
self.ruleModel.preAlarmOffset = temperatureRule.PreAlarmOffset;
|
|
self.ruleModel.alarmThreshold = temperatureRule.AlarmThreshold;
|
|
self.ruleModel.alarmThreshold = temperatureRule.AlarmThreshold;
|
|
|
|
+
|
|
|
|
+ console.log(jsonData.data);
|
|
|
|
+ self.ruleModel.mode = jsonData.data.mode;
|
|
} else {
|
|
} else {
|
|
self.loading = false;
|
|
self.loading = false;
|
|
self.$alert(jsonData.message, "提示", {
|
|
self.$alert(jsonData.message, "提示", {
|
|
@@ -612,6 +772,7 @@ export default {
|
|
if (valid) {
|
|
if (valid) {
|
|
var formData = new FormData();
|
|
var formData = new FormData();
|
|
formData.append("deviceInfoId", self.ruleDeviceId);
|
|
formData.append("deviceInfoId", self.ruleDeviceId);
|
|
|
|
+ formData.append("mode", self.ruleModel.mode);
|
|
formData.append("needCap", self.ruleModel.needCap);
|
|
formData.append("needCap", self.ruleModel.needCap);
|
|
formData.append("needMask", self.ruleModel.needMask);
|
|
formData.append("needMask", self.ruleModel.needMask);
|
|
formData.append(
|
|
formData.append(
|
|
@@ -645,6 +806,89 @@ export default {
|
|
this.businessKey = record.id;
|
|
this.businessKey = record.id;
|
|
this.showMapModal = true;
|
|
this.showMapModal = true;
|
|
},
|
|
},
|
|
|
|
+ handleBindPerson(record) {
|
|
|
|
+ var self = this;
|
|
|
|
+
|
|
|
|
+ this.$confirm(
|
|
|
|
+ "将" + record.companyName + "中所有关联用户关联到该设备?",
|
|
|
|
+ "提示",
|
|
|
|
+ {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning"
|
|
|
|
+ }
|
|
|
|
+ ).then(() => {
|
|
|
|
+ self.loading = true;
|
|
|
|
+ self.loadingText = "关联中...";
|
|
|
|
+
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append("deviceId", record.id);
|
|
|
|
+
|
|
|
|
+ //增加定时器查询关联进度
|
|
|
|
+ self.queryBindDeviceProgress(record.id);
|
|
|
|
+
|
|
|
|
+ deviceInfoApi.bindDeviceToPerson(formData).then(function(response) {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ self.loading = false;
|
|
|
|
+ self.loadingText = "";
|
|
|
|
+
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ self.$message.success("关联成功!新增关联用户数:" + jsonData.data);
|
|
|
|
+ } else {
|
|
|
|
+ self.$message.warning(jsonData.message);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ queryBindDeviceProgress(deviceId) {
|
|
|
|
+ var self = this;
|
|
|
|
+
|
|
|
|
+ deviceInfoApi.queryBindDeviceProgress(deviceId).then(response => {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ if (jsonData.result) {
|
|
|
|
+ self.loadingText =
|
|
|
|
+ "关联人员进度:" +
|
|
|
|
+ (jsonData.data == "null" ? "..." : jsonData.data);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (self.loading) {
|
|
|
|
+ //如果没有执行完成则1秒后继续查询
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ self.queryBindDeviceProgress(deviceId);
|
|
|
|
+ }, 1000);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ handleExistPersonImageInDevice(record) {
|
|
|
|
+ var self = this;
|
|
|
|
+
|
|
|
|
+ this.$confirm("确定更新【" + record.aliasName + "】关联用户图片是否存在设备中状态?此为耗时操作将在后台进行!", "提示", {
|
|
|
|
+ confirmButtonText: "确定",
|
|
|
|
+ cancelButtonText: "取消",
|
|
|
|
+ type: "warning"
|
|
|
|
+ }).then(() => {
|
|
|
|
+ self.loading = true;
|
|
|
|
+ self.loadingText = "提交中...";
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append("deviceId", record.id);
|
|
|
|
+
|
|
|
|
+ deviceInfoApi.existPersonImageInDevice(formData).then(function(response) {
|
|
|
|
+ var jsonData = response.data;
|
|
|
|
+
|
|
|
|
+ self.loading = false;
|
|
|
|
+ self.loadingText = "";
|
|
|
|
+
|
|
|
|
+ if(jsonData.result) {
|
|
|
|
+ self.$message.success(jsonData.message + "");
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ self.$message.warning(jsonData.message + "");
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
handleReboot(record) {
|
|
handleReboot(record) {
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
@@ -679,18 +923,25 @@ export default {
|
|
},
|
|
},
|
|
onDevicePhotoListClose (){
|
|
onDevicePhotoListClose (){
|
|
this.showPhotoListModal = false;
|
|
this.showPhotoListModal = false;
|
|
|
|
+ },
|
|
|
|
+ exportXls() {
|
|
|
|
+ this.changePage(1,true);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted: function() {
|
|
mounted: function() {
|
|
var self = this;
|
|
var self = this;
|
|
this.changePage(1);
|
|
this.changePage(1);
|
|
|
|
+
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
+ self.tableHeight = pageUtil.autoAdjustHeight(self.$refs.formTable.$el);
|
|
|
|
+ },1000);
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
"deviceInfo-detail": DeviceInfoDetail,
|
|
"deviceInfo-detail": DeviceInfoDetail,
|
|
- "el-select-tree": SelectTree,
|
|
|
|
|
|
+ "deviceInfo-channelList": DeviceInfoChannelList,
|
|
"deviceInfo-map": DeviceInfoMap,
|
|
"deviceInfo-map": DeviceInfoMap,
|
|
- "devicePhoto-list": DevicePhotoList,
|
|
|
|
- "deviceInfo-channelList": DeviceInfoChannelList
|
|
|
|
|
|
+ "el-select-tree": SelectTree,
|
|
|
|
+ "devicePhoto-list": DevicePhotoList
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|