设备管理、区域管理

This commit is contained in:
cool 2024-03-27 16:56:50 +08:00
parent 9b8b7f08d6
commit 734c0436e4
13 changed files with 847 additions and 24 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 {

View File

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

View File

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

View File

@ -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: '编辑',

View File

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

View File

@ -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: '新增'

View File

@ -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: '编辑',

View File

@ -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: '新增'