|
@@ -23,13 +23,25 @@
|
|
|
</el-icon>
|
|
</el-icon>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-menu default-active="0" background-color="#f5f5f5">
|
|
|
|
|
- <el-menu-item v-for="(item,val) in regionList" :index="val.toString()" :key="item.ID" @click="changeRegion(item)">
|
|
|
|
|
|
|
+ <el-menu
|
|
|
|
|
+ default-active="0"
|
|
|
|
|
+ background-color="#f5f5f5"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-menu-item
|
|
|
|
|
+ v-for="(item,val) in regionList"
|
|
|
|
|
+ :key="item.ID"
|
|
|
|
|
+ :index="val.toString()"
|
|
|
|
|
+ @click="changeRegion(item)"
|
|
|
|
|
+ >
|
|
|
<div style="display: flex;justify-content: space-between; align-items: center;width: 100%">
|
|
<div style="display: flex;justify-content: space-between; align-items: center;width: 100%">
|
|
|
- <span>{{item.lot_name}}}</span>
|
|
|
|
|
|
|
+ <span>{{ item.lot_name }}}</span>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-icon @click.stop="openRegion('编辑区域', item)"><edit/></el-icon>
|
|
|
|
|
- <el-icon @click.stop="deleteRegion(item.ID)"><delete/></el-icon>
|
|
|
|
|
|
|
+ <el-icon @click.stop="openRegion('编辑区域', item)">
|
|
|
|
|
+ <edit />
|
|
|
|
|
+ </el-icon>
|
|
|
|
|
+ <el-icon @click.stop="deleteRegion(item.ID)">
|
|
|
|
|
+ <delete />
|
|
|
|
|
+ </el-icon>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</el-menu-item>
|
|
</el-menu-item>
|
|
@@ -60,26 +72,14 @@
|
|
|
新增
|
|
新增
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Edit"
|
|
|
|
|
- text
|
|
|
|
|
- type="warning"
|
|
|
|
|
- >编辑</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Delete"
|
|
|
|
|
- text
|
|
|
|
|
- type="danger"
|
|
|
|
|
- >删除</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button
|
|
<el-button
|
|
|
icon="Refresh"
|
|
icon="Refresh"
|
|
|
text
|
|
text
|
|
|
type="primary"
|
|
type="primary"
|
|
|
- >刷新</el-button>
|
|
|
|
|
|
|
+ @click="getGuardBoothList"
|
|
|
|
|
+ >刷新
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-table
|
|
<el-table
|
|
@@ -110,7 +110,7 @@
|
|
|
align="center"
|
|
align="center"
|
|
|
prop="description"
|
|
prop="description"
|
|
|
/>
|
|
/>
|
|
|
- <el-table-column label="操作">
|
|
|
|
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<el-button
|
|
<el-button
|
|
|
text
|
|
text
|
|
@@ -155,28 +155,17 @@
|
|
|
text
|
|
text
|
|
|
type="success"
|
|
type="success"
|
|
|
@click="openChannel('通道新增','')"
|
|
@click="openChannel('通道新增','')"
|
|
|
- >新增</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Edit"
|
|
|
|
|
- text
|
|
|
|
|
- type="warning"
|
|
|
|
|
- >编辑</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Delete"
|
|
|
|
|
- text
|
|
|
|
|
- type="danger"
|
|
|
|
|
- >删除</el-button>
|
|
|
|
|
|
|
+ >新增
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button
|
|
<el-button
|
|
|
icon="Refresh"
|
|
icon="Refresh"
|
|
|
text
|
|
text
|
|
|
type="primary"
|
|
type="primary"
|
|
|
- >刷新</el-button>
|
|
|
|
|
|
|
+ @click="getChannelList"
|
|
|
|
|
+ >刷新
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-table
|
|
<el-table
|
|
@@ -188,21 +177,21 @@
|
|
|
label="编码"
|
|
label="编码"
|
|
|
align="center"
|
|
align="center"
|
|
|
width="100"
|
|
width="100"
|
|
|
- prop="ID"
|
|
|
|
|
|
|
+ prop="channel_code"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
label="名称"
|
|
label="名称"
|
|
|
align="center"
|
|
align="center"
|
|
|
width="250"
|
|
width="250"
|
|
|
- prop="channel_code"
|
|
|
|
|
|
|
+ prop="channel_name"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
|
|
+ v-slot="scope"
|
|
|
label="进出方向"
|
|
label="进出方向"
|
|
|
align="center"
|
|
align="center"
|
|
|
width="150"
|
|
width="150"
|
|
|
- #default="scope"
|
|
|
|
|
>
|
|
>
|
|
|
- {{scope.row.direction === 'in' ? '进' : '出'}}
|
|
|
|
|
|
|
+ {{ scope.row.direction === 'in' ? '进' : '出' }}
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
label="是否允许临时车进出"
|
|
label="是否允许临时车进出"
|
|
@@ -211,16 +200,17 @@
|
|
|
>
|
|
>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<el-button
|
|
<el-button
|
|
|
- plain
|
|
|
|
|
- :type="scope.row.allow_temporary ? 'success' : 'danger'">
|
|
|
|
|
- {{scope.row.allow_temporary ? '允许' : '不允许'}}
|
|
|
|
|
|
|
+ plain
|
|
|
|
|
+ :type="scope.row.allow_temporary ? 'success' : 'danger'"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ scope.row.allow_temporary ? '允许' : '不允许' }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- label="备注"
|
|
|
|
|
|
|
+ label="岗亭id"
|
|
|
align="center"
|
|
align="center"
|
|
|
- prop="description"
|
|
|
|
|
|
|
+ prop="booth_id"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
v-slot="scope"
|
|
v-slot="scope"
|
|
@@ -232,12 +222,14 @@
|
|
|
icon="edit"
|
|
icon="edit"
|
|
|
text
|
|
text
|
|
|
@click="openChannel('通道编辑', scope.row)"
|
|
@click="openChannel('通道编辑', scope.row)"
|
|
|
- >编辑</el-button>
|
|
|
|
|
|
|
+ >编辑
|
|
|
|
|
+ </el-button>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
icon="delete"
|
|
icon="delete"
|
|
|
text
|
|
text
|
|
|
- >删除</el-button>
|
|
|
|
|
|
|
+ >删除
|
|
|
|
|
+ </el-button>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
<div style="width: 100%;display: flex;justify-content: end">
|
|
<div style="width: 100%;display: flex;justify-content: end">
|
|
@@ -245,7 +237,7 @@
|
|
|
:current-page="queryChannelData.page"
|
|
:current-page="queryChannelData.page"
|
|
|
:page-size="queryChannelData.page_size"
|
|
:page-size="queryChannelData.page_size"
|
|
|
:page-sizes="[10, 30, 50, 100]"
|
|
:page-sizes="[10, 30, 50, 100]"
|
|
|
- :total="guardTotal"
|
|
|
|
|
|
|
+ :total="channelTotal"
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
style="padding-right: 10px"
|
|
style="padding-right: 10px"
|
|
|
@current-change="handleCurrentChannel"
|
|
@current-change="handleCurrentChannel"
|
|
@@ -264,28 +256,17 @@
|
|
|
text
|
|
text
|
|
|
type="success"
|
|
type="success"
|
|
|
@click="openDevice('新增设备','')"
|
|
@click="openDevice('新增设备','')"
|
|
|
- >新增</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Edit"
|
|
|
|
|
- text
|
|
|
|
|
- type="warning"
|
|
|
|
|
- >编辑</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button
|
|
|
|
|
- icon="Delete"
|
|
|
|
|
- text
|
|
|
|
|
- type="danger"
|
|
|
|
|
- >删除</el-button>
|
|
|
|
|
|
|
+ >新增
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button
|
|
<el-button
|
|
|
icon="Refresh"
|
|
icon="Refresh"
|
|
|
text
|
|
text
|
|
|
type="primary"
|
|
type="primary"
|
|
|
- >刷新</el-button>
|
|
|
|
|
|
|
+ @click="getDeviceList"
|
|
|
|
|
+ >刷新
|
|
|
|
|
+ </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<el-table
|
|
<el-table
|
|
@@ -309,7 +290,7 @@
|
|
|
label="类别"
|
|
label="类别"
|
|
|
align="center"
|
|
align="center"
|
|
|
width="150"
|
|
width="150"
|
|
|
- prop="device_type"
|
|
|
|
|
|
|
+ prop="connect_type"
|
|
|
/>
|
|
/>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
label="IP地址"
|
|
label="IP地址"
|
|
@@ -329,8 +310,11 @@
|
|
|
width="150"
|
|
width="150"
|
|
|
>
|
|
>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <el-button :type="scope.row.is_active ? 'success' : 'danger'" plain>
|
|
|
|
|
- {{scope.row.is_active ? '启用' : '不启用'}}
|
|
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ :type="scope.row.is_active ? 'success' : 'danger'"
|
|
|
|
|
+ plain
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ scope.row.is_active ? '启用' : '不启用' }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -339,25 +323,47 @@
|
|
|
align="center"
|
|
align="center"
|
|
|
>
|
|
>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <el-button
|
|
|
|
|
- type="primary"
|
|
|
|
|
- icon="edit"
|
|
|
|
|
- text
|
|
|
|
|
- >备注</el-button>
|
|
|
|
|
|
|
+ <el-tooltip
|
|
|
|
|
+ :content="scope.row.description"
|
|
|
|
|
+ placement="top"
|
|
|
|
|
+ effect="light"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ icon="edit"
|
|
|
|
|
+ text
|
|
|
|
|
+ >备注
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </el-tooltip>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
icon="edit"
|
|
icon="edit"
|
|
|
text
|
|
text
|
|
|
@click="openDevice('编辑设备', scope.row)"
|
|
@click="openDevice('编辑设备', scope.row)"
|
|
|
- >编辑</el-button>
|
|
|
|
|
|
|
+ >编辑
|
|
|
|
|
+ </el-button>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
icon="delete"
|
|
icon="delete"
|
|
|
text
|
|
text
|
|
|
- >删除</el-button>
|
|
|
|
|
|
|
+ @click="removeDevice(scope.row.ID)"
|
|
|
|
|
+ >删除
|
|
|
|
|
+ </el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
+ <div style="width: 100%;display: flex;justify-content: end">
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ :current-page="searchDeviceData.page"
|
|
|
|
|
+ :page-size="searchDeviceData.page_size"
|
|
|
|
|
+ :page-sizes="[10, 30, 50, 100]"
|
|
|
|
|
+ :total="deviceTotal"
|
|
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
|
+ style="padding-right: 10px"
|
|
|
|
|
+ @current-change="handleCurrentDevice"
|
|
|
|
|
+ @size-change="handleSizeDevice"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
</el-col>
|
|
</el-col>
|
|
@@ -368,8 +374,16 @@
|
|
|
>
|
|
>
|
|
|
<el-form label-width="90">
|
|
<el-form label-width="90">
|
|
|
<el-form-item label="停车区域:">
|
|
<el-form-item label="停车区域:">
|
|
|
- <el-select v-model="positionRegionName" placeholder="请选择停车区域" @change="changePositionRegion">
|
|
|
|
|
- <el-option v-for="item in regionList" :value="item.lot_name" :key="item.ID"></el-option>
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="positionRegionName"
|
|
|
|
|
+ placeholder="请选择停车区域"
|
|
|
|
|
+ @change="changePositionRegion"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in regionList"
|
|
|
|
|
+ :key="item.ID"
|
|
|
|
|
+ :value="item.lot_name"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="岗亭编码:">
|
|
<el-form-item label="岗亭编码:">
|
|
@@ -407,13 +421,16 @@
|
|
|
>
|
|
>
|
|
|
<el-form>
|
|
<el-form>
|
|
|
<el-form-item label="通道岗亭:">
|
|
<el-form-item label="通道岗亭:">
|
|
|
- <el-select v-model="channelPositionName" @change="changeChannelPosition">
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="channelPositionName"
|
|
|
|
|
+ @change="changeChannelPosition"
|
|
|
|
|
+ >
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in positionList"
|
|
|
|
|
- :key="item.ID"
|
|
|
|
|
- :value="item.booth_name"
|
|
|
|
|
- :label="item.booth_name">
|
|
|
|
|
- </el-option>
|
|
|
|
|
|
|
+ v-for="item in positionList"
|
|
|
|
|
+ :key="item.ID"
|
|
|
|
|
+ :value="item.booth_name"
|
|
|
|
|
+ :label="item.booth_name"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="通道编码:">
|
|
<el-form-item label="通道编码:">
|
|
@@ -480,18 +497,18 @@
|
|
|
>
|
|
>
|
|
|
<el-form label-width="100">
|
|
<el-form label-width="100">
|
|
|
<el-form-item label="设备通道:">
|
|
<el-form-item label="设备通道:">
|
|
|
- <el-select v-model="deviceChannelName" @change="changeDeviceChannel">
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="deviceChannelName"
|
|
|
|
|
+ @change="changeDeviceChannel"
|
|
|
|
|
+ >
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in channelList"
|
|
|
|
|
- :key="item.ID"
|
|
|
|
|
- :value="item.channel_name"
|
|
|
|
|
- :label="item.channel_name">
|
|
|
|
|
- </el-option>
|
|
|
|
|
|
|
+ v-for="item in channelList"
|
|
|
|
|
+ :key="item.ID"
|
|
|
|
|
+ :value="item.channel_name"
|
|
|
|
|
+ :label="item.channel_name"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="IP地址:">
|
|
|
|
|
- <el-input v-model="deviceData.ip_address" />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
<el-form-item label="设备名称:">
|
|
<el-form-item label="设备名称:">
|
|
|
<el-input v-model="deviceData.device_name" />
|
|
<el-input v-model="deviceData.device_name" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -500,32 +517,59 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="连接方式:">
|
|
<el-form-item label="连接方式:">
|
|
|
<el-select v-model="deviceData.connect_type">
|
|
<el-select v-model="deviceData.connect_type">
|
|
|
- <el-option label="tcp" value="tcp"></el-option>
|
|
|
|
|
- <el-option label="serial" value="serial"></el-option>
|
|
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ label="tcp"
|
|
|
|
|
+ value="tcp"
|
|
|
|
|
+ />
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ label="serial"
|
|
|
|
|
+ value="serial"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="端口:">
|
|
|
|
|
- <el-input v-model="deviceData.port" type="number"></el-input>
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-show="deviceData.connect_type === 'tcp'"
|
|
|
|
|
+ label="IP地址:"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input v-model="deviceData.ip_address" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-show="deviceData.connect_type === 'tcp'"
|
|
|
|
|
+ label="端口:"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="deviceData.port"
|
|
|
|
|
+ type="number"
|
|
|
|
|
+ />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="串口名称:">
|
|
|
|
|
- <el-input v-model="deviceData.com_port"></el-input>
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-show="deviceData.connect_type === 'serial'"
|
|
|
|
|
+ label="串口名称:"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input v-model="deviceData.com_port" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="串口波特率:">
|
|
|
|
|
- <el-input v-model="deviceData.baud_rate" type="number"></el-input>
|
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
|
+ v-show="deviceData.connect_type === 'serial'"
|
|
|
|
|
+ label="串口波特率:"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="deviceData.baud_rate"
|
|
|
|
|
+ type="number"
|
|
|
|
|
+ />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="是否启用:">
|
|
<el-form-item label="是否启用:">
|
|
|
<el-radio-group
|
|
<el-radio-group
|
|
|
- v-model="deviceData.is_active"
|
|
|
|
|
- size="large"
|
|
|
|
|
- fill="#409eff"
|
|
|
|
|
|
|
+ v-model="deviceData.is_active"
|
|
|
|
|
+ size="large"
|
|
|
|
|
+ fill="#409eff"
|
|
|
>
|
|
>
|
|
|
<el-radio-button
|
|
<el-radio-button
|
|
|
- label="否"
|
|
|
|
|
- :value="false"
|
|
|
|
|
|
|
+ label="否"
|
|
|
|
|
+ :value="false"
|
|
|
/>
|
|
/>
|
|
|
<el-radio-button
|
|
<el-radio-button
|
|
|
- label="是"
|
|
|
|
|
- :value="true"
|
|
|
|
|
|
|
+ label="是"
|
|
|
|
|
+ :value="true"
|
|
|
/>
|
|
/>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -548,7 +592,11 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="regionShow" :title="regionTitle" width="500">
|
|
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ v-model="regionShow"
|
|
|
|
|
+ :title="regionTitle"
|
|
|
|
|
+ width="500"
|
|
|
|
|
+ >
|
|
|
<el-form label-width="90">
|
|
<el-form label-width="90">
|
|
|
<el-form-item label="区域编码:">
|
|
<el-form-item label="区域编码:">
|
|
|
<el-input v-model="regionData.lot_code" />
|
|
<el-input v-model="regionData.lot_code" />
|
|
@@ -557,12 +605,15 @@
|
|
|
<el-input v-model="regionData.lot_name" />
|
|
<el-input v-model="regionData.lot_name" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="区域容量:">
|
|
<el-form-item label="区域容量:">
|
|
|
- <el-input v-model="regionData.capacity" type="number"/>
|
|
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="regionData.capacity"
|
|
|
|
|
+ type="number"
|
|
|
|
|
+ />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="备注:">
|
|
<el-form-item label="备注:">
|
|
|
<el-input
|
|
<el-input
|
|
|
- v-model="regionData.description"
|
|
|
|
|
- type="textarea"
|
|
|
|
|
|
|
+ v-model="regionData.description"
|
|
|
|
|
+ type="textarea"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
@@ -570,8 +621,8 @@
|
|
|
<div class="dialog-footer">
|
|
<div class="dialog-footer">
|
|
|
<el-button @click="regionShow = false">取消</el-button>
|
|
<el-button @click="regionShow = false">取消</el-button>
|
|
|
<el-button
|
|
<el-button
|
|
|
- type="primary"
|
|
|
|
|
- @click="regionOperation"
|
|
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="regionOperation"
|
|
|
>
|
|
>
|
|
|
确认
|
|
确认
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -594,16 +645,15 @@ import {
|
|
|
addChannel,
|
|
addChannel,
|
|
|
editChannel,
|
|
editChannel,
|
|
|
obtainChannelList,
|
|
obtainChannelList,
|
|
|
- deleteChannel
|
|
|
|
|
} from '@/api/channel'
|
|
} from '@/api/channel'
|
|
|
-import { addDevice, obtainDeviceList, editDevice } from '@/api/device'
|
|
|
|
|
|
|
+import { addDevice, obtainDeviceList, editDevice, deleteDevice } from '@/api/device'
|
|
|
import { addPullOver, editPullOver, obtainPullOverList, removePullOver } from '@/api/pullOver'
|
|
import { addPullOver, editPullOver, obtainPullOverList, removePullOver } from '@/api/pullOver'
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
|
|
|
const activeName = ref('detail')
|
|
const activeName = ref('detail')
|
|
|
-const handleClick = () => {}
|
|
|
|
|
|
|
+const handleClick = () => {
|
|
|
|
|
+}
|
|
|
const positionShow = ref(false)
|
|
const positionShow = ref(false)
|
|
|
-const positionOperation = ref(0)
|
|
|
|
|
|
|
|
|
|
const positionTitle = ref('岗亭新增')
|
|
const positionTitle = ref('岗亭新增')
|
|
|
// 岗亭数据.......................................
|
|
// 岗亭数据.......................................
|
|
@@ -625,7 +675,7 @@ const addPosition = () => {
|
|
|
ElMessage.error('请选择停车区域')
|
|
ElMessage.error('请选择停车区域')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if(positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
|
|
|
|
|
|
|
+ if (positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
|
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -641,7 +691,7 @@ const addPosition = () => {
|
|
|
ElMessage.error('请选择停车区域')
|
|
ElMessage.error('请选择停车区域')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if(positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
|
|
|
|
|
|
|
+ if (positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
|
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -709,6 +759,7 @@ const getGuardBoothList = () => {
|
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
|
positionList.length = 0
|
|
positionList.length = 0
|
|
|
positionList.push(...res.data.list)
|
|
positionList.push(...res.data.list)
|
|
|
|
|
+ guardTotal.value = res.data.total
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
@@ -762,7 +813,7 @@ const queryChannelData = reactive({
|
|
|
})
|
|
})
|
|
|
const channelPositionName = ref('')
|
|
const channelPositionName = ref('')
|
|
|
const channelData = reactive({
|
|
const channelData = reactive({
|
|
|
- id:0,
|
|
|
|
|
|
|
+ id: 0,
|
|
|
channel_code: '',
|
|
channel_code: '',
|
|
|
channel_name: '',
|
|
channel_name: '',
|
|
|
direction: 'in',
|
|
direction: 'in',
|
|
@@ -777,12 +828,12 @@ const channelList = reactive([])
|
|
|
|
|
|
|
|
const changeChannelPosition = (val) => {
|
|
const changeChannelPosition = (val) => {
|
|
|
positionList.forEach(item => {
|
|
positionList.forEach(item => {
|
|
|
- if(item.booth_name === val) {
|
|
|
|
|
|
|
+ if (item.booth_name === val) {
|
|
|
channelData.booth_id = item.ID
|
|
channelData.booth_id = item.ID
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+const channelTotal = ref(0)
|
|
|
const openChannel = (head, data) => {
|
|
const openChannel = (head, data) => {
|
|
|
channelTitle.value = head
|
|
channelTitle.value = head
|
|
|
channelShow.value = true
|
|
channelShow.value = true
|
|
@@ -815,7 +866,7 @@ const channelOperation = () => {
|
|
|
ElMessage.error('请选择岗亭')
|
|
ElMessage.error('请选择岗亭')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if(channelData.channel_name === '' || channelData.channel_code === '') {
|
|
|
|
|
|
|
+ if (channelData.channel_name === '' || channelData.channel_code === '') {
|
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -832,7 +883,7 @@ const channelOperation = () => {
|
|
|
ElMessage.error('请选择岗亭')
|
|
ElMessage.error('请选择岗亭')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if(channelData.channel_name === '' || channelData.channel_code === '') {
|
|
|
|
|
|
|
+ if (channelData.channel_name === '' || channelData.channel_code === '') {
|
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
ElMessage.error('请将除备注以外的信息填写完整')
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -858,23 +909,26 @@ const handleSizeChannel = (val) => {
|
|
|
const getChannelList = () => {
|
|
const getChannelList = () => {
|
|
|
obtainChannelList(queryChannelData).then(res => {
|
|
obtainChannelList(queryChannelData).then(res => {
|
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
|
|
|
+ console.log(res.data)
|
|
|
channelList.length = 0
|
|
channelList.length = 0
|
|
|
channelList.push(...res.data.list)
|
|
channelList.push(...res.data.list)
|
|
|
|
|
+ channelTotal.value = res.data.total
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 设备管理...............................................
|
|
// 设备管理...............................................
|
|
|
const deviceData = reactive({
|
|
const deviceData = reactive({
|
|
|
|
|
+ id: 0,
|
|
|
parking_lot_id: 0,
|
|
parking_lot_id: 0,
|
|
|
device_code: '',
|
|
device_code: '',
|
|
|
device_name: '',
|
|
device_name: '',
|
|
|
- baud_rate:0,
|
|
|
|
|
|
|
+ baud_rate: 0,
|
|
|
ip_address: '',
|
|
ip_address: '',
|
|
|
port: 0,
|
|
port: 0,
|
|
|
com_port: '',
|
|
com_port: '',
|
|
|
description: '',
|
|
description: '',
|
|
|
- connect_type:'',
|
|
|
|
|
|
|
+ connect_type: '',
|
|
|
is_active: false,
|
|
is_active: false,
|
|
|
channel_id: 0
|
|
channel_id: 0
|
|
|
})
|
|
})
|
|
@@ -883,11 +937,11 @@ const deviceChannelName = ref('')
|
|
|
|
|
|
|
|
const deviceShow = ref(false)
|
|
const deviceShow = ref(false)
|
|
|
|
|
|
|
|
-const openDevice = (head,data) => {
|
|
|
|
|
|
|
+const openDevice = (head, data) => {
|
|
|
deviceTitle.value = head
|
|
deviceTitle.value = head
|
|
|
deviceShow.value = true
|
|
deviceShow.value = true
|
|
|
if (head === '编辑设备') {
|
|
if (head === '编辑设备') {
|
|
|
- console.log('编辑信息', data)
|
|
|
|
|
|
|
+ deviceData.id = data.ID
|
|
|
deviceData.device_code = data.device_code
|
|
deviceData.device_code = data.device_code
|
|
|
deviceData.device_name = data.device_name
|
|
deviceData.device_name = data.device_name
|
|
|
deviceData.baud_rate = data.baud_rate
|
|
deviceData.baud_rate = data.baud_rate
|
|
@@ -899,7 +953,7 @@ const openDevice = (head,data) => {
|
|
|
deviceData.channel_id = data.channel_id
|
|
deviceData.channel_id = data.channel_id
|
|
|
deviceData.is_active = data.is_active
|
|
deviceData.is_active = data.is_active
|
|
|
channelList.forEach(item => {
|
|
channelList.forEach(item => {
|
|
|
- if (item.ID === data.id) {
|
|
|
|
|
|
|
+ if (item.ID === data.channel_id) {
|
|
|
deviceChannelName.value = item.channel_name
|
|
deviceChannelName.value = item.channel_name
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -911,7 +965,7 @@ const openDevice = (head,data) => {
|
|
|
deviceData.port = 0
|
|
deviceData.port = 0
|
|
|
deviceData.com_port = ''
|
|
deviceData.com_port = ''
|
|
|
deviceData.description = ''
|
|
deviceData.description = ''
|
|
|
- deviceData.connect_type = ''
|
|
|
|
|
|
|
+ deviceData.connect_type = 'tcp'
|
|
|
deviceData.channel_id = 0
|
|
deviceData.channel_id = 0
|
|
|
deviceData.is_active = false
|
|
deviceData.is_active = false
|
|
|
deviceChannelName.value = ''
|
|
deviceChannelName.value = ''
|
|
@@ -921,7 +975,7 @@ const openDevice = (head,data) => {
|
|
|
const deviceOperation = async() => {
|
|
const deviceOperation = async() => {
|
|
|
deviceData.baud_rate = Number(deviceData.baud_rate)
|
|
deviceData.baud_rate = Number(deviceData.baud_rate)
|
|
|
deviceData.port = Number(deviceData.port)
|
|
deviceData.port = Number(deviceData.port)
|
|
|
- if (deviceTitle.value === '新增设备'){
|
|
|
|
|
|
|
+ if (deviceTitle.value === '新增设备') {
|
|
|
await addDevice(deviceData).then(res => {
|
|
await addDevice(deviceData).then(res => {
|
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
|
ElMessage.success('添加成功')
|
|
ElMessage.success('添加成功')
|
|
@@ -954,6 +1008,17 @@ const changeDeviceChannel = (val) => {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const deviceTotal = ref(0)
|
|
|
|
|
+const handleCurrentDevice = (val) => {
|
|
|
|
|
+ searchDeviceData.page = val
|
|
|
|
|
+ getDeviceList()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const handleSizeDevice = (val) => {
|
|
|
|
|
+ searchDeviceData.page_size = val
|
|
|
|
|
+ searchDeviceData.page = 1
|
|
|
|
|
+ getDeviceList()
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
const searchDeviceData = reactive({
|
|
const searchDeviceData = reactive({
|
|
|
parking_lot_id: 0,
|
|
parking_lot_id: 0,
|
|
@@ -967,19 +1032,53 @@ const searchDeviceData = reactive({
|
|
|
const getDeviceList = async() => {
|
|
const getDeviceList = async() => {
|
|
|
await obtainDeviceList(searchDeviceData).then(res => {
|
|
await obtainDeviceList(searchDeviceData).then(res => {
|
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
|
- console.log(res.data)
|
|
|
|
|
deviceList.length = 0
|
|
deviceList.length = 0
|
|
|
if (res.data.list !== null) {
|
|
if (res.data.list !== null) {
|
|
|
deviceList.push(...res.data.list)
|
|
deviceList.push(...res.data.list)
|
|
|
|
|
+ deviceTotal.value = res.data.total
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const removeDevice = async(id) => {
|
|
|
|
|
+ ElMessageBox.confirm(
|
|
|
|
|
+ '确定要删除该设备吗?',
|
|
|
|
|
+ '提示',
|
|
|
|
|
+ {
|
|
|
|
|
+ confirmButtonText: '确认',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning',
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ deleteDevice(id).then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: '删除成功',
|
|
|
|
|
+ })
|
|
|
|
|
+ getDeviceList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'error',
|
|
|
|
|
+ message: '删除失败',
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'info',
|
|
|
|
|
+ message: '取消删除',
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// 停车区域....................................
|
|
// 停车区域....................................
|
|
|
const regionList = reactive([])
|
|
const regionList = reactive([])
|
|
|
// 查询停车区域
|
|
// 查询停车区域
|
|
|
-const getRegionList = async () => {
|
|
|
|
|
|
|
+const getRegionList = async() => {
|
|
|
await obtainPullOverList().then(res => {
|
|
await obtainPullOverList().then(res => {
|
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
|
regionList.length = 0
|
|
regionList.length = 0
|
|
@@ -1013,11 +1112,11 @@ const openRegion = (head, data) => {
|
|
|
regionData.description = ''
|
|
regionData.description = ''
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-const regionOperation = async () => {
|
|
|
|
|
|
|
+const regionOperation = async() => {
|
|
|
if (regionTitle.value === '创建区域') {
|
|
if (regionTitle.value === '创建区域') {
|
|
|
regionData.capacity = Number(regionData.capacity)
|
|
regionData.capacity = Number(regionData.capacity)
|
|
|
await addPullOver(regionData).then(res => {
|
|
await addPullOver(regionData).then(res => {
|
|
|
- if(res.code === 0) {
|
|
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
getRegionList()
|
|
getRegionList()
|
|
|
ElMessage.success('创建成功')
|
|
ElMessage.success('创建成功')
|
|
|
regionShow.value = false
|
|
regionShow.value = false
|
|
@@ -1025,7 +1124,7 @@ const regionOperation = async () => {
|
|
|
})
|
|
})
|
|
|
} else {
|
|
} else {
|
|
|
await editPullOver(regionData).then(res => {
|
|
await editPullOver(regionData).then(res => {
|
|
|
- if(res.code === 0) {
|
|
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
getRegionList()
|
|
getRegionList()
|
|
|
ElMessage.success('修改成功')
|
|
ElMessage.success('修改成功')
|
|
|
regionShow.value = false
|
|
regionShow.value = false
|
|
@@ -1036,39 +1135,39 @@ const regionOperation = async () => {
|
|
|
|
|
|
|
|
const deleteRegion = (id) => {
|
|
const deleteRegion = (id) => {
|
|
|
ElMessageBox.confirm(
|
|
ElMessageBox.confirm(
|
|
|
- '确定要删除该停车区域吗?',
|
|
|
|
|
- '提示',
|
|
|
|
|
- {
|
|
|
|
|
- confirmButtonText: '确认',
|
|
|
|
|
- cancelButtonText: '取消',
|
|
|
|
|
- type: 'warning',
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ '确定要删除该停车区域吗?',
|
|
|
|
|
+ '提示',
|
|
|
|
|
+ {
|
|
|
|
|
+ confirmButtonText: '确认',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning',
|
|
|
|
|
+ }
|
|
|
)
|
|
)
|
|
|
- .then(() => {
|
|
|
|
|
- removePullOver(id).then(res => {
|
|
|
|
|
- if (res.code === 0) {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: 'success',
|
|
|
|
|
- message: '删除成功',
|
|
|
|
|
- })
|
|
|
|
|
- getRegionList()
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: 'error',
|
|
|
|
|
- message: '删除失败',
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ removePullOver(id).then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: '删除成功',
|
|
|
|
|
+ })
|
|
|
|
|
+ getRegionList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'error',
|
|
|
|
|
+ message: '删除失败',
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
- .catch(() => {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- type: 'info',
|
|
|
|
|
- message: '取消删除',
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'info',
|
|
|
|
|
+ message: '取消删除',
|
|
|
})
|
|
})
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const changeRegion = async (item) => {
|
|
|
|
|
|
|
+const changeRegion = async(item) => {
|
|
|
searchGuardBooth.parking_lot_id = item.ID
|
|
searchGuardBooth.parking_lot_id = item.ID
|
|
|
queryChannelData.parking_lot_id = item.ID
|
|
queryChannelData.parking_lot_id = item.ID
|
|
|
searchDeviceData.parking_lot_id = item.ID
|
|
searchDeviceData.parking_lot_id = item.ID
|
|
@@ -1076,7 +1175,7 @@ const changeRegion = async (item) => {
|
|
|
await getChannelList()
|
|
await getChannelList()
|
|
|
await getDeviceList()
|
|
await getDeviceList()
|
|
|
}
|
|
}
|
|
|
-onMounted(async () => {
|
|
|
|
|
|
|
+onMounted(async() => {
|
|
|
await getRegionList()
|
|
await getRegionList()
|
|
|
if (regionList.length !== 0) {
|
|
if (regionList.length !== 0) {
|
|
|
searchGuardBooth.parking_lot_id = regionList[0].ID
|
|
searchGuardBooth.parking_lot_id = regionList[0].ID
|
|
@@ -1094,12 +1193,14 @@ onMounted(async () => {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 800px;
|
|
height: 800px;
|
|
|
background-color: #f5f5f5;
|
|
background-color: #f5f5f5;
|
|
|
- .regionTitle{
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .regionTitle {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 40px;
|
|
height: 40px;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
border-bottom: 1px solid;
|
|
border-bottom: 1px solid;
|
|
|
background-color: #b9b8b8;
|
|
background-color: #b9b8b8;
|
|
|
|
|
+
|
|
|
.regionTitle-text {
|
|
.regionTitle-text {
|
|
|
width: 70%;
|
|
width: 70%;
|
|
|
height: 40px;
|
|
height: 40px;
|
|
@@ -1107,6 +1208,7 @@ onMounted(async () => {
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
padding-left: 10px;
|
|
padding-left: 10px;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.regionTitle-icon {
|
|
.regionTitle-icon {
|
|
|
width: 20%;
|
|
width: 20%;
|
|
|
height: 40px;
|
|
height: 40px;
|