|
@@ -1,7 +1,7 @@
|
|
|
<!--
|
|
|
* @Author: your name
|
|
|
* @Date: 2021-12-07 14:27:28
|
|
|
- * @LastEditTime: 2021-12-08 10:12:04
|
|
|
+ * @LastEditTime: 2021-12-09 16:02:13
|
|
|
* @LastEditors: Please set LastEditors
|
|
|
* @Description: 设备管理页面
|
|
|
* @FilePath: \hyyfClient\src\views\DeviceMana\Device.vue
|
|
@@ -19,18 +19,36 @@
|
|
|
</template>
|
|
|
</manage-item>
|
|
|
</div>
|
|
|
- <new-table v-bind="tableData" :listData="listData">
|
|
|
+ <new-table
|
|
|
+ v-bind="tableData"
|
|
|
+ :listData="listData"
|
|
|
+ @selectionChange="selectionChange"
|
|
|
+ >
|
|
|
<!-- 右上角新增按钮 -->
|
|
|
<template #right>
|
|
|
<el-button size="mini" @click="handleAdd">
|
|
|
新增设备
|
|
|
</el-button>
|
|
|
+ <el-button size="mini" @click="handleDelete(true)">
|
|
|
+ 批量删除
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- table-col -->
|
|
|
+ <template #state="scope">
|
|
|
+ <el-tag
|
|
|
+ size="small"
|
|
|
+ :type="scope.row.state === 1 ? 'success' : 'danger'"
|
|
|
+ >
|
|
|
+ {{ scope.row.state === 1 ? "正常" : "异常" }}
|
|
|
+ </el-tag>
|
|
|
</template>
|
|
|
+
|
|
|
<template #handler="slotProps">
|
|
|
<el-button type="text" @click="handleEdit(slotProps.row)">
|
|
|
编辑
|
|
|
</el-button>
|
|
|
- <el-button type="text" @click="handleDelete(slotProps.row)">
|
|
|
+ <el-button type="text" @click="handleDelete(false, slotProps.row)">
|
|
|
删除
|
|
|
</el-button>
|
|
|
</template>
|
|
@@ -41,7 +59,7 @@
|
|
|
@pageChange="pageChange"
|
|
|
>
|
|
|
</table-footer>
|
|
|
- <add-or-edit ref="addOrEdit"></add-or-edit>
|
|
|
+ <add-or-edit ref="addOrEdit" @reflash="reflash"></add-or-edit>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -51,6 +69,11 @@ import TableFooter from "@/components/TableFooter";
|
|
|
import AddOrEdit from "./device/AddOrEdit.vue";
|
|
|
|
|
|
import { tableData } from "./device/table.config";
|
|
|
+import {
|
|
|
+ getDeviceList,
|
|
|
+ postDeviceDel,
|
|
|
+ getDeviceSummer,
|
|
|
+} from "@/utils/chenApi.js";
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -64,15 +87,15 @@ export default {
|
|
|
manageItems: [
|
|
|
{
|
|
|
title: "设备总数",
|
|
|
- num: "105",
|
|
|
+ num: "0",
|
|
|
},
|
|
|
{
|
|
|
title: "故障设备",
|
|
|
- num: "5",
|
|
|
+ num: "0",
|
|
|
},
|
|
|
{
|
|
|
title: "设备故障率",
|
|
|
- num: "3%",
|
|
|
+ num: "0%",
|
|
|
},
|
|
|
],
|
|
|
manageItemClass: ["total", "badCount", "badPercent"],
|
|
@@ -114,6 +137,7 @@ export default {
|
|
|
record: "-",
|
|
|
},
|
|
|
],
|
|
|
+ rows: [],
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -121,10 +145,13 @@ export default {
|
|
|
sizeChange(val) {
|
|
|
this.tableFooterData.size = val;
|
|
|
this.tableFooterData.pageNum = 1;
|
|
|
+ this.initList();
|
|
|
+ this.initSummer();
|
|
|
},
|
|
|
// 页数改变
|
|
|
pageChange(val) {
|
|
|
this.tableFooterData.pageNum = val;
|
|
|
+ this.initList();
|
|
|
},
|
|
|
// 新增事件
|
|
|
handleAdd() {
|
|
@@ -134,10 +161,73 @@ export default {
|
|
|
handleEdit(row) {
|
|
|
this.$refs["addOrEdit"].init(row);
|
|
|
},
|
|
|
+ // 选中
|
|
|
+ selectionChange(rows) {
|
|
|
+ this.rows = rows;
|
|
|
+ console.log(rows);
|
|
|
+ },
|
|
|
// 删除事件
|
|
|
- handleDelete(row) {
|
|
|
- console.log("删除设备", row);
|
|
|
+ handleDelete(flag, row) {
|
|
|
+ if (flag && this.rows.length === 0) {
|
|
|
+ this.$message.warning("请选中设备再删除");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let ids = "";
|
|
|
+ if (flag) {
|
|
|
+ const items = [];
|
|
|
+ this.rows.forEach((item) => {
|
|
|
+ items.push(item.id);
|
|
|
+ });
|
|
|
+ ids = items.join(",");
|
|
|
+ } else {
|
|
|
+ ids += row.id;
|
|
|
+ }
|
|
|
+ this.$confirm("确定删除该文件?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ }).then(async () => {
|
|
|
+ const res = await postDeviceDel({
|
|
|
+ ids: ids,
|
|
|
+ });
|
|
|
+ this.tableFooterData.pageNum = 1;
|
|
|
+ this.initList();
|
|
|
+ this.initSummer();
|
|
|
+ if (res.code === 10000) {
|
|
|
+ this.$message.success("删除成功");
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
+ initList() {
|
|
|
+ getDeviceList({
|
|
|
+ pageNo: this.tableFooterData.pageNum,
|
|
|
+ pageSize: this.tableFooterData.size,
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code === 10000) {
|
|
|
+ this.listData = res.data.content;
|
|
|
+ this.tableFooterData.totals = res.data.totalElements;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ initSummer() {
|
|
|
+ getDeviceSummer({
|
|
|
+ bit: 2,
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code === 10000) {
|
|
|
+ this.manageItems[0].num = res.data.total;
|
|
|
+ this.manageItems[1].num = res.data.num;
|
|
|
+ this.manageItems[2].num = res.data.rate;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ reflash() {
|
|
|
+ this.initSummer();
|
|
|
+ this.tableFooterData.pageNum = 1;
|
|
|
+ this.initList();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.initList();
|
|
|
+ this.initSummer();
|
|
|
},
|
|
|
};
|
|
|
</script>
|