Compare commits

...

2 Commits

Author SHA1 Message Date
haozq e5625d8ffc Merge remote-tracking branch 'origin/master' 2024-06-11 11:17:36 +08:00
haozq 4f77138e98 修改展示数据 2024-06-11 11:17:26 +08:00
7 changed files with 377 additions and 18 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -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(() => {
})
}
})

View File

@ -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' }
]
}

View File

@ -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]: ''