|
@@ -1,442 +1,354 @@
|
|
|
-<!--
|
|
|
|
|
- * @Title:
|
|
|
|
|
- * @Description:
|
|
|
|
|
- * @Author: 893699165@qq.com
|
|
|
|
|
- * @Date: 2022-08-24 10:49:21
|
|
|
|
|
- * @LastEditors:
|
|
|
|
|
- * @LastEditTime: 2022-08-24 10:49:21
|
|
|
|
|
--->
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div>
|
|
|
|
|
- <el-row>
|
|
|
|
|
- <el-col :span="5">
|
|
|
|
|
- <div class="box">
|
|
|
|
|
- <!-- <el-scrollbar>
|
|
|
|
|
- <basic-container>
|
|
|
|
|
- <avue-tree
|
|
|
|
|
- :option="treeOption"
|
|
|
|
|
- :data="treeData"
|
|
|
|
|
- @node-click="nodeClick"
|
|
|
|
|
- />
|
|
|
|
|
- </basic-container>
|
|
|
|
|
- </el-scrollbar> -->
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="19">
|
|
|
|
|
- <basic-container>
|
|
|
|
|
- <avue-crud
|
|
|
|
|
- :option="option"
|
|
|
|
|
- :table-loading="loading"
|
|
|
|
|
- :data="data"
|
|
|
|
|
- ref="crud"
|
|
|
|
|
- v-model="form"
|
|
|
|
|
- :permission="permissionList"
|
|
|
|
|
- @row-del="rowDel"
|
|
|
|
|
- @row-update="rowUpdate"
|
|
|
|
|
- @row-save="rowSave"
|
|
|
|
|
- @search-change="searchChange"
|
|
|
|
|
- @search-reset="searchReset"
|
|
|
|
|
- @selection-change="selectionChange"
|
|
|
|
|
- @current-change="currentChange"
|
|
|
|
|
- @size-change="sizeChange"
|
|
|
|
|
- @refresh-change="refreshChange"
|
|
|
|
|
- @on-load="onLoad"
|
|
|
|
|
- @before-open="beforeOpen"
|
|
|
|
|
- >
|
|
|
|
|
- <template slot="state" slot-scope="{ row }">
|
|
|
|
|
- <el-button type="text" @click="openConfig(row)"> 正常 </el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- <template slot-scope="{ row, index }" slot="menu">
|
|
|
|
|
- <el-button
|
|
|
|
|
- type="text"
|
|
|
|
|
- size="small"
|
|
|
|
|
- @click="$refs.crud.rowView(row, index)"
|
|
|
|
|
- >预警配置
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button type="text" size="small" @click="openInfo"
|
|
|
|
|
- >预警信息
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button type="text" size="small" @click="openOrder"
|
|
|
|
|
- >维修工单
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </avue-crud>
|
|
|
|
|
- </basic-container>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- title="预警配置"
|
|
|
|
|
- :visible.sync="configDialog"
|
|
|
|
|
- width="600px"
|
|
|
|
|
- :before-close="handleClose"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- >
|
|
|
|
|
- <el-form label-width="120px">
|
|
|
|
|
- <el-form-item label="预警总开关">
|
|
|
|
|
- <el-switch
|
|
|
|
|
- v-model="warningConfig.configSw"
|
|
|
|
|
- active-color="#13ce66"
|
|
|
|
|
- inactive-color="#ff4949"
|
|
|
|
|
- active-text="开"
|
|
|
|
|
- inactive-text="关"
|
|
|
|
|
- >
|
|
|
|
|
- </el-switch>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
|
|
- <el-button @click="configDialog = false" size="small">取 消</el-button>
|
|
|
|
|
- <el-button type="primary" @click="confirmConfig" size="small"
|
|
|
|
|
- >确 定</el-button
|
|
|
|
|
- >
|
|
|
|
|
- </span>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- title="预警信息"
|
|
|
|
|
- :visible.sync="infoDialog"
|
|
|
|
|
- width="80%"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- >
|
|
|
|
|
- <warningInfo :id="id" ref="warningInfo"></warningInfo>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- title="维修工单"
|
|
|
|
|
- :visible.sync="orderDialog"
|
|
|
|
|
- width="80%"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- append-to-body
|
|
|
|
|
- >
|
|
|
|
|
- <maintainOrder :id="id" ref="maintainOrder"></maintainOrder>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-card shadow="always">
|
|
|
|
|
+ <div style="display: flex; flex-direction: column; justify-content: center;align-items: center;">
|
|
|
|
|
+ <div style="color:orangered;font-size: large;">
|
|
|
|
|
+ {{realData.rtuCount}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <i class="el-icon-camera"></i><label>测站总数</label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-card shadow="always">
|
|
|
|
|
+ <div style="display: flex; flex-direction: column; justify-content: center;align-items: center;">
|
|
|
|
|
+ <div style="color:orangered;font-size: large;">
|
|
|
|
|
+ {{realData.warningRtuCount}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <i class="el-icon-camera"></i><label>设备预警</label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-card shadow="always">
|
|
|
|
|
+ <div style="display: flex; flex-direction: column; justify-content: center;align-items: center;">
|
|
|
|
|
+ <div style="color:orangered;font-size: large;">
|
|
|
|
|
+ {{realData.orderDelayProcess}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <i class="el-icon-camera"></i><label>超时工单</label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
|
+ <el-card shadow="always">
|
|
|
|
|
+ <div style="display: flex; flex-direction: column; justify-content: center;align-items: center;">
|
|
|
|
|
+ <div style="color:orangered;font-size: large;">
|
|
|
|
|
+ {{realData.equipmentinspectionRtu}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <i class="el-icon-camera"></i><label>已巡检测站</label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-card class="box-card">
|
|
|
|
|
+ <div slot="header" class="clearfix">
|
|
|
|
|
+ <span>今日工单动态</span>
|
|
|
|
|
+ <el-button style="float: right; padding: 3px 0" type="text">更多</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-for="o in 4" :key="o" class="text item">
|
|
|
|
|
+ {{'列表内容 ' + o }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="12">
|
|
|
|
|
+ <el-card class="box-card">
|
|
|
|
|
+ <div slot="header" class="clearfix">
|
|
|
|
|
+ <span>今日巡检动态</span>
|
|
|
|
|
+ <el-button style="float: right; padding: 3px 0" type="text">更多</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-for="o in 4" :key="o" class="text item">
|
|
|
|
|
+ {{'列表内容 ' + o }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
|
+ <el-card class="box-card">
|
|
|
|
|
+ <div slot="header" class="clearfix">
|
|
|
|
|
+ <span>通知公告</span>
|
|
|
|
|
+ <el-button style="float: right; padding: 3px 0" type="text">更多</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-for="o in 4" :key="o" class="text item">
|
|
|
|
|
+ {{'列表内容 ' + o }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { getList, getDetail, add, update } from "@/api/workbench/monitoring";
|
|
|
|
|
-import { mapGetters } from "vuex";
|
|
|
|
|
-import warningInfo from "./warningInfo.vue";
|
|
|
|
|
-import maintainOrder from "./maintainOrder.vue";
|
|
|
|
|
-export default {
|
|
|
|
|
- components: {
|
|
|
|
|
- warningInfo,
|
|
|
|
|
- maintainOrder,
|
|
|
|
|
- },
|
|
|
|
|
- data() {
|
|
|
|
|
- return {
|
|
|
|
|
- orderDialog: false,
|
|
|
|
|
- warningConfig: {
|
|
|
|
|
- configSw: false,
|
|
|
|
|
- code: "",
|
|
|
|
|
- },
|
|
|
|
|
- infoDialog: false,
|
|
|
|
|
- configDialog: false,
|
|
|
|
|
- id: "",
|
|
|
|
|
- editForm: {},
|
|
|
|
|
- editDialog: false,
|
|
|
|
|
- form: {},
|
|
|
|
|
- selectionList: [],
|
|
|
|
|
- query: {},
|
|
|
|
|
- loading: true,
|
|
|
|
|
- page: {
|
|
|
|
|
- pageSize: 10,
|
|
|
|
|
- currentPage: 1,
|
|
|
|
|
- total: 0,
|
|
|
|
|
- },
|
|
|
|
|
- treeOption: {
|
|
|
|
|
- nodeKey: "id",
|
|
|
|
|
- lazy: true,
|
|
|
|
|
- treeLoad: function (node, resolve) {
|
|
|
|
|
- const parentId = node.level === 0 ? 0 : node.data.id;
|
|
|
|
|
- getDeptLazyTree(parentId).then((res) => {
|
|
|
|
|
- resolve(
|
|
|
|
|
- res.data.data.map((item) => {
|
|
|
|
|
- return {
|
|
|
|
|
- ...item,
|
|
|
|
|
- leaf: !item.hasChildren,
|
|
|
|
|
- };
|
|
|
|
|
- })
|
|
|
|
|
- );
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- addBtn: false,
|
|
|
|
|
- menu: false,
|
|
|
|
|
- size: "small",
|
|
|
|
|
- props: {
|
|
|
|
|
- labelText: "标题",
|
|
|
|
|
- label: "title",
|
|
|
|
|
- value: "value",
|
|
|
|
|
- children: "children",
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- option: {
|
|
|
|
|
- labelWidth: 120,
|
|
|
|
|
- viewLabelWidth: 100,
|
|
|
|
|
- searchlabelWidth: 100,
|
|
|
|
|
- height: "auto",
|
|
|
|
|
- calcHeight: 30,
|
|
|
|
|
- align: "center",
|
|
|
|
|
- headerAlign: "center",
|
|
|
|
|
- lazy: true,
|
|
|
|
|
- tip: false,
|
|
|
|
|
- simplePage: true,
|
|
|
|
|
- searchShow: true,
|
|
|
|
|
- searchMenuSpan: 6,
|
|
|
|
|
- tree: true,
|
|
|
|
|
- border: true,
|
|
|
|
|
- index: true,
|
|
|
|
|
- selection: true,
|
|
|
|
|
- viewBtn: false,
|
|
|
|
|
- viewTitle: "预警配置",
|
|
|
|
|
- editBtn: false,
|
|
|
|
|
- delBtn: false,
|
|
|
|
|
- menuWidth: 220,
|
|
|
|
|
- dialogType: "drawer",
|
|
|
|
|
- dialogClickModal: false,
|
|
|
|
|
- column: [
|
|
|
|
|
- {
|
|
|
|
|
- label: "测站名称",
|
|
|
|
|
- prop: "rtuName",
|
|
|
|
|
- search: true,
|
|
|
|
|
- span: 12,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "测站编码",
|
|
|
|
|
- prop: "rtuCode",
|
|
|
|
|
- span: 12,
|
|
|
|
|
- search: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "所属机构",
|
|
|
|
|
- prop: "orgId",
|
|
|
|
|
- span: 12,
|
|
|
|
|
- hide: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "最后上线时间",
|
|
|
|
|
- prop: "orgId",
|
|
|
|
|
- span: 12,
|
|
|
|
|
- addDisplay: false,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "运行状态",
|
|
|
|
|
- prop: "state",
|
|
|
|
|
- span: 12,
|
|
|
|
|
- addDisplay: false,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "项目名称",
|
|
|
|
|
- prop: "projectName",
|
|
|
|
|
-
|
|
|
|
|
- span: 12,
|
|
|
|
|
- hide: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "SIM卡号",
|
|
|
|
|
- prop: "simId",
|
|
|
|
|
|
|
+// import { mapGetters } from "vuex";
|
|
|
|
|
+// import VueGridLayout from "vue-grid-layout";
|
|
|
|
|
+// import Navigation from "./component/navigation.vue";
|
|
|
|
|
+// import StateModel from "./component/stateModel.vue";
|
|
|
|
|
+// import ToDo from "./toDo.vue";
|
|
|
|
|
+// import EventModel from "./component/eventModel.vue";
|
|
|
|
|
|
|
|
- span: 8,
|
|
|
|
|
- hide: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "经度",
|
|
|
|
|
- prop: "lng",
|
|
|
|
|
- span: 8,
|
|
|
|
|
- hide: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "纬度",
|
|
|
|
|
- prop: "lat",
|
|
|
|
|
- span: 8,
|
|
|
|
|
- hide: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "测站类型",
|
|
|
|
|
- prop: "rtuKinds",
|
|
|
|
|
|
|
+// import Dynamic from "./component/dynamic.vue";
|
|
|
|
|
+// import AddressBook from "./component/addressBook.vue";
|
|
|
|
|
+// import Work from "./component/work.vue";
|
|
|
|
|
+// import Yjxy from "./component/yjxy.vue";
|
|
|
|
|
+// import YjxyReport from "./component/yjxyReport.vue";
|
|
|
|
|
|
|
|
- span: 24,
|
|
|
|
|
|
|
+// import { insertCustom, getLayout, getHomeGuide } from "@/api/home/home";
|
|
|
|
|
|
|
|
- type: "input",
|
|
|
|
|
- hide: true,
|
|
|
|
|
|
|
+// import Stomp from "stompjs";
|
|
|
|
|
+// import SockJS from "sockjs-client";
|
|
|
|
|
+import { getRealData } from "@/api/home/home.js"
|
|
|
|
|
+export default {
|
|
|
|
|
+ name: "wel",
|
|
|
|
|
+ components: {
|
|
|
|
|
+ // GridLayout: VueGridLayout.GridLayout,
|
|
|
|
|
+ // GridItem: VueGridLayout.GridItem,
|
|
|
|
|
+ // Navigation,
|
|
|
|
|
+ // StateModel,
|
|
|
|
|
+ // ToDo,
|
|
|
|
|
+ // Dynamic,
|
|
|
|
|
+ // EventModel,
|
|
|
|
|
+ // AddressBook,
|
|
|
|
|
+ // Work,
|
|
|
|
|
|
|
|
- // dicData: [
|
|
|
|
|
- // {
|
|
|
|
|
- // label: 1,
|
|
|
|
|
- // value: 1,
|
|
|
|
|
- // },
|
|
|
|
|
- // ],
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "备注说明",
|
|
|
|
|
- prop: "remark",
|
|
|
|
|
- span: 24,
|
|
|
|
|
- type: "textarea",
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- data: [],
|
|
|
|
|
- };
|
|
|
|
|
- },
|
|
|
|
|
- computed: {
|
|
|
|
|
- // ...mapGetters(["userInfo", "permission"]),
|
|
|
|
|
- permissionList() {
|
|
|
|
|
- return {
|
|
|
|
|
- // addBtn: this.vaildData(this.permission.docCategory_add, false),
|
|
|
|
|
- // viewBtn: this.vaildData(this.permission.docCategory_view, false),
|
|
|
|
|
- // delBtn: this.vaildData(this.permission.docCategory_delete, false),
|
|
|
|
|
- // editBtn: this.vaildData(this.permission.docCategory_edit, false),
|
|
|
|
|
- };
|
|
|
|
|
- },
|
|
|
|
|
- ids() {
|
|
|
|
|
- let ids = [];
|
|
|
|
|
- this.selectionList.forEach((ele) => {
|
|
|
|
|
- ids.push(ele.id);
|
|
|
|
|
- });
|
|
|
|
|
- return ids.join(",");
|
|
|
|
|
|
|
+ // YjxyReport,
|
|
|
},
|
|
},
|
|
|
- },
|
|
|
|
|
- mounted() {},
|
|
|
|
|
- created() {},
|
|
|
|
|
- methods: {
|
|
|
|
|
- confirmConfig() {},
|
|
|
|
|
- openConfig(item) {
|
|
|
|
|
- this.configSw = item.configSw;
|
|
|
|
|
- this.configDialog = true;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ realData: {
|
|
|
|
|
+ rtuCount: 0,
|
|
|
|
|
+ warningRtuCount: 0,
|
|
|
|
|
+ orderDelayProcess: 0,
|
|
|
|
|
+ equipmentinspectionRtu: 0,
|
|
|
|
|
+ },
|
|
|
|
|
+ stompClient: null,
|
|
|
|
|
+ init: [
|
|
|
|
|
+ { x: 0, y: 0, w: 18, h: 5, i: "导航", isShow: 1 },
|
|
|
|
|
+ { x: 18, y: 0, w: 6, h: 5, i: "状态", isShow: 1 },
|
|
|
|
|
+ { x: 0, y: 8, w: 9, h: 9, i: "待办", isShow: 1 },
|
|
|
|
|
+ { x: 9, y: 8, w: 9, h: 9, i: "动态", isShow: 1 },
|
|
|
|
|
+ { x: 18, y: 8, w: 6, h: 19, i: "应急大事件", isShow: 1 },
|
|
|
|
|
+ { x: 9, y: 17, w: 9, h: 10, i: "应急通讯录", isShow: 1 },
|
|
|
|
|
+ { x: 0, y: 17, w: 9, h: 10, i: "应急排班表", isShow: 1 },
|
|
|
|
|
+ ],
|
|
|
|
|
+ layout: [],
|
|
|
|
|
+ cache: [],
|
|
|
|
|
+ editSw: false,
|
|
|
|
|
+ dialog: false,
|
|
|
|
|
+ id: "",
|
|
|
|
|
+ guideForm: {},
|
|
|
|
|
+ second: 0,
|
|
|
|
|
+ timer: null,
|
|
|
|
|
+ state: 5,
|
|
|
|
|
+ };
|
|
|
},
|
|
},
|
|
|
- openInfo(item) {
|
|
|
|
|
- this.id = item.id;
|
|
|
|
|
- this.infoDialog = true;
|
|
|
|
|
- this.$nextTick(() => {
|
|
|
|
|
- this.$refs["warningInfo"].init();
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.getData();
|
|
|
},
|
|
},
|
|
|
- openOrder(item) {
|
|
|
|
|
- this.id = item.id;
|
|
|
|
|
- this.orderDialog = true;
|
|
|
|
|
- this.$nextTick(() => {
|
|
|
|
|
- this.$refs["maintainOrder"].init();
|
|
|
|
|
- });
|
|
|
|
|
|
|
+
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ // ...mapGetters(["userInfo"]),
|
|
|
},
|
|
},
|
|
|
|
|
+ mounted() { },
|
|
|
|
|
|
|
|
- rowSave(row, done, loading) {
|
|
|
|
|
- add(row).then(
|
|
|
|
|
- () => {
|
|
|
|
|
- this.onLoad(this.page);
|
|
|
|
|
- this.$message({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- message: "操作成功!",
|
|
|
|
|
- });
|
|
|
|
|
- done();
|
|
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ close() {
|
|
|
|
|
+ this.dialog = false;
|
|
|
},
|
|
},
|
|
|
- (error) => {
|
|
|
|
|
- window.console.log(error);
|
|
|
|
|
- loading();
|
|
|
|
|
- }
|
|
|
|
|
- );
|
|
|
|
|
- },
|
|
|
|
|
- rowUpdate(row, index, done, loading) {
|
|
|
|
|
- update(row).then(
|
|
|
|
|
- () => {
|
|
|
|
|
- this.onLoad(this.page);
|
|
|
|
|
- this.$message({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- message: "操作成功!",
|
|
|
|
|
- });
|
|
|
|
|
- done();
|
|
|
|
|
|
|
+ openReport() {
|
|
|
|
|
+ // this.dialog = true;
|
|
|
|
|
+ // this.$nextTick(() => {
|
|
|
|
|
+ // this.$refs["YjxyReport"].open();
|
|
|
|
|
+ // });
|
|
|
},
|
|
},
|
|
|
- (error) => {
|
|
|
|
|
- window.console.log(error);
|
|
|
|
|
- loading();
|
|
|
|
|
- }
|
|
|
|
|
- );
|
|
|
|
|
- },
|
|
|
|
|
- rowDel(row) {
|
|
|
|
|
- this.$confirm("确定将选择数据删除?", {
|
|
|
|
|
- confirmButtonText: "确定",
|
|
|
|
|
- cancelButtonText: "取消",
|
|
|
|
|
- type: "warning",
|
|
|
|
|
- })
|
|
|
|
|
- .then(() => {
|
|
|
|
|
- return remove(row.id);
|
|
|
|
|
- })
|
|
|
|
|
- .then(() => {
|
|
|
|
|
- this.onLoad(this.page);
|
|
|
|
|
- this.$message({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- message: "操作成功!",
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- searchReset() {
|
|
|
|
|
- this.query = {};
|
|
|
|
|
- this.onLoad(this.page);
|
|
|
|
|
- },
|
|
|
|
|
- searchChange(params, done) {
|
|
|
|
|
- this.query = params;
|
|
|
|
|
- this.page.currentPage = 1;
|
|
|
|
|
- this.onLoad(this.page, params);
|
|
|
|
|
- done();
|
|
|
|
|
- },
|
|
|
|
|
- selectionChange(list) {
|
|
|
|
|
- this.selectionList = list;
|
|
|
|
|
- },
|
|
|
|
|
- selectionClear() {
|
|
|
|
|
- this.selectionList = [];
|
|
|
|
|
- this.$refs.crud.toggleSelection();
|
|
|
|
|
- },
|
|
|
|
|
- handleDelete() {
|
|
|
|
|
- if (this.selectionList.length === 0) {
|
|
|
|
|
- this.$message.warning("请选择至少一条数据");
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- this.$confirm("确定将选择数据删除?", {
|
|
|
|
|
- confirmButtonText: "确定",
|
|
|
|
|
- cancelButtonText: "取消",
|
|
|
|
|
- type: "warning",
|
|
|
|
|
- })
|
|
|
|
|
- .then(() => {
|
|
|
|
|
- return remove(this.ids);
|
|
|
|
|
- })
|
|
|
|
|
- .then(() => {
|
|
|
|
|
- this.onLoad(this.page);
|
|
|
|
|
- this.$message({
|
|
|
|
|
- type: "success",
|
|
|
|
|
- message: "操作成功!",
|
|
|
|
|
- });
|
|
|
|
|
- this.$refs.crud.toggleSelection();
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- beforeOpen(done, type) {
|
|
|
|
|
- if (["edit", "view"].includes(type)) {
|
|
|
|
|
- getDetail(this.form.id).then((res) => {
|
|
|
|
|
- this.form = res.data.data;
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- done();
|
|
|
|
|
- },
|
|
|
|
|
- currentChange(currentPage) {
|
|
|
|
|
- this.page.currentPage = currentPage;
|
|
|
|
|
- },
|
|
|
|
|
- sizeChange(pageSize) {
|
|
|
|
|
- this.page.pageSize = pageSize;
|
|
|
|
|
- },
|
|
|
|
|
- refreshChange() {
|
|
|
|
|
- this.onLoad(this.page, this.query);
|
|
|
|
|
- },
|
|
|
|
|
- onLoad(page, params = {}) {
|
|
|
|
|
- this.loading = true;
|
|
|
|
|
- getList(
|
|
|
|
|
- page.currentPage,
|
|
|
|
|
- page.pageSize,
|
|
|
|
|
- Object.assign(params, this.query)
|
|
|
|
|
- ).then((res) => {
|
|
|
|
|
- const data = res.data.data;
|
|
|
|
|
- this.page.total = data.total;
|
|
|
|
|
- this.data = data.records;
|
|
|
|
|
- this.loading = false;
|
|
|
|
|
- this.selectionClear();
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ getData() {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ getRealData().then((res) => {
|
|
|
|
|
+ if (res.data.code === 200) {
|
|
|
|
|
+ this.realData.rtuCount = res.data.data.rtus;
|
|
|
|
|
+ this.realData.warningRtuCount = res.data.data.warningRtus;
|
|
|
|
|
+ this.realData.orderDelayProcess = res.data.data.delayOrders;
|
|
|
|
|
+ this.realData.equipmentinspectionRtu = res.data.data.equipmentInspectionCount;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // this.layout = [];
|
|
|
|
|
+ // getLayout().then((res) => {
|
|
|
|
|
+ // if (res.data.code === 200) {
|
|
|
|
|
+ // if (res.data.data.length) {
|
|
|
|
|
+ // res.data.data.forEach((e) => {
|
|
|
|
|
+ // if (e.type === 1) {
|
|
|
|
|
+ // this.layout.push({
|
|
|
|
|
+ // x: e.x,
|
|
|
|
|
+ // y: e.y,
|
|
|
|
|
+ // w: e.width,
|
|
|
|
|
+ // h: e.height,
|
|
|
|
|
+ // i: e.moduleName,
|
|
|
|
|
+ // isShow: e.isShow,
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ // if (this.layout.length === 0) {
|
|
|
|
|
+ // this.layout = this.init;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // this.layout = this.init;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ changeState(state) {
|
|
|
|
|
+ this.state = state;
|
|
|
|
|
+
|
|
|
|
|
+ if (state != 5) {
|
|
|
|
|
+ if (this.timer) clearInterval(this.timer);
|
|
|
|
|
+ this.timer = setInterval(() => {
|
|
|
|
|
+ this.second++;
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (this.timer) {
|
|
|
|
|
+ clearInterval(this.timer);
|
|
|
|
|
+ }
|
|
|
|
|
+ this.second = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ confirm() {
|
|
|
|
|
+ // let arr = this.layout.map((e) => {
|
|
|
|
|
+ // return {
|
|
|
|
|
+ // x: e.x,
|
|
|
|
|
+ // y: e.y,
|
|
|
|
|
+ // width: e.w,
|
|
|
|
|
+ // height: e.h,
|
|
|
|
|
+ // isShow: e.isShow,
|
|
|
|
|
+ // moduleName: e.i,
|
|
|
|
|
+ // moduleCode: e.i,
|
|
|
|
|
+ // };
|
|
|
|
|
+ // });
|
|
|
|
|
+ // let params = {
|
|
|
|
|
+ // layoutId: "",
|
|
|
|
|
+ // homeLayoutDetailEntityList: arr,
|
|
|
|
|
+ // };
|
|
|
|
|
+ // insertCustom(params).then((res) => {});
|
|
|
|
|
+ // this.cache = [...this.layout];
|
|
|
|
|
+ // this.editSw = false;
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 建立websocket连接
|
|
|
|
|
+ */
|
|
|
|
|
+ // initWebsocket: function () {
|
|
|
|
|
+ // console.log("WebSocket 准备建立连接");
|
|
|
|
|
+ // const socket = new SockJS("/api/galaxy-yjjcpt/ws");
|
|
|
|
|
+ // this.stompClient = Stomp.over(socket);
|
|
|
|
|
+ // this.stompClient.connect({}, this.onConnected, this.onError);
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 连接成功: 订阅服务器的地址。为了浏览器可以接收到消息,必须先订阅服务器的地址
|
|
|
|
|
+ */
|
|
|
|
|
+ // onConnected: function () {
|
|
|
|
|
+ // console.log("WebSocket 连接成功");
|
|
|
|
|
+
|
|
|
|
|
+ // // 设置心跳发送接受频率(ms)默认为10000ms。 heart-beating是利用window.setInterval()去规律地发送heart-beats或者检查服务端的heart-beats。
|
|
|
|
|
+ // this.stompClient.heartbeat.outgoing = 10000;
|
|
|
|
|
+ // this.stompClient.heartbeat.incoming = 0;
|
|
|
|
|
+
|
|
|
|
|
+ // // 订阅
|
|
|
|
|
+ // this.stompClient.subscribe("/topic/event", this.onMessageReceived);
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 连接失败
|
|
|
|
|
+ */
|
|
|
|
|
+ // onError: function (error) {
|
|
|
|
|
+ // console.log("WebSocket 连接失败", error);
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 接收消息
|
|
|
|
|
+ */
|
|
|
|
|
+ // onMessageReceived: function (res) {
|
|
|
|
|
+ // console.log(res.body);
|
|
|
|
|
+
|
|
|
|
|
+ // console.log("WebSocket 接收消息-----------------------------------");
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 发送消息
|
|
|
|
|
+ */
|
|
|
|
|
+ // sendMessage: function () {
|
|
|
|
|
+ // const chatMessage = {
|
|
|
|
|
+ // sender: "",
|
|
|
|
|
+ // content: "",
|
|
|
|
|
+ // type: "CHAT",
|
|
|
|
|
+ // };
|
|
|
|
|
+ // this.stompClient.send(
|
|
|
|
|
+ // "/app/chat.sendMessage",
|
|
|
|
|
+ // {},
|
|
|
|
|
+ // JSON.stringify(chatMessage)
|
|
|
|
|
+ // );
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 关闭websocket连接
|
|
|
|
|
+ */
|
|
|
|
|
+ // closeSocket: function () {
|
|
|
|
|
+ // if (this.stompClient != null) {
|
|
|
|
|
+ // // this.stompClient.disconnect();
|
|
|
|
|
+ // this.stompClient.disconnect(() => {
|
|
|
|
|
+ // console.log("连接关闭");
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
|
|
+ // },
|
|
|
},
|
|
},
|
|
|
- },
|
|
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
+
|
|
|
|
|
+<style>
|
|
|
|
|
+.el-row {
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.el-col {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.bg-purple-dark {
|
|
|
|
|
+ background: #99a9bf;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.bg-purple {
|
|
|
|
|
+ background: #d3dce6;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.bg-purple-light {
|
|
|
|
|
+ background: #e5e9f2;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.grid-content {
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ min-height: 36px;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.row-bg {
|
|
|
|
|
+ padding: 10px 0;
|
|
|
|
|
+ background-color: #f9fafc;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|