@ued_fpi/data-visual
Version:
<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />
195 lines (190 loc) • 6.97 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const es = require('element-plus/es');
require('element-plus/es/components/base/style/css');
require('element-plus/es/components/infinite-scroll/style/css');
const vue = require('vue');
const request = require('../../service/request.js');
const NoData_vue_vue_type_script_setup_true_lang = require('../common/NoData.vue.js');
require('../common/NoData.vue2.js');
const hooks = require('../../utils/hooks.js');
const Tabs_vue_vue_type_script_setup_true_lang = require('./components/Tabs.vue.js');
require('./components/Tabs.vue2.js');
const ListItem_vue_vue_type_script_setup_true_lang = require('./components/ListItem.vue.js');
require('./components/ListItem.vue2.js');
const _hoisted_1 = { class: "dv-ipes-event-tracking" };
const _hoisted_2 = { class: "totalCount" };
const _hoisted_3 = { class: "num" };
const _hoisted_4 = {
key: 0,
class: "infinite-list-wrapper"
};
const _hoisted_5 = ["infinite-scroll-disabled"];
const _hoisted_6 = { key: 0 };
const _hoisted_7 = {
key: 1,
class: "last-data"
};
const __default__ = {
name: "DvIpesGeneralManagement",
title: "事件跟踪"
};
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: {
isAccessPermission: {
type: Boolean,
default: true
}
},
emits: ["clickItem"],
setup(__props, { emit }) {
const props = __props;
const activeTab = vue.ref("");
const tabList = vue.ref([]);
const cardData = vue.ref([]);
const totalCount = vue.ref(0);
const getCountByStatusForPark = async () => {
try {
const result = await request.default({
method: "POST",
url: "/bmp-mission-center-server/api/v1/parkStatistics/countByStatusForPark",
data: {
isAccessPermission: props.isAccessPermission
// startTime: dayjs().startOf('day').valueOf(),
// endTime: dayjs().endOf('day').valueOf()
}
});
const data = result.data;
totalCount.value = data.doingCount + data.undoneCount;
} catch (error) {
console.log(error);
}
};
const getTaskLevelStatistics = async () => {
try {
const result = await request.default({
method: "POST",
url: "/bmp-mission-center-server/api/v1/parkStatistics/countByMissionLevel",
data: {
missionStatusList: [0, 1],
isAccessPermission: props.isAccessPermission
// startTime: dayjs().startOf('day').valueOf(),
// endTime: dayjs().endOf('day').valueOf()
}
});
const data = result.data || [];
tabList.value = data;
activeTab.value = data[0].missionLevelCode;
page = 1;
count.value = 0;
listTotalCount.value = 0;
cardData.value = [];
getEventList();
} catch (error) {
console.log(error);
}
};
const limit = 10;
let page = 1;
const count = vue.ref(0);
const listTotalCount = vue.ref(0);
const getEventList = async () => {
try {
const result = await request.default({
method: "POST",
url: "/bmp-mission-center-server/api/v1/missionRecord/pc/queryMissionRecordInfoPage",
data: {
missionStatusList: [0, 1],
missionLevelCodeList: [activeTab.value],
limit,
page,
isAccessPermission: props.isAccessPermission
}
});
loading.value = false;
const data = result.data || [];
const d = data.map((item) => {
return {
id: item.id,
missionLevelCode: item.missionLevelCode,
missionLevelName: item.missionLevelName,
startTimeStr: item.startTimeStr,
missionSuperviseStatus: item.missionSuperviseStatus,
description: item.description
};
});
cardData.value.push(...d);
count.value = result.count;
listTotalCount.value = result.totalCount;
} catch (error) {
console.log(error);
}
};
getCountByStatusForPark();
getTaskLevelStatistics();
const changeTab = (value) => {
activeTab.value = value;
page = 1;
count.value = 0;
listTotalCount.value = 0;
cardData.value = [];
getEventList();
};
const loading = vue.ref(false);
const noMore = vue.computed(() => (page - 1) * limit + count.value >= listTotalCount.value);
const disabled = vue.computed(() => loading.value || noMore.value);
const load = () => {
loading.value = true;
page++;
getEventList();
};
const onClick = (item) => {
emit("clickItem", item);
};
hooks.setIntervalData(() => {
getCountByStatusForPark();
getTaskLevelStatistics();
}, 5 * 60 * 1e3);
return (_ctx, _cache) => {
const _directive_infinite_scroll = es.ElInfiniteScroll;
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createElementVNode("div", _hoisted_2, [
vue.createTextVNode(" 未办结事件 "),
vue.createElementVNode("span", _hoisted_3, vue.toDisplayString(totalCount.value), 1)
]),
vue.createVNode(Tabs_vue_vue_type_script_setup_true_lang.default, {
class: "dv-ipes-tab",
data: tabList.value,
"model-value": activeTab.value,
onChange: changeTab
}, null, 8, ["data", "model-value"]),
cardData.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
class: "card-list",
"infinite-scroll-distance": "30",
"infinite-scroll-disabled": disabled.value
}, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(cardData.value, (item) => {
return vue.openBlock(), vue.createBlock(ListItem_vue_vue_type_script_setup_true_lang.default, {
key: item.missionLevelCode,
class: "dv-ipes-list",
data: item,
onClick: ($event) => onClick(item)
}, null, 8, ["data", "onClick"]);
}), 128)),
loading.value ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6, " Loading... ")) : vue.createCommentVNode("", true),
noMore.value ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_7, " 到底啦~ ")) : vue.createCommentVNode("", true)
], 8, _hoisted_5)), [
[_directive_infinite_scroll, load]
])
])) : (vue.openBlock(), vue.createBlock(NoData_vue_vue_type_script_setup_true_lang.default, {
key: 1,
class: "infinite-list-wrapper",
type: "noDataTime2"
}))
]);
};
}
});
exports.default = _sfc_main;