Browse Source

设备管理 样式以及bug修改

master
z_yu 3 years ago
parent
commit
c3d9d42bc7
  1. 46
      src/api/storeManage/deviceManage/device.js
  2. 34
      src/views/storeManage/deviceManage/module/bindParams.vue
  3. 117
      src/views/storeManage/deviceManage/module/deviceDetail.vue

46
src/api/storeManage/deviceManage/device.js

@ -8,18 +8,7 @@ export function getSupplier() {
}
export function add(data) {
let url = 'api/desecabinet/create'
if (data.deviceTypeId.name === '密集架') {
url = 'api/desecabinet/create'
} else if (data.deviceTypeId.name === '回转柜') {
url = 'api/desecabinet/create'
} else if (data.deviceTypeId.name === '摄像头') {
url = 'api/camera/create'
} else if (data.deviceTypeId.name === '空调' || data.deviceTypeId.name === '桌面式RFID读写器' || data.deviceTypeId.name === '盘点机' || data.deviceTypeId.name === '恒湿机' || data.deviceTypeId.name === '漏水传感器' || data.deviceTypeId.name === '温湿度感应器' || data.deviceTypeId.name === '空气质监测' || data.deviceTypeId.name === '漏水传感器') {
url = 'api/insidedevices/create'
} else if (data.deviceTypeId.name === '通道门' || data.deviceTypeId.name === '手持式RFID读写器') {
url = 'api/outsidedevices/create'
}
const url = getUrl(data, 'add')
return request({
url: url,
method: 'post',
@ -39,11 +28,40 @@ export function del(ids) {
}
export function edit(data) {
const url = getUrl(data, 'edit')
return request({
url: 'api/desecabinet/edit',
url: url,
method: 'put',
data
})
}
export default { add, edit, del, getSupplier }
export function getDeviceType() {
return request({
url: 'api/device/type',
method: 'get'
})
}
function getUrl(data, optTYpe) {
let url = 'api/desecabinet/'
if (data.deviceTypeId.name === '密集架') {
url = 'api/desecabinet/'
} else if (data.deviceTypeId.name === '回转柜') {
url = 'api/rotarycabinet/'
} else if (data.deviceTypeId.name === '摄像头') {
url = 'api/camera/'
} else if (data.deviceTypeId.name === '空调' || data.deviceTypeId.name === '桌面式RFID读写器' || data.deviceTypeId.name === '盘点机' || data.deviceTypeId.name === '恒湿机' || data.deviceTypeId.name === '漏水传感器' || data.deviceTypeId.name === '温湿度感应器' || data.deviceTypeId.name === '空气质量检测设备' || data.deviceTypeId.name === '漏水传感器') {
url = 'api/insidedevices/'
} else if (data.deviceTypeId.name === '通道门' || data.deviceTypeId.name === '手持式RFID读写器') {
url = 'api/outsidedevices/'
}
if (optTYpe === 'add') {
url += 'create'
} else if (optTYpe === 'edit') {
url += 'update'
}
return url
}
export default { add, edit, del, getSupplier, getDeviceType }

34
src/views/storeManage/deviceManage/module/bindParams.vue

@ -8,19 +8,19 @@
<div class="head-container">
<el-form ref="form" :model="form" inline :rules="rules" size="small" label-width="80px">
<el-form-item label="参数ID" prop="paramId">
<el-input v-model="form.paramId" style="width: 120px;" />
<el-input v-model="form.paramId" style="width: 150px;" />
</el-form-item>
<el-form-item label="参数名称" prop="paramName">
<el-input v-model="form.paramName" style="width: 120px;" />
<el-input v-model="form.paramName" style="width: 150px;" />
</el-form-item>
<el-form-item label="单位值" prop="unit">
<el-input v-model="form.unit" style="width: 120px;" />
<el-input v-model="form.unit" style="width: 150px;" />
</el-form-item>
<el-button type="primary" @click="add">添加</el-button>
<el-button class="filter-item" size="mini" type="primary" @click="add">添加</el-button>
</el-form>
</div>
<el-table ref="table" :loading="loading" :data="params">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table ref="table" :loading="loading" :data="params" height="calc(100vh - 582px)">
<el-table-column type="index" label="序号" width="80" align="center" />
<el-table-column prop="paramId" label="参数ID" align="center" />
<el-table-column prop="paramName" label="参数名称" align="center" />
<el-table-column prop="unit" label="单位值" align="center" />
@ -96,18 +96,30 @@ export default {
</script>
<style lang="scss" scoped>
.tree-scroll {
height: calc(100vh - 275px);
overflow-y: scroll;
overflow-x: hidden;
}
.binding-params-dialog {
::v-deep .el-dialog{
width: 950px !important;
}
::v-deep .el-dialog__body{
padding: 0;
}
::v-deep form{
display: flex;
justify-content: space-around;
}
::v-deep .el-form-item--small.el-form-item {
margin-bottom: 0;
}
}
.delete-btn{
background-color: #F65163;
border-color: #F65163;
}
.head-container .filter-item {
width: 76px;
height: 32px;
display: inline-block;
vertical-align: middle;
background-color: #3a99fd;
}
</style>

117
src/views/storeManage/deviceManage/module/deviceDetail.vue

@ -11,7 +11,7 @@
<el-select v-model="deviceType" class="filter-item" style="margin-left:10px" placeholder="全部" @change="crud.toQuery">
<el-option :key="0" label="全部" value="" />
<el-option v-for="item in deviceTypeOptions" :key="item.id" :label="item.name" :value="item.id" />
</el-select> <!-- -->
</el-select>
</template>
<template v-slot:rightButtonGroup>
<div class="archives-handler-btn">
@ -122,7 +122,7 @@
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="80px">
<el-form size="small" label-width="80px">
<el-form-item label="设备类型">
<el-select v-model="selectedDeviceType" style="width: 370px;">
<el-option v-for="item in deviceTypeOptions" :key="item.id" :label="item.name" :value="item.name" />
@ -140,23 +140,7 @@
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="140px">
<el-form-item label="当前电脑Mac地址">
<el-input v-model="currentMac" style="width: 370px;" :disabled="true" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="dobindingMac()">
确定绑定
</el-button>
</div>
</div>
</el-dialog>
<el-dialog :close-on-click-modal="false" :visible.sync="bindingMacVisible" title="绑定设备">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :model="form" :rules="rules" size="small" label-width="140px">
<el-form size="small" label-width="140px">
<el-form-item label="当前电脑Mac地址">
<el-input v-model="currentMac" style="width: 370px;" :disabled="true" />
</el-form-item>
@ -173,17 +157,17 @@
<span class="right-top-line" />
<span class="left-bottom-line" />
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" highlight-current-row style="width: 100%;" @selection-change="selectionChangeHandler" @row-click="clickRowHandler">
<el-table-column align="center" type="selection" width="55" />
<el-table ref="table" v-loading="crud.loading" :data="crud.data" highlight-current-row style="width: 100%;" height="calc(100vh - 295px)" @selection-change="selectionChangeHandler" @row-click="clickRowHandler">
<el-table-column align="center" type="selection" width="50" />
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="storeroomId.name" label="所属区域" />
<el-table-column align="center" label="设备状态">
<el-table-column align="center" prop="storeroomId.name" label="所属区域" width="100" />
<el-table-column align="center" label="设备状态" width="100">
<template slot-scope="scope">
<span :class="{ 'spk-a': scope.row.deviceState === 1 }" />
</template>
</el-table-column>
<el-table-column align="center" prop="deviceTypeId.name" label="设备类型" />
<el-table-column align="center" prop="supplierId.name" label="设备厂商" />
<el-table-column align="center" prop="supplierId.name" label="设备厂商" width="100" />
<el-table-column align="center" prop="deviceName" label="设备名称" />
<el-table-column align="center" label="设备ID">
<template slot-scope="scope">
@ -191,19 +175,19 @@
<span v-else></span>
</template>
</el-table-column>
<el-table-column align="center" label="接口IP">
<el-table-column align="center" label="接口IP" width="120">
<template slot-scope="scope">
<span v-if="scope.row.deviceIp"> {{ scope.row.deviceIp }} </span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column align="center" label="端口">
<el-table-column align="center" label="端口" width="90">
<template slot-scope="scope">
<span v-if="scope.row.devicePort"> {{ scope.row.devicePort }} </span>
<span v-else></span>
</template>
</el-table-column>
<el-table-column align="center" prop="dicExplain" label="绑定设备" />
<el-table-column align="center" prop="dicExplain" label="绑定设备" width="100" />
<el-table-column align="center" prop="dicExplain" label="绑定参数" />
</el-table>
<!--分页组件-->
@ -265,52 +249,7 @@ export default {
selectDeviceTypeVisible: false,
bindingMacVisible: false,
currentMac: '',
deviceTypeOptions: [
{
id: '89284777EFADA87FA342A7',
name: '空调'
},
{
id: 'DD656054BE3D1DF1E2F1FC',
name: '密集架'
},
{
id: '5643ED11723BBA5A4C1856',
name: '回转柜'
},
{
id: '65D1886B0F864291766421',
name: '通道门'
},
{
id: '7305DE3D273B0CAC079538',
name: '摄像头'
},
{
id: 'C09A1946216E496BB3FA88',
name: '恒湿机'
},
{
id: '250AE644EC43E4EC954A81',
name: '漏水传感器'
},
{
id: '7882487E0C15304A3758AF',
name: '温湿度感应器'
},
{
id: 'E58C8D7C896BCB9A408A78',
name: '空气质量检测设备'
},
{
id: 'E2767FEACA9CE0E3B16B89',
name: '桌面式RFID读写器'
},
{
id: '3B85FA21FDAFBB618B5D40',
name: '手持式RFID读写器'
}
],
deviceTypeOptions: [],
selectedDeviceType: '密集架', //
supplierOptions: [] //
}
@ -325,7 +264,7 @@ export default {
}
},
isInsidedevices() {
if (this.selectedDeviceType === '空调' || this.selectedDeviceType === '桌面式RFID读写器' || this.selectedDeviceType === '盘点机' || this.selectedDeviceType === '恒湿机' || this.selectedDeviceType === '漏水传感器' || this.selectedDeviceType === '温湿度感应器' || this.selectedDeviceType === '空气质监测' || this.selectedDeviceType === '漏水传感器') {
if (this.selectedDeviceType === '空调' || this.selectedDeviceType === '桌面式RFID读写器' || this.selectedDeviceType === '盘点机' || this.selectedDeviceType === '恒湿机' || this.selectedDeviceType === '漏水传感器' || this.selectedDeviceType === '温湿度感应器' || this.selectedDeviceType === '空气质量检测设备' || this.selectedDeviceType === '漏水传感器') {
return true
} else {
return false
@ -424,19 +363,27 @@ export default {
}
},
created() {
// this.crud.data = [
// { id: 'DF333EF5B14634550D6898' },
// { id: 'AEBC0ABC616E66544B82AC' },
// { id: '9027E25364729064673FCC' }
// ]
crudDevice.getDeviceType().then((data) => {
this.deviceTypeOptions.splice(0, 0, ...data)
})
},
methods: {
// [CRUD.HOOK.afterSubmit]() {
// this.needRefreshTree = true
// },
// [CRUD.HOOK.afterDelete]() {
// this.needRefreshTree = true
// },
// null
[CRUD.HOOK.beforeToEdit](crud, form) {
// if (form.deviceTypeId.name === '' || form.deviceTypeId.name === '') {
if (form.isLinkage === null) {
form.isLinkage = { stateType: 1, lend: false, borrow: false, inBound: false, outBound: false }
}
if (form.isCallback === null) {
form.isCallback = { stateType: 2, lend: false, borrow: false, inBound: false, outBound: false }
}
// }
form.supplier = form.supplierId.id
this.selectedDeviceType = form.deviceTypeId.name
},
[CRUD.HOOK.beforeSubmit]() {
this.crud.form.storeroomId = this.storeroomId
this.crud.form.supplierId = this.supplierOptions.find(item => item.id === this.crud.form.supplier)
@ -518,9 +465,9 @@ export default {
<style rel="stylesheet/scss" lang="scss" scoped>
.archives-handler-btn {
.el-button {
padding: 0 13px 0 3px;
padding: 0 13px 0 13px;
::v-deep span {
margin-left: 5px;
margin-left: 10px;
}
&.binding-mac-btn {
border-color: #fd8042;
@ -543,7 +490,7 @@ export default {
// }
}
.iconfont {
line-height: 30px;
line-height: 28px;
}
margin-left: auto;
}

Loading…
Cancel
Save