flx:提交水泥搅拌桩模块

This commit is contained in:
Rain_ 2025-12-15 10:07:41 +08:00
parent cbd47b3311
commit 930f648f74
12 changed files with 6906 additions and 956 deletions

View File

@ -1,16 +0,0 @@
[0530/113505.640:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/113508.674:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.489:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0530/141801.943:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090447.805:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090447.874:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090448.024:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0929/090501.978:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163244.965:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163245.034:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163246.926:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[0930/163247.976:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1011/144829.070:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1011/144829.252:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1011/144829.886:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)
[1011/144830.214:ERROR:registration_protocol_win.cc(108)] CreateFile: 系统找不到指定的文件。 (0x2)

View File

@ -0,0 +1,89 @@
/**
* api接口统一管理 塔吊管理
*/
import { post, get } from '../http'
// 启用指定类型的水泥搅拌桩/旋挖配置
export const updateConfigEnableCementMixPileConfigApi = data => post('xmgl/cementMixPileConfig/updateConfigEnable', data);
// 查询启用的水泥搅拌桩/旋挖配置
export const getUseCementMixPileConfigApi = data => post('xmgl/cementMixPileConfig/getUseCementMixPileConfig', data, 'aa'); //通过塔吊设备唯一标识查询信息
// 编辑水泥搅拌桩/旋挖配置信息
export const editCementMixPileConfigApi = data => post('xmgl/cementMixPileConfig/edit', data);
// 水泥搅拌桩
// 列表查询水泥搅拌桩/旋挖设备信息
export const getCementMixPileDevListApi = data => get('/xmgl/cementMixPileDev/list', data);
// 添加水泥搅拌桩/旋挖设备信息
export const addCementMixPileDevApi = data => post('/xmgl/cementMixPileDev/add', data);
// 编辑水泥搅拌桩/旋挖设备信息
export const editCementMixPileDevApi = data => post('/xmgl/cementMixPileDev/edit', data);
// 删除水泥搅拌桩/旋挖设备信息
export const deleteCementMixPileDevApi = data => post('/xmgl/cementMixPileDev/delete', data);
// 通过id查询水泥搅拌桩/旋挖设备信息
export const queryCementMixPileDevByIdApi = data => get('/xmgl/cementMixPileDev/queryById', data);
// 任务记录
// 分页列表查询水泥搅拌桩/旋挖任务信息
export const getCementMixPileTaskPageApi = data => get('/xmgl/cementMixPileTask/page', data);
// 添加水泥搅拌桩/旋挖任务信息
export const addCementMixPileTaskApi = data => post('/xmgl/cementMixPileTask/add', data);
// 编辑水泥搅拌桩/旋挖任务信息
export const editCementMixPileTaskApi = data => post('/xmgl/cementMixPileTask/edit', data);
// 删除水泥搅拌桩/旋挖任务信息
export const deleteCementMixPileTaskApi = data => post('/xmgl/cementMixPileTask/delete', data);
// 批量删除水泥搅拌桩/旋挖任务信息
export const deleteBatchCementMixPileTaskApi = data => post('/xmgl/cementMixPileTask/deleteBatch', data);
// 保存水泥搅拌桩/旋挖任务点位信息
export const saveCementMixPileTaskPointApi = data => post('/xmgl/cementMixPileTask/savePoints', data);
// 解绑水泥搅拌桩/旋挖任务点位信息
export const delPointsByTaskIdCementMixPileTaskPointApi = data => post('/xmgl/cementMixPileTask/delPointsByTaskId', data);
// 点位数据
// 列表查询水泥搅拌桩/旋挖点位信息信息
export const getCementMixPilePointListApi = data => get('/xmgl/cementMixPilePoint/list', data);
// 分页列表查询水泥搅拌桩/旋挖点位信息信息
export const getCementMixPilePointPageApi = data => get('/xmgl/cementMixPilePoint/page', data);
// 添加水泥搅拌桩/旋挖点位信息
export const addCementMixPilePointApi = data => post('/xmgl/cementMixPilePoint/add', data);
// 编辑水泥搅拌桩/旋挖点位信息
export const editCementMixPilePointApi = data => post('/xmgl/cementMixPilePoint/edit', data);
// 删除水泥搅拌桩/旋挖点位信息
export const deleteCementMixPilePointApi = data => post('/xmgl/cementMixPilePoint/delete', data);
// 批量删除水泥搅拌桩/旋挖点位信息
export const deleteBatchCementMixPilePointApi = data => post('/xmgl/cementMixPilePoint/deleteBatch', data);
// 成桩数据
// 分页列表查询水泥搅拌桩/旋挖沉桩数据信息
export const getCementMixPilePilPageApi = data => get('/xmgl/cementMixPilePil/page', data);
// 添加水泥搅拌桩/旋挖沉桩数据信息
export const addCementMixPilePilApi = data => post('/xmgl/cementMixPilePil/add', data);
// 编辑水泥搅拌桩/旋挖沉桩数据信息
export const editCementMixPilePilApi = data => post('/xmgl/cementMixPilePil/edit', data);
// 删除水泥搅拌桩/旋挖沉桩数据信息
export const deleteCementMixPilePilApi = data => post('/xmgl/cementMixPilePil/delete', data);
// 批量删除水泥搅拌桩/旋挖沉桩数据信息
export const deleteBatchCementMixPilePilApi = data => post('/xmgl/cementMixPilePil/deleteBatch', data);
// 实时数据
// 分页列表查询水泥搅拌桩/旋挖沉桩实时数据信息
export const getCementMixPileRealtimePageApi = data => get('/xmgl/cementMixPileRealtime/page', data);
// 添加水泥搅拌桩/旋挖沉桩实时数据信息
export const addCementMixPileRealtimeApi = data => post('/xmgl/cementMixPileRealtime/add', data);
// 编辑水泥搅拌桩/旋挖沉桩实时数据信息
export const editCementMixPileRealtimeApi = data => post('/xmgl/cementMixPileRealtime/edit', data);
// 删除水泥搅拌桩/旋挖沉桩实时数据信息
export const deleteCementMixPileRealtimeApi = data => post('/xmgl/cementMixPileRealtime/delete', data);
// 批量删除水泥搅拌桩/旋挖沉桩实时数据信息
export const deleteBatchCementMixPileRealtimeApi = data => post('/xmgl/cementMixPileRealtime/deleteBatch', data);
// 报警数据
// 分页列表查询水泥搅拌桩/旋挖沉桩报警信息
export const getCementMixPileAlarmPageApi = data => get('/xmgl/cementMixPileAlarm/page', data);
// 添加水泥搅拌桩/旋挖沉桩报警信息
export const addCementMixPileAlarmApi = data => post('/xmgl/cementMixPileAlarm/add', data);
// 编辑水泥搅拌桩/旋挖沉桩报警信息
export const editCementMixPileAlarmApi = data => post('/xmgl/cementMixPileAlarm/edit', data);
// 删除水泥搅拌桩/旋挖沉桩报警信息
export const deleteCementMixPileAlarmApi = data => post('/xmgl/cementMixPileAlarm/delete', data);
// 批量删除水泥搅拌桩/旋挖沉桩报警信息
export const deleteBatchCementMixPileAlarmApi = data => post('/xmgl/cementMixPileAlarm/deleteBatch', data);

View File

@ -181,34 +181,34 @@ if (process.env.NODE_ENV == "development") {
// axios.defaults.baseURL = 'http://192.168.34.221:28889/' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:28890/' //郭圣雄本地
// axios.defaults.baseURL = "http://192.168.34.221:9111/"; //郭圣雄本地
axios.defaults.baseURL = "http://192.168.34.221:19112/"; //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
// axios.defaults.baseURL = 'http://182.90.224.237:51234/' //郭圣雄远程
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
// axios.defaults.baseURL ='http://183.249.224.118:9000/' //嘉兴王江泾公用码头
// axios.defaults.baseURL = 'http://101.43.164.214:11111/' // 百色三标段项目
// axios.defaults.baseURL = 'http://125.88.207.86:8088/'//中建四局线上(最新)地址
// axios.defaults.baseURL = 'http://125.88.207.86:8099/'//中建四局(沙湖)线上(最新)地址
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:15551/'//测试地址
// axios.defaults.baseURL = 'http://47.93.215.234:9809/'//鞍钢正式地址(弃用)
// axios.defaults.baseURL = 'http://42.180.188.17:9809/' //鞍钢正式地址
// axios.defaults.baseURL = 'http://47.93.215.234:11211/'//鞍钢测试地址(弃用)
// axios.defaults.baseURL = 'http://42.180.188.17:11211/' //鞍钢测试地址
// axios.defaults.baseURL = 'http://8.136.222.164:8808/' //中科安信正式地址
// axios.defaults.baseURL = 'http://1.13.185.209:9820/' //中科佳成正式地址
// axios.defaults.baseURL = 'http://192.168.9.249:9820/' //四川网城正式地址
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:34568/' //四川网城外网映射地址
// axios.defaults.baseURL = 'http://192.168.110.220:9809/' //同济正式地址
// axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000"; //包头化工
// axios.defaults.baseURL = "http://222.80.185.228:6090"; //木垒
// axios.defaults.baseURL = "https://zm.zhgdyun.com:11111";
// // axios.defaults.baseURL = "http://121.37.106.37:9809";
// axios.defaults.baseURL = "http://139.9.66.234:20628";
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:9500";
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:21000/"; // 潮州
// axios.defaults.baseURL = "http://gszhdz.crpower.com.cn:9809/"; // 敦煌
// axios.defaults.baseURL = "http://192.168.34.221:19112/"; //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
// axios.defaults.baseURL = 'http://182.90.224.237:51234/' //郭圣雄远程
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈
// axios.defaults.baseURL ='http://183.249.224.118:9000/' //嘉兴王江泾公用码头
// axios.defaults.baseURL = 'http://101.43.164.214:11111/' // 百色三标段项目
// axios.defaults.baseURL = 'http://125.88.207.86:8088/'//中建四局线上(最新)地址
// axios.defaults.baseURL = 'http://125.88.207.86:8099/'//中建四局(沙湖)线上(最新)地址
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:15551/'//测试地址
// axios.defaults.baseURL = 'http://47.93.215.234:9809/'//鞍钢正式地址(弃用)
// axios.defaults.baseURL = 'http://42.180.188.17:9809/' //鞍钢正式地址
// axios.defaults.baseURL = 'http://47.93.215.234:11211/'//鞍钢测试地址(弃用)
// axios.defaults.baseURL = 'http://42.180.188.17:11211/' //鞍钢测试地址
// axios.defaults.baseURL = 'http://8.136.222.164:8808/' //中科安信正式地址
// axios.defaults.baseURL = 'http://1.13.185.209:9820/' //中科佳成正式地址
// axios.defaults.baseURL = 'http://192.168.9.249:9820/' //四川网城正式地址
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:34568/' //四川网城外网映射地址
// axios.defaults.baseURL = 'http://192.168.110.220:9809/' //同济正式地址
// axios.defaults.baseURL = 'http://192.168.100.4:9809/' //乌丹(合肥启程)新正式地址
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:18000"; //包头化工
// axios.defaults.baseURL = "http://222.80.185.228:6090"; //木垒
// axios.defaults.baseURL = "https://zm.zhgdyun.com:11111";
// // axios.defaults.baseURL = "http://121.37.106.37:9809";
// axios.defaults.baseURL = "http://139.9.66.234:20628";
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:9500";
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:21000/"; // 潮州
// axios.defaults.baseURL = "http://gszhdz.crpower.com.cn:9809/"; // 敦煌
} else if (process.env.NODE_ENV == "debug") {
axios.defaults.baseURL = "https://www.ceshi.com";
} else if (process.env.NODE_ENV == "production") {

View File

@ -285,6 +285,12 @@ const routes = [{
component: (resolve) =>
require(["@/views/equipmentCenter/tunnelBoringMachine/deviceManage"], resolve),
},
{
path: "cementMixingPileMonitor/deviceManager",
name: "盾构机管理_设备管理",
component: (resolve) =>
require(["@/views/projectFront/cementMixingPileMonitor/deviceManager.vue"], resolve),
},
],
},
{

View File

@ -411,7 +411,7 @@ const routes2 = [{
},
{
path: "/project/cementMixingPileMonitor/pileDrivingList",
name: "成桩数据",
name: "点位数据",
component: (resolve) =>
require(["@/views/projectFront/cementMixingPileMonitor/pileDrivingList.vue"], resolve),
},
@ -421,6 +421,18 @@ const routes2 = [{
component: (resolve) =>
require(["@/views/projectFront/cementMixingPileMonitor/taskRecord.vue"], resolve),
},
{
path: "/project/cementMixingPileMonitor/realTimeList",
name: "实时数据",
component: (resolve) =>
require(["@/views/projectFront/cementMixingPileMonitor/realTimeList.vue"], resolve),
},
{
path: "/project/cementMixingPileMonitor/alarmList",
name: "报警数据",
component: (resolve) =>
require(["@/views/projectFront/cementMixingPileMonitor/alarmList.vue"], resolve),
},
//天气管理
{
path: "/project/summary/weatherManagement",

View File

@ -149,8 +149,8 @@
:disabled="Popup.type === 'edit'"
@change="devTypeChange"
>
<el-radio-button :label="1">车辆定位</el-radio-button>
<el-radio-button :label="2">人员定位</el-radio-button>
<el-radio-button :label="1">车辆定位</el-radio-button>
<el-radio-button :label="2">人员定位</el-radio-button>
</el-radio-group>
</div>
<template v-if="addEditForm.type === 1">
@ -176,20 +176,20 @@
</el-select>
</el-form-item>
<el-form-item
label="车牌号"
prop="carId"
v-if="addEditForm.isFromCarInfo === 1"
>
<el-select v-model="addEditForm.carId" filterable placeholder="请选择车辆">
<el-option
:label="item.carNumber"
:value="item.id"
v-for="(item, index) in carList"
:key="index"
>
</el-option>
</el-select>
</el-form-item>
label="车牌号"
prop="carId"
v-if="addEditForm.isFromCarInfo === 1"
>
<el-select v-model="addEditForm.carId" filterable placeholder="请选择车辆">
<el-option
:label="item.carNumber"
:value="item.id"
v-for="(item, index) in carList"
:key="index"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-else label="车牌号" prop="numberPlate">
<el-input v-model="addEditForm.numberPlate" placeholder="请输入"></el-input>
</el-form-item>
@ -225,7 +225,10 @@
<el-input v-model="addEditForm.driver" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="司机电话" prop="driverTelephone">
<el-input v-model="addEditForm.driverTelephone" placeholder="请输入"></el-input>
<el-input
v-model="addEditForm.driverTelephone"
placeholder="请输入"
></el-input>
</el-form-item>
</template>
<div class="dialog-footer">
@ -401,6 +404,31 @@
</div>
</div>
</el-dialog>
<!--切换其它平台之前的提示-->
<el-dialog
:modal-append-to-body="false"
:title="$t('message.videoManage.switch_platforms.title')"
:visible.sync="Popup1.platforms"
width="667px"
>
<div class="dialog_content">
<div class="platforms-title">确认更换定位类型为"{{ Popup1.name }}"</div>
<div class="platforms-msg">
更换后原有的定位类型配置及设备信息将全部清零请谨慎更换
</div>
<div class="dialog-footer">
<el-button class="zdy-btn" @click="Popup1.platforms = false" size="medium">
<div>
<img src="@/assets/images/cancel.png" alt="" />
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
</div>
</el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="cut" size="medium"
>{{ $t("message.videoManage.btn_determine") }}
</el-button>
</div>
</div>
</el-dialog>
<!-- 配置视频类型 -->
<el-dialog
:modal-append-to-body="false"
@ -435,25 +463,36 @@
</div>
</div>
</el-dialog>
<!--配置服务器-->
<el-dialog :modal-append-to-body="false" title="配置isc服务器" :visible.sync="Popup2.accountServer" width="667px">
<!--配置服务器-->
<el-dialog
:modal-append-to-body="false"
title="配置服务器"
:visible.sync="Popup2.accountServer"
width="667px"
>
<div class="dialog_content">
<el-form label-width="100px" class="dialogFormBox" size="medium">
<el-form-item label="服务器IP">
<el-input v-model="policeCameraVideoInfo.ip"
:placeholder="$t('message.videoManage.placeholder')"></el-input>
<el-input
v-model="policeCameraVideoInfo.ip"
:placeholder="$t('message.videoManage.placeholder')"
></el-input>
</el-form-item>
<el-form-item label="端口">
<el-input v-model="policeCameraVideoInfo.port"
:placeholder="$t('message.videoManage.placeholder')"></el-input>
<el-input
v-model="policeCameraVideoInfo.port"
:placeholder="$t('message.videoManage.placeholder')"
></el-input>
</el-form-item>
<el-form-item label="用户名">
<el-input v-model="policeCameraVideoInfo.account" placeholder="请输入"></el-input>
<el-input
v-model="policeCameraVideoInfo.account"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input v-model="policeCameraVideoInfo.pwd" placeholder="请输入"></el-input>
</el-form-item>
</el-form-item>
</el-form>
<div class="dialog-footer">
<el-button class="zdy-btn" @click="Popup2.accountServer = false" size="medium">
@ -462,8 +501,12 @@
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
</div>
</el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="saveAccountConfig" size="medium">{{
$t("message.videoManage.btn_determine") }}
<el-button
type="primary"
icon="el-icon-circle-check"
@click="saveAccountConfig"
size="medium"
>{{ $t("message.videoManage.btn_determine") }}
</el-button>
</div>
</div>
@ -594,6 +637,11 @@ export default {
pwd: "",
},
carList: [],
Popup1: {
platforms: false,
name: "",
videoType: "",
},
};
},
mounted() {
@ -628,16 +676,16 @@ export default {
},
//
accountServerObj(type) {
getUseVehiclePositionConfigEnableApi({
projectSn: this.$store.state.projectSn,
}).then((res) => {
if (res.result) {
this.policeCameraVideoInfo = {
...res.result,
};
this.Popup2.accountServer = true;
}
});
getUseVehiclePositionConfigEnableApi({
projectSn: this.$store.state.projectSn,
}).then((res) => {
if (res.result) {
this.policeCameraVideoInfo = {
...res.result,
};
this.Popup2.accountServer = true;
}
});
},
//
getProjectVideoConfigList() {
@ -667,11 +715,17 @@ export default {
},
beforeCut(index, item) {
if (index !== this.videoType) {
this.Popup.platforms = true;
this.Popup.name = item;
this.Popup.videoType = index;
this.Popup1.platforms = true;
this.Popup1.name = item;
this.Popup1.videoType = index;
}
},
cut() {
this.videoType = this.Popup1.videoType;
this.Popup1.platforms = false;
console.log("当前videoType", this.videoType);
this.saveVideoConfigFn();
},
/** 查询企业列表 */
getEnterpriseList() {
const params = {
@ -706,7 +760,9 @@ export default {
edit(obj) {
console.log("编辑", obj);
this.addEditForm = JSON.parse(JSON.stringify(obj));
this.addEditForm.enterpriseIds = obj.enterpriseIds ? obj.enterpriseIds.split(",") : [];
this.addEditForm.enterpriseIds = obj.enterpriseIds
? obj.enterpriseIds.split(",")
: [];
this.handle("edit", true);
},
deleteDev(obj) {

View File

@ -0,0 +1,399 @@
<template>
<div class="fullHeight whiteBlock">
<div style="padding: 15px 15px 0">
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
<el-form-item label="桩点名称">
<el-input v-model="searchForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<!-- <el-form-item label="上传时间">
<el-date-picker
v-model="searchForm.dateRangeArr"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
:range-separator="$t('message.sixComplete.to')"
:start-placeholder="$t('message.sixComplete.start')"
:end-placeholder="$t('message.sixComplete.end')"
>
</el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button type="primary" plain @click="queryBtn">{{
$t("message.energyManage.waybill.query")
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t("message.deviceManage.refresh")
}}</el-button>
<el-button type="primary" size="medium" @click="isAdd(1)">新增</el-button>
<el-button
:disabled="$refs.multipleTable && $refs.multipleTable.selection.length == 0"
:type="
$refs.multipleTable && $refs.multipleTable.selection.length == 0
? 'info'
: 'danger'
"
class="delete_btn"
plain
@click="deleteAttendanceBatch"
>删除</el-button
>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" ref="multipleTable" :data="List">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column prop="alarmTime" label="报警时间" align="center">
<template slot-scope="scope">
{{ scope.row.alarmTime || "--" }}
</template>
</el-table-column>
<el-table-column
prop="pilePointName"
label="桩点名称"
align="center"
></el-table-column>
<el-table-column prop="designPileDepth" align="center" label="设计桩深(m)">
<template slot-scope="scope">
{{ scope.row.designPileDepth || "--" }}
</template>
</el-table-column>
<el-table-column prop="realPileDepth" align="center" label="实时桩深">
<template slot-scope="scope"> {{ scope.row.realPileDepth || "--" }} </template>
</el-table-column>
<el-table-column width="220" label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="isAdd(2, scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="title"
:visible.sync="dialogShow"
width="1024px"
>
<div class="dialog_content">
<el-form
size="medium"
ref="addEditForm"
:model="addEditForm"
:rules="addEditRules"
label-width="160px"
class="dialogFormBox"
>
<el-form-item label="报警时间:" prop="alarmTime">
<el-date-picker
v-model="addEditForm.alarmTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="桩点名称:" prop="pilePointName">
<el-input v-model="addEditForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设计桩深(m):" prop="designPileDepth">
<el-input
type="number"
v-model="addEditForm.designPileDepth"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实时桩深:" prop="realPileDepth">
<el-input
type="number"
v-model="addEditForm.realPileDepth"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="dialogShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t("message.deviceManage.cancel") }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit"
size="medium"
>{{ $t("message.deviceManage.save") }}
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getCementMixPileAlarmPageApi,
addCementMixPileAlarmApi,
deleteCementMixPileAlarmApi,
editCementMixPileAlarmApi,
deleteBatchCementMixPileAlarmApi,
} from "@/assets/js/api/cementMixingPileMonitor.js";
export default {
mounted() {
this.getList();
},
data() {
return {
title: "",
dialogShow: false,
pagInfo: {
pageNo: 1, //
pageSize: 10, //
total: 0, //
},
List: [],
addEditForm: {
pilePointName: "",
vehicleName: "",
heading: "",
positioningTime: "",
longitude: "",
latitude: "",
speed: "",
realtimeDepth: "",
realtimeCurrent: "",
realtimeInjectionVolume: "",
realtimeVerticality: "",
realtimeRate: "",
pointHorizontalDeviationDistance: "",
},
addEditRules: {
pilePointName: [
{
required: true,
message: "必填",
trigger: "blur",
},
],
},
searchForm: {
pilePointName: "",
dateRangeArr: [],
},
stateList: [
{
value: "1",
label: "待机",
},
{
value: "2",
label: "焊接",
},
{
value: "3",
label: "报警",
},
{
value: "4",
label: "关机",
},
],
};
},
methods: {
//
deleteAttendanceBatch() {
if (this.$refs.multipleTable.selection.length === 0)
return this.$message.warning("请勾选需要删除的数据!");
this.$confirm("删除后操作不可恢复,请谨慎操作!", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const ids = this.$refs.multipleTable.selection.map((item) => item.id).join(",");
console.log(this.$refs.multipleTable.selection);
deleteBatchCementMixPileAlarmApi({ ids }).then((res) => {
this.queryBtn();
});
})
.catch(() => {});
},
//
getList() {
getCementMixPileAlarmPageApi({
pageNo: this.pagInfo.pageNo,
pageSize: this.pagInfo.pageSize,
projectSn: this.$store.state.projectSn,
pilePointName: this.searchForm.pilePointName,
createTime_begin:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[0]
? this.searchForm.dateRangeArr[0]
: "",
createTime_end:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[1]
? this.searchForm.dateRangeArr[1]
: "",
}).then((result) => {
if (result.success) {
this.List = result.result.records;
this.pagInfo.total = result.result.total;
}
});
},
isAdd(type, obj) {
if (type == 1) {
this.title = "新增";
this.close();
} else if (type == 2) {
this.title = "编辑";
this.addEditForm = JSON.parse(JSON.stringify(obj));
}
this.dialogShow = true;
},
submit() {
let params = JSON.parse(JSON.stringify(this.addEditForm));
params.projectSn = this.$store.state.projectSn;
this.$refs.addEditForm.validate((valid) => {
if (valid) {
if (this.title == "新增") {
addCementMixPileAlarmApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.getList();
}
});
} else if (this.title === "编辑") {
editCementMixPileAlarmApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.getList();
}
});
}
this.dialogShow = false;
} else {
return false;
}
});
},
deleteDev(obj) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteCementMixPileAlarmApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
close() {
this.addEditForm = {};
this.$nextTick(() => {
this.$refs.addEditForm.clearValidate();
});
},
SizeChange(val) {
this.pagInfo.pageSize = val;
this.getList();
},
CurrentChange(val) {
this.pagInfo.pageNo = val;
this.getList();
},
queryBtn() {
this.pagInfo.pageNo = 1; //
this.getList();
},
refresh() {
this.searchForm = {};
this.pagInfo.pageNo = 1; //
this.pagInfo.pageSize = 10; //
this.getList();
},
},
computed: {
headers() {
return {
Authorization: this.$store.state.userInfo.token,
};
},
},
};
</script>
<style lang="less" scoped>
.dialog_content {
padding: 0;
.dialogFormBox {
width: initial;
display: flex;
flex-wrap: wrap;
.el-form-item {
margin-bottom: 20px;
}
}
}
.color-ff0 {
color: #ff0000;
}
.el-date-editor {
width: 360px;
}
.pagerBox {
margin-top: 30px;
}
.table_wrap {
height: calc(100% - 131px);
}
.tables {
min-height: 610px;
max-height: 610px;
}
.upload-btn {
margin: 0 15px;
display: inline-block;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,170 +1,177 @@
<template>
<div class="fullHeight whiteBlock">
<div style="padding: 15px 15px 0">
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
<el-form-item label="名称">
<el-input v-model="searchForm.roundNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备编号">
<el-input
v-model="searchForm.largeSectionNumber"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="上传时间">
<el-date-picker
v-model="searchForm.assemblyDateArr"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
:range-separator="$t('message.sixComplete.to')"
:start-placeholder="$t('message.sixComplete.start')"
:end-placeholder="$t('message.sixComplete.end')"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="queryBtn">{{
$t("message.energyManage.waybill.query")
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t("message.deviceManage.refresh")
}}</el-button>
<el-button type="primary" size="medium" @click="isAdd(1)">新增</el-button>
<el-button
:disabled="$refs.multipleTable && $refs.multipleTable.selection.length == 0"
:type="
$refs.multipleTable && $refs.multipleTable.selection.length == 0
? 'info'
: 'danger'
"
class="delete_btn"
plain
@click="deleteAttendanceBatch"
>删除</el-button
>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" ref="multipleTable" :data="List">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column
prop="roundNumber"
label="设备名称"
align="center"
></el-table-column>
<el-table-column
prop="largeSectionNumber"
align="center"
label="设备编号"
></el-table-column>
<el-table-column
prop="smallSectionNumber"
align="center"
label="上传时间"
></el-table-column>
<el-table-column prop="blockNumber" align="center" label="桩号"></el-table-column>
<el-table-column
prop="assemblyDate"
align="center"
label="任务名称"
></el-table-column>
<el-table-column prop="weldingDate" align="center" label="司机"></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="坐标"
></el-table-column>
<el-table-column
prop="shippingDate"
align="center"
label="沉桩深度(m)"
></el-table-column>
<el-table-column
prop="weight"
align="center"
label="持力层电流(A)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="持力层(比值)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="垂直度(%)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="拔桩时间(止)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="沉桩电流(A)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="拔桩电流(A)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="沉桩速率(m/min)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="拔管速率(m/min)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="灌入量(m°)"
></el-table-column>
<el-table-column
prop="paintingDate"
align="center"
label="桩点水平偏移距离(m)"
></el-table-column>
<el-table-column fixed="right" width="220" label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="newShowDatadetails(scope.row)" class="operationText">
<i
class="el-icon-tickets"
style="color: #8dacfa; font-size: 16px; margin-right: 2px"
></i>
<span>查看</span>
</div>
<div @click="isAdd(2, scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>删除</span>
</div>
<template v-if="safetyRiskDetailShow == 0">
<div style="padding: 15px 15px 0">
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
<el-form-item label="桩点名称">
<el-input v-model="searchForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="点位状态">
<el-select v-model="searchForm.pointStatus" placeholder="请选择">
<el-option
v-for="item in stateList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="queryBtn">{{
$t("message.energyManage.waybill.query")
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t("message.deviceManage.refresh")
}}</el-button>
<el-button type="primary" size="medium" @click="isAdd(1)">新增</el-button>
<el-button
:disabled="$refs.multipleTable && $refs.multipleTable.selection.length == 0"
:type="
$refs.multipleTable && $refs.multipleTable.selection.length == 0
? 'info'
: 'danger'
"
class="delete_btn"
plain
@click="deleteAttendanceBatch"
>删除</el-button
>
<el-button
class="border-radius_3"
@click="exportBtnTemplateDetail"
type="primary"
plain
>下载模版</el-button
>
<div class="upload-btn">
<el-upload
class="upload-demo"
name="excelFile"
:action="
$http.defaults.baseURL + 'xmgl/gsBlockProductionInformation/importExcel'
"
:on-change="handleChangeE"
:on-success="handleSuccessE"
:on-error="handleErrorE"
:show-file-list="false"
:headers="headers"
:data="{ projectSn: $store.state.projectSn }"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
:auto-upload="true"
>
<!-- 批量导入 -->
<el-button type="primary" class="border-radius_3">导入</el-button>
</el-upload>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
<el-button
class="border-radius_3"
@click="exportBtnTemplateDetail"
type="primary"
>导出</el-button
>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" ref="multipleTable" :data="cementMixPilePointList">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column type="index" label="序号" align="center"></el-table-column>
<el-table-column
prop="taskName"
align="center"
label="任务名称"
></el-table-column>
<el-table-column
prop="pilePointName"
align="center"
label="桩点名称"
></el-table-column>
<el-table-column
prop="coordinateX"
align="center"
label="X坐标"
></el-table-column>
<el-table-column
prop="coordinateY"
align="center"
label="Y坐标"
></el-table-column>
<el-table-column prop="elevation" align="center" label="高程"></el-table-column>
<el-table-column
prop="designPileDepth"
align="center"
label="设计桩深(m)"
></el-table-column>
<el-table-column
prop="designGroutingVolume"
align="center"
label="设计灌入量(m°)"
></el-table-column>
<el-table-column prop="pointStatus" align="center" label="点位状态">
<template v-slot="{ row }">
<span
class="color-box"
:class="{
'color-32a': row.pointStatus == 1,
'color-e69': row.pointStatus == 2,
}"
>
{{
row.pointStatus == 2
? "进行中"
: row.pointStatus == 1
? "已完成"
: "未施工"
}}
</span>
</template>
</el-table-column>
<el-table-column
prop="statusChineseCharacterAnnotation"
align="center"
label="状态汉字注释"
></el-table-column>
<el-table-column fixed="right" width="280" label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="newShowDatadetails(scope.row)" class="operationText">
<i
class="el-icon-tickets"
style="color: #8dacfa; font-size: 16px; margin-right: 2px"
></i>
<span>成桩数据</span>
</div>
<div @click="isAdd(2, scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
</template>
<PileDrivingListDetail
:taskInfoFrom="safetyRiskDetail"
@updateValue="handleValue"
v-else-if="safetyRiskDetailShow == 1"
></PileDrivingListDetail>
<el-dialog
:modal-append-to-body="false"
@close="close"
@ -181,71 +188,45 @@
label-width="140px"
class="dialogFormBox"
>
<el-form-item label="设备名称" prop="roundNumber">
<el-input v-model="addEditForm.roundNumber" placeholder="请输入"></el-input>
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="addEditForm.taskName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备编号" prop="largeSectionNumber">
<el-form-item label="桩点名称" prop="pilePointName">
<el-input v-model="addEditForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="X坐标" prop="coordinateX">
<el-input
v-model="addEditForm.largeSectionNumber"
v-model="addEditForm.coordinateX"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="桩号" prop="smallSectionNumber">
<el-form-item label="Y坐标" prop="coordinateY">
<el-input
v-model="addEditForm.smallSectionNumber"
placeholder="任务名称"
v-model="addEditForm.coordinateY"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="司机" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
<el-form-item label="高程" prop="elevation">
<el-input v-model="addEditForm.elevation" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="上传时间" prop="assemblyDate">
<el-date-picker
v-model="addEditForm.assemblyDate"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
<el-form-item label="设计桩深(m)" prop="designPileDepth">
<el-input
v-model="addEditForm.designPileDepth"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="坐标" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
<el-form-item label="设计灌入量(m°)" prop="designGroutingVolume">
<el-input
v-model="addEditForm.designGroutingVolume"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="沉桩深度(m)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="持力层电流(A)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="持力层(比值)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="垂直度(%)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="拔桩时间(止)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="沉桩电流(A)" prop="weight">
<el-input v-model="addEditForm.weight" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="拔桩电流(A)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="沉桩速率(m/min)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="拔管速率(m/min)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="灌入量(m°)" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="桩点水平偏移距离(m" prop="blockNumber">
<el-input v-model="addEditForm.blockNumber" placeholder="请输入"></el-input>
</el-form-item>
<!-- <el-form-item label="状态" prop="status">
<el-select v-model="addEditForm.status" placeholder="请选择">
<el-form-item label="点位状态" prop="pointStatus">
<el-select v-model="addEditForm.pointStatus" placeholder="请选择">
<el-option
v-for="item in stateList"
:key="item.value"
@ -254,10 +235,15 @@
>
</el-option>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item label="状态汉字注释" prop="statusChineseCharacterAnnotation">
<el-input
v-model="addEditForm.statusChineseCharacterAnnotation"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@ -275,169 +261,20 @@
</el-button>
</div>
</el-dialog>
<el-dialog
:modal-append-to-body="false"
title="详情"
:visible.sync="operatingRiskDialog"
width="1170px"
class="source-danger"
>
<div class="dialog_content dialog_main_operatingrisk">
<div class="content-main content-main1">
<div class="content-header">基本信息</div>
<div class="content-box">
<div class="content-item">
<div>设备名称</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>设备编号</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>上传时间</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>桩号</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>任务名称</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>司机</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>坐标</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>沉桩深度(m)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>持力层电流(A)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>持力层(比值)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>垂直度(%)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>拔桩时间()</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>沉桩电流(A)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>拔桩电流(A)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>沉桩速率(m/min)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>拔管速率(m/min)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>灌入量(m3)</div>
<div>0.5</div>
</div>
<div class="content-item">
<div>桩点水平催移距离(m)</div>
<div>0.5</div>
</div>
</div>
</div>
<div class="content-main content-main2">
<div class="content-header">详细数据</div>
<div class="content-box">
<div class="content-item">
<el-radio-group v-model="radio2" size="medium">
<el-radio-button label="深度(m)"></el-radio-button>
<el-radio-button label="压桩速率(m)"></el-radio-button>
<el-radio-button label="沉桩电流(A)"></el-radio-button>
<el-radio-button label="拔桩电流(A)"></el-radio-button>
<el-radio-button label="成桩体积(m3)"></el-radio-button>
</el-radio-group>
</div>
<div class="box2_main">
<div class="chart-box" ref="riskTrendLineCharts"></div>
</div>
</div>
</div>
<div class="content-main content-main3">
<div class="content-header">每米施工情况表</div>
<el-table
class="weld_table"
max-height="300"
:data="dataList"
border
style="width: 100%"
>
<el-table-column prop="weldingCurrent" label="深度(m)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="成桩体积(m3)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="垂直度(%)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="沉桩电流(A)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="持力层电流(A)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="压桩速率(m/min)" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
<el-table-column prop="weldingCurrent" label="上传日期" align="center">
<template slot-scope="scope">
{{ scope.row.weldingCurrent || "--" }}
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import {
addBlockProductionInformationApi,
deleteBlockProductionInformationApi,
editBlockProductionInformationApi,
getBlockProductionInformationPageApi,
batchDeleteBlockProductionInformationApi,
} from "@/assets/js/api/progressManagement.js";
getCementMixPilePointPageApi,
addCementMixPilePointApi,
editCementMixPilePointApi,
deleteCementMixPilePointApi,
deleteBatchCementMixPilePointApi,
} from "@/assets/js/api/cementMixingPileMonitor";
import PileDrivingListDetail from "./pileDrivingListDetail.vue";
export default {
mounted() {
this.getList();
components: {
PileDrivingListDetail,
},
data() {
return {
@ -448,21 +285,20 @@ export default {
pageSize: 10, //
total: 0, //
},
List: [],
cementMixPilePointList: [],
addEditForm: {
roundNumber: "",
largeSectionNumber: "",
smallSectionNumber: "",
blockNumber: "",
assemblyDate: "",
paintingDate: "",
shippingDate: "",
weldingDate: "",
status: "",
weight: "",
taskName: "",
pilePointName: "",
coordinateX: "",
coordinateY: "",
elevation: "",
designPileDepth: "",
designGroutingVolume: "",
pointStatus: "",
statusChineseCharacterAnnotation: "",
},
addEditRules: {
roundNumber: [
taskName: [
{
required: true,
message: "必填",
@ -471,29 +307,105 @@ export default {
],
},
searchForm: {
roundNumber: "",
largeSectionNumber: "",
smallSectionNumber: "",
blockNumber: "",
assemblyDateArr: [],
paintingDateArr: [],
shippingDateArr: [],
status: "",
pilePointName: "",
pointStatus: "",
},
stateList: [
{
value: 0,
label: "未施工",
},
{
value: 1,
label: "未完成",
label: "完成",
},
{
value: 2,
label: "已完成",
label: "进行中",
},
],
operatingRiskDialog: true,
safetyRiskDetailShow: 0,
safetyRiskDetail: {},
};
},
mounted() {
this.getList();
},
methods: {
handleChangeE(file, fileList) {
if (file.raw) {
if (
file.raw.type ==
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
file.raw.type == "application/vnd.ms-excel"
) {
} else {
this.$message.error(this.$t("message.laborMange.hint5"));
}
}
},
handleSuccessE(file) {
console.log("==========", file);
if (file.code == 200) {
this.$message.success(file.message); //
this.queryBtn();
} else {
this.$message.error(file.message);
}
},
handleErrorE() {
this.$message.error(this.$t("message.laborMange.hint7"));
this.queryBtn();
},
//
exportBtnTemplateDetail() {
fetch(
this.$http.defaults.baseURL +
`xmgl/gsBridgeSite/downloadExcel?projectSn=${this.$store.state.projectSn}`,
{
method: "get",
headers: {
Authorization: this.$store.state.userInfo.token,
"Content-Type": "application/json", // JSON
},
// body: JSON.stringify(data) // dataJSON
}
)
.then((response) => {
//
if (!response.ok) {
throw new Error("下载失败");
}
return response.blob();
})
.then((blob) => {
//
const url = window.URL.createObjectURL(blob);
// <a>
const link = document.createElement("a");
link.href = url;
link.download = "桥位环缝.xlsx"; //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// URL
window.URL.revokeObjectURL(url);
//
// 使blob
})
.catch((error) => {
//
console.error(error);
});
},
newShowDatadetails(row) {
this.safetyRiskDetail = row;
this.safetyRiskDetailShow = 1;
},
handleValue(type) {
this.safetyRiskDetailShow = type;
},
//
deleteAttendanceBatch() {
if (this.$refs.multipleTable.selection.length === 0)
@ -506,7 +418,7 @@ export default {
.then(() => {
const ids = this.$refs.multipleTable.selection.map((item) => item.id).join(",");
console.log(this.$refs.multipleTable.selection);
batchDeleteBlockProductionInformationApi({ ids }).then((res) => {
deleteBatchCementMixPilePointApi({ ids }).then((res) => {
this.queryBtn();
});
})
@ -514,48 +426,15 @@ export default {
},
//
getList() {
getBlockProductionInformationPageApi({
getCementMixPilePointPageApi({
pageNo: this.pagInfo.pageNo,
pageSize: this.pagInfo.pageSize,
projectSn: this.$store.state.projectSn,
roundNumber: this.searchForm.roundNumber,
largeSectionNumber: this.searchForm.largeSectionNumber,
smallSectionNumber: this.searchForm.smallSectionNumber,
blockNumber: this.searchForm.blockNumber,
assemblyDate_begin:
this.searchForm.assemblyDateArr instanceof Array &&
this.searchForm.assemblyDateArr[0]
? this.searchForm.assemblyDateArr[0]
: "",
assemblyDate_end:
this.searchForm.assemblyDateArr instanceof Array &&
this.searchForm.assemblyDateArr[1]
? this.searchForm.assemblyDateArr[1]
: "",
paintingDate_begin:
this.searchForm.paintingDateArr instanceof Array &&
this.searchForm.paintingDateArr[0]
? this.searchForm.paintingDateArr[0]
: "",
paintingDate_end:
this.searchForm.paintingDateArr instanceof Array &&
this.searchForm.paintingDateArr[1]
? this.searchForm.paintingDateArr[1]
: "",
shippingDate_begin:
this.searchForm.shippingDateArr instanceof Array &&
this.searchForm.shippingDateArr[0]
? this.searchForm.shippingDateArr[0]
: "",
shippingDate_end:
this.searchForm.shippingDateArr instanceof Array &&
this.searchForm.shippingDateArr[1]
? this.searchForm.shippingDateArr[1]
: "",
status: this.searchForm.status,
pilePointName: this.searchForm.pilePointName,
pointStatus: this.searchForm.pointStatus,
}).then((result) => {
if (result.success) {
this.List = result.result.records;
this.cementMixPilePointList = result.result.records;
this.pagInfo.total = result.result.total;
}
});
@ -578,21 +457,22 @@ export default {
this.$refs.addEditForm.validate((valid) => {
if (valid) {
if (this.title == "新增") {
addBlockProductionInformationApi(params).then((result) => {
addCementMixPilePointApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.dialogShow = false;
this.getList();
}
});
} else if (this.title === "编辑") {
editBlockProductionInformationApi(params).then((result) => {
editCementMixPilePointApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.dialogShow = false;
this.getList();
}
});
}
this.dialogShow = false;
} else {
return false;
}
@ -605,7 +485,7 @@ export default {
type: "warning",
})
.then(() => {
deleteBlockProductionInformationApi({ id: obj.id }).then((res) => {
deleteCementMixPilePointApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getList();
this.$message({
@ -663,66 +543,14 @@ export default {
};
</script>
<style lang="less" scoped>
.dialog_main_operatingrisk {
max-height: 580px;
overflow-y: scroll;
.content-main3 {
/deep/ .weld_table {
width: 100%;
border-color: #d8dbe8;
.el-table__cell {
border-color: #d8dbe8;
}
thead .el-table__cell {
background-color: #f6f6f6;
}
.el-input {
width: 100% !important;
}
}
}
.content-main2 {
.content-item {
margin-bottom: 20px;
}
.box2_main {
width: 100%;
height: 420px;
.chart-box {
width: 100%;
height: 100%;
}
}
}
.content-main1 {
.content-box {
display: flex;
flex-wrap: wrap;
.content-item {
display: flex;
align-items: center;
font-size: 14px;
color: #272d45;
margin-bottom: 20px;
width: 45%;
> div:first-child {
color: #a2a4af;
margin-right: 8px;
width: 140px;
text-align: right;
}
}
}
}
.content-main {
.content-header {
margin-bottom: 20px;
font-weight: 800;
font-size: 16px;
color: #4d4d4d;
}
}
.color-box {
color: #747994;
}
.color-32a {
color: #32ae37;
}
.color-e69 {
color: #e69436;
}
.el-dialog__body {
padding: 20px;

View File

@ -0,0 +1,910 @@
<template>
<div class="container_main">
<div class="sidebar_btn">
<el-button
class="flex"
@click="sendValue"
size="small"
icon="el-icon-back"
type="primary"
plain
>返回</el-button
>
<div class="header-box">任务信息</div>
</div>
<div class="sidebar_content">
<el-form size="medium" ref="taskInfoFrom" :model="taskInfoFrom" label-width="120px">
<!-- <el-form-item label="点位名称" prop="pilePointName">
{{ taskInfoFrom.pilePointName }}
</el-form-item> -->
<el-form-item label="任务名称" prop="taskName">
{{ taskInfoFrom.taskName }}
</el-form-item>
<el-form-item label="X坐标" prop="coordinateX">
{{ taskInfoFrom.coordinateX }}
</el-form-item>
<el-form-item label="Y坐标" prop="coordinateY">
{{ taskInfoFrom.coordinateY }}
</el-form-item>
<el-form-item label="高程" prop="elevation">
{{ taskInfoFrom.elevation }}
</el-form-item>
<el-form-item label="设计桩深(m)" prop="designPileDepth">
{{ taskInfoFrom.designPileDepth }}
</el-form-item>
<el-form-item label="设计灌入量(m°)" prop="designGroutingVolume">
{{ taskInfoFrom.designGroutingVolume }}
</el-form-item>
<el-form-item label="点位状态" prop="pointStatus">
<span
class="color-box"
:class="{
'color-32a': taskInfoFrom.pointStatus == 1,
'color-e69': taskInfoFrom.pointStatus == 2,
}"
>
{{
taskInfoFrom.pointStatus == 2
? "进行中"
: taskInfoFrom.pointStatus == 1
? "已完成"
: "未施工"
}}
</span>
</el-form-item>
<el-form-item label="状态汉字注释" prop="statusChineseCharacterAnnotation">
{{ taskInfoFrom.statusChineseCharacterAnnotation }}
</el-form-item>
</el-form>
</div>
<div class="sidebar_content1">
<div class="header-box">成桩数据</div>
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
<el-form-item label="设备名称">
<el-select v-model="searchForm.eqDevSn" placeholder="请选择">
<el-option
v-for="item in cementMixPileDevList"
:key="item.devSn"
:label="item.devName"
:value="item.devSn"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备编号">
<el-input v-model="searchForm.devSn" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="上传时间">
<el-date-picker
v-model="searchForm.dateRangeArr"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
:range-separator="$t('message.sixComplete.to')"
:start-placeholder="$t('message.sixComplete.start')"
:end-placeholder="$t('message.sixComplete.end')"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="queryBtn">{{
$t("message.energyManage.waybill.query")
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t("message.deviceManage.refresh")
}}</el-button>
<el-button type="primary" size="medium" @click="isAdd(1)">新增</el-button>
<el-button
:disabled="$refs.multipleTable && $refs.multipleTable.selection.length == 0"
:type="
$refs.multipleTable && $refs.multipleTable.selection.length == 0
? 'info'
: 'danger'
"
class="delete_btn"
plain
@click="deleteAttendanceBatch"
>删除</el-button
>
</el-form-item>
</el-form>
<el-table class="tables" ref="multipleTable" :data="dataList">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column prop="devName" align="center" label="设备名称"></el-table-column>
<el-table-column prop="devSn" label="设备编号" align="center"></el-table-column>
<el-table-column
prop="uploadTime"
align="center"
label="上传时间"
></el-table-column>
<el-table-column
prop="pilePointName"
align="center"
label="桩点名称"
></el-table-column>
<el-table-column
prop="taskName"
align="center"
label="任务名称"
></el-table-column>
<el-table-column
prop="pileDrivingStartTime"
align="center"
label="沉桩开始时间"
></el-table-column>
<el-table-column
prop="pileDrivingEndTime"
align="center"
label="沉桩结束时间"
></el-table-column>
<el-table-column
prop="pileExtractionStartTime"
align="center"
label="拔桩开始时间"
></el-table-column>
<el-table-column
prop="pileExtractionEndTime"
align="center"
label="拔桩结束时间"
></el-table-column>
<el-table-column width="280" label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="isAdd(3, scope.row)" class="operationText">
<i
class="el-icon-tickets"
style="color: #8dacfa; font-size: 16px; margin-right: 2px"
></i>
<span>查看</span>
</div>
<div @click="isAdd(2, scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pageInfo.total)"
background
></el-pagination>
</div>
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="title"
:visible.sync="dialogShow"
width="1036px"
>
<div class="dialog_content">
<el-form
size="medium"
ref="addEditForm"
:model="addEditForm"
:rules="addEditRules"
label-width="170px"
class="dialogFormBox"
>
<el-form-item label="设备名称:" prop="devName">
<template v-if="showType == 3">
{{ addEditForm.devName }}
</template>
<el-select
v-else
@change="onDevChange"
v-model="addEditForm.devSn"
placeholder="请选择"
>
<el-option
v-for="item in cementMixPileDevList"
:key="item.devSn"
:label="item.devName"
:value="item.devSn"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="上传时间:" prop="uploadTime">
<template v-if="showType == 3">
{{ addEditForm.uploadTime }}
</template>
<el-date-picker
v-else
v-model="addEditForm.uploadTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="桩点名称:" prop="pilePointName">
<template v-if="showType == 3">
{{ addEditForm.pilePointName }}
</template>
<el-input
v-else
v-model="addEditForm.pilePointName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="任务名称:" prop="taskName">
<template v-if="showType == 3">
{{ addEditForm.taskName }}
</template>
<el-input
v-else
v-model="addEditForm.taskName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="沉桩开始时间:" prop="pileDrivingStartTime">
<template v-if="showType == 3">
{{ addEditForm.pileDrivingStartTime }}
</template>
<el-date-picker
v-else
v-model="addEditForm.pileDrivingStartTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="
handleTimeChange(addEditForm.pileDrivingEndTime, 'startTime')
"
>
</el-date-picker>
</el-form-item>
<el-form-item label="沉桩结束时间:" prop="pileDrivingEndTime">
<template v-if="showType == 3">
{{ addEditForm.pileDrivingEndTime }}
</template>
<el-date-picker
v-else
v-model="addEditForm.pileDrivingEndTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="
handleTimeChange(addEditForm.pileDrivingStartTime, 'endTime')
"
>
</el-date-picker>
</el-form-item>
<el-form-item label="拔桩开始时间:" prop="pileExtractionStartTime">
<template v-if="showType == 3">
{{ addEditForm.pileExtractionStartTime }}
</template>
<el-date-picker
v-else
v-model="addEditForm.pileExtractionStartTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="
handleTimeChange(addEditForm.pileExtractionEndTime, 'startTime')
"
>
</el-date-picker>
</el-form-item>
<el-form-item label="拔桩结束时间:" prop="pileExtractionEndTime">
<template v-if="showType == 3">
{{ addEditForm.pileExtractionEndTime }}
</template>
<el-date-picker
v-else
v-model="addEditForm.pileExtractionEndTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="
handleTimeChange(addEditForm.pileExtractionStartTime, 'endTime')
"
>
</el-date-picker>
</el-form-item>
<el-form-item label="施工高程:" prop="constructionElevation">
<template v-if="showType == 3">
{{ addEditForm.constructionElevation }}
</template>
<el-input
v-else
v-model="addEditForm.constructionElevation"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="施工X坐标:" prop="constructionXCoordinate">
<template v-if="showType == 3">
{{ addEditForm.constructionXCoordinate }}
</template>
<el-input
v-else
type="number"
v-model="addEditForm.constructionXCoordinate"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="施工Y坐标:" prop="constructionYCoordinate">
<template v-if="showType == 3">
{{ addEditForm.constructionYCoordinate }}
</template>
<el-input
v-else
v-model="addEditForm.constructionYCoordinate"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="施工经度:" prop="constructionLongitude">
<template v-if="showType == 3">
{{ addEditForm.constructionLongitude }}
</template>
<el-input
v-else
v-model="addEditForm.constructionLongitude"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="施工纬度:" prop="constructionLatitude">
<template v-if="showType == 3">
{{ addEditForm.constructionLatitude }}
</template>
<el-input
v-else
v-model="addEditForm.constructionLatitude"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="持力层(比值):" prop="bearingLayer">
<template v-if="showType == 3">
{{ addEditForm.bearingLayer }}
</template>
<el-input
v-else
v-model="addEditForm.bearingLayer"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="沉桩深度(m):" prop="pileDrivingDepth">
<template v-if="showType == 3">
{{ addEditForm.pileDrivingDepth }}
</template>
<el-input
v-else
v-model="addEditForm.pileDrivingDepth"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="持力层电流(A):" prop="bearingLayerCurrent">
<template v-if="showType == 3">
{{ addEditForm.bearingLayerCurrent }}
</template>
<el-input
v-else
v-model="addEditForm.bearingLayerCurrent"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="拔桩电流(A):" prop="pileExtractionCurrent">
<template v-if="showType == 3">
{{ addEditForm.pileExtractionCurrent }}
</template>
<el-input
v-else
v-model="addEditForm.pileExtractionCurrent"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="垂直度(%):" prop="verticality">
<template v-if="showType == 3">
{{ addEditForm.verticality }}
</template>
<el-input
v-else
v-model="addEditForm.verticality"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="沉桩平均电流(A):" prop="averagePileDrivingCurrent">
<template v-if="showType == 3">
{{ addEditForm.averagePileDrivingCurrent }}
</template>
<el-input
v-else
v-model="addEditForm.averagePileDrivingCurrent"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="拔桩平均电流(A):" prop="averagePileExtractionCurrent">
<template v-if="showType == 3">
{{ addEditForm.averagePileExtractionCurrent }}
</template>
<el-input
v-else
v-model="addEditForm.averagePileExtractionCurrent"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="沉桩平均速率(m/min):" prop="averagePileDrivingRate">
<template v-if="showType == 3">
{{ addEditForm.averagePileDrivingRate }}
</template>
<el-input
v-else
v-model="addEditForm.averagePileDrivingRate"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="拔桩平均速率(m/min):" prop="averagePileExtractionRate">
<template v-if="showType == 3">
{{ addEditForm.averagePileExtractionRate }}
</template>
<el-input
v-else
v-model="addEditForm.averagePileExtractionRate"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实际灌入量(m°):" prop="actualGroutingVolume">
<template v-if="showType == 3">
{{ addEditForm.actualGroutingVolume }}
</template>
<el-input
v-else
v-model="addEditForm.actualGroutingVolume"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item
label="桩点水平偏差距离(m):"
prop="horizontalDeviationDistanceOfPilePoint"
>
<template v-if="showType == 3">
{{ addEditForm.horizontalDeviationDistanceOfPilePoint }}
</template>
<el-input
v-else
v-model="addEditForm.horizontalDeviationDistanceOfPilePoint"
type="number"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="状态" prop="status">
<template v-if="showType == 3">
{{ addEditForm.status == 2 ? "已完成" : "未完成" }}
</template>
<el-select v-else v-model="addEditForm.status" placeholder="请选择">
<el-option
v-for="item in stateList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer" v-if="showType != 3">
<el-button
class="cancleBtn"
@click="dialogShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t("message.deviceManage.cancel") }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit"
size="medium"
>{{ $t("message.deviceManage.save") }}
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getCementMixPilePilPageApi,
addCementMixPilePilApi,
editCementMixPilePilApi,
deleteCementMixPilePilApi,
deleteBatchCementMixPilePilApi,
getCementMixPileDevListApi,
} from "@/assets/js/api/cementMixingPileMonitor";
import dayjs from "dayjs";
export default {
name: "pileDrivingListDetail",
props: ["taskInfoFrom"],
data() {
return {
projectSn: "",
tableData: [],
searchForm: {
eqDevSn: "",
devSn: "",
dateRangeArr: [],
},
dataList: [],
stateList: [
{
value: 1,
label: "未完成",
},
{
value: 2,
label: "已完成",
},
],
title: "",
dialogShow: false,
pageInfo: {
pageNo: 1, //
pageSize: 10, //
total: 0, //
},
addEditForm: {
devName: "",
uploadTime: "",
pilePointName: "",
taskName: "",
pileDrivingStartTime: "",
pileDrivingEndTime: "",
pileExtractionStartTime: "",
pileExtractionEndTime: "",
constructionElevation: "",
constructionXCoordinate: "",
constructionYCoordinate: "",
constructionLongitude: "",
constructionLatitude: "",
bearingLayer: "",
pileDrivingDepth: "",
bearingLayerCurrent: "",
pileExtractionCurrent: "",
verticality: "",
averagePileDrivingCurrent: "",
averagePileExtractionCurrent: "",
averagePileDrivingRate: "",
averagePileExtractionRate: "",
actualGroutingVolume: "",
horizontalDeviationDistanceOfPilePoint: "",
status: "",
},
addEditRules: {
taskName: [
{
required: true,
message: "必填",
trigger: "blur",
},
],
},
cementMixPileDevList: [],
showType: 1,
};
},
created() {
this.projectSn = this.$store.state.userInfo.sn;
this.queryBtn();
this.getCementMixPileDevList();
},
methods: {
onDevChange() {
const find = this.cementMixPileDevList.find(
(item) => item.devSn === this.addEditForm.devSn
);
if (find) {
this.addEditForm.devName = find.devName;
}
},
getCementMixPileDevList() {
getCementMixPileDevListApi({
projectSn: this.projectSn,
}).then((res) => {
if (res.code == 200) {
this.cementMixPileDevList = res.result;
}
});
},
handleTimeChange(diffTime, type) {
return {
disabledDate: (time) => {
// console.log(time, diffTime, type)
const date1 = dayjs(time);
const date2 = dayjs(diffTime);
if (type == "startTime") {
return date1.diff(date2) > 0 ? true : false;
} else if (type == "endTime") {
return date2.diff(date1) > 0 ? true : false;
}
return false;
},
};
},
newShowDatadetails(row) {
this.safetyRiskDetail = row;
this.safetyRiskDetailShow = 1;
},
handleValue(type) {
this.safetyRiskDetailShow = type;
},
//
deleteAttendanceBatch() {
if (this.$refs.multipleTable.selection.length === 0)
return this.$message.warning("请勾选需要删除的数据!");
this.$confirm("删除后操作不可恢复,请谨慎操作!", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const ids = this.$refs.multipleTable.selection.map((item) => item.id).join(",");
console.log(this.$refs.multipleTable.selection);
deleteBatchCementMixPilePilApi({ ids }).then((res) => {
this.queryBtn();
});
})
.catch(() => {});
},
isAdd(type, obj) {
this.showType = type;
if (type == 1) {
this.title = "新增";
this.close();
} else if (type == 2) {
this.title = "编辑";
this.addEditForm = JSON.parse(JSON.stringify(obj));
} else if (type == 3) {
this.title = "详情";
this.addEditForm = JSON.parse(JSON.stringify(obj));
}
this.dialogShow = true;
},
submit() {
let params = JSON.parse(JSON.stringify(this.addEditForm));
params.projectSn = this.$store.state.projectSn;
params.pointId = this.taskInfoFrom.id;
this.$refs.addEditForm.validate((valid) => {
if (valid) {
if (this.title == "新增") {
addCementMixPilePilApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.dialogShow = false;
this.getDataList();
}
});
} else if (this.title === "编辑") {
editCementMixPilePilApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.dialogShow = false;
this.getDataList();
}
});
}
} else {
return false;
}
});
},
deleteDev(obj) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteCementMixPilePilApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getDataList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
close() {
this.addEditForm = {};
this.$nextTick(() => {
this.$refs.addEditForm.clearValidate();
});
},
queryBtn() {
this.pageInfo.pageNo = 1; //
this.getDataList(); //
},
refresh() {
this.searchForm = {
eqDevSn: "",
devSn: "",
dateRangeArr: [],
};
this.pageInfo.pageNo = 1; //
this.pageInfo.pageSize = 10; //
this.getDataList();
},
//
handleSizeChange(val) {
this.pageInfo.pageSize = val;
this.getDataList();
},
//
handleCurrentChange(val) {
this.pageInfo.pageNo = val;
this.getDataList();
},
getDataList() {
getCementMixPilePilPageApi({
pageNo: this.pageInfo.pageNo,
pageSize: this.pageInfo.pageSize,
projectSn: this.$store.state.projectSn,
eqDevSn: this.searchForm.eqDevSn,
devSn: this.searchForm.devSn,
uploadTime_begin:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[0]
? this.searchForm.dateRangeArr[0]
: "",
uploadTime_end:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[1]
? this.searchForm.dateRangeArr[1]
: "",
pointId: this.taskInfoFrom.id,
}).then((result) => {
if (result.success) {
this.dataList = result.result.records;
this.pageInfo.total = result.result.total;
}
});
},
sendValue() {
//
this.$emit("updateValue", 0);
},
},
computed: {},
};
</script>
<style lang="less" scoped>
.color-box {
color: #747994;
}
.color-32a {
color: #32ae37;
}
.color-e69 {
color: #e69436;
}
.dialog_content {
padding: 0;
.dialogFormBox {
width: initial;
display: flex;
flex-wrap: wrap;
.el-form-item {
margin-bottom: 20px;
width: 50%;
}
}
}
.table_wrap {
margin-top: 20px;
}
.sidebar_content1 {
padding: 0 15px 15px;
.header-box {
margin-bottom: 10px;
}
.tables {
margin-top: 10px;
min-height: 350px;
max-height: 350px;
}
.pagerBox {
margin-top: 20px;
}
}
.sidebar_content {
padding: 0 15px;
display: flex;
align-items: flex-start;
.el-form {
display: flex;
flex-wrap: wrap;
width: 40%;
.el-form-item {
width: 50%;
margin-bottom: 10px;
}
}
}
:deep(.el-icon-back) {
background-image: url("~@/assets/images/rollback-icon.png");
background-size: 100% 100%;
background-repeat: no-repeat;
width: 14px;
height: 14px;
background-color: white;
border-radius: 50%;
}
:deep(.el-icon-back::before) {
display: none;
}
.flex {
display: flex;
align-items: center;
}
.sidebar_btn {
padding: 15px;
// border-bottom: 1px solid #e8e8e8;
display: flex;
// justify-content: space-between;
align-items: center;
.el-button {
margin-right: 8px;
}
}
.container_main {
width: calc(100%);
height: calc(100%);
overflow-y: auto;
overflow-x: hidden;
.el-form-item {
margin-bottom: 20px;
}
.header-box {
font-weight: 500;
font-size: 16px;
color: #272d45;
position: relative;
margin-left: 10px;
}
.header-box::before {
content: "";
position: absolute;
left: -10px;
top: 50%;
transform: translateY(-50%);
width: 3px;
height: 15px;
background-color: #4181fe;
}
}
</style>

View File

@ -0,0 +1,578 @@
<template>
<div class="fullHeight whiteBlock">
<div style="padding: 15px 15px 0">
<el-form :inline="true" ref="searchForm" :model="searchForm" size="medium">
<el-form-item label="桩点名称">
<el-input v-model="searchForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="上传时间">
<el-date-picker
v-model="searchForm.dateRangeArr"
type="datetimerange"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
:range-separator="$t('message.sixComplete.to')"
:start-placeholder="$t('message.sixComplete.start')"
:end-placeholder="$t('message.sixComplete.end')"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" plain @click="queryBtn">{{
$t("message.energyManage.waybill.query")
}}</el-button>
<el-button type="warning" plain @click="refresh">{{
$t("message.deviceManage.refresh")
}}</el-button>
<el-button type="primary" size="medium" @click="isAdd(1)">新增</el-button>
<el-button
:disabled="$refs.multipleTable && $refs.multipleTable.selection.length == 0"
:type="
$refs.multipleTable && $refs.multipleTable.selection.length == 0
? 'info'
: 'danger'
"
class="delete_btn"
plain
@click="deleteAttendanceBatch"
>删除</el-button
>
</el-form-item>
</el-form>
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" ref="multipleTable" :data="List">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column
type="index"
width="50"
label="序号"
align="center"
></el-table-column>
<el-table-column
prop="pilePointName"
label="桩点名称"
align="center"
></el-table-column>
<el-table-column prop="vehicleName" label="车辆名称" align="center">
<template slot-scope="scope">
{{ scope.row.vehicleName || "--" }}
</template>
</el-table-column>
<el-table-column prop="heading" align="center" label="航向">
<template slot-scope="scope">
{{ scope.row.heading || "--" }}
</template>
</el-table-column>
<el-table-column
width="170"
prop="positioningTime"
align="center"
label="定位时间"
>
<template slot-scope="scope">
{{ scope.row.positioningTime || "--" }}
</template>
</el-table-column>
<el-table-column prop="longitude" align="center" label="经度">
<template slot-scope="scope"> {{ scope.row.longitude || "--" }} </template>
</el-table-column>
<el-table-column prop="latitude" align="center" label="纬度">
<template slot-scope="scope">
{{ scope.row.latitude || "--" }}
</template>
</el-table-column>
<el-table-column prop="speed" align="center" label="速度">
<template slot-scope="scope">
{{ scope.row.speed || "--" }}
</template>
</el-table-column>
<el-table-column prop="realtimeDepth" align="center" label="实时深度(m)">
<template slot-scope="scope">
{{ scope.row.realtimeDepth || "--" }}
</template>
</el-table-column>
<el-table-column prop="realtimeCurrent" align="center" label="实时电流">
<template slot-scope="scope">
{{ scope.row.realtimeCurrent || "--" }}
</template>
</el-table-column>
<el-table-column
prop="realtimeInjectionVolume"
align="center"
label="实时灌入量(m°)"
>
<template slot-scope="scope">
{{ scope.row.realtimeInjectionVolume || "--" }}
</template>
</el-table-column>
<el-table-column prop="realtimeVerticality" align="center" label="实时垂直度">
<template slot-scope="scope">
{{ scope.row.realtimeVerticality || "--" }}
</template>
</el-table-column>
<el-table-column prop="realtimeRate" align="center" label="实时速率">
<template slot-scope="scope">
{{ scope.row.realtimeRate || "--" }}
</template>
</el-table-column>
<el-table-column
prop="pointHorizontalDeviationDistance"
align="center"
label="桩点水平偏差距离(m)"
>
<template slot-scope="scope">
{{ scope.row.pointHorizontalDeviationDistance || "--" }}
</template>
</el-table-column>
<el-table-column width="220" label="操作" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="isAdd(2, scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>编辑</span>
</div>
<div @click="deleteDev(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>删除</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="SizeChange"
@current-change="CurrentChange"
:current-page="pagInfo.pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pagInfo.pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(pagInfo.total)"
background
></el-pagination>
</div>
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="title"
:visible.sync="dialogShow"
width="1024px"
>
<div class="dialog_content">
<el-form
size="medium"
ref="addEditForm"
:model="addEditForm"
:rules="addEditRules"
label-width="160px"
class="dialogFormBox"
>
<el-form-item label="桩点名称:" prop="pilePointName">
<el-input v-model="addEditForm.pilePointName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="车辆名称:" prop="vehicleName">
<el-input v-model="addEditForm.vehicleName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="航向:" prop="heading">
<el-input v-model="addEditForm.heading" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="定位时间:" prop="positioningTime">
<el-date-picker
v-model="addEditForm.positioningTime"
type="datetime"
placeholder="选择日期"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="经度:" prop="longitude">
<el-input
type="number"
v-model="addEditForm.longitude"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="纬度:" prop="latitude">
<el-input
type="number"
v-model="addEditForm.latitude"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="速度:" prop="speed">
<el-input v-model="addEditForm.speed" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实时深度(m):" prop="realtimeDepth">
<el-input
type="number"
v-model="addEditForm.realtimeDepth"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实时电流:" prop="realtimeCurrent">
<el-input
v-model="addEditForm.realtimeCurrent"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实时灌入量(m°):" prop="realtimeInjectionVolume">
<el-input
type="number"
v-model="addEditForm.realtimeInjectionVolume"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实时垂直度:" prop="realtimeVerticality">
<el-input
v-model="addEditForm.realtimeVerticality"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="实时速率:" prop="realtimeRate">
<el-input v-model="addEditForm.realtimeRate" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item
label="桩点水平偏差距离(m):"
prop="pointHorizontalDeviationDistance"
>
<el-input
type="number"
v-model="addEditForm.pointHorizontalDeviationDistance"
placeholder="请输入"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="dialogShow = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t("message.deviceManage.cancel") }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="submit"
size="medium"
>{{ $t("message.deviceManage.save") }}
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getCementMixPileRealtimePageApi,
addCementMixPileRealtimeApi,
deleteCementMixPileRealtimeApi,
editCementMixPileRealtimeApi,
deleteBatchCementMixPileRealtimeApi,
} from "@/assets/js/api/cementMixingPileMonitor.js";
export default {
mounted() {
this.getList();
},
data() {
return {
title: "",
dialogShow: false,
pagInfo: {
pageNo: 1, //
pageSize: 10, //
total: 0, //
},
List: [],
addEditForm: {
pilePointName: "",
vehicleName: "",
heading: "",
positioningTime: "",
longitude: "",
latitude: "",
speed: "",
realtimeDepth: "",
realtimeCurrent: "",
realtimeInjectionVolume: "",
realtimeVerticality: "",
realtimeRate: "",
pointHorizontalDeviationDistance: "",
},
addEditRules: {
pilePointName: [
{
required: true,
message: "必填",
trigger: "blur",
},
],
},
searchForm: {
pilePointName: "",
dateRangeArr: [],
},
stateList: [
{
value: "1",
label: "待机",
},
{
value: "2",
label: "焊接",
},
{
value: "3",
label: "报警",
},
{
value: "4",
label: "关机",
},
],
};
},
methods: {
handleChangeE(file, fileList) {
if (file.raw) {
if (
file.raw.type ==
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ||
file.raw.type == "application/vnd.ms-excel"
) {
} else {
this.$message.error(this.$t("message.laborMange.hint5"));
}
}
},
handleSuccessE(file) {
console.log("==========", file);
if (file.code == 200) {
this.$message.success(file.message); //
this.queryBtn();
} else {
this.$message.error(file.message);
}
},
handleErrorE() {
this.$message.error(this.$t("message.laborMange.hint7"));
this.queryBtn();
},
//
exportBtnTemplateDetail() {
fetch(
this.$http.defaults.baseURL +
`xmgl/gsBridgeSite/downloadExcel?projectSn=${this.$store.state.projectSn}`,
{
method: "get",
headers: {
Authorization: this.$store.state.userInfo.token,
"Content-Type": "application/json", // JSON
},
// body: JSON.stringify(data) // dataJSON
}
)
.then((response) => {
//
if (!response.ok) {
throw new Error("下载失败");
}
return response.blob();
})
.then((blob) => {
//
const url = window.URL.createObjectURL(blob);
// <a>
const link = document.createElement("a");
link.href = url;
link.download = "桥位环缝.xlsx"; //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// URL
window.URL.revokeObjectURL(url);
//
// 使blob
})
.catch((error) => {
//
console.error(error);
});
},
//
deleteAttendanceBatch() {
if (this.$refs.multipleTable.selection.length === 0)
return this.$message.warning("请勾选需要删除的数据!");
this.$confirm("删除后操作不可恢复,请谨慎操作!", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const ids = this.$refs.multipleTable.selection.map((item) => item.id).join(",");
console.log(this.$refs.multipleTable.selection);
deleteBatchCementMixPileRealtimeApi({ ids }).then((res) => {
this.queryBtn();
});
})
.catch(() => {});
},
//
getList() {
getCementMixPileRealtimePageApi({
pageNo: this.pagInfo.pageNo,
pageSize: this.pagInfo.pageSize,
projectSn: this.$store.state.projectSn,
pilePointName: this.searchForm.pilePointName,
createTime_begin:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[0]
? this.searchForm.dateRangeArr[0]
: "",
createTime_end:
this.searchForm.dateRangeArr instanceof Array && this.searchForm.dateRangeArr[1]
? this.searchForm.dateRangeArr[1]
: "",
}).then((result) => {
if (result.success) {
this.List = result.result.records;
this.pagInfo.total = result.result.total;
}
});
},
isAdd(type, obj) {
if (type == 1) {
this.title = "新增";
this.close();
} else if (type == 2) {
this.title = "编辑";
this.addEditForm = JSON.parse(JSON.stringify(obj));
}
this.dialogShow = true;
},
submit() {
let params = JSON.parse(JSON.stringify(this.addEditForm));
params.projectSn = this.$store.state.projectSn;
this.$refs.addEditForm.validate((valid) => {
if (valid) {
if (this.title == "新增") {
addCementMixPileRealtimeApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.getList();
}
});
} else if (this.title === "编辑") {
editCementMixPileRealtimeApi(params).then((result) => {
if (result.success) {
this.$message.success(result.message);
this.getList();
}
});
}
this.dialogShow = false;
} else {
return false;
}
});
},
deleteDev(obj) {
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteCementMixPileRealtimeApi({ id: obj.id }).then((res) => {
if (res.success) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message({
type: "error",
message: res.message,
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
close() {
this.addEditForm = {};
this.$nextTick(() => {
this.$refs.addEditForm.clearValidate();
});
},
SizeChange(val) {
this.pagInfo.pageSize = val;
this.getList();
},
CurrentChange(val) {
this.pagInfo.pageNo = val;
this.getList();
},
queryBtn() {
this.pagInfo.pageNo = 1; //
this.getList();
},
refresh() {
this.searchForm = {};
this.pagInfo.pageNo = 1; //
this.pagInfo.pageSize = 10; //
this.getList();
},
},
computed: {
headers() {
return {
Authorization: this.$store.state.userInfo.token,
};
},
},
};
</script>
<style lang="less" scoped>
.dialog_content {
padding: 0;
.dialogFormBox {
width: initial;
display: flex;
flex-wrap: wrap;
.el-form-item {
margin-bottom: 20px;
}
}
}
.color-ff0 {
color: #ff0000;
}
.el-date-editor {
width: 360px;
}
.pagerBox {
margin-top: 30px;
}
.table_wrap {
height: calc(100% - 131px);
}
.tables {
min-height: 610px;
max-height: 610px;
}
.upload-btn {
margin: 0 15px;
display: inline-block;
}
</style>

File diff suppressed because it is too large Load Diff