diff --git a/src/api/storeManage/deviceManage/device.js b/src/api/storeManage/deviceManage/device.js
index cb6ad3f..4e6cef1 100644
--- a/src/api/storeManage/deviceManage/device.js
+++ b/src/api/storeManage/deviceManage/device.js
@@ -8,8 +8,20 @@ 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'
+ }
return request({
- url: 'api/desecabinet/create',
+ url: url,
method: 'post',
data
})
diff --git a/src/views/storeManage/deviceManage/module/deviceDetail.vue b/src/views/storeManage/deviceManage/module/deviceDetail.vue
index 56e1b6c..e33625e 100644
--- a/src/views/storeManage/deviceManage/module/deviceDetail.vue
+++ b/src/views/storeManage/deviceManage/module/deviceDetail.vue
@@ -8,14 +8,14 @@
删除
-
+
@@ -25,51 +25,77 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
借出
归还
入库
出库
-
+
借出
归还
入库
出库
-
+
通知
@@ -97,7 +123,7 @@
-
+
@@ -137,7 +163,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: { stateType: 1, lend: false, borrow: false, inBound: false, outBound: false }, isCallback: { stateType: 2, lend: false, borrow: false, inBound: false, outBound: false }, isNotice: false }
+const defaultForm = { supplier: null, id: null, deviceId: null, deviceName: null, deviceIp: null, devicePort: null, rowNo: null, areaNo: null, sumColumnNo: null, firstColumnNo: null, partNo: null, storeroomCode: null, columnRowNo: null, deviceAccount: null, devicePassword: null, cupboardNo: null, videoRoute: 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 },
@@ -170,34 +196,25 @@ 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: {
- 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
- },
+ // rules: {
+ // // deviceInfo.
+ // 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'],
edit: ['admin', 'dict:edit'],
@@ -237,7 +254,7 @@ export default {
},
{
id: '7882487E0C15304A3758AF',
- name: '温湿度传感器'
+ name: '温湿度感应器'
},
{
id: 'E58C8D7C896BCB9A408A78',
@@ -252,18 +269,116 @@ export default {
name: '手持式RFID读写器'
}
],
- selectedDeviceType: 'DD656054BE3D1DF1E2F1FC', // 选择添加的设备种类
+ selectedDeviceType: '密集架', // 选择添加的设备种类
supplierOptions: [] // 厂商
}
},
computed: {
addTypeStr() {
- const addType = this.deviceTypeOptions.find(deviceType => deviceType.id === this.selectedDeviceType)
+ const addType = this.deviceTypeOptions.find(deviceType => deviceType.name === this.selectedDeviceType)
if (addType) {
return '新增' + addType.name
} else {
return '新增'
}
+ },
+ isInsidedevices() {
+ if (this.selectedDeviceType === '空调' || this.selectedDeviceType === '桌面式RFID读写器' || this.selectedDeviceType === '盘点机' || this.selectedDeviceType === '恒湿机' || this.selectedDeviceType === '漏水传感器' || this.selectedDeviceType === '温湿度感应器' || this.selectedDeviceType === '空气质监测' || this.selectedDeviceType === '漏水传感器') {
+ return true
+ } else {
+ return false
+ }
+ },
+ isOutsidedevices() {
+ if (this.selectedDeviceType === '通道门' || this.selectedDeviceType === '手持式RFID读写器') {
+ return true
+ } else {
+ return false
+ }
+ },
+ rules() {
+ const 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格式错误'))
+ }
+ }
+ const checkDevicePort = (rule, value, callback) => {
+ const reg = /^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/
+ if (reg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('端口号输入错误'))
+ }
+ }
+ const validateRule = {
+ // deviceInfo.
+ supplier: [
+ { required: true, message: '请选择设备产商', trigger: 'blur' }
+ ],
+ deviceName: [
+ { required: true, message: '请输入设备名称', trigger: 'blur' }
+ ]
+ }
+ if (this.isInsidedevices || this.isOutsidedevices) {
+ this.$set(validateRule, 'deviceId', [
+ { required: true, message: '请输入设备ID', trigger: 'blur' }
+ ])
+ }
+ if (this.selectedDeviceType === '密集架' || this.selectedDeviceType === '回转柜' || this.selectedDeviceType === '摄像头' || this.isInsidedevices) {
+ this.$set(validateRule, 'deviceIp', [
+ { required: true, message: '请输入接口IP', trigger: 'blur' },
+ { validator: checkDeviceIp, trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'devicePort', [
+ { required: true, message: '请输入端口号', trigger: 'blur' },
+ { validator: checkDevicePort, trigger: 'blur' }
+ ])
+ if (this.selectedDeviceType === '密集架') {
+ this.$set(validateRule, 'areaNo', [
+ { required: true, message: '请输入区号', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'firstColumnNo', [
+ { required: true, message: '请输入起始列号', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'sumColumnNo', [
+ { required: true, message: '请输入总列数', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'partNo', [
+ { required: true, message: '请输入节数', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'rowNo', [
+ { required: true, message: '请输入层数', trigger: 'blur' }
+ ])
+ } else {
+ // 回转柜 || 摄像头
+ this.$set(validateRule, 'deviceAccount', [
+ { required: true, message: '请输入账号', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'devicePassword', [
+ { required: true, message: '请输入密码', trigger: 'blur' }
+ ])
+ if (this.selectedDeviceType === '回转柜') {
+ this.$set(validateRule, 'cupboardNo', [
+ { required: true, message: '请输入柜号', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'rowNo', [
+ { required: true, message: '请输入层数', trigger: 'blur' }
+ ])
+ this.$set(validateRule, 'columnRowNo', [
+ { required: true, message: '请输入每层列数', trigger: 'blur' }
+ ])
+ } else {
+ // 摄像头
+ this.$set(validateRule, 'videoRoute', [
+ { required: true, message: '请输入频道', trigger: 'blur' }
+ ])
+ }
+ }
+ }
+ return validateRule
}
},
methods: {
@@ -274,9 +389,9 @@ export default {
// this.needRefreshTree = true
// },
[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.storeroomId = this.storeroomId
+ this.crud.form.supplierId = this.supplierOptions.find(item => item.id === this.crud.form.supplier)
+ this.crud.form.deviceTypeId = this.deviceTypeOptions.find(item => item.name === 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