|
|
|
@ -2,7 +2,9 @@
|
|
|
|
|
import TreeCard from "./components/TreeCard.vue";
|
|
|
|
|
import DeviceCard from "./components/DeviceCard.vue";
|
|
|
|
|
import { getCardList } from "@/api/list";
|
|
|
|
|
import { onMounted, reactive, ref } from "vue";
|
|
|
|
|
import { onMounted, ref, watch, onBeforeUnmount, nextTick } from "vue";
|
|
|
|
|
import { emitter } from "@/utils/mitt";
|
|
|
|
|
|
|
|
|
|
defineOptions({
|
|
|
|
|
name: "DeviceList"
|
|
|
|
|
});
|
|
|
|
@ -24,9 +26,9 @@ const deviceList = ref([]);
|
|
|
|
|
|
|
|
|
|
const searchValue = ref("");
|
|
|
|
|
|
|
|
|
|
const formData = reactive({
|
|
|
|
|
const formData = ref({
|
|
|
|
|
deviceSort: "",
|
|
|
|
|
deviceState: "",
|
|
|
|
|
state: "",
|
|
|
|
|
isEnabled: ""
|
|
|
|
|
});
|
|
|
|
|
const dataLoading = ref(true);
|
|
|
|
@ -43,11 +45,26 @@ const onCurrentChange = (current: number) => {
|
|
|
|
|
const getCardListData = async () => {
|
|
|
|
|
try {
|
|
|
|
|
const { data } = await getCardList();
|
|
|
|
|
deviceList.value = data.list;
|
|
|
|
|
console.log(data.list);
|
|
|
|
|
let finalList = data.list;
|
|
|
|
|
if (formData.value.deviceSort) {
|
|
|
|
|
finalList = finalList.filter(
|
|
|
|
|
item => item.deviceSort === formData.value.deviceSort
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
if (formData.value.state) {
|
|
|
|
|
finalList = finalList.filter(item => item.state === formData.value.state);
|
|
|
|
|
}
|
|
|
|
|
if (formData.value.isEnabled) {
|
|
|
|
|
finalList = finalList.filter(
|
|
|
|
|
item => item.isEnabled + "" === formData.value.isEnabled
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
deviceList.value = finalList;
|
|
|
|
|
|
|
|
|
|
pagination.value = {
|
|
|
|
|
...pagination.value,
|
|
|
|
|
total: data.list.length
|
|
|
|
|
total: finalList.length
|
|
|
|
|
};
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.log(e);
|
|
|
|
@ -57,6 +74,32 @@ const getCardListData = async () => {
|
|
|
|
|
}, 500);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
emitter.on("changCollapseTreeNodeId", data => {
|
|
|
|
|
formData.value = {
|
|
|
|
|
...formData.value,
|
|
|
|
|
deviceSort: data
|
|
|
|
|
};
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
onBeforeUnmount(() => {
|
|
|
|
|
// 解绑`changCollapseTreeNodeId`公共事件,防止多次触发
|
|
|
|
|
emitter.off("changCollapseTreeNodeId");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
watch(
|
|
|
|
|
() => formData.value,
|
|
|
|
|
() => {
|
|
|
|
|
console.log(formData, "formData");
|
|
|
|
|
getCardListData();
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
deep: true
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
getCardListData();
|
|
|
|
|
});
|
|
|
|
@ -74,7 +117,7 @@ onMounted(() => {
|
|
|
|
|
<el-form :inline="true" :model="formData" class="demo-form-inline">
|
|
|
|
|
<el-form-item label="设备分类">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.deviceState"
|
|
|
|
|
v-model="formData.deviceSort"
|
|
|
|
|
placeholder="设备分类"
|
|
|
|
|
clearable
|
|
|
|
|
>
|
|
|
|
@ -83,24 +126,20 @@ onMounted(() => {
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="设备状态">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.deviceState"
|
|
|
|
|
placeholder="设备状态"
|
|
|
|
|
clearable
|
|
|
|
|
>
|
|
|
|
|
<el-option label="在线" value="1" />
|
|
|
|
|
<el-option label="故障" value="2" />
|
|
|
|
|
<el-option label="离线" value="0" />
|
|
|
|
|
<el-select v-model="formData.state" placeholder="设备状态" clearable>
|
|
|
|
|
<el-option label="在线" value="在线" />
|
|
|
|
|
<el-option label="故障" value="故障" />
|
|
|
|
|
<el-option label="离线" value="离线" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="是否启用">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.deviceState"
|
|
|
|
|
v-model="formData.isEnabled"
|
|
|
|
|
placeholder="是否启用"
|
|
|
|
|
clearable
|
|
|
|
|
>
|
|
|
|
|
<el-option label="已启用" value="1" />
|
|
|
|
|
<el-option label="未启用" value="0" />
|
|
|
|
|
<el-option label="已启用" value="true" />
|
|
|
|
|
<el-option label="未启用" value="false" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|