Browse Source

门类管理防止2次提交及设备管理

master
z_yu 3 years ago
parent
commit
05c15fc690
  1. 7
      src/views/category/descriptionPreview/index.vue
  2. 8
      src/views/category/fileNoFormat/module/form.vue
  3. 8
      src/views/category/listBrowsing/module/form.vue
  4. 7
      src/views/category/orderingRule/module/form.vue
  5. 4
      src/views/storeManage/deviceManage/index.vue
  6. 115
      src/views/storeManage/deviceManage/module/deviceDetail.vue

7
src/views/category/descriptionPreview/index.vue

@ -44,7 +44,7 @@
<div class="setting-dialog">
<SettingForm ref="editForm" :is-disabled="false" :is-add="false" :this-fields="editField" />
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="editSubmit">保存</el-button>
<el-button type="primary" :loading="loading" @click="editSubmit">保存</el-button>
</div>
</div>
</el-dialog>
@ -91,7 +91,8 @@ export default {
fieldsActive: 0, // index
thisFields: { dictionaryConfigId: { dicName: null, id: null }}, //
editField: {},
isInputFields: []
isInputFields: [],
loading: false
}
},
watch: {
@ -150,7 +151,9 @@ export default {
if (!valid) {
return
}
this.loading = true
edit(this.editField).then(() => {
this.loading = false
this.$notify({
title: '保存成功',
type: 'success',

8
src/views/category/fileNoFormat/module/form.vue

@ -20,7 +20,7 @@
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" :loading="loading" @click="save">保存</el-button>
</div>
</div>
</el-dialog>
@ -33,11 +33,13 @@ export default {
return {
cuDialogVisible: false,
formData: {},
title: '新增字段'
title: '新增字段',
loading: false
}
},
methods: {
save() {
this.loading = true
if (this.title === '新增字段') {
const addData = this.formData.fields.map((item) => {
return {
@ -55,6 +57,7 @@ export default {
duration: 2500
})
this.cuDialogVisible = false
this.loading = false
this.$emit('refresh')
})
} else {
@ -65,6 +68,7 @@ export default {
duration: 2500
})
this.cuDialogVisible = false
this.loading = false
this.$emit('refresh')
})
}

8
src/views/category/listBrowsing/module/form.vue

@ -28,7 +28,7 @@
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" :loading="loading" @click="save">保存</el-button>
</div>
</div>
</el-dialog>
@ -55,13 +55,15 @@ export default {
label: '靠右',
value: 'right'
}
]
],
loading: false
}
},
methods: {
save() {
this.$refs['formData'].validate((valid) => {
if (valid) {
this.loading = true
if (this.title === '新增字段') {
add(this.formData.fields).then((res) => {
this.$notify({
@ -70,6 +72,7 @@ export default {
duration: 2500
})
this.cuDialogVisible = false
this.loading = false
this.$emit('refresh')
})
} else {
@ -80,6 +83,7 @@ export default {
duration: 2500
})
this.cuDialogVisible = false
this.loading = false
this.$emit('refresh')
})
}

7
src/views/category/orderingRule/module/form.vue

@ -23,7 +23,7 @@
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" :loading="loading" @click="save">保存</el-button>
</div>
</div>
</el-dialog>
@ -36,17 +36,20 @@ export default {
return {
cuDialogVisible: false,
formData: {},
title: ''
title: '',
loading: false
}
},
methods: {
save() {
this.loading = true
edit(this.formData.fields).then((res) => {
this.$notify({
title: '保存成功',
type: 'success',
duration: 2500
})
this.loading = false
this.cuDialogVisible = false
this.$emit('refresh')
})

4
src/views/storeManage/deviceManage/index.vue

@ -124,8 +124,8 @@ export default {
if (val) {
this.crud.selectionChangeHandler([val])
this.$refs.deviceDetail.query.id = val.id
this.$refs.deviceDetail.storeroomId = val.id
this.$refs.deviceDetail.crud.toQuery()
this.$refs.deviceDetail.storeroomId = val
// this.$refs.deviceDetail.crud.toQuery()
this.activeRightBtn = true
}
},

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

@ -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
// }

Loading…
Cancel
Save