diff --git a/packages/screen/src/router/index.js b/packages/screen/src/router/index.js index 9d4f956..3974b60 100644 --- a/packages/screen/src/router/index.js +++ b/packages/screen/src/router/index.js @@ -139,6 +139,16 @@ const routes = [ breadcrumb: true, parentRoute: 'warningManagement' // 用于在面包屑中建立父子关系 } + }, + // 项目管理 + { + path: '/projectManagement', + name: 'projectManagement', + component: () => import('../views/ProjectManagement_Rebuild/index.vue'), + meta: { + title: '项目管理', + breadcrumb: true + } } ] diff --git a/packages/screen/src/views/ProjectManagement_Rebuild/addDialog.vue b/packages/screen/src/views/ProjectManagement_Rebuild/addDialog.vue new file mode 100644 index 0000000..c981eb7 --- /dev/null +++ b/packages/screen/src/views/ProjectManagement_Rebuild/addDialog.vue @@ -0,0 +1,372 @@ + + + + + \ No newline at end of file diff --git a/packages/screen/src/views/ProjectManagement_Rebuild/index.js b/packages/screen/src/views/ProjectManagement_Rebuild/index.js new file mode 100644 index 0000000..ae4d3a7 --- /dev/null +++ b/packages/screen/src/views/ProjectManagement_Rebuild/index.js @@ -0,0 +1,205 @@ +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: "投资估算(万元)", + }, + { + 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({ + year: "", + code: "", +}) +// 分页 +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 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(); + + + + return { + tableData, + filterData, + pagination, + columns, + + modelVisible, + model, + drawerVisible, + drawer, + dialogRef, + drawerRef, + openAddDialog, + } +} \ No newline at end of file diff --git a/packages/screen/src/views/ProjectManagement_Rebuild/index.vue b/packages/screen/src/views/ProjectManagement_Rebuild/index.vue new file mode 100644 index 0000000..10005f7 --- /dev/null +++ b/packages/screen/src/views/ProjectManagement_Rebuild/index.vue @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file