基坑监测管理问题修复

dev_xd
lj7788@126.com 2025-09-30 15:31:10 +08:00
parent 5ae359832c
commit 915e2aea2a
17 changed files with 791 additions and 1040 deletions

View File

@ -25,10 +25,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectSurProjectPitMonitCfgVo">
select id, project_id, sub_dept_id, vendor_code, vendor_paramter, enabled, state, remark, is_del, create_by, create_time, update_by, update_time, projectName, deptName
from (
select a.*, pi.project_name as projectName, b.dept_name as deptName
select a.*, pi.project_name as projectName, '' as deptName
from sur_project_pit_monit_cfg a
JOIN pro_project_info pi on pi.id=a.project_id
join sys_dept b on b.dept_id = a.sub_dept_id ) sur_project_pit_monit_cfg
JOIN pro_project_info pi on pi.id=a.project_id ) sur_project_pit_monit_cfg
</sql>
<select id="selectSurProjectPitMonitCfgList" parameterType="ProjectPitMonitCfg" resultMap="ProjectPitMonitCfgResult">

View File

@ -8,3 +8,12 @@ export function findMyProjectList(query) {
params: query
})
}
// 查询项目部门信息
export function queryUnitList (query) {
return request({
url: '/publics/queryUnitList',
method: 'get',
params: query
})
}

View File

@ -31,6 +31,47 @@ const data = reactive({
});
const emit = defineEmits(["docom"]);
// API
const baiduMapLoaded = ref(false);
// API
function loadBaiduMap() {
return new Promise((resolve, reject) => {
if (window.BMapGL) {
baiduMapLoaded.value = true;
resolve();
return;
}
//
if (window.baiduMapLoading) {
const checkInterval = setInterval(() => {
if (window.BMapGL) {
clearInterval(checkInterval);
baiduMapLoaded.value = true;
resolve();
}
}, 100);
return;
}
window.baiduMapLoading = true;
const script = document.createElement('script');
script.src = 'https://api.map.baidu.com/api?v=1.0&type=webgl&ak=eseRcUMFiUlnWA6miQLejNpvS70H8SRN&services=&callback=onBMapLoadComplete';
script.async = true;
script.defer = true;
script.onerror = reject;
window.onBMapLoadComplete = function() {
baiduMapLoaded.value = true;
window.baiduMapLoading = false;
resolve();
};
document.head.appendChild(script);
});
}
function doOk() {
emit("docom", point.value, cityInfo.value);
@ -42,15 +83,24 @@ function getAddress() {
return addr;
}
function showDlg(opt) {
async function showDlg(opt) {
title.value = opt?.title || "选择地址";
show.value = true;
try {
await loadBaiduMap();
setTimeout(() => {
initMap(opt);
}, 400);
} catch (error) {
proxy.$modal.msgError("地图加载失败,请检查网络连接");
console.error("百度地图加载失败:", error);
}
}
function currentPoint() {
if (!window.BMapGL) return;
let geolocation = new BMapGL.Geolocation();
geolocation.enableSDKLocation();
geolocation.getCurrentPosition((e) => {
@ -63,6 +113,8 @@ function currentPoint() {
}
function mapClick(e) {
if (!window.BMapGL) return;
point.value = e.latlng;
let myGeo = new BMapGL.Geocoder({ extensions_town: true });
myGeo.getLocation(e.latlng, (r) => {
@ -85,8 +137,9 @@ function mapClick(e) {
}
function initMap(opt) {
let imap = new BMapGL.Map("index-map");
if (!window.BMapGL) return;
let imap = new BMapGL.Map("index-map");
map.value = imap;
let point = new BMapGL.Point(116.404, 39.915);
//
@ -121,6 +174,7 @@ function initMap(opt) {
currentPoint();
}
}
function initMapData(opt) {
if (opt.latitude && opt.longitude) {
point.value = {};
@ -139,7 +193,10 @@ defineExpose({
showDlg,
initMapData,
});
function search() {
if (!window.BMapGL) return;
if (!data.txtAarea) {
proxy.$modal.msgError("请输入要搜索的地址");
return;
@ -155,6 +212,7 @@ function search() {
});
}
</script>
<style lang="scss">
.baidu-map-dialog {
.el-dialog__body {

View File

@ -1,82 +1,23 @@
<template>
<div class="custom-viewpoint">
<el-tabs v-model="tab" size="small" @tab-click="ChangeTab">
<el-tab-pane label="漫游设置" name="tab1">
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="30%">
<el-form-item label="漫游名称" prop="name">
<el-input v-model="form.name" style="width: 100%" />
</el-form-item>
<el-form-item label="移动速度" prop="moveRate" v-if="isClient && false">
<el-radio-group v-model="form.moveRate" size="small">
<el-radio-button v-for="(it, idx) in speed" :label="it.label" :value="it.value"
:key="idx" />
</el-radio-group>
</el-form-item>
<el-form-item label="漫游时长" prop="time">
<el-input-number v-model="form.time" :step="1" :min="1" style="width: 100%" />
<template #append></template>
</el-form-item>
<el-form-item label="轨迹创建">
<el-button @click="GetViewPort"></el-button>
</el-form-item>
<div>
<el-table :data="form.viewPortPoints" border style="width: 100%" max-height="50vh">
<el-table-column prop="name" label="视点">
<template #default="scope">{{ '视点' + (++scope.$index) }}</template>
</el-table-column>
<el-table-column label="操作">
<template #default="scope">
<el-button type="text" @click="DelViewPoint(scope.$index)"></el-button>
<div class="custom-viewpoint-container">
<el-card>
<template #header>
<div class="card-header">
<span>视点管理</span>
<el-button type="primary" @click="AddViewPoint"></el-button>
</div>
</template>
<el-table :data="viewpointList" border>
<el-table-column prop="name" label="视点名称" width="180" />
<el-table-column prop="description" label="描述" />
<el-table-column label="操作" width="150">
<template v-slot="scope">
<el-button type="primary" text @click="ApplyViewPoint(scope.row)"></el-button>
<el-button type="danger" text @click="DelViewPoint(scope.$index)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-form-item style="margin-top: 10px">
<el-button @click="StartViewPortRoam"></el-button>
<el-button @click="StopViewPortRoam"></el-button>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="漫游历史" name="tab2">
<el-table :data="roamList" style="width: 100%">
<el-table-column prop="name" label="名称" />
<el-table-column label="操作" width="220px" class-name="opt-td">
<template #default="scope">
<el-button v-if="scope.row.play === 0" type="primary" link
@click="playIR(scope.row)">播放</el-button>
<el-button v-else-if="scope.row.play === 1" type="primary" auto-insert-spacelink
@click="playIRPause(scope.row)">暂停</el-button>
<el-button v-else-if="scope.row.play === 2" type="primary" link
@click="playContinue(scope.row)">继续</el-button>
<el-button link @click="playCancel(scope.row)" type="primary">取消</el-button>
<el-button link @click="delCamera(scope.row, scope.$index)" type="danger">删除</el-button>
<el-button link @click="renamed(scope.row)" type="success">改名</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination-container">
<el-pagination v-model:current-page="pagination.current" v-model:page-size="pagination.pageSize"
:page-sizes="[10, 20, 30, 50]" :total="pagination.total" layout="total, prev, pager, next"
@size-change="handleSizeChange" @current-change="handleCurrentChange" />
</div>
</el-tab-pane>
</el-tabs>
<el-dialog title="漫游重命名" v-model="visibleRenamed" width="280px" :before-close="() => visibleRenamed = false">
<el-form ref="formRenamedRef" :rules="rulesRenamed" :model="formRenamed" label-width="80px">
<el-form-item label="漫游名称" prop="name">
<el-input v-model="formRenamed.name" maxlength="20" placeholder="请输入名称"></el-input>
</el-form-item>
<el-form-item label="备注" v-show="false">
<el-input type="textarea" v-model="formRenamed.remark" :rows="4" placeholder="备注"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="visibleRenamed = false">取消</el-button>
<el-button type="primary" @click="handSaveRenamed"></el-button>
</span>
</template>
</el-dialog>
</el-card>
</div>
</template>
@ -419,7 +360,7 @@ export default {
</script>
<style lang="scss">
.custom-viewpoint {
.custom-viewpoint-container {
width: 360px;
padding: 0px 10px 10px;

View File

@ -1,5 +1,5 @@
<template>
<el-dialog title="报警详情" custom-class="alarm-detail-dlg" v-model="open" width="960px" append-to-body
<el-dialog title="报警详情" class="alarm-detail-dlg" v-model="open" width="80%" append-to-body
:close-on-click-modal="false" :close-on-press-escape="false">
<el-row class="row-header">
<el-col>
@ -24,76 +24,95 @@
<el-table v-loading="loading" :data="datas" border stripe height="50vh">
<el-table-column label="测点" align="center" prop="spName" />
<el-table-column label="X方向位移(mm)" align="center" prop="displace">
<template slot-scope="scope">{{scope.row.displace.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.displace.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向累计变化量(mm)" align="center" prop="totalize" >
<template slot-scope="scope">{{scope.row.totalize.toFixed(3) }}</template>
<el-table-column label="X方向累计变化量(mm)" align="center" prop="totalize">
<template v-slot="scope">{{ scope.row.totalize.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向单次变化量(mm)" align="center" prop="variation" >
<template slot-scope="scope">{{scope.row.variation.toFixed(3) }}</template>
<el-table-column label="X方向单次变化量(mm)" align="center" prop="variation">
<template v-slot="scope">{{ scope.row.variation.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向变化速率(mm/d)" align="center" prop="changeRate" >
<template slot-scope="scope">{{scope.row.changeRate.toFixed(3) }}</template>
<el-table-column label="X方向变化速率(mm/d)" align="center" prop="changeRate">
<template v-slot="scope">{{
scope.row.changeRate.toFixed(3)
}}</template>
</el-table-column>
<el-table-column label="Y方向位移(mm)" align="center" prop="displace2" >
<template slot-scope="scope">{{scope.row.displace2.toFixed(3) }}</template>
<el-table-column label="Y方向位移(mm)" align="center" prop="displace2">
<template v-slot="scope">{{ scope.row.displace2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向累计变化量(mm)" align="center" prop="totalize2" >
<template slot-scope="scope">{{scope.row.totalize2.toFixed(3) }}</template>
<el-table-column label="Y方向累计变化量(mm)" align="center" prop="totalize2">
<template v-slot="scope">{{ scope.row.totalize2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向单次变化量(mm)" align="center" prop="variation2" >
<template slot-scope="scope">{{scope.row.variation2.toFixed(3) }}</template>
<el-table-column label="Y方向单次变化量(mm)" align="center" prop="variation2">
<template v-slot="scope">{{
scope.row.variation2.toFixed(3)
}}</template>
</el-table-column>
<el-table-column label="Y方向变化速率(mm/d)" align="center" prop="changeRate2">
<template slot-scope="scope">{{scope.row.changeRate2.toFixed(3) }}</template>
<template v-slot="scope">{{
scope.row.changeRate2.toFixed(3)
}}</template>
</el-table-column>
<el-table-column label="采集时间" align="center" prop="collectTime" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="pageNum"
:limit.sync="pageSize"
<pagination v-show="total > 0" :total="total" v-model:page="pageNum" v-model:limit="pageSize"
@pagination="loadData" />
</el-dialog>
</template>
<script>
import { listPitData} from "@/api/device/pitData";
import { listPitData } from "@/api/device/pitData";
export default {
data() {
return {
loading:false,
loading: false,
open: false,
row: {},
pageNum: 1,
pageSize: 10,
total:0,
datas:[],
}
total: 0,
datas: [],
};
},
methods: {
showDialog(row) {
this.pageNum=1;
try {
this.pageNum = 1;
this.row = row;
this.open = true;
this.loadData();
} catch (error) {
console.error("Error in showDialog:", error);
}
},
loadData(){
let postData={
pageNum:this.pageNum,
pageSize:this.pageSize,
spId:this.row.spId,
createTime:this.row.gmtCreate,
updateTime:this.row.gmtModified
loadData() {
try {
let postData = {
pageNum: this.pageNum,
pageSize: this.pageSize,
spId: this.row.spId,
createTime: this.row.gmtCreate,
updateTime: this.row.gmtModified,
};
this.loading=true;
listPitData(postData).then(d => {
this.loading=false;
this.total=d.total||0;
this.datas=d.rows||[];
this.loading = true;
listPitData(postData)
.then((d) => {
this.loading = false;
this.total = d.total || 0;
this.datas = d.rows || [];
})
.catch((error) => {
this.loading = false;
console.error("Error loading data:", error);
});
} catch (error) {
this.loading = false;
console.error("Error in loadData:", error);
}
}
}
},
},
};
</script>
<style lang="scss">
@ -111,15 +130,23 @@ export default {
columns: #888;
}
}
.el-table__header{
th{
.el-table__header {
th {
background: #ccccccba;
}
}
.el-table__body-wrapper{
max-height: 50vh !important;
height: unset !important;
.pagination-container {
.el-pagination {
position: relative;
}
}
.el-dialog__body {
height: calc(50vh + 140px);
max-height: unset !important;
overflow: hidden !important;
}
}
</style>

View File

@ -8,49 +8,49 @@
</el-radio-group>
</el-form-item>
<el-form-item label="告警原因" prop="type">
<el-select v-model="queryParams.type" filterable placeholder="请选择告警原因" clearable>
<el-select v-model="queryParams.type" filterable placeholder="请选择告警原因" clearable style="width: 150px;">
<el-option v-for="(item, index) in ',DTU,,,'.split(',')" :key="index" :label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="1==2">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitAlarm:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitAlarm:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitAlarm:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitAlarm:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitAlarmList" @selection-change="handleSelectionChange">
<el-table-column label="编号" align="center" prop="id" width="80" />
<el-table-column label="项目名称" align="center" prop="prjName" width="180" />
<el-table-column label="总包单位" align="center" prop="deptName" width="180" />
<el-table-column label="告警源" align="center" prop="alarmSource" width="180" >
<template slot-scope="scope">
<el-table-column label="项目名称" align="center" prop="prjName" width="240"/>
<!-- <el-table-column label="总包单位" align="center" prop="deptName" width="180" /> -->
<el-table-column label="告警源" align="center" prop="alarmSource" >
<template v-slot="scope">
{{ scope.row.alarmSource}}-{{ scope.row.variety}}
</template>
</el-table-column>
<el-table-column label="等级" align="center" prop="level" width="180">
<template slot-scope="scope">
<template v-slot="scope">
<span class="sp-data" :class="'sp-level-'+scope.row.level">{{ getLevel(scope.row.level)}}</span>
</template>
</el-table-column>
@ -62,30 +62,31 @@
<el-table-column label="处理人电话" align="center" prop="staffPhone" width="180" v-if="queryParams.status=='true'"/>
<el-table-column label="处理人结果" align="center" prop="result" width="180" v-if="queryParams.status=='true'"/>
<el-table-column label="处理图片" align="center" prop="result" width="180" v-if="queryParams.status=='true'">
<template slot-scope="scope">
<template v-slot="scope">
<span style="color:#ccc" v-if="!scope.row.resultUrl"></span>
<el-image :src="scope.row.resultUrl" v-else
:preview-src-list="[scope.row.resultUrl]"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="text" v-if="queryParams.status=='false'" icon="el-icon-tickets" @click="showDetail(scope.row)"></el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="180px">
<template v-slot="scope">
<el-button type="primary" text v-if="queryParams.status=='false'" icon="el-icon-tickets" @click="showDetail(scope.row)"></el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitAlarm:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<alarmDetailDlg ref="detailDlg"/>
<alarm-detail-dlg ref="detailDlg"/>
</div>
</template>
<script>
import { listPitAlarm, getPitAlarm, delPitAlarm, addPitAlarm, updatePitAlarm } from "@/api/device/pitAlarm";
import alarmDetailDlg from './alarmDetailDlg.vue'
import {findMyProjectList} from "@/api/publics";
export default {
components:{
alarmDetailDlg
@ -135,13 +136,17 @@ export default {
},
methods: {
showDetail(row){
try {
this.$refs.detailDlg.showDialog(row);
} catch (error) {
console.error('Error in showDetail:', error);
}
},
init() {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
findMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},

View File

@ -2,68 +2,55 @@
<div class="app-container prj-pit-config">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitConfig:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitConfig:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitConfig:remove']">删除</el-button>
</el-col>
<el-col :span="1.5" v-if="1 == 2">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitConfig:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitConfigList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="编号" align="center" prop="id" width="100"/>
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="总包单位" align="center" prop="deptName" />
<!-- <el-table-column label="总包单位" align="center" prop="deptName" /> -->
<el-table-column label="对接厂商" align="center" prop="vendorCode" />
<el-table-column label="是否启用" align="center" prop="enabled">
<template slot-scope="scope">
<el-button type="text" v-if="scope.row.enabled == 1"></el-button>
<el-button type="text" disabled v-if="scope.row.enabled == 0"></el-button>
<template v-slot="scope">
<el-button type="primary" text v-if="scope.row.enabled == 1"></el-button>
<el-button type="info" text disabled v-if="scope.row.enabled == 0"></el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitConfig:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitConfig:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<pagination v-show="total > 0" :total="total" :page="queryParams.pageNum" :limit="queryParams.pageSize"
@pagination="getList" @update:page="queryParams.pageNum = $event" @update:limit="queryParams.pageSize = $event" />
<!-- 添加或修改项目基坑监测配置对话框 -->
<el-drawer v-if="open" v-model="open" direction="rtl" size="60%" :title="title">
<el-drawer v-if="open" v-model="open" direction="rtl" size="40%" :title="title">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" style="padding:0px 20px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="form.projectId" filterable placeholder="请选择项目" style="width:300px;" clearable
@change="doQuerySub('dlg')">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="form.subDeptId" filterable placeholder="请选择总包单位" style="width:300px;" clearable
@change="doQueryCfg">
<el-option v-for="(item, index) in dlgDepts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-tabs type="card" v-model="form.vendorCode">
<el-tab-pane :label="it.label" :name="it.value" v-for="(it, idx) in dict.type.pitmonit_vendors" :key="idx">
<el-tab-pane :label="it.label" :name="it.value" v-for="(it, idx) in pitmonit_vendors" :key="idx">
<el-form-item label="工程编号" prop="orgId">
<el-input v-model="form.orgId"></el-input>
</el-form-item>
@ -90,10 +77,10 @@
<script>
import { listPitConfig, getPitConfig, delPitConfig, addPitConfig, updatePitConfig, findByProjIdDeptId } from "@/api/device/pitConfig";
import { findMyProjectList, queryUnitList } from "@/api/publics";
import useUserStore from "@/store/modules/user";
export default {
name: "PitConfig",
dicts: ['pitmonit_vendors'],
data() {
return {
//
@ -128,12 +115,12 @@ export default {
},
//
form: {
projectId:null,
subDeptId:null,
orgId:'',
identifier:'',
credential:'',
enabled:true
projectId: null,
subDeptId: null,
orgId: '',
identifier: '',
credential: '',
enabled: true
},
//
rules: {
@ -145,10 +132,13 @@ export default {
},
projectOptions: [],
depts: [],
dlgDepts: []
dlgDepts: [],
pitmonit_vendors:[],
userStore:null,
};
},
created() {
this.userStore=useUserStore();
this.getList();
this.init();
},
@ -189,7 +179,7 @@ export default {
if (cb) cb();
return;
}
this.$api.publics.queryUnitList({
queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
@ -210,13 +200,10 @@ export default {
if (cb) cb();
});
},
init() {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
this.pitmonit_vendors=this.useDict('pitmonit_vendors').pitmonit_vendors;
console.log("this.pitmonit_vendors-->",this.pitmonit_vendors)
},
/** 查询项目基坑监测配置列表 */
getList() {
@ -275,7 +262,8 @@ export default {
this.reset();
this.open = true;
this.title = "添加项目基坑监测配置";
this.form.vendorCode = this.dict.type.pitmonit_vendors[0].value;
this.form.vendorCode = this.pitmonit_vendors[0].value;
},
/** 修改按钮操作 */
handleUpdate(row, fromAdd) {
@ -284,11 +272,7 @@ export default {
identifier:'',
credential:'',};
let oldDeptId = this.form.subDeptId;
if (!fromAdd) {
this.doQuerySub("dlg", () => {
this.form.subDeptId = oldDeptId;
});
}
let param = this.$tryToJson(this.form.vendorParamter, {});
this.form.orgId = param.orgId || "";
this.form.identifier = param.identifier || "";
@ -308,8 +292,8 @@ export default {
credential: this.form.credential
};
var postData = {
projectId: this.form.projectId,
subDeptId: this.form.subDeptId,
projectId: this.userStore.currentPrjId,
subDeptId: 0,
vendorCode: this.form.vendorCode,
enabled: this.form.enabled ? 1 : 0,
vendorParamter: JSON.stringify(param)
@ -356,11 +340,11 @@ export default {
.el-drawer__body {
position: relative;
.dialog-footer {
position: fixed;
bottom: 0px;
padding: 20px;
}
// .dialog-footer {
// position: fixed;
// bottom: 0px;
// padding: 20px;
// }
}
}
}

View File

@ -1,145 +1,143 @@
<template>
<div class="app-container survey-point-data-index">
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="queryParams.subDeptId" filterable placeholder="请选择总包单位" clearable @change="doQueryPitEL">
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="监测项" prop="meId">
<el-select v-model="queryParams.meId" filterable placeholder="请选择监测项" clearable @change="doQueryPitSps">
<el-option v-for="(item, index) in pitEls" :key="index" :label="item.name" :value="item.srvId">
<el-select v-model="queryParams.meId" placeholder="请选择监测项" clearable filterable @change="handleQuery">
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="测点" prop="spId">
<el-select v-model="queryParams.spId" filterable placeholder="请选择监测项" clearable>
<el-option v-for="(item, index) in pitSps" :key="index" :label="item.name" :value="item.spId">
<el-select v-model="queryParams.spId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="查询日期" prop="spId">
<el-date-picker v-model="queryParams.selDate" type="daterange" align="right" unlink-panels range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期">
<el-form-item label="时间范围">
<el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" @change="handleQuery">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="1 == 2">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitData:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitData:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitData:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitData:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitDataList" height="50vh" class="dt-main">
<el-table v-loading="loading" :data="pitDataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="监测项" align="center" prop="meName" />
<el-table-column label="测点" align="center" prop="spName" />
<template v-if="queryParams.meId == 22">
<el-table-column label="X方向位移(mm)" align="center" prop="displace">
<template slot-scope="scope">{{ scope.row.displace.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.displace.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向累计变化量(mm)" align="center" prop="totalize">
<template slot-scope="scope">{{ scope.row.totalize.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.totalize.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向单次变化量(mm)" align="center" prop="variation">
<template slot-scope="scope">{{ scope.row.variation.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.variation.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="X方向变化速率(mm/d)" align="center" prop="changeRate">
<template slot-scope="scope">{{ scope.row.changeRate.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.changeRate.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向位移(mm)" align="center" prop="displace2">
<template slot-scope="scope">{{ scope.row.displace2.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.displace2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向累计变化量(mm)" align="center" prop="totalize2">
<template slot-scope="scope">{{ scope.row.totalize2.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.totalize2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向单次变化量(mm)" align="center" prop="variation2">
<template slot-scope="scope">{{ scope.row.variation2.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.variation2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="Y方向变化速率(mm/d)" align="center" prop="changeRate2">
<template slot-scope="scope">{{ scope.row.changeRate2.toFixed(3) }}</template>
<template v-slot="scope">{{ scope.row.changeRate2.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="采集时间" align="center" prop="collectTime" width="180" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitData:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitData:remove']">删除</el-button>
</template>
<template v-if="queryParams.meId == 14">
<el-table-column label="压力(MPa)" align="center" prop="displace">
<template slot-scope="scope">{{ scope.row.displace.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="累计变化量(MPa)" align="center" prop="totalize">
<template slot-scope="scope">{{ scope.row.totalize.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="单次变化量(MPa)" align="center" prop="variation">
<template slot-scope="scope">{{ scope.row.variation.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="变化速率(MPa/d)" align="center" prop="changeRate">
<template slot-scope="scope">{{ scope.row.changeRate.toFixed(3) }}</template>
</el-table-column>
</template>
<template v-if="queryParams.meId == 3">
<el-table-column label="水位(m)" align="center" prop="displace">
<template slot-scope="scope">{{ scope.row.displace.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="累计变化量(mm)" align="center" prop="totalize">
<template slot-scope="scope">{{ scope.row.totalize.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="单次变化量(mm)" align="center" prop="variation">
<template slot-scope="scope">{{ scope.row.variation.toFixed(3) }}</template>
</el-table-column>
<el-table-column label="变化速率(mm/d)" align="center" prop="changeRate">
<template slot-scope="scope">{{ scope.row.changeRate.toFixed(3) }}</template>
</el-table-column>
</template>
<el-table-column label="采集时间" align="center" prop="collectTime" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<div v-if="chartData && queryParams.meId==22" class="div-chart">
<el-radio-group v-model="selChart1" class="chart1-group" @change="showChartData(1)">
<el-radio :label="0" border>X方向位移(mm)</el-radio>
<el-radio :label="1" border>X方向累计变化量(mm)</el-radio>
<el-radio :label="2" border>X方向单次变化量(mm)</el-radio>
<el-radio :label="3" border>X方向变化速率(mm/d)</el-radio>
</el-radio-group>
<Chart ref="chart1" :chgOpt="opt=>changeOpt(opt,1)" :key="'c1-'+spId"/>
<el-radio-group v-model="selChart2" class="chart2-group" @change="showChartData(2)">
<el-radio :label="0" border>Y方向位移(mm)</el-radio>
<el-radio :label="1" border>Y方向累计变化量(mm)</el-radio>
<el-radio :label="2" border>Y方向单次变化量(mm)</el-radio>
<el-radio :label="3" border>Y方向变化速率(mm/d)</el-radio>
</el-radio-group>
<Chart ref="chart2" :chgOpt="opt=>changeOpt(opt,2)" :key="'c2-'+spId"/>
<!-- 添加或修改测点数据对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="监测项" prop="meId">
<el-select v-model="form.meId" placeholder="请选择监测项" clearable filterable>
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="测点" prop="spId">
<el-select v-model="form.spId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="X方向位移" prop="displace">
<el-input v-model="form.displace" placeholder="请输入X方向位移" />
</el-form-item>
<el-form-item label="X方向累计变化量" prop="totalize">
<el-input v-model="form.totalize" placeholder="请输入X方向累计变化量" />
</el-form-item>
<el-form-item label="X方向单次变化量" prop="variation">
<el-input v-model="form.variation" placeholder="请输入X方向单次变化量" />
</el-form-item>
<el-form-item label="X方向变化速率" prop="changeRate">
<el-input v-model="form.changeRate" placeholder="请输入X方向变化速率" />
</el-form-item>
<el-form-item label="Y方向位移" prop="displace2">
<el-input v-model="form.displace2" placeholder="请输入Y方向位移" />
</el-form-item>
<el-form-item label="Y方向累计变化量" prop="totalize2">
<el-input v-model="form.totalize2" placeholder="请输入Y方向累计变化量" />
</el-form-item>
<el-form-item label="Y方向单次变化量" prop="variation2">
<el-input v-model="form.variation2" placeholder="请输入Y方向单次变化量" />
</el-form-item>
<el-form-item label="Y方向变化速率" prop="changeRate2">
<el-input v-model="form.changeRate2" placeholder="请输入Y方向变化速率" />
</el-form-item>
<el-form-item label="采集时间" prop="collectTime">
<el-date-picker clearable v-model="form.collectTime" type="date" value-format="yyyy-MM-dd" placeholder="选择采集时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -147,6 +145,7 @@
import { listPitData, getPitData, delPitData, addPitData, updatePitData } from "@/api/device/pitData";
import { listPitElement } from '@/api/device/pitElement'
import { listPitSurveyPoint } from '@/api/device/pitSurveyPoint'
import { queryUnitList, findMyProjectList } from "@/api/publics";
import Chart from '@/components/Chart'
export default {
name: "PitData",
@ -251,7 +250,7 @@ export default {
this.doQueryPitEL();
return;
}
this.$api.publics.queryUnitList({
queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
@ -386,7 +385,7 @@ export default {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
findMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},

View File

@ -1,84 +1,134 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
<el-form-item label="设备编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="queryParams.subDeptId" filterable placeholder="请选择总包单位" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备名称" prop="devCode">
<el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备编号" prop="cfgId">
<el-input v-model="queryParams.devCode" placeholder="请输入设备编号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="设备型号" prop="cfgId">
<el-input v-model="queryParams.devTypeName" placeholder="请输入设备型号" clearable @keyup.enter.native="handleQuery" />
<el-form-item label="设备名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="1==2">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitDevice:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitDevice:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitDevice:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitDevice:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitDeviceList" @selection-change="handleSelectionChange">
<el-table-column label="编号" align="center" prop="id" width="80" />
<el-table-column label="项目名称" align="center" prop="prjName" width="180" />
<el-table-column label="总包单位" align="center" prop="deptName" width="180" />
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="设备编号" align="center" prop="code" />
<el-table-column label="设备名称" align="center" prop="name" />
<el-table-column label="设备编号" align="center" prop="devCode" />
<el-table-column label="设备类型" align="center" prop="devTypeName" />
<el-table-column label="关联测点数目" align="center" prop="ptCount" />
<el-table-column label="当前电量" align="center" prop="batDl" />
<el-table-column label="设备类型" align="center" prop="type" />
<el-table-column label="安装位置" align="center" prop="location" />
<el-table-column label="状态" align="center" prop="status">
<template v-slot="scope">
<dict-tag :options="dict.type.pit_device_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" v-if="1==2" icon="el-icon-edit" @click="handleUpdate(scope.row)"
<template v-slot="scope">
<el-button size="small" type="primary" text v-if="1==2" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitDevice:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-tickets" @click="handleDetail(scope.row)"></el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
<el-button size="small" type="primary" text icon="el-icon-tickets" @click="handleDetail(scope.row)"></el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitDevice:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<deviceDetailDlg ref="detailDlg"/>
<!-- 添加或修改基坑设备对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="设备编号" prop="code">
<el-input v-model="form.code" placeholder="请输入设备编号" />
</el-form-item>
<el-form-item label="设备名称" prop="name">
<el-input v-model="form.name" placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="设备类型" prop="type">
<el-select v-model="form.type" placeholder="请选择设备类型">
<el-option v-for="dict in dict.type.pit_device_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="安装位置" prop="location">
<el-input v-model="form.location" placeholder="请输入安装位置" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in dict.type.pit_device_status" :key="dict.value" :label="dict.value">
{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
<!-- 基坑设备详情对话框 -->
<el-dialog :title="detailTitle" v-model="detailOpen" width="800px" append-to-body>
<el-row :gutter="20">
<el-col :span="12">
<el-descriptions title="设备基本信息" :column="1" border>
<el-descriptions-item label="设备编号">{{ detailData.code }}</el-descriptions-item>
<el-descriptions-item label="设备名称">{{ detailData.name }}</el-descriptions-item>
<el-descriptions-item label="设备类型">
<dict-tag :options="dict.type.pit_device_type" :value="detailData.type" />
</el-descriptions-item>
<el-descriptions-item label="安装位置">{{ detailData.location }}</el-descriptions-item>
<el-descriptions-item label="状态">
<dict-tag :options="dict.type.pit_device_status" :value="detailData.status" />
</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<el-descriptions title="关联测点信息" :column="1" border>
<el-descriptions-item label="测点数量">{{ surveyPoints.length }}</el-descriptions-item>
<el-descriptions-item label="测点列表">
<el-tag v-for="item in surveyPoints" :key="item.id" style="margin-right: 5px;">{{ item.name }}</el-tag>
</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
<template #footer>
<div class="dialog-footer">
<el-button @click="detailOpen = false"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { listPitDevice, getPitDevice, delPitDevice, addPitDevice, updatePitDevice } from "@/api/device/pitDevice";
import { queryUnitList, findMyProjectList } from "@/api/publics";
import deviceDetailDlg from './deviceDetailDlg.vue'
export default {
components:{
@ -142,7 +192,7 @@ export default {
this.getList();
return;
}
this.$api.publics.queryUnitList({
queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
@ -164,7 +214,7 @@ export default {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
findMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},

View File

@ -1,161 +1,84 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="配置ID" prop="cfgId">
<el-input
v-model="queryParams.cfgId"
placeholder="请输入配置ID"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="设备" prop="deviceId">
<el-select v-model="queryParams.deviceId" placeholder="请选择设备" clearable filterable>
<el-option v-for="item in devices" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备ID" prop="devId">
<el-input
v-model="queryParams.devId"
placeholder="请输入设备ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="测点ID" prop="spId">
<el-input
v-model="queryParams.spId"
placeholder="请输入测点ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="测点" prop="surveyPointId">
<el-select v-model="queryParams.surveyPointId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['device:pitDeviceSurveyPoint:add']"
>新增</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitDeviceSurveyPoint:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:pitDeviceSurveyPoint:edit']"
>修改</el-button>
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitDeviceSurveyPoint:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['device:pitDeviceSurveyPoint:remove']"
>删除</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitDeviceSurveyPoint:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['device:pitDeviceSurveyPoint:export']"
>导出</el-button>
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitDeviceSurveyPoint:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitDeviceSurveyPointList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="配置ID" align="center" prop="cfgId" />
<el-table-column label="设备ID" align="center" prop="devId" />
<el-table-column label="测点ID" align="center" prop="spId" />
<el-table-column label="${comment}" align="center" prop="state" />
<el-table-column label="${comment}" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="设备" align="center" prop="deviceName" />
<el-table-column label="测点" align="center" prop="surveyPointName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:pitDeviceSurveyPoint:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:pitDeviceSurveyPoint:remove']"
>删除</el-button>
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitDeviceSurveyPoint:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitDeviceSurveyPoint:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改设测点关系对话框 -->
<!-- 添加或修改基坑设备测点关联对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="配置ID" prop="cfgId">
<el-input v-model="form.cfgId" placeholder="请输入配置ID" />
<el-form-item label="设备" prop="deviceId">
<el-select v-model="form.deviceId" placeholder="请选择设备" clearable filterable>
<el-option v-for="item in devices" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备ID" prop="devId">
<el-input v-model="form.devId" placeholder="请输入设备ID" />
</el-form-item>
<el-form-item label="测点ID" prop="spId">
<el-input v-model="form.spId" placeholder="请输入测点ID" />
</el-form-item>
<el-form-item label="${comment}" prop="state">
<el-input v-model="form.state" placeholder="请输入${comment}" />
</el-form-item>
<el-form-item label="${comment}" prop="remark">
<el-input v-model="form.remark" placeholder="请输入${comment}" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
<el-form-item label="测点" prop="surveyPointId">
<el-select v-model="form.surveyPointId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -189,11 +112,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
cfgId: null,
devId: null,
spId: null,
state: null,
isDel: null,
deviceId: null,
surveyPointId: null,
},
//
form: {},
@ -224,12 +144,8 @@ export default {
reset() {
this.form = {
id: null,
cfgId: null,
devId: null,
spId: null,
state: null,
remark: null,
isDel: null,
deviceId: null,
surveyPointId: null,
createBy: null,
createTime: null,
updateBy: null,

View File

@ -1,71 +1,79 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="queryParams.subDeptId" filterable placeholder="请选择总包单位" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
<el-form-item label="构件名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入构件名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="1==2">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitElement:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitElement:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitElement:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitElement:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitElementList" stripe>
<el-table-column type="expand">
<template slot-scope="props">
<el-table :data="props.row.children" border stripe>
<el-table-column label="子项名称" align="center" prop="name" />
<el-table-column label="子项步长" align="center" prop="step" />
<el-table-column label="子项单位" align="center" prop="unit" />
<el-table-column label="子项值范围" align="center" prop="valueRange" />
</el-table>
<el-table v-loading="loading" :data="pitElementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="构件名称" align="center" prop="name" />
<el-table-column label="构件类型" align="center" prop="type" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitElement:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitElement:remove']">删除</el-button>
</template>
</el-table-column>
<el-table-column label="编号" align="center" prop="srvId" width="80" />
<el-table-column label="项目名称" align="center" prop="prjName" width="250" />
<el-table-column label="总包单位" align="center" prop="deptName" width="250" />
<el-table-column label="监测项名称" align="center" prop="name" />
<el-table-column label="监测项名称(EN)" align="center" prop="nameEn" />
<el-table-column label="类型" align="center" prop="type" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改基坑构件对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="构件名称" prop="name">
<el-input v-model="form.name" placeholder="请输入构件名称" />
</el-form-item>
<el-form-item label="构件类型" prop="type">
<el-select v-model="form.type" placeholder="请选择构件类型">
<el-option v-for="dict in dict.type.pit_element_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { listPitElement, getPitElement, delPitElement, addPitElement, updatePitElement } from "@/api/device/pitElement";
import { queryUnitList, findMyProjectList } from "@/api/publics";
export default {
name: "PitElement",
@ -123,7 +131,7 @@ export default {
this.getList();
return;
}
this.$api.publics.queryUnitList({
queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
@ -145,7 +153,7 @@ export default {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
findMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},

View File

@ -1,233 +1,84 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="配置ID" prop="cfgId">
<el-input
v-model="queryParams.cfgId"
placeholder="请输入配置ID"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="构件" prop="elementId">
<el-select v-model="queryParams.elementId" placeholder="请选择构件" clearable filterable>
<el-option v-for="item in elements" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务端ID" prop="srvId">
<el-input
v-model="queryParams.srvId"
placeholder="请输入服务端ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="dev_pitmonit_southsmos_element表srvId" prop="monitorElementId">
<el-input
v-model="queryParams.monitorElementId"
placeholder="请输入dev_pitmonit_southsmos_element表srvId"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端name" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入服务端name"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端step" prop="step">
<el-input
v-model="queryParams.step"
placeholder="请输入服务端step"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端unit" prop="unit">
<el-input
v-model="queryParams.unit"
placeholder="请输入服务端unit"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端valueRange" prop="valueRange">
<el-input
v-model="queryParams.valueRange"
placeholder="请输入服务端valueRange"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端gmtCreate" prop="gmtCreate">
<el-input
v-model="queryParams.gmtCreate"
placeholder="请输入服务端gmtCreate"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="服务端gmtModified" prop="gmtModified">
<el-input
v-model="queryParams.gmtModified"
placeholder="请输入服务端gmtModified"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
<el-form-item label="监测项" prop="meId">
<el-select v-model="queryParams.meId" placeholder="请选择监测项" clearable filterable>
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['device:pitElementItem:add']"
>新增</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitElementItem:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['device:pitElementItem:edit']"
>修改</el-button>
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitElementItem:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['device:pitElementItem:remove']"
>删除</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitElementItem:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['device:pitElementItem:export']"
>导出</el-button>
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitElementItem:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitElementItemList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="配置ID" align="center" prop="cfgId" />
<el-table-column label="服务端ID" align="center" prop="srvId" />
<el-table-column label="dev_pitmonit_southsmos_element表srvId" align="center" prop="monitorElementId" />
<el-table-column label="服务端name" align="center" prop="name" />
<el-table-column label="服务端step" align="center" prop="step" />
<el-table-column label="服务端unit" align="center" prop="unit" />
<el-table-column label="服务端valueRange" align="center" prop="valueRange" />
<el-table-column label="服务端gmtCreate" align="center" prop="gmtCreate" />
<el-table-column label="服务端gmtModified" align="center" prop="gmtModified" />
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="构件" align="center" prop="elementName" />
<el-table-column label="监测项" align="center" prop="meName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['device:pitElementItem:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['device:pitElementItem:remove']"
>删除</el-button>
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitElementItem:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitElementItem:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改测项明细对话框 -->
<!-- 添加或修改基坑构件监测项关联对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="配置ID" prop="cfgId">
<el-input v-model="form.cfgId" placeholder="请输入配置ID" />
<el-form-item label="构件" prop="elementId">
<el-select v-model="form.elementId" placeholder="请选择构件" clearable filterable>
<el-option v-for="item in elements" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务端ID" prop="srvId">
<el-input v-model="form.srvId" placeholder="请输入服务端ID" />
</el-form-item>
<el-form-item label="dev_pitmonit_southsmos_element表srvId" prop="monitorElementId">
<el-input v-model="form.monitorElementId" placeholder="请输入dev_pitmonit_southsmos_element表srvId" />
</el-form-item>
<el-form-item label="服务端name" prop="name">
<el-input v-model="form.name" placeholder="请输入服务端name" />
</el-form-item>
<el-form-item label="服务端step" prop="step">
<el-input v-model="form.step" placeholder="请输入服务端step" />
</el-form-item>
<el-form-item label="服务端unit" prop="unit">
<el-input v-model="form.unit" placeholder="请输入服务端unit" />
</el-form-item>
<el-form-item label="服务端valueRange" prop="valueRange">
<el-input v-model="form.valueRange" placeholder="请输入服务端valueRange" />
</el-form-item>
<el-form-item label="服务端gmtCreate" prop="gmtCreate">
<el-input v-model="form.gmtCreate" placeholder="请输入服务端gmtCreate" />
</el-form-item>
<el-form-item label="服务端gmtModified" prop="gmtModified">
<el-input v-model="form.gmtModified" placeholder="请输入服务端gmtModified" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="form.state" placeholder="请输入状态" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
<el-form-item label="监测项" prop="meId">
<el-select v-model="form.meId" placeholder="请选择监测项" clearable filterable>
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -261,17 +112,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
cfgId: null,
srvId: null,
monitorElementId: null,
name: null,
step: null,
unit: null,
valueRange: null,
gmtCreate: null,
gmtModified: null,
state: null,
isDel: null,
elementId: null,
meId: null,
},
//
form: {},
@ -302,22 +144,8 @@ export default {
reset() {
this.form = {
id: null,
cfgId: null,
srvId: null,
monitorElementId: null,
name: null,
step: null,
unit: null,
valueRange: null,
gmtCreate: null,
gmtModified: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
elementId: null,
meId: null,
};
this.resetForm("form");
},

View File

@ -1,86 +1,81 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="queryParams.subDeptId" filterable placeholder="请选择总包单位" clearable >
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="监测项名称" prop="meName">
<el-input v-model="queryParams.meName" placeholder="请输入监测项名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="测点名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入测点名称" clearable @keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.name" placeholder="请输入测点名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" >
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" v-if="hasPosition" plain icon="el-icon-location-outline" size="mini" @click="handlePosition"></el-button>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8" v-if="1==2">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitSurveyPoint:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitSurveyPoint:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitSurveyPoint:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitSurveyPoint:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitSurveyPointList" @selection-change="handleSelectionChange">
<el-table-column label="编号" align="center" prop="spId" width="80" />
<el-table-column label="项目名称" align="center" prop="prjName" width="180" />
<el-table-column label="总包单位" align="center" prop="deptName" width="180" />
<el-table-column label="所属监测点组名称" align="center" prop="groupName" />
<el-table-column label="监测项名称" align="center" prop="meName" />
<el-table-column label="监测项英文标识名" align="center" prop="meNameEn" />
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="测点名称" align="center" prop="name" />
<el-table-column label="数据来源形式" align="center" prop="dataSource" >
<template slot-scope="scope">{{ ["人工上传","设备"][scope.row.dataSource] }}</template>
<el-table-column label="测点类型" align="center" prop="type" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitSurveyPoint:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitSurveyPoint:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<surveyPointPositionDrawer ref="ptDrawer" @success="handleQuery"></surveyPointPositionDrawer>
<!-- 添加或修改基坑测点对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="测点名称" prop="name">
<el-input v-model="form.name" placeholder="请输入测点名称" />
</el-form-item>
<el-form-item label="测点类型" prop="type">
<el-select v-model="form.type" placeholder="请选择测点类型">
<el-option v-for="dict in dict.type.pit_survey_point_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { listPitSurveyPoint, getPitSurveyPoint, delPitSurveyPoint, addPitSurveyPoint, updatePitSurveyPoint } from "@/api/device/pitSurveyPoint";
import surveyPointPositionDrawer from './surveyPointPositionDrawer.vue'
export default {
name: "PitSurveyPoint",
components:{
surveyPointPositionDrawer
},
data() {
return {
//
@ -105,72 +100,19 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
projectId:null,
subDeptId:null,
meName:'',
name:'',
name: null,
},
//
form: {},
//
rules: {
},
projectOptions: [],
depts: [],
};
},
created() {
this.getList();
this.init();
},
computed:{
hasPosition(){
return this.queryParams.projectId && this.pitSurveyPointList.length>0;
}
},
methods: {
handlePosition(){
this.$refs.ptDrawer.show(this.pitSurveyPointList,this.queryParams);
},
doQuerySub() {
let prjId=this.queryParams.projectId;
let tmps = this.prjDept2 && this.prjDept2[prjId] ? this.prjDept2[prjId] || [] : [];
if (tmps.length > 0 || !prjId) {
this.depts = tmps;
if (tmps.length == 1) {
this.queryParams.subDeptId = tmps[0].deptId;
} else {
this.queryParams.subDeptId = '';
}
this.getList();
return;
}
this.$api.publics.queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
let objs = d.rows || [];
if (!this.prjDept2) {
this.prjDept2 = {};
}
this.prjDept2[prjId] = objs;
this.depts = objs;
if (objs.length == 1) {
this.queryParams.subDeptId = objs[0].deptId;
} else {
this.queryParams.subDeptId = '';
}
this.getList();
});
},
init() {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},
/** 查询测点管理列表 */
getList() {
this.loading = true;
@ -189,26 +131,8 @@ export default {
reset() {
this.form = {
id: null,
cfgId: null,
spId: null,
groupId: null,
groupName: null,
meId: null,
meName: null,
meNameEn: null,
modifyDate: null,
name: null,
position: null,
dataSource: null,
createDate: null,
status: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
type: null,
};
this.resetForm("form");
},

View File

@ -1,69 +1,103 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="projectId">
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目" clearable @change="doQuerySub">
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
<el-form-item label="监测项" prop="meId">
<el-select v-model="queryParams.meId" placeholder="请选择监测项" clearable filterable @change="handleQuery">
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-select v-model="queryParams.subDeptId" filterable placeholder="请选择总包单位" clearable>
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
<el-form-item label="测点" prop="spId">
<el-select v-model="queryParams.spId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="1==2">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
<el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd"
v-hasPermi="['device:pitThreshold:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
<el-button type="success" plain icon="el-icon-edit" size="small" :disabled="single" @click="handleUpdate"
v-hasPermi="['device:pitThreshold:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
<el-button type="danger" plain icon="el-icon-delete" size="small" :disabled="multiple" @click="handleDelete"
v-hasPermi="['device:pitThreshold:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
<el-button type="warning" plain icon="el-icon-download" size="small" @click="handleExport"
v-hasPermi="['device:pitThreshold:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar :showSearch="showSearch" @update:showSearch="showSearch = $event" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="pitThresholdList" @selection-change="handleSelectionChange">
<el-table-column label="编号" align="center" prop="id" width="80" />
<el-table-column label="项目名称" align="center" prop="prjName" width="180" />
<el-table-column label="总包单位" align="center" prop="deptName" width="180" />
<el-table-column label="监测项" align="center" prop="elName" />
<el-table-column label="监测分项" align="center" prop="monitorItemName" />
<el-table-column label="类型" align="center" prop="type" />
<el-table-column label="报警值等级" align="center" prop="level">
<template slot-scope="scope">{{ ["正常","超预警值","超报警值","超控制值"][scope.row.level] }}</template>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="监测项" align="center" prop="meName" />
<el-table-column label="测点" align="center" prop="spName" />
<el-table-column label="预警值" align="center" prop="warningValue" />
<el-table-column label="报警值" align="center" prop="alarmValue" />
<el-table-column label="控制值" align="center" prop="controlValue" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
<el-button size="small" type="primary" text icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['device:pitThreshold:edit']">修改</el-button>
<el-button size="small" type="danger" text icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['device:pitThreshold:remove']">删除</el-button>
</template>
</el-table-column>
<el-table-column label="报警值配置" align="center" prop="threshold" />
<el-table-column label="每天时间范围" align="center" prop="intervalA" >
<template slot-scope="scope">{{scope.row.intervalA}} ~ {{ scope.row.intervalB }}</template>
</el-table-column>
<el-table-column label="报警提示信息" align="center" prop="alarmInfo" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
<pagination v-show="total>0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改基坑阈值对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="监测项" prop="meId">
<el-select v-model="form.meId" placeholder="请选择监测项" clearable filterable @change="handleMeChange">
<el-option v-for="item in meas" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="测点" prop="spId">
<el-select v-model="form.spId" placeholder="请选择测点" clearable filterable>
<el-option v-for="item in surveyPoints" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="预警值" prop="warningValue">
<el-input v-model="form.warningValue" placeholder="请输入预警值" />
</el-form-item>
<el-form-item label="报警值" prop="alarmValue">
<el-input v-model="form.alarmValue" placeholder="请输入报警值" />
</el-form-item>
<el-form-item label="控制值" prop="controlValue">
<el-input v-model="form.controlValue" placeholder="请输入控制值" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { listPitThreshold, getPitThreshold, delPitThreshold, addPitThreshold, updatePitThreshold } from "@/api/device/pitThreshold";
import { queryUnitList, findMyProjectList } from "@/api/publics";
export default {
name: "PitThreshold",
@ -121,7 +155,7 @@ export default {
this.getList();
return;
}
this.$api.publics.queryUnitList({
queryUnitList({
projectId: prjId,
unitTypes: "2".split(","),
}).then((d) => {
@ -143,7 +177,7 @@ export default {
if (this.projectOptions && this.projectOptions.length > 0) {
return;
}
this.$api.publics.getMyProjectList({}).then((response) => {
findMyProjectList({}).then((response) => {
this.projectOptions = response.rows;
});
},

View File

@ -1,29 +1,39 @@
<template>
<div>
<v-form-designer ref="vfDesigner" :designer-config="designerConfig">
<!-- 保存按钮 -->
<template #customSaveButton>
<el-button type="text" @click="saveFormJson"><el-icon><Promotion /></el-icon></el-button>
</template>
</v-form-designer>
<!--系统表单信息-->
<el-dialog :title="formTitle" v-model="formOpen" width="500px" append-to-body>
<el-form ref="formRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="表单名称" prop="formName">
<el-input v-model="form.formName" placeholder="请输入表单名称" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<div class="flow-form-container">
<div class="form-header">
<el-button type="primary" @click="saveFormJson">
<el-icon><Promotion /></el-icon>
</el-button>
<el-button type="success" @click="previewForm"></el-button>
</div>
<div class="form-content">
<el-alert
title="表单设计器使用说明"
type="info"
description="1. 从左侧拖拽组件到中间画布区域 2. 点击组件可进行属性配置 3. 点击保存按钮保存表单设计"
show-icon
/>
<el-row :gutter="20">
<el-col :span="6">
<div class="components-panel">
<h3>组件库</h3>
<!-- 组件列表 -->
</div>
</el-col>
<el-col :span="12">
<div class="canvas-panel">
<h3>设计区域</h3>
<!-- 设计画布 -->
</div>
</el-col>
<el-col :span="6">
<div class="properties-panel">
<h3>属性配置</h3>
<!-- 属性面板 -->
</div>
</el-col>
</el-row>
</div>
</template>
</el-dialog>
</div>
</template>

View File

@ -1,35 +1,14 @@
<template>
<div class="cost-month" style="border:solid 1px #409eff;margin: 12px 0px;padding: 6px 12px 0px;position: relative;">
<el-popover placement="top" :visible="data.showPop2" ref="pop" width="300px">
<p>选择年份</p>
<div style="margin-bottom: 12px;">
<el-date-picker v-model="data.selYear" type="year" placeholder="选择年份" style="width:100%"
:picker-options="{ disabledDate: doPick }">
</el-date-picker>
</div>
<div style="text-align: right; margin: 0">
<el-button size="small" type="text" @click="data.showPop2 = false">取消</el-button>
<el-button type="primary" size="small" @click="doAddYear"></el-button>
</div>
<template #reference>
<el-button size="small" type="success" @click="data.showPop2 = true" style="margin-right: 12px;"
class="btn-add-year" round>增加年份</el-button>
<div class="cost-month-container">
<el-dialog v-model="data.showPop2" title="确认取消" width="30%">
<span>确定要取消当前操作吗</span>
<template #footer>
<span class="dialog-footer">
<el-button size="small" @click="data.showPop2 = false">取消</el-button>
<el-button size="small" type="primary" @click="confirmCancel"></el-button>
</span>
</template>
</el-popover>
<el-tabs type="card" v-model="data.activeName">
<el-tab-pane v-for="(it, idx) in data.monthInv" :label="'' + it.year" :name="'' + it.year" :key="idx">
<el-row>
<el-col v-for="(item, idxx) in it.value" :key="idxx" :span="12">
<el-form-item :label="data.names[item.month]" class="w200"
:class="item.money * 1 < 0 ? 'txt-error' : ''">
<el-input-number :precision="2" v-model="item.money" placeholder="年度投资">
</el-input-number>
<span class="sp-unit">万元</span>
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</el-dialog>
</div>
</template>

View File

@ -1,34 +1,14 @@
<template>
<div class="cost-year" style="border:solid 1px #409eff;margin: 12px 0px;padding: 12px 12px 0px;position: relative;">
<el-popover placement="top" :visible="data.showPop2" width="300px">
<p>选择年份</p>
<div style="margin-bottom: 12px;">
<el-date-picker v-model="data.selYear" type="year" placeholder="选择年份" style="width:100%"
:picker-options="{ disabledDate: doPick }">
</el-date-picker>
</div>
<div style="text-align: right; margin: 0">
<el-button size="small" type="text" @click="doCancel"></el-button>
<el-button type="primary" size="small" @click="doAddYear"></el-button>
</div>
<template #reference>
<el-button class="btn-add-year" size="small" @click="data.showPop2 = true" type="success"
style="margin-right: 12px;" round>增加年份</el-button>
<div class="cost-year-container">
<el-dialog v-model="data.showPop" title="确认取消" width="30%">
<span>确定要取消当前操作吗</span>
<template #footer>
<span class="dialog-footer">
<el-button size="small" @click="doCancel"></el-button>
<el-button size="small" type="primary" @click="confirmCancel"></el-button>
</span>
</template>
</el-popover>
<el-tabs type="card" v-model="data.activeName">
<el-tab-pane v-for="(it, idx) in data.yearInv" :label="'' + it.year" :name="'' + it.year" :key="idx">
<el-form-item label="年度投资" class="w400" :class="it.money * 1 < 0 ? 'txt-error' : ''">
<el-input-number :precision="2" v-model="it.money" placeholder="年度投资">
</el-input-number>
<span class="sp-unit">万元</span>
</el-form-item>
</el-tab-pane>
</el-tabs>
</el-dialog>
</div>
</template>