|
|
@ -8,6 +8,14 @@ |
|
|
|
</template> |
|
|
|
<template v-slot:right> |
|
|
|
<el-button v-permission="permission.del" icon="el-icon-delete" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections && crud.selections.length === 0" @click="toDelete(crud.selections)">删除</el-button> |
|
|
|
<el-select v-model="deviceType" placeholder="全部"> |
|
|
|
<el-option |
|
|
|
v-for="item in deviceTypeOptions" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</template> |
|
|
|
</crudOperation> |
|
|
|
</div> |
|
|
@ -18,7 +26,7 @@ |
|
|
|
<div class="setting-dialog"> |
|
|
|
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="80px"> |
|
|
|
<el-form-item label="设备厂商" prop="deviceInfo.supplierId"> |
|
|
|
<el-select v-model="form.deviceInfo.supplierId" style="width: 370px;"> |
|
|
|
<el-select v-model="form.deviceInfo.supplier" style="width: 370px;"> |
|
|
|
<el-option v-for="item in supplierOptions" :key="item.id" :label="item.name" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
@ -50,23 +58,19 @@ |
|
|
|
<el-input v-model="form.rowNo" style="width: 150px;" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="联动操作" prop="isLinkage"> |
|
|
|
<el-checkbox-group v-model="form.isLinkage"> |
|
|
|
<el-checkbox label="1">借出</el-checkbox> |
|
|
|
<el-checkbox label="2">归还</el-checkbox> |
|
|
|
<el-checkbox label="3">入库</el-checkbox> |
|
|
|
<el-checkbox label="4">出库</el-checkbox> |
|
|
|
</el-checkbox-group> |
|
|
|
<el-checkbox v-model="form.isLinkage.lend">借出</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isLinkage.borrow">归还</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isLinkage.inBound">入库</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isLinkage.outBound">出库</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="回调确认" prop="isCallback"> |
|
|
|
<el-checkbox-group v-model="form.isCallback"> |
|
|
|
<el-checkbox label="1">借出</el-checkbox> |
|
|
|
<el-checkbox label="2">归还</el-checkbox> |
|
|
|
<el-checkbox label="3">入库</el-checkbox> |
|
|
|
<el-checkbox label="4">出库</el-checkbox> |
|
|
|
</el-checkbox-group> |
|
|
|
<el-checkbox v-model="form.isCallback.lend">借出</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isCallback.borrow">归还</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isCallback.inBound">入库</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isCallback.outBound">出库</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="下发通知" prop="isNotice" style="display: block;"> |
|
|
|
<el-checkbox v-model="form.isNotice" :true-label="1" :false-label="0">通知</el-checkbox> |
|
|
|
<el-checkbox v-model="form.isNotice">通知</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
@ -93,7 +97,7 @@ |
|
|
|
<el-form ref="form" :model="form" :rules="rules" 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.value" :label="item.label" :value="item.value" /> |
|
|
|
<el-option v-for="item in deviceTypeOptions" :key="item.id" :label="item.name" :value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
@ -133,8 +137,7 @@ import crudDevice from '@/api/storeManage/deviceManage/device' |
|
|
|
import CRUD, { presenter, header, form } from '@crud/crud' |
|
|
|
import crudOperation from '@crud/CRUD.operation' |
|
|
|
import pagination from '@crud/Pagination' |
|
|
|
|
|
|
|
const defaultForm = { deviceInfo: { supplierId: null }, id: null, isLinkage: [], isCallback: [], isNotice: false } |
|
|
|
const defaultForm = { deviceInfo: { supplierId: null }, id: null, isLinkage: { stateType: 1, lend: false, borrow: false, inBound: false, outBound: false }, isCallback: { stateType: 2, lend: false, borrow: false, inBound: false, outBound: false }, isNotice: false } |
|
|
|
|
|
|
|
export default { |
|
|
|
components: { crudOperation, pagination }, |
|
|
@ -167,16 +170,33 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
data() { |
|
|
|
var checkDeviceIp = (rule, value, callback) => { |
|
|
|
const reg = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/ |
|
|
|
if (reg.test(value)) { |
|
|
|
callback() |
|
|
|
} else { |
|
|
|
callback(new Error('设备IP格式错误')) |
|
|
|
} |
|
|
|
} |
|
|
|
return { |
|
|
|
storeroomId: null, |
|
|
|
deviceType: null, // 设备列表筛选项目(设备类型) |
|
|
|
needRefreshTree: false, |
|
|
|
rules: { |
|
|
|
// deviceInfo. |
|
|
|
deviceInfo: { |
|
|
|
supplierId: [ |
|
|
|
supplier: [ |
|
|
|
{ required: true, message: '请选择设备产商', trigger: 'blur' } |
|
|
|
], |
|
|
|
deviceName: [ |
|
|
|
{ required: true, message: '请输入设备名称', trigger: 'blur' } |
|
|
|
], |
|
|
|
deviceIp: [ |
|
|
|
{ required: true, message: '请输入设备IP', trigger: 'blur' }, |
|
|
|
{ validator: checkDeviceIp, trigger: 'blur' } |
|
|
|
] |
|
|
|
} |
|
|
|
// deviceInfo.deviceName |
|
|
|
}, |
|
|
|
permission: { |
|
|
|
add: ['admin', 'dict:add'], |
|
|
@ -188,60 +208,62 @@ export default { |
|
|
|
selectDeviceTypeVisible: false, |
|
|
|
deviceTypeOptions: [ |
|
|
|
{ |
|
|
|
value: '选项1', |
|
|
|
label: '空调' |
|
|
|
id: '89284777EFADA87FA342A7', |
|
|
|
name: '空调' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: 'denseCabinet', |
|
|
|
label: '密集架' |
|
|
|
id: 'DD656054BE3D1DF1E2F1FC', |
|
|
|
name: '密集架' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: 'rotaryCabinet', |
|
|
|
label: '回转柜' |
|
|
|
id: '5643ED11723BBA5A4C1856', |
|
|
|
name: '回转柜' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项3', |
|
|
|
label: '通道门' |
|
|
|
id: '65D1886B0F864291766421', |
|
|
|
name: '通道门' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项4', |
|
|
|
label: '摄像头' |
|
|
|
id: '7305DE3D273B0CAC079538', |
|
|
|
name: '摄像头' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项5', |
|
|
|
label: '恒湿机' |
|
|
|
id: 'C09A1946216E496BB3FA88', |
|
|
|
name: '恒湿机' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项6', |
|
|
|
label: '漏水传感器' |
|
|
|
id: '250AE644EC43E4EC954A81', |
|
|
|
name: '漏水传感器' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项7', |
|
|
|
label: '温湿度传感器' |
|
|
|
id: '7882487E0C15304A3758AF', |
|
|
|
name: '温湿度传感器' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项8', |
|
|
|
label: '空气质量检测设备' |
|
|
|
id: 'E58C8D7C896BCB9A408A78', |
|
|
|
name: '空气质量检测设备' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项9', |
|
|
|
label: '桌面式RFID读写器' |
|
|
|
id: 'E2767FEACA9CE0E3B16B89', |
|
|
|
name: '桌面式RFID读写器' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '选项10', |
|
|
|
label: '手持式RFID读写器' |
|
|
|
id: '3B85FA21FDAFBB618B5D40', |
|
|
|
name: '手持式RFID读写器' |
|
|
|
} |
|
|
|
], |
|
|
|
selectedDeviceType: 'denseCabinet', // 选择添加的设备种类 |
|
|
|
selectedDeviceType: 'DD656054BE3D1DF1E2F1FC', // 选择添加的设备种类 |
|
|
|
supplierOptions: [] // 厂商 |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
addTypeStr() { |
|
|
|
const addType = this.deviceTypeOptions.find(deviceType => deviceType.value === this.selectedDeviceType).label |
|
|
|
return '新增' + addType |
|
|
|
// console.log('123') |
|
|
|
// return this.deviceTypeOptions.find(deviceType => deviceType.value === this.selectedDeviceType) ? this.deviceTypeOptions.filter(deviceType => deviceType.value === this.selectedDeviceType).label : '' |
|
|
|
const addType = this.deviceTypeOptions.find(deviceType => deviceType.id === this.selectedDeviceType) |
|
|
|
if (addType) { |
|
|
|
return '新增' + addType.name |
|
|
|
} else { |
|
|
|
return '新增' |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
@ -253,6 +275,9 @@ export default { |
|
|
|
// }, |
|
|
|
[CRUD.HOOK.beforeSubmit]() { |
|
|
|
this.crud.form.deviceInfo.storeroomId = this.storeroomId |
|
|
|
this.crud.form.deviceInfo.supplierId = this.supplierOptions.find(item => item.id === this.crud.form.deviceInfo.supplier) |
|
|
|
this.crud.form.deviceTypeId = this.deviceTypeOptions.find(item => item.id === this.selectedDeviceType) |
|
|
|
this.crud.form.sequence = 2 |
|
|
|
// if (!this.crud.form.isSequence) { |
|
|
|
// this.crud.form.isSequence = this.crud.data.reduce((prev, cur) => { return { isSequence: Math.max(prev.isSequence, cur.isSequence) } }).isSequence + 1 |
|
|
|
// } |
|
|
|