设备管理

This commit is contained in:
jjLv 2024-09-19 10:03:52 +08:00
parent a85cba77ce
commit 480a92f43a
7 changed files with 234 additions and 106 deletions

View File

@ -10,35 +10,35 @@ export const queryDeviceListApi = (data) => {
})
}
/** 项目部名称查询 */
export const queryProjDeptNameApi = (data) => {
return request.get('/base/tbProDepart/getList', {
/** 设备类型查询 */
export const queryDeviceTypeApi = (data) => {
return request.get('/base/tbDevice/getDeviceTypeList', {
params: data
})
}
/** 项目部类型查询 */
export const queryProjDeptTypeApi = (data) => {
return request.get('/base/tbProDepart/getDataList', {
/** 所属边带查询 */
export const queryBdIdApi = (data) => {
return request.get('/base/tbDevice/getBdIdList', {
params: data
})
}
/** 各省份查询 */
export const queryProvincesApi = (data) => {
return request.get('/base/tbProDepart/getAreaList', {
/** 预警配置查询 */
export const queryConfigApi = (data) => {
return request.get('/base/tbDevice/getConfigList', {
params: data
})
}
/** 新增项目部 */
export const addProjDeptApi = (data) => {
return request.post('/base/tbProDepart', data)
/** 新增设备 */
export const addDeviceApi = (data) => {
return request.post('/base/tbDevice', data)
}
/** 修改项目部 */
export const editProjDeptApi = (data) => {
return request.put('/base/tbProDepart', data)
/** 修改设备 */
export const editDeviceApi = (data) => {
return request.put('/base/tbDevice', data)
}
/** 删除设备 */

View File

@ -0,0 +1,12 @@
/**
* 边代设备管理页面 API
*/
import request from '@/utils/request'
/** 边代设备列表查询 */
export const queryEdgeDeviceListApiTwo = (data) => {
return request.get('/base/tbBdRecord/listTwo', {
params: data
})
}

View File

@ -4,66 +4,67 @@
<el-form
label-width="100px"
size="medium"
ref="projectParamsRef"
:model="projectParams"
:rules="projectParamsRules"
ref="deviceParamsRef"
:model="deviceParams"
:rules="deviceParamsRules"
>
<el-form-item label="项目部名称" prop="departName">
<el-form-item label="设备类型" prop="devType">
<el-select
v-model="projectParams.departName"
v-model="deviceParams.devType"
allow-create
clearable
filterable
placeholder="请选择"
@change="departNameChange"
placeholder="请选择设备类型"
>
<el-option
v-for="item in projRange"
v-for="item in deviceTypeRange"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="项目部类型" prop="departType">
<el-form-item label="设备名称" prop="devName">
<el-input v-model="deviceParams.devName" :maxlength="15" placeholder="请输入" />
</el-form-item>
<el-form-item label="设备编码" prop="devCode">
<el-input v-model="deviceParams.devCode" :maxlength="15" placeholder="请输入" />
</el-form-item>
<el-form-item label="所属边带" prop="bdId">
<el-select
v-model="projectParams.departType"
v-model="deviceParams.bdId"
allow-create
clearable
filterable
placeholder="请选择"
placeholder="请选择所属边带"
>
<el-option
v-for="item in typeRange"
v-for="item in bdIdRange"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="地区" prop="areaId">
<el-form-item label="预警配置" prop="configId">
<el-select
v-model="projectParams.areaId"
v-model="deviceParams.configId"
allow-create
clearable
filterable
placeholder="请选择"
placeholder="请选择预警配置"
>
<el-option
v-for="item in provinceRange"
v-for="item in configRange"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="headUser">
<el-input v-model="projectParams.headUser" placeholder="请输入" />
</el-form-item>
<el-form-item label="负责人电话" prop="headUserPhone">
<el-input v-model="projectParams.headUserPhone" :maxlength="11" placeholder="请输入" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="projectParams.remarks" placeholder="请输入" />
</el-form-item>
<el-form-item>
<el-button type="success" @click="onSubmit">确认</el-button>
<el-button
@ -81,12 +82,12 @@
<script>
import {
queryProvincesApi,
queryProjDeptTypeApi,
queryProjDeptNameApi,
addProjDeptApi,
editProjDeptApi
} from '@/api/base/projDept'
queryDeviceTypeApi,
queryBdIdApi,
queryConfigApi,
addDeviceApi,
editDeviceApi
} from '@/api/base/device'
export default {
name: 'FormDevice',
props: {
@ -102,7 +103,7 @@ export default {
mounted() {
console.log(this.editParams)
if (this.editParams) {
Object.assign(this.projectParams, this.editParams)
Object.assign(this.deviceParams, this.editParams)
this.subSort = 2
} else {
this.subSort = 1
@ -111,20 +112,21 @@ export default {
data() {
return {
subSort: '', // 1 / 2
projectParams: {
deviceParams: {
// devId: undefined, // id
devType: undefined, //
devName: undefined, //
devCode: undefined, //
bdId: undefined, //
bdId: undefined, //
configId: undefined, //
},
//
projectParamsRules: {
deviceParamsRules: {
devType: [
{
required: true,
message: '请选择设备类型',
trigger: 'blur',
trigger: 'change',
},
],
devName: [
@ -144,15 +146,15 @@ export default {
bdId: [
{
required: true,
message: '请选择所属边',
trigger: 'blur',
message: '请选择所属边',
trigger: 'change',
},
],
configId: [
{
required: true,
message: '请选择预警配置',
trigger: 'blur',
trigger: 'change',
},
],
},
@ -163,35 +165,28 @@ export default {
methods: {
/** 获取各类下拉框 */
async getRanges() {
//
let provinceRes = await queryProvincesApi()
this.provinceRange = provinceRes.data.map(item => {
//
let deviceTypeRes = await queryDeviceTypeApi()
this.deviceTypeRange = deviceTypeRes.data.map(item => {
return {
label: item.areaName,
value: item.areaId
label: item.devName,
value: item.devId
}
})
//
let typeRes = await queryProjDeptTypeApi({
dictType: 'depar_type'
})
this.typeRange = typeRes.data.map(item => {
//
let bdIdRes = await queryBdIdApi()
this.bdIdRange = bdIdRes.data.map(item => {
return {
label: item.dictLabel,
value: item.dictCode
label: item.bdName,
value: item.bdId
}
})
//
let projRes = await queryProjDeptNameApi()
this.projRange = projRes.data.map(item => {
//
let configRes = await queryConfigApi()
this.configRange = configRes.data.map(item => {
return {
label: item.departName,
value: item.departName,
departType: item.departType,
areaName: item.areaName,
headUser: item.headUser,
headUserPhone: item.headUserPhone,
remarks: item.remarks,
label: item.configName,
value: item.configId,
}
})
},
@ -205,36 +200,29 @@ export default {
})
return leaf
},
/** 项目部名称改变 */
departNameChange(e) {
this.projRange.forEach(item => {
if(e === item.label) {
this.projectParams.departType = item.departType
this.projectParams.areaId = item.areaId
this.projectParams.headUser = item.headUser
this.projectParams.headUserPhone = item.headUserPhone
this.projectParams.remarks = item.remarks
}
})
},
// /** */
// departNameChange(e) {
// this.projRange.forEach(item => {
// if(e === item.label) {
// this.deviceParams.departType = item.departType
// this.deviceParams.areaId = item.areaId
// this.deviceParams.headUser = item.headUser
// this.deviceParams.headUserPhone = item.headUserPhone
// this.deviceParams.remarks = item.remarks
// }
// })
// },
/** 级联选择器改变 */
handleCas(e) {
this.projectParams.impUnit = e[e.length - 1]
this.deviceParams.impUnit = e[e.length - 1]
},
/** 确认按钮 */
onSubmit() {
this.$refs.projectParamsRef.validate(valid => {
this.$refs.deviceParamsRef.validate(valid => {
if (valid) {
if(this.projectParams.headUserPhone !== undefined && this.projectParams.headUserPhone !== "" && this.projectParams.headUserPhone !== null) {
if(!this.phoneReg.test(this.projectParams.headUserPhone)) {
this.$modal.msgError('请填写正确的联系方式')
return false
}
}
console.log('校验通过', this.projectParams, this.subSort)
// 1. Api
if(this.subSort === 1) {
addProjDeptApi(this.projectParams).then(res => {
addDeviceApi(this.deviceParams).then(res => {
this.$modal.msgSuccess('操作成功')
// 2.
this.$emit('closeDialog', true)
@ -242,7 +230,7 @@ export default {
console.log(err)
})
} else if(this.subSort === 2) {
editProjDeptApi(this.projectParams).then(res => {
editDeviceApi(this.deviceParams).then(res => {
this.$modal.msgSuccess('操作成功')
// 2.
this.$emit('closeDialog', true)

View File

@ -1,8 +1,25 @@
import {
queryDeviceTypeApi
} from '@/api/base/device'
export const queryDeviceTypes = () => {
queryDeviceTypeApi().then(res => {
formLabel[0].f_selList = res.data.map(item => {
return {
label: item.deviceName,
value: item.deviceId
}
})
}).catch(err => {})
}
export const formLabel = [
{ f_label: '设备类型', f_model: 'devType', f_type: 'ipt', },
{ f_label: '设备类型', f_model: 'devType', f_type: 'sel',f_selList: [] },
{ f_label: '设备名称', f_model: 'devName', f_type: 'ipt' },
{ f_label: '设备编码', f_model: 'devCode', f_type: 'ipt' },
{ f_label: '设备状态', f_model: 'devStatus', f_type: 'ipt' },
{ f_label: '设备状态', f_model: 'devStatus', f_type: 'sel',f_selList: [
{ label: '在用', value: '0' },
{ label: '未用', value: '1' },
] },
]
export const columnsList = [
@ -10,8 +27,8 @@ export const columnsList = [
{ t_props: 'devCode', t_label: '设备编码' },
{ t_props: 'devName', t_label: '设备名称' },
{ t_props: 'bdId', t_label: '所属边代设备', },
{ t_props: 'configId', t_label: '预警配置', },
{ t_props: 'devStatus', t_label: '设备状态', },
{ t_props: 'configId', t_label: '预警配置',t_slot: 'configId' },
{ t_props: 'devStatus', t_label: '设备状态', t_slot: 'devStatus'},
]
export const dialogConfig = {

View File

@ -42,6 +42,27 @@
<!-- <template slot="isMatch" slot-scope="{ data }">
{{ data.proId == null ? '不匹配' : '匹配' }}
</template>-->
<template slot="configId" slot-scope="{ data }">
<span
style="color:blue;"
>{{ data.configId }}</span>
</template>
<template slot="configId" slot-scope="{ data }">
<span
style="color:blue;"
>{{ data.configId }}</span>
</template>
<template slot="devStatus" slot-scope="{ data }">
<span
v-if="data.devStatus === '0'"
style="color:aquamarine;"
>{{ '在用' }}</span>
<span
v-else
style="color: darkgrey;"
>{{ '未用' }}</span>
</template>
</TableModel>
<!-- 新增以及修改时的弹框 -->
@ -61,7 +82,7 @@
</template>
<script>
import { formLabel, columnsList, dialogConfig } from './config'
import { formLabel, columnsList, dialogConfig, queryDeviceTypes } from './config'
import { commonMixin } from '../mixins/common'
import {
queryDeviceListApi,
@ -78,14 +99,38 @@ export default {
idList.forEach(item => {
this.exportList.push(item.id)
})
}
},
// handleAddData() {
// this.editParams = {
// submitType: 'add',
// deviceId: this.deviceAddData.id
// }
// this.dialogConfig.outerTitle = ''
// this.dialogConfig.outerVisible = true
// },
// handleEditData(data) {
// data.submitType = 'edit'
// this.editParams = data
// this.dialogConfig.outerTitle = ''
// this.dialogConfig.outerVisible = true
// },
},
// closeDialog(type) {
// this.dialogConfig.outerVisible = false
// if(type) {
// this.$refs.tableRef.getTableList()
// }
// },
// closeDialogOuter() {
// this.dialogConfig.outerVisible = false
// },
mixins: [commonMixin],
components: {
FormDevice
},
created() {
queryDeviceTypes()
},
data() {
return {
@ -101,6 +146,7 @@ export default {
addDialogTitle: '新增设备',
//
editDialogTitle: '修改设备',
editParams: undefined,
}
},
}

View File

@ -0,0 +1,18 @@
export const formLabel = [
{ f_label: '工程名称', f_model: 'proName', f_type: 'ipt' },
{ f_label: '项目部名称', f_model: 'departName', f_type: 'ipt' },
{ f_label: '边带名称', f_model: 'edgeName', f_type: 'ipt' },
{ f_label: '边带编码', f_model: 'edgeCode', f_type: 'ipt' },
]
export const columnsList = [
{ t_props: 'proName', t_label: '工程名称', },
{ t_props: 'departName', t_label: '项目部名称' },
{ t_props: 'proNow', t_label: '在用工程' },
{ t_props: 'region', t_label: '所用区域', },
{ t_props: 'edgeName', t_label: '边带名称', },
{ t_props: 'edgeCode', t_label: '边带编码', },
{ t_props: 'edgeIp', t_label: '边带IP', },
{ t_props: 'head', t_label: '负责人', },
{ t_props: 'phone', t_label: '负责人电话', },
]

View File

@ -0,0 +1,47 @@
<template>
<!-- 工程管理页面 -->
<div class="app-container">
<!-- 表格 -->
<TableModel
:formLabel="formLabel"
:columnsList="columnsList"
:request-api="queryEdgeDeviceListApiTwo"
ref="tableRef"
>
</TableModel>
</div>
</template>
<script>
import { formLabel, columnsList, } from './config'
import { commonMixin } from '../mixins/common'
import {
queryEdgeDeviceListApiTwo
} from '@/api/base/edgeDevice'
export default {
name: 'EdgeDevice',
methods: {
queryEdgeDeviceListApiTwo
},
mixins: [commonMixin],
components: {
},
created() {
},
data() {
return {
//
formLabel,
// // id
// exportList: [],
//
columnsList,
//
}
},
}
</script>