feat:mpoint新增测点原始记录

This commit is contained in:
shijing 2024-05-09 13:46:23 +08:00
parent 330a87bf7e
commit 77aa24c19e
1 changed files with 392 additions and 181 deletions

View File

@ -1,198 +1,409 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'mpoint.create'">新增</el-button>
<el-button type="warning" @click="king_sync" v-auth="'mpoint.create'">同步亚控测点</el-button>
<el-button type="primary" @click="batchUpdate" v-auth="'mpoint.update'">批量修改</el-button>
</div>
<div class="right-panel">
<el-select v-model="query.enabled" placeholder="是否启用" @change="handleQuery" clearable style="width:100px">
<el-option v-for="e in boolEnum.values" :key="e.key" :value="e.key"
:label="e.text"></el-option>
</el-select>
<el-select v-model="query.type" placeholder="测点类型" @change="handleQuery" clearable style="width:100px">
<el-option v-for="e in mpointTypeEnum.values" :key="e.key" :value="e.key"
:label="e.text"></el-option>
</el-select>
<el-select v-model="query.val_type" placeholder="值类型" @change="handleQuery" clearable style="width:100px">
<el-option v-for="e in valTypeEnum.values" :key="e.key" :value="e.key"
:label="e.text"></el-option>
</el-select>
<el-select v-model="query.need_display" placeholder="是否展示" @change="handleQuery" clearable style="width:100px">
<el-option v-for="e in boolEnum.values" :key="e.key" :value="e.key"
:label="e.text"></el-option>
</el-select>
<el-input
v-model="query.search"
placeholder="名称/代号"
style="width:200px"
clearable
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" remoteSort @selection-change="selectionChange">
<el-container>
<el-header>
<div class="left-panel">
<el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'mpoint.create'"
>新增</el-button
>
<el-button
type="warning"
@click="king_sync"
v-auth="'mpoint.create'"
>同步亚控测点</el-button
>
<el-button
type="primary"
@click="batchUpdate"
v-auth="'mpoint.update'"
>批量修改</el-button
>
</div>
<div class="right-panel">
<el-select
v-model="query.enabled"
placeholder="是否启用"
@change="handleQuery"
clearable
style="width: 100px"
>
<el-option
v-for="e in boolEnum.values"
:key="e.key"
:value="e.key"
:label="e.text"
></el-option>
</el-select>
<el-select
v-model="query.type"
placeholder="测点类型"
@change="handleQuery"
clearable
style="width: 100px"
>
<el-option
v-for="e in mpointTypeEnum.values"
:key="e.key"
:value="e.key"
:label="e.text"
></el-option>
</el-select>
<el-select
v-model="query.val_type"
placeholder="值类型"
@change="handleQuery"
clearable
style="width: 100px"
>
<el-option
v-for="e in valTypeEnum.values"
:key="e.key"
:value="e.key"
:label="e.text"
></el-option>
</el-select>
<el-select
v-model="query.need_display"
placeholder="是否展示"
@change="handleQuery"
clearable
style="width: 100px"
>
<el-option
v-for="e in boolEnum.values"
:key="e.key"
:value="e.key"
:label="e.text"
></el-option>
</el-select>
<el-input
v-model="query.search"
placeholder="名称/代号"
style="width: 200px"
clearable
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
remoteSort
@selection-change="selectionChange"
>
<el-table-column type="selection" width="50" />
<el-table-column label="名称" prop="name" width="200" show-overflow-tooltip sortable></el-table-column>
<el-table-column label="别名" prop="nickname" width="120" show-overflow-tooltip sortable></el-table-column>
<el-table-column label="代号" prop="code" width="130" show-overflow-tooltip sortable></el-table-column>
<el-table-column label="是否启用" width="80">
<template #default="scope">
<el-icon v-if="scope.row.enabled" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
</template>
</el-table-column>
<el-table-column label="采集状态" show-overflow-tooltip>
<template #default="scope">
<el-tag :type="mpointGatherStateEnum[scope.row.gather_state]?.type">{{
mpointGatherStateEnum[scope.row.gather_state]?.text }}</el-tag>
</template>
</el-table-column>
<el-table-column label="测点类型" width="80">
<template #default="scope">{{mpointTypeEnum[scope.row.type]?.text}}
</template>
</el-table-column>
<el-table-column label="采集间隔(s)" prop="interval" width="100"></el-table-column>
<el-table-column label="值类型" prop="val_type" width="80">
<template #default="scope">{{valTypeEnum[scope.row.val_type]?.text}}
</template>
</el-table-column>
<el-table-column label="单位" prop="unit" width="80"></el-table-column>
<el-table-column label="计量物料" prop="material_name" width="100"></el-table-column>
<el-table-column label="所属工段" prop="mgroup_name" width="100"></el-table-column>
<el-table-column label="是否展示" width="80">
<template #default="scope">
<el-icon v-if="scope.row.need_display" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
</template>
</el-table-column>
<el-table-column label="报告排序" prop="report_sortstr" width="100" sortable>
</el-table-column>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip sortable width="160"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="140">
<el-table-column
label="名称"
prop="name"
width="200"
show-overflow-tooltip
sortable
></el-table-column>
<el-table-column
label="别名"
prop="nickname"
width="120"
show-overflow-tooltip
sortable
></el-table-column>
<el-table-column
label="代号"
prop="code"
width="130"
show-overflow-tooltip
sortable
></el-table-column>
<el-table-column label="是否启用" width="80">
<template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'mpoint.update'" type="primary">编辑</el-button>
<el-icon v-if="scope.row.enabled" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"
><CircleCloseFilled
/></el-icon>
</template>
</el-table-column>
<el-table-column label="采集状态" show-overflow-tooltip>
<template #default="scope">
<el-tag
:type="
mpointGatherStateEnum[scope.row.gather_state]
?.type
"
>{{
mpointGatherStateEnum[scope.row.gather_state]
?.text
}}</el-tag
>
</template>
</el-table-column>
<el-table-column label="测点类型" width="80">
<template #default="scope"
>{{ mpointTypeEnum[scope.row.type]?.text }}
</template>
</el-table-column>
<el-table-column
label="采集间隔(s)"
prop="interval"
width="100"
></el-table-column>
<el-table-column label="值类型" prop="val_type" width="80">
<template #default="scope"
>{{ valTypeEnum[scope.row.val_type]?.text }}
</template>
</el-table-column>
<el-table-column
label="单位"
prop="unit"
width="80"
></el-table-column>
<el-table-column
label="计量物料"
prop="material_name"
width="100"
></el-table-column>
<el-table-column
label="所属工段"
prop="mgroup_name"
width="100"
></el-table-column>
<el-table-column label="是否展示" width="80">
<template #default="scope">
<el-icon v-if="scope.row.need_display" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"
><CircleCloseFilled
/></el-icon>
</template>
</el-table-column>
<el-table-column
label="报告排序"
prop="report_sortstr"
width="100"
sortable
>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
show-overflow-tooltip
sortable
width="160"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="140"
>
<template #default="scope">
<el-button
link
size="small"
@click="mplog_record(scope.row)"
type="primary"
>原始记录</el-button
>
<el-divider direction="vertical"></el-divider>
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)">
<el-button
link
size="small"
@click="table_edit(scope.row)"
v-auth="'mpoint.update'"
type="primary"
>编辑</el-button
>
<el-divider direction="vertical"></el-divider>
<el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference>
<el-button link size="small" v-auth="'mpoint.delete'" type="danger">删除</el-button>
<el-button
link
size="small"
v-auth="'mpoint.delete'"
type="danger"
>删除</el-button
>
</template>
</el-popconfirm>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<el-drawer
title="测点原始记录"
v-model="logShow"
:size="1000"
destroy-on-close
>
1111
</el-drawer>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<el-drawer
title="测点原始记录"
v-model="logShow"
:size="1000"
destroy-on-close
>
<scTable ref="table" row-key="id" :data="mplogRecord">
<el-table-column type="selection" width="50" />
<el-table-column label="采集时间" prop="timex"></el-table-column>
<el-table-column label="采集数值">
<template #default="scope">
<span v-if="scope.row.val_int != null">{{
scope.row.val_int
}}</span>
<span v-else-if="scope.row.val_bool != null">{{
scope.row.val_bool
}}</span>
<span v-else-if="scope.row.val_str != null">{{
scope.row.val_str
}}</span>
<span v-else-if="scope.row.val_float != null">{{
scope.row.val_float
}}</span>
</template>
</el-table-column>
</scTable>
</el-drawer>
</template>
<script>
import saveDialog from "./mpoint_form.vue";
import { valTypeEnum, boolEnum, mpointTypeEnum, mpointGatherStateEnum } from "@/utils/enum.js";
import {
valTypeEnum,
boolEnum,
mpointTypeEnum,
mpointGatherStateEnum,
} from "@/utils/enum.js";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
valTypeEnum,
boolEnum,
mpointTypeEnum,
mpointGatherStateEnum,
logShow:false,
dialog: {
save: false,
permission: false,
},
apiObj: this.$API.enm.mpoint.list,
query: {},
selection: []
};
},
methods: {
//
table_add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
mplog(row){
this.logShow = true;
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
//
table_del(row) {
var id = row.id;
this.$API.enm.mpoint.delete.req(id).then(res=>{
if(res.err_msg){
this.$message.error(res.err_msg)
}else{
this.$refs.table.refresh();
this.$message.success("删除成功")
}
})
},
king_sync() {
const loading = this.$loading({text: '正在同步亚控测点...'});
this.$API.enm.mpoint.kingSync.req().then(res=>{
this.$refs.table.refresh();
}).finally(()=>{
loading.close()
})
},
//
handleSaveSuccess(data, mode) {
this.$refs.table.refresh();
},
handleQuery() {
this.$refs.table.queryData(this.query)
name: "rparty",
components: {
saveDialog,
},
data() {
return {
valTypeEnum,
boolEnum,
mpointTypeEnum,
mpointGatherStateEnum,
logShow: false,
dialog: {
save: false,
permission: false,
},
resetQuery() {
this.query = {};
},
selectionChange(rows){
console.log('m', rows)
}
},
apiObj: this.$API.enm.mpoint.list,
query: {},
selection: [],
mplogRecord: [],
};
},
methods: {
//
table_add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
mplog_record(row) {
let that = this;
that.mplogRecord = [];
var nowDate = new Date();
let year = nowDate.getFullYear();
let month = nowDate.getMonth() + 1;
let day = nowDate.getDate();
let hour = nowDate.getHours();
month = month > 9 ? month : "0" + month;
day = day > 9 ? day : "0" + day;
if (hour > 0) {
hour = hour - 1;
hour = hour > 9 ? hour : "0" + hour;
} else {
hour = 23;
let timers = nowDate.getTime() - 1000 * 60 * 60; //
let useDate = new Date(timers);
year = useDate.getFullYear();
month = useDate.getMonth() + 1;
month = month > 9 ? month : "0" + month;
day = nowDate.getDate();
day = day > 9 ? day : "0" + day;
}
let obj = {};
obj.page = 0;
obj.mpoint = row.id;
obj.timex__gte =
year + "-" + month + "-" + day + " " + hour + ":00:00";
obj.timex__lte =
year + "-" + month + "-" + day + " " + hour + ":59:00";
that.$API.enm.mplogx.req(obj).then((res) => {
console.log("res", res);
that.mplogRecord = res;
that.logShow = true;
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
//
table_del(row) {
var id = row.id;
this.$API.enm.mpoint.delete.req(id).then((res) => {
if (res.err_msg) {
this.$message.error(res.err_msg);
} else {
this.$refs.table.refresh();
this.$message.success("删除成功");
}
});
},
king_sync() {
const loading = this.$loading({ text: "正在同步亚控测点..." });
this.$API.enm.mpoint.kingSync
.req()
.then((res) => {
this.$refs.table.refresh();
})
.finally(() => {
loading.close();
});
},
//
handleSaveSuccess(data, mode) {
this.$refs.table.refresh();
},
handleQuery() {
this.$refs.table.queryData(this.query);
},
resetQuery() {
this.query = {};
},
selectionChange(rows) {
console.log("m", rows);
},
},
};
</script>
</script>