Compare commits
2 Commits
0d7388f639
...
e5625d8ffc
| Author | SHA1 | Date |
|---|---|---|
|
|
e5625d8ffc | |
|
|
4f77138e98 |
|
|
@ -0,0 +1,48 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
/* 设备管理 */
|
||||
// 查询设备列表
|
||||
export function getDavDataList(data) {
|
||||
return request({
|
||||
url: '/background/back/device/getDavDataList',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增设备
|
||||
export function addDevData(data) {
|
||||
return request({
|
||||
url: '/background/back/device/addDevData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑设备
|
||||
export function updateDevData(data) {
|
||||
return request({
|
||||
url: '/background/back/device/updateDevData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设备
|
||||
export function deleteDevData(data) {
|
||||
return request({
|
||||
url: '/background/back/device/deleteDevData',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 新增设备
|
||||
export function getDevDataById(data) {
|
||||
return request({
|
||||
url: '/background/back/device/getDevDataById',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="标段编码:" prop="bidCode">
|
||||
<ProjectSelect :bind-type.sync="currentProjectType" :bind-value.sync="temp.bidCode" @change="handleProjectChange" />
|
||||
<ProjectSelect :bind-type.sync="currentProjectType" :bind-value.sync="temp.bidCode" @change="handleProjectChange" />
|
||||
</el-form-item>
|
||||
<el-form-item v-show="currentProjectType === '线路'" label="杆塔ID:" prop="gtId">
|
||||
<GtSelect ref="gtSelectRef" :bid-code="temp.bidCode" :bind-value.sync="temp.gtId" />
|
||||
|
|
@ -176,7 +176,7 @@ export default {
|
|||
this.list = response.rows
|
||||
this.total = response.total
|
||||
}).finally(() => {
|
||||
|
||||
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@
|
|||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程简介:" prop="proBrief">
|
||||
<el-input v-model="temp.proBrief" type="textarea" :rows="2" placeholder="工程简介" :maxlength="200" />
|
||||
<el-input v-model="temp.proBrief" type="textarea" :rows="2" placeholder="工程简介" :maxlength="4000" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="标段类型:" prop="bidType">
|
||||
|
|
@ -717,7 +717,7 @@ export default {
|
|||
} else {
|
||||
this.imageList = fileList
|
||||
this.handleValidateField('dataForm', 'imageList')
|
||||
}
|
||||
}
|
||||
},
|
||||
handleImageChange2(file, fileList) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 10;
|
||||
|
|
@ -731,7 +731,7 @@ export default {
|
|||
this.imageList2 = fileList
|
||||
this.handleValidateField('dataForm', 'imageList2')
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
handleRemoveImageItem(file) {
|
||||
if (!file?.hasOwnProperty('raw')) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,289 @@
|
|||
<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-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 v-throttle-click="handleExport" class="filter-item" style="margin-left: 10px" type="primary">
|
||||
导出
|
||||
</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.pageNum - 1) * 10 + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工程名称" align="center" prop="bidName" />
|
||||
<el-table-column label="监测点" align="center" prop="name" />
|
||||
<el-table-column label="测点相对标高" align="center" prop="height" />
|
||||
<el-table-column label="本次沉降" align="center" prop="val" />
|
||||
<el-table-column label="累计沉降" align="center" prop="hisVal" />
|
||||
<el-table-column label="时间" align="center" prop="createTime" />
|
||||
<el-table-column label="检测人" align="center" prop="jcUser" />
|
||||
<el-table-column label="仪器型号计量编号" align="center" prop="devCode" />
|
||||
<el-table-column label="校核人" align="center" prop="jhUser" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
|
||||
<template slot-scope="{ row }">
|
||||
<el-button type="primary" size="mini" @click="handleUpdate(row)">编辑</el-button>
|
||||
<el-button type="danger" size="mini" @click="handleDelete(row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="listQuery.pageNum"
|
||||
:limit.sync="listQuery.pageSize"
|
||||
@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="bidCode">
|
||||
<ProjectSelect :bind-type.sync="currentProjectType" :bind-value.sync="temp.bidCode" @change="handleProjectChange" />
|
||||
</el-form-item>
|
||||
<el-form-item label="监测点:" prop="name">
|
||||
<el-input v-model="temp.name" placeholder="监测点" :maxlength="255" />
|
||||
</el-form-item>
|
||||
<el-form-item label="测点相对标高:" prop="height">
|
||||
<el-input v-model="temp.height" placeholder="测点相对标高" :maxlength="32" />
|
||||
</el-form-item>
|
||||
<el-form-item label="本次沉降:" prop="val">
|
||||
<el-input v-model="temp.val" placeholder="本次沉降" :maxlength="32" />
|
||||
</el-form-item>
|
||||
<el-form-item label="累计沉降:" prop="hisVal">
|
||||
<el-input v-model="temp.hisVal" placeholder="累计沉降" :maxlength="32" />
|
||||
</el-form-item>
|
||||
<el-form-item label="时间:" prop="createTime">
|
||||
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
|
||||
v-model="temp.createTime" placeholder="时间" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检测人:" prop="jcUser">
|
||||
<el-input v-model="temp.jcUser" placeholder="检测人" :maxlength="64" />
|
||||
</el-form-item>
|
||||
<el-form-item label="计量编号:" prop="devCode">
|
||||
<el-input v-model="temp.devCode" placeholder="仪器型号计量编号" :maxlength="64" />
|
||||
</el-form-item>
|
||||
<el-form-item label="校核人:" prop="jhUser">
|
||||
<el-input v-model="temp.jhUser" placeholder="校核人" :maxlength="64" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位:" prop="unit">
|
||||
<el-input v-model="temp.unit" placeholder="单位" :maxlength="10" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisible = false"> 关闭 </el-button>
|
||||
<el-button v-throttle-click="dialogStatus === 'create' ? createData : updateData" type="primary">
|
||||
提交
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
|
||||
import _ from 'lodash/fp'
|
||||
// import { downloadFile } from '@/utils/download'
|
||||
import { getDavDataList, addDevData, updateDevData, deleteDevData,getDevDataById } from '@/api/devData/devData'
|
||||
import ProjectSelect from '@/views/device/sideband/components/ProjectSelect.vue'
|
||||
const onLineMap = {
|
||||
0: '不在线',
|
||||
1: '在线'
|
||||
}
|
||||
const defaultTmp = {
|
||||
bidCode: '',
|
||||
name: '',
|
||||
height: '',
|
||||
val: '',
|
||||
hisVal: '',
|
||||
createTime: '',
|
||||
jcUser: '',
|
||||
jhUser: '',
|
||||
unit: '',
|
||||
devCode: ''
|
||||
}
|
||||
export default {
|
||||
components: {ProjectSelect, Pagination },
|
||||
data() {
|
||||
return {
|
||||
tableKey: 0,
|
||||
list: [],
|
||||
currentProjectType:'',
|
||||
onLineMap: onLineMap,
|
||||
total: 0,
|
||||
listLoading: false,
|
||||
listQuery: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord: '',
|
||||
},
|
||||
tableHeight: 650,
|
||||
temp: _.cloneDeep(defaultTmp),
|
||||
dialogFormVisible: false,
|
||||
dialogStatus: '',
|
||||
textMap: {
|
||||
update: '编辑',
|
||||
create: '新增'
|
||||
},
|
||||
rules: {
|
||||
name: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
jcUser: [{ required: true, message: '不能为空', trigger: 'change' }],
|
||||
jhUser: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
createTime: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
val: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
hisVal: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
||||
devCode: [{ 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
|
||||
getDavDataList(this.listQuery).then((response) => {
|
||||
this.list = response.rows.map(item => {
|
||||
return item
|
||||
})
|
||||
this.total = response.total
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
},500)
|
||||
},
|
||||
// 查询
|
||||
handleFilter() {
|
||||
this.listQuery.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
// 新增
|
||||
handleCreate() {
|
||||
this.dialogStatus = 'create'
|
||||
this.dialogFormVisible = true
|
||||
},
|
||||
createData() {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
addDevData(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)
|
||||
getDevDataById({ 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) {
|
||||
updateDevData(this.temp).then((response) => {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: response.msg,
|
||||
type: 'success',
|
||||
duration: 2000
|
||||
})
|
||||
this.getList()
|
||||
this.dialogFormVisible = false
|
||||
}).finally(() => {
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除数据
|
||||
handleDelete(row, index) {
|
||||
this.$confirm(`确定要删除该数据吗?`, {
|
||||
type: 'warning',
|
||||
title: '操作提示',
|
||||
beforeClose: async(action, instance, done) => {
|
||||
if (action === 'confirm') {
|
||||
deleteDevData({ id: row.id }).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>
|
||||
|
|
@ -44,6 +44,10 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="检测名称" align="center" prop="modeName" />
|
||||
<el-table-column label="检测值" align="center" prop="val" />
|
||||
<el-table-column label="单位" align="center" prop="unit" />
|
||||
<el-table-column label="检测时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="变化值" align="center" prop="changeVal" />
|
||||
<el-table-column label="最大阈值" align="center" prop="maxValueData" />
|
||||
<el-table-column label="最小阈值" align="center" prop="minValueData" />
|
||||
<el-table-column label="采集值类型" align="center" prop="dataType" />
|
||||
|
|
@ -76,6 +80,22 @@
|
|||
<el-form-item label="检测名称:" prop="modeName">
|
||||
<el-input v-model="temp.modeName" placeholder="检测名称" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="采集值:" prop="val">
|
||||
<el-input v-model="temp.val" placeholder="采集值" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间:" prop="updateTime">
|
||||
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
|
||||
v-model="temp.updateTime" placeholder="创建时间" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="变化值:" prop="changeVal">
|
||||
<el-input v-model="temp.changeVal" placeholder="变化值" :maxlength="50" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否告警:" prop="isWarn">
|
||||
<el-select v-model="temp.isWarn" lab placeholder="请选择" style="width: 100%" >
|
||||
<el-option label="告警" value="1" ></el-option>
|
||||
<el-option label="正常" value="0" > </el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="最大阈值:" prop="maxValueData">
|
||||
<el-input v-model="temp.maxValueData" placeholder="最大阈值" :maxlength="50" />
|
||||
</el-form-item>
|
||||
|
|
@ -116,6 +136,10 @@ import {
|
|||
|
||||
const defaultTmp = {
|
||||
modeName: '',
|
||||
updateTime: '',
|
||||
changeVal: '',
|
||||
val: '',
|
||||
isWarn: '',
|
||||
maxValueData: '',
|
||||
minValueData: '',
|
||||
dataType: '',
|
||||
|
|
@ -193,7 +217,7 @@ export default {
|
|||
this.list = response.rows
|
||||
this.total = response.total
|
||||
}).finally(() => {
|
||||
|
||||
|
||||
})
|
||||
setTimeout(()=>{
|
||||
this.listLoading = false
|
||||
|
|
@ -223,7 +247,7 @@ export default {
|
|||
this.dialogFormVisible = false
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
@ -250,7 +274,7 @@ export default {
|
|||
this.dialogFormVisible = false
|
||||
this.getList()
|
||||
}).finally(() => {
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@
|
|||
<el-input v-model="temp.phone" placeholder="手机号" :maxlength="11" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dialogStatus === 'create'" label="密码" prop="password">
|
||||
<el-input v-model="temp.password" type="password" placeholder="请输入密码" show-password :maxlength="16" />
|
||||
<el-input v-model="temp.password" type="password" placeholder="请输入密码" show-password :maxlength="26" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="组织机构" prop="orgId">
|
||||
<treeselect v-model="temp.orgId" :options="orgOptions" :show-count="true" placeholder="请选择组织机构" />
|
||||
|
|
@ -169,7 +169,7 @@
|
|||
style="width: 400px; margin-left: 50px"
|
||||
>
|
||||
<el-form-item label="密码" prop="password">
|
||||
<el-input v-model="pwdForm.password" type="password" placeholder="请输入密码" show-password :maxlength="16" />
|
||||
<el-input v-model="pwdForm.password" type="password" placeholder="请输入密码" show-password :maxlength="26" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
|
@ -295,7 +295,7 @@ export default {
|
|||
],
|
||||
password: [
|
||||
{ required: true, message: '密码不能为空', trigger: 'blur' },
|
||||
{ min: 8, max: 16, message: '密码长度在8到16个字符', trigger: 'blur' },
|
||||
{ min: 8, max: 26, message: '密码长度在8到26个字符', trigger: 'blur' },
|
||||
{ validator: this.validatePwd, trigger: 'blur' }
|
||||
],
|
||||
orgId: [
|
||||
|
|
@ -317,7 +317,7 @@ export default {
|
|||
rules2: {
|
||||
password: [
|
||||
{ required: true, message: '密码不能为空', trigger: 'blur' },
|
||||
{ min: 8, max: 16, message: '密码长度在8到16个字符', trigger: 'blur' },
|
||||
{ min: 8, max: 26, message: '密码长度在8到26个字符', trigger: 'blur' },
|
||||
{ validator: this.validatePwd, trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ const name = defaultSettings.title || '智慧工地' // page title
|
|||
// For example, Mac: sudo npm run
|
||||
// You can change the port by the following method:
|
||||
// port = 9527 npm run dev OR npm run dev --port = 9527
|
||||
const port = process.env.port || process.env.npm_config_port || 8989 // dev port
|
||||
const port = process.env.port || process.env.npm_config_port || 9527 // dev port
|
||||
|
||||
// All configuration item explanations can be find in https://cli.vuejs.org/config/
|
||||
module.exports = {
|
||||
|
|
@ -24,7 +24,7 @@ module.exports = {
|
|||
* In most cases please use '/' !!!
|
||||
* Detail: https://cli.vuejs.org/config/#publicpath
|
||||
*/
|
||||
publicPath: process.env.ENV === 'production' ? '/zhgd-web/' : '/',
|
||||
publicPath: process.env.ENV === 'production' ? '/zhgd-ht/' : '/',
|
||||
outputDir: 'dist',
|
||||
assetsDir: 'static',
|
||||
lintOnSave: false,
|
||||
|
|
@ -35,10 +35,8 @@ module.exports = {
|
|||
open: true,
|
||||
proxy: {
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
// target: `http://10.40.92.33:18080/zhgd`,
|
||||
target: `http://192.168.0.14:18080/zhgd`,
|
||||
// target: `http://10.40.92.33:18080/zhgd`,
|
||||
// target: `http://10.40.92.106:18080/zhgd`,
|
||||
// target: `http://36.33.26.201:19090/zhgd`,
|
||||
target: `http://127.0.0.1:18080/zhgd`,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||
|
|
|
|||
Loading…
Reference in New Issue