import { h, ref, onMounted, reactive, watch, toRaw, nextTick } from "vue"; import { request } from "@/utils/request"; import { useRoute, useRouter } from 'vue-router' import AddDialog from "./addDialog.vue"; const tableData = ref([]); // 表格数据 const modelVisible = ref(false); // 弹窗状态 const drawerVisible = ref(false); // 抽屉状态 // 弹窗内容 const model = reactive({ title: '', content: null, props: {}, onCancel: null, onConfirm: null, width: '', }); const form = reactive({ }); const INIT_FORM = { }; // 抽屉内容 const drawer = reactive({ title: '', content: null, props: {}, onCancel: null, onConfirm: null, direction: 'rtl', size: '50%' }); const dialogRef = ref(null); // 弹窗实例 const drawerRef = ref(null); // 抽屉实例 const columns = [ { prop: "xxx", label: "预警标题", }, { prop: "xxx", label: "预警类型", }, { prop: "xxx", label: "发送时间", }, { prop: "xxx", label: "生效时间", }, { prop: "xxx", label: "接收时间", }, { prop: "xxx", label: "预警转发时间", }, { prop: "xxx", label: "预警结束时间", }, { prop: "xxx", label: "影响数量", }, { prop: "xxx", label: "响应情况", }, { label: "操作", fixed: "right", width: 150, render: (row) => () => h("div", { class: "action-btns" }, [ h( ElButton, { type: "primary", link: true, onClick: async () => { }, }, () => "详情" ), h( ElButton, { type: "primary", link: true, style: "margin-left: 10px;", onClick: async () => { }, }, () => "结束预警" ), ]), }, ] // 过滤条件 const filterData = reactive({ title: "", type: "", warningLevel: "", }) // 分页 const pagination = reactive({ current: 1, pageSize: 10, total: 0, pageSizes: [10, 20, 50], layout: "prev, pager, next, jumper", onChange: (page, pageSize) => { pagination.current = page; pagination.pageSize = pageSize; getTableData(filterData); }, }); // 获取预警列表 const getTableData = async (filterData) => { try { const res = await request({ url: '', method: "GET", params: { } }) } catch (error) { } } // 预警类型选项 const typeOptions = [ { label: "全部", value: "" }, { label: "台风预警", value: "台风预警" }, { label: "暴雨预警", value: "暴雨预警" }, { label: "寒潮预警", value: "寒潮预警" }, { label: "大雾预警", value: "大雾预警" }, { label: "暴雪预警", value: "暴雪预警" }, { label: "道路结冰预警", value: "道路结冰预警" }, { label: "雷电预警", value: "雷电预警" }, { label: "强对流预警", value: "强对流预警" }, ]; // 预警级别选项 const warningLevelOptions = [ { label: "全部", value: "" }, { label: "红色预警", value: "红色预警" }, { label: "橙色预警", value: "橙色预警" }, { label: "黄色预警", value: "黄色预警" }, { label: "蓝色预警", value: "蓝色预警" }, ] // 打开填报项目弹窗 const openAddDialog = () => { model.title = '填报项目'; Object.assign(form, INIT_FORM); model.props = { form: form, }; model.content = AddDialog; model.onCancel = () => { modelVisible.value = false; }; model.onConfirm = async () => { dialogType.value = ''; await dialogRef?.value?.dynamicComponentRef?.formRef.validate().then(() => { console.log('@@@@@填报项目', form); }) .catch((err) => { ElMessage.error('请处理表单中的错误项'); }); }; model.width = "70%" modelVisible.value = true; } export default () => { const router = useRouter(); const gotoLedgerPage = () => { router.push({ path: '/ledgerManagement' }); }; return { tableData, filterData, typeOptions, warningLevelOptions, pagination, columns, gotoLedgerPage, modelVisible, model, drawerVisible, drawer, dialogRef, drawerRef, openAddDialog, } }