设备管理、区域管理
This commit is contained in:
parent
9b8b7f08d6
commit
734c0436e4
|
|
@ -0,0 +1,48 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/* 区域管理 */
|
||||
// 查询区域列表
|
||||
export function getAreaList(data) {
|
||||
return request({
|
||||
url: '/background/back/area/getAreaList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增区域
|
||||
export function addAreaItem(data) {
|
||||
return request({
|
||||
url: '/background/back/area/addArea',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑区域
|
||||
export function updateAreaItem(data) {
|
||||
return request({
|
||||
url: '/background/back/area/updateArea',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除区域
|
||||
export function deleteAreaItem(data) {
|
||||
return request({
|
||||
url: '/background/back/area/deleteArea',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 导出区域
|
||||
export function exportArea(data) {
|
||||
return request({
|
||||
url: '/background/back/area/exportArea',
|
||||
method: 'get',
|
||||
responseType: 'blob',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/* 设备管理 */
|
||||
// 查询设备列表
|
||||
export function getDeviceList(data) {
|
||||
return request({
|
||||
url: '/background/back/device/getDeviceList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增设备
|
||||
export function addDeviceItem(data) {
|
||||
return request({
|
||||
url: '/background/back/device/addDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑设备
|
||||
export function updateDeviceItem(data) {
|
||||
return request({
|
||||
url: '/background/back/device/updateDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设备
|
||||
export function deleteDeviceItem(data) {
|
||||
return request({
|
||||
url: '/background/back/device/deleteDevice',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 导出设备
|
||||
export function exportDevice(data) {
|
||||
return request({
|
||||
url: '/background/vehicle/exportListData',
|
||||
method: 'get',
|
||||
responseType: 'blob',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取设备类型列表
|
||||
export function getDeviceTypeList(data) {
|
||||
return request({
|
||||
url: '/system/sys/select/getDictSelect',
|
||||
method: 'post',
|
||||
params: { code: 1800 }
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/* 应急电话*/
|
||||
// 查询应急电话列表
|
||||
export function getEmergencyPhoneList(data) {
|
||||
return request({
|
||||
url: '/background/vehicle/getVehicleLists',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增应急电话
|
||||
export function addEmergencyPhoneItem(data) {
|
||||
return request({
|
||||
url: '/background/vehicle/addVehicle',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑应急电话
|
||||
export function updateEmergencyPhoneItem(data) {
|
||||
return request({
|
||||
url: '/background/vehicle/editVehicle',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除应急电话
|
||||
export function deleteEmergencyPhoneItem(data) {
|
||||
return request({
|
||||
url: '/background/vehicle/delVehicleById',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,277 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.proName"
|
||||
placeholder="工程名称"
|
||||
style="width: 200px"
|
||||
class="filter-item"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-input
|
||||
v-model="listQuery.areaNmae"
|
||||
placeholder="区域名称"
|
||||
style="width: 200px"
|
||||
class="filter-item ml-20"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-button
|
||||
style="margin-left: 40px"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@click="handleFilter"
|
||||
>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button class="filter-item" style="margin-left: 10px" type="primary" @click="handleCreate">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button class="filter-item" style="margin-left: 10px" type="primary" @click="handleExport">
|
||||
导出
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{ (listQuery.page - 1) * 10 + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="区域名称" align="center" prop="areaName" />
|
||||
<el-table-column label="标段工程" align="center" prop="proName" />
|
||||
<el-table-column label="备注" align="center" prop="remarks" />
|
||||
<el-table-column label="杆塔名称" align="center" prop="gtId" />
|
||||
<el-table-column label="是否是有限空间" align="center" prop="areaType">
|
||||
<template slot-scope="{ row }">
|
||||
{{ row.areaType && getStatus(row.areaType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="设备状态" align="center" prop="onLine">-->
|
||||
<!-- <template slot-scope="{ row }">-->
|
||||
<!-- {{ getStatus(row.onLine) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="text" size="mini" @click="handleUpdate(row)">编辑</el-button>
|
||||
<el-button type="text" size="mini" @click="handleDelete(row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.page"
|
||||
:limit.sync="listQuery.limit"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 编辑模态框-->
|
||||
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="630px" @closed="handleClosedModal">
|
||||
<el-form
|
||||
ref="dataForm"
|
||||
:rules="rules"
|
||||
:model="temp"
|
||||
label-position="right"
|
||||
label-width="150px"
|
||||
>
|
||||
<el-form-item label="区域名称:" prop="areaName">
|
||||
<el-input v-model="temp.areaName" placeholder="区域名称" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标段工程:" prop="bidCode">
|
||||
<ProjectSelect :bind-value.sync="temp.bidCode" :bind-type.sync="currentProjectType" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="currentProjectType === '线路'" label="杆塔ID:" prop="gtId">
|
||||
<GtSelect :bid-code="temp.bidCode" :bind-value.sync="temp.gtId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注:" prop="remarks">
|
||||
<el-input v-model="temp.remarks" placeholder="备注" :maxlength="200" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否是有限空间:" prop="areaType">
|
||||
<el-select v-model="temp.areaType" placeholder="请选择" style="width: 100%">
|
||||
<el-option v-for="item in Object.keys(areaTypeMap)" :key="item" :value="Number(item)" :label="areaTypeMap[item]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false"> 关闭 </el-button>
|
||||
<el-button type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
|
||||
提交
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
|
||||
import _ from 'lodash/fp'
|
||||
// import { downloadFile } from '@/utils/download'
|
||||
|
||||
import { addAreaItem, deleteAreaItem, getAreaList, updateAreaItem } from '@/api/basic/area'
|
||||
import ProjectSelect from '@/views/device/sideband/components/ProjectSelect.vue'
|
||||
import GtSelect from '@/views/device/sideband/components/GtSelect.vue'
|
||||
|
||||
const areaTypeMap = {
|
||||
0: '否',
|
||||
1: '是'
|
||||
}
|
||||
|
||||
const defaultTmp = {
|
||||
areaName: '',
|
||||
bidCode: '',
|
||||
remarks: '',
|
||||
gtId: '',
|
||||
areaType: ''
|
||||
}
|
||||
export default {
|
||||
components: { GtSelect, ProjectSelect, Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
currentProjectType: '',
|
||||
areaTypeMap: areaTypeMap,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
listQuery: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
proName: '',
|
||||
areaName: ''
|
||||
},
|
||||
tableHeight: 650,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogStatus: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
create: '新增'
|
||||
},
|
||||
rules: {
|
||||
areaName: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
bidCode: [{ required: true, message: '不能为空', trigger: 'change' }],
|
||||
remarks: [{ required: false, message: '不能为空', trigger: 'blur' }],
|
||||
gtId: [{ required: false, message: '不能为空', trigger: 'change' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.areaTypeMap[val]
|
||||
},
|
||||
// 导出
|
||||
handleExport() {
|
||||
// exportArea().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
getAreaList(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
// 新增
|
||||
handleCreate() {
|
||||
this.dialogStatus = 'create'
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
createData() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
addAreaItem(this.temp).then((response) => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
this.dialogFormVisible = false
|
||||
}).finally(() => {
|
||||
// this.dialogFormVisible = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 编辑
|
||||
handleUpdate(row) {
|
||||
this.temp = Object.assign({}, row)
|
||||
this.temp.areaType = Number(this.temp.areaType)
|
||||
this.dialogStatus = 'update'
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
updateData() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
updateAreaItem(this.temp).then((response) => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
this.dialogFormVisible = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除数据
|
||||
handleDelete(row, index) {
|
||||
this.$confirm(`确定要删除该数据吗?`, {
|
||||
type: 'warning',
|
||||
title: '操作提示',
|
||||
beforeClose: async(action, instance, done) => {
|
||||
if (action === 'confirm') {
|
||||
deleteAreaItem({ areaId: row.areaId }).then((response) => {
|
||||
done()
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
handleClosedModal() {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.temp = _.cloneDeep(defaultTmp)
|
||||
this.currentProjectType = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
<template>
|
||||
<el-select v-model="currentOption" placeholder="请选择工程状态" style="width: 100%" @change="handleChange">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getDictSelectList } from '@/api/public'
|
||||
|
||||
export default {
|
||||
name: 'ProjectStatusSelect',
|
||||
props: ['bindValue', 'disabled'],
|
||||
data() {
|
||||
return {
|
||||
options: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentOption: {
|
||||
get() {
|
||||
return this.bindValue
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('update:bindValue', val)
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
getDictSelectList(1200).then(res => {
|
||||
this.options = res.data.map(item => {
|
||||
const { id, name } = item
|
||||
return {
|
||||
value: id,
|
||||
label: name
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
handleChange(value) {
|
||||
// this.$emit('update:bindType', this.options.find(item => item.value === value)['type'])
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less"></style>
|
||||
|
|
@ -132,13 +132,14 @@
|
|||
<el-input v-model="temp.proName" placeholder="工程名称" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程状态:" prop="status">
|
||||
<el-select v-model="temp.status" placeholder="请选择" style="width: 100%">
|
||||
<el-option key="在建" value="在建" label="在建" />
|
||||
<el-option key="待开工" value="待开工" label="待开工" />
|
||||
<el-option key="停工" value="停工" label="停工" />
|
||||
<el-option key="完工" value="完工" label="完工" />
|
||||
<el-option key="投产" value="投产" label="投产" />
|
||||
</el-select>
|
||||
<!-- <el-select v-model="temp.status" placeholder="请选择" style="width: 100%">-->
|
||||
<!-- <el-option key="在建" value="在建" label="在建" />-->
|
||||
<!-- <el-option key="待开工" value="待开工" label="待开工" />-->
|
||||
<!-- <el-option key="停工" value="停工" label="停工" />-->
|
||||
<!-- <el-option key="完工" value="完工" label="完工" />-->
|
||||
<!-- <el-option key="投产" value="投产" label="投产" />-->
|
||||
<!-- </el-select>-->
|
||||
<ProjectStatusSelect :bind-value.sync="temp.status" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标段编码:" prop="bidCode">
|
||||
<el-input v-model="temp.bidCode" placeholder="标段编码" :maxlength="50" :disabled="textMap[dialogStatus] === 'update'" />
|
||||
|
|
@ -325,6 +326,7 @@ import {
|
|||
|
||||
import _ from 'lodash/fp'
|
||||
import { downloadFile } from '@/utils/download'
|
||||
import ProjectStatusSelect from '@/views/basic/project/components/ProjectStatusSelect.vue'
|
||||
|
||||
const defaultTmp = {
|
||||
org: '',
|
||||
|
|
@ -355,7 +357,7 @@ const defaultCompleteTmp = {
|
|||
}
|
||||
|
||||
export default {
|
||||
components: { Pagination, BuildSelect, ProcessTable },
|
||||
components: { ProjectStatusSelect, Pagination, BuildSelect, ProcessTable },
|
||||
directives: { waves },
|
||||
data() {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
<template>
|
||||
<el-select v-model="currentOption" placeholder="请选择" style="width: 100%" @change="handleChange">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getDeviceTypeList } from '@/api/device/deviceMange'
|
||||
|
||||
export default {
|
||||
name: 'DeviceTypeSelect',
|
||||
props: ['bindValue', 'disabled'],
|
||||
data() {
|
||||
return {
|
||||
options: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentOption: {
|
||||
get() {
|
||||
return this.bindValue
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('update:bindValue', val)
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
getDeviceTypeList().then(res => {
|
||||
this.options = res.data.map(item => {
|
||||
const { id, label } = item
|
||||
return {
|
||||
value: id,
|
||||
label: label
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
handleChange(value) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less"></style>
|
||||
|
|
@ -0,0 +1,292 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="filter-container">
|
||||
<el-input
|
||||
v-model="listQuery.keyWord"
|
||||
placeholder="关键字"
|
||||
style="width: 200px"
|
||||
class="filter-item"
|
||||
:maxlength="30"
|
||||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-select v-model="listQuery.onLine" placeholder="请选择设备状态" style="width: 200px" class="filter-item ml-20">
|
||||
<el-option v-for="item in Object.keys(onLineMap)" :key="item" :value="Number(item)" :label="onLineMap[item]" />
|
||||
</el-select>
|
||||
<el-button
|
||||
|
||||
style="margin-left: 40px"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@click="handleFilter"
|
||||
>
|
||||
查询
|
||||
</el-button>
|
||||
<el-button class="filter-item" style="margin-left: 10px" type="primary" @click="handleCreate">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button class="filter-item" style="margin-left: 10px" type="primary" @click="handleExport">
|
||||
导出
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
:key="tableKey"
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
style="width: 100%"
|
||||
:max-height="tableHeight"
|
||||
>
|
||||
<el-table-column label="序号" align="center" width="80" type="index">
|
||||
<template scope="scope">
|
||||
<span>{{ (listQuery.page - 1) * 10 + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="设备名称" align="center" prop="deviceName" />
|
||||
<el-table-column label="设备类型" align="center" prop="typeName" />
|
||||
<el-table-column label="设备编码" align="center" prop="puId" />
|
||||
<el-table-column label="mac地址" align="center" prop="macId" />
|
||||
<el-table-column label="国际编码" align="center" prop="gbCode" />
|
||||
<el-table-column label="厂家编码" align="center" prop="manufacturer" />
|
||||
<el-table-column label="统一编码" align="center" prop="tyCode" />
|
||||
<!-- <el-table-column label="检测区域" align="center" prop="phone" />-->
|
||||
<el-table-column label="设备状态" align="center" prop="onLine">
|
||||
<template slot-scope="{ row }">
|
||||
{{ getStatus(row.onLine) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="text" size="mini" @click="handleUpdate(row)">编辑</el-button>
|
||||
<el-button type="text" size="mini" @click="handleDelete(row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.page"
|
||||
:limit.sync="listQuery.limit"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 编辑模态框-->
|
||||
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="630px" @closed="handleClosedModal">
|
||||
<el-form
|
||||
ref="dataForm"
|
||||
:rules="rules"
|
||||
:model="temp"
|
||||
label-position="right"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="设备名称:" prop="deviceName">
|
||||
<el-input v-model="temp.deviceName" placeholder="设备名称" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型:" prop="deviceType">
|
||||
<!-- <el-input v-model="temp.deviceType" placeholder="设备类型" :maxlength="50" />-->
|
||||
<DeviceTypeSelect :bind-value.sync="temp.deviceType" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编码:" prop="puId">
|
||||
<el-input v-model="temp.puId" placeholder="设备编码" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="mac地址:" prop="macId">
|
||||
<el-input v-model="temp.macId" placeholder="mac地址" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="国际编码:" prop="gbCode">
|
||||
<el-input v-model="temp.gbCode" placeholder="国际编码" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="厂家:" prop="manufacturer">
|
||||
<el-input v-model="temp.manufacturer" placeholder="厂家" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="统一编码:" prop="tyCode">
|
||||
<el-input v-model="temp.tyCode" placeholder="统一编码" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="检测区域:" prop="carNum">-->
|
||||
<!-- <el-input v-model="temp.carNum" placeholder="检测区域" :maxlength="50" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="设备状态:" prop="onLine">
|
||||
<el-select v-model="temp.onLine" placeholder="请选择设备状态" style="width: 100%">
|
||||
<el-option v-for="item in Object.keys(onLineMap)" :key="item" :value="Number(item)" :label="onLineMap[item]" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false"> 关闭 </el-button>
|
||||
<el-button type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
|
||||
提交
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
|
||||
import _ from 'lodash/fp'
|
||||
// import { downloadFile } from '@/utils/download'
|
||||
|
||||
import { addDeviceItem, deleteDeviceItem, getDeviceList, updateDeviceItem } from '@/api/device/deviceMange'
|
||||
import DeviceTypeSelect from '@/views/device/deviceMange/components/DeviceTypeSelect.vue'
|
||||
|
||||
const onLineMap = {
|
||||
0: '不在线',
|
||||
1: '在线'
|
||||
}
|
||||
|
||||
const defaultTmp = {
|
||||
deviceName: '',
|
||||
deviceType: '',
|
||||
puId: '',
|
||||
macId: '',
|
||||
gbCode: '',
|
||||
onLine: 1,
|
||||
tyCode: '',
|
||||
manufacturer: ''
|
||||
}
|
||||
export default {
|
||||
components: { DeviceTypeSelect, Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
onLineMap: onLineMap,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
listQuery: {
|
||||
page: 1,
|
||||
limit: 10,
|
||||
keyWord: '',
|
||||
onLine: 1
|
||||
},
|
||||
tableHeight: 650,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogStatus: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
create: '新增'
|
||||
},
|
||||
rules: {
|
||||
deviceName: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
deviceType: [{ required: true, message: '不能为空', trigger: 'change' }],
|
||||
phone: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
puId: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
macId: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
gbCode: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
onLine: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
tyCode: [{ required: false, message: '不能为空', trigger: 'blur' }],
|
||||
manufacturer: [{ required: false, message: '不能为空', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getStatus(val) {
|
||||
return this.onLineMap[val]
|
||||
},
|
||||
// 导出
|
||||
handleExport() {
|
||||
// exportCarDetail().then(res => {
|
||||
// downloadFile({ fileName: '设备详情.xlsx', fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
|
||||
// })
|
||||
},
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
getDeviceList(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
// 新增
|
||||
handleCreate() {
|
||||
this.dialogStatus = 'create'
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
createData() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
addDeviceItem(this.temp).then((response) => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
this.dialogFormVisible = false
|
||||
}).finally(() => {
|
||||
// this.dialogFormVisible = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 编辑
|
||||
handleUpdate(row) {
|
||||
this.temp = Object.assign({}, row)
|
||||
// getCarItemDetail({ id: row.id }).then((res) => {
|
||||
// this.temp = Object.assign({}, res.data)
|
||||
// })
|
||||
this.dialogStatus = 'update'
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
updateData() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
updateDeviceItem(this.temp).then((response) => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
this.dialogFormVisible = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除数据
|
||||
handleDelete(row, index) {
|
||||
this.$confirm(`确定要删除该数据吗?`, {
|
||||
type: 'warning',
|
||||
title: '操作提示',
|
||||
beforeClose: async(action, instance, done) => {
|
||||
if (action === 'confirm') {
|
||||
deleteDeviceItem({ deviceId: row.deviceId }).then((response) => {
|
||||
done()
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
done()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
handleClosedModal() {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.temp = _.cloneDeep(defaultTmp)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -111,7 +111,6 @@ import {
|
|||
addCarItem,
|
||||
deleteCarItem,
|
||||
exportCarDetail,
|
||||
getCarItemDetail,
|
||||
getCarList,
|
||||
updateCarItem
|
||||
} from '@/api/car-man/car'
|
||||
|
|
@ -142,12 +141,10 @@ export default {
|
|||
bidCode: ''
|
||||
},
|
||||
tableHeight: 650,
|
||||
showReviewer: false,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogStatus: '',
|
||||
downloadLoading: false,
|
||||
currentId: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@
|
|||
<p>工作负责人:{{ detail.workManager }}</p>
|
||||
<p>班组长手机号:{{ detail.workManagerPhone }}</p>
|
||||
<p>安全监护:{{ detail.safetyManager }}</p>
|
||||
|
||||
<h3 class="item-title">参与施工人员签名</h3>
|
||||
<el-divider />
|
||||
|
||||
<h3 class="item-title">关键点措施照片</h3>
|
||||
<el-divider />
|
||||
|
||||
<h3 class="item-title">施工方案</h3>
|
||||
<el-divider />
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
|
@ -118,5 +127,10 @@ export default {
|
|||
.item-title {
|
||||
border-left: 10px solid #1890ff;
|
||||
padding-left: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.el-divider {
|
||||
margin: 10px 0 !important;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -117,13 +117,9 @@ export default {
|
|||
name: ''
|
||||
},
|
||||
tableHeight: 650,
|
||||
showReviewer: false,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogStatus: '',
|
||||
downloadLoading: false,
|
||||
currentId: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
create: '新增'
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@
|
|||
@keyup.enter.native="handleFilter"
|
||||
/>
|
||||
<el-button
|
||||
|
||||
style="margin-left: 40px"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
|
|
@ -117,12 +116,9 @@ export default {
|
|||
name: ''
|
||||
},
|
||||
tableHeight: 650,
|
||||
showReviewer: false,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogStatus: '',
|
||||
downloadLoading: false,
|
||||
currentId: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@
|
|||
label-position="right"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="应急预案名称:" prop="name">
|
||||
<el-form-item label="应急流程名称:" prop="name">
|
||||
<el-input v-model="temp.userName" placeholder="姓名" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附件:" prop="addition">
|
||||
|
|
@ -117,13 +117,9 @@ export default {
|
|||
name: ''
|
||||
},
|
||||
tableHeight: 650,
|
||||
showReviewer: false,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogFormVisible2: false,
|
||||
dialogStatus: '',
|
||||
downloadLoading: false,
|
||||
currentId: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
create: '新增'
|
||||
|
|
|
|||
Loading…
Reference in New Issue