明树Git Lab

Commit 1e428006 authored by zhanghan's avatar zhanghan

成本管理开发

parent efe4b95d
Pipeline #107145 passed with stage
in 18 seconds
This diff is collapsed.
...@@ -353,18 +353,24 @@ const routes = [ ...@@ -353,18 +353,24 @@ const routes = [
title: "成本管理", title: "成本管理",
component: () => import("@/views/elseManage/cost.vue"), component: () => import("@/views/elseManage/cost.vue"),
}, },
{
path: "/costAdd",
name: "costAdd",
title: "成本管理",
component: () => import("@/views/elseManage/costAdd.vue"),
},
{ {
path: "/property", path: "/property",
name: "property", name: "property",
title: "成本管理", title: "资产管理情况",
component: () => import("@/views/elseManage/property.vue"), component: () => import("@/views/elseManage/property.vue"),
}, },
{ {
path: "/link", path: "/link",
name: "link", name: "link",
title: "成本管理", title: "链接管理",
component: () => import("@/views/elseManage/link.vue"), component: () => import("@/views/elseManage/link.vue"),
}, },
], ],
......
<template> <template>
<div class="building-container"> <div class="manage-container">
<img src="@/assets/images/building.png" alt="" /> <div class="manage-wrap">
<div class="title">努力开发中……</div> <div class="manage-header">
<div class="header-left"></div>
<div class="header-right">
<el-button type="primary" @click="costAdd">新增</el-button>
</div>
</div>
<div class="manage-content" v-loading="loading">
<common-table
:autoHeight="true"
:maxRows="10"
:data="tableData"
:columns="tableColumns"
:total="total"
:current-page="currentPage"
:page-size="pageSize"
:index="true"
:indexLabel="'序号'"
title=""
:border="true"
@size-change="handleSizeChange"
@current-page-change="handleCurrentPageChange"
>
<template #operations="{ row, index }">
<el-button
link
type="primary"
size="small"
@click="previewStatement(row)"
>查看</el-button
>
<el-button
link
type="primary"
size="small"
@click="editStatement(row)"
>编辑</el-button
>
<el-button
link
type="danger"
size="small"
@click="deleteStatement(row)"
>删除</el-button
>
</template>
</common-table>
</div>
</div>
</div> </div>
</template> </template>
<script setup></script> <script setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import CommonTable from "@/components/common/commonTable.vue";
<style lang="less"> const router = useRouter();
.building-container { const { proxy } = getCurrentInstance();
width: 100%;
height: 100%; let tableData = ref([]);
display: flex; let tableColumns = ref([
flex-direction: column; {
align-items: center; prop: "projectName",
justify-content: center; label: "项目信息",
img { showOverflowTooltip: true,
max-width: 300px; },
} {
.title { prop: "yjzbLen",
font-size: 18px; label: "一级指标",
color: #999; showOverflowTooltip: true,
} },
} {
prop: "ejzbLen",
label: "二级指标",
showOverflowTooltip: true,
},
{
prop: "operations",
label: "操作",
width: 170,
slot: "operations",
fixed: "right",
align: "center",
},
]);
let loading = ref(false);
let total = ref(0);
let currentPage = ref(1);
let pageSize = ref(10);
// 获取列表数据
const getStatementData = () => {
loading.value = true;
proxy.$post({
url: "/api/project/getCbglList",
data: {
page: currentPage.value,
pagesize: pageSize.value,
},
callback: (data) => {
const countValidRows = (arr) => {
if (!Array.isArray(arr)) return 0;
return arr.reduce((count, item) => {
if (Array.isArray(item?.fj) && item.fj.length > 0) {
count++;
}
return count;
}, 0);
};
tableData.value = data.rows.map((it) => {
return {
...it,
yjzbLen: `${it.yjzb.length}行`,
ejzbLen: `${it.ejzb.length}行`,
};
});
total.value = data.count;
loading.value = false;
},
});
};
// 分页
const handleSizeChange = (size) => {
pageSize.value = size;
currentPage.value = 1;
getStatementData();
};
const handleCurrentPageChange = (page) => {
currentPage.value = page;
getStatementData();
};
const costAdd = () => {
router.push("/costAdd");
};
const editStatement = (item) => {
router.push({
name: "costAdd",
query: {
id: item.id,
},
});
};
const previewStatement = (item) => {
router.push({
name: "costAdd",
query: {
isPreview: true,
id: item.id,
},
});
};
const deleteStatement = (item) => {
ElMessageBox.confirm("确认删除该项?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
proxy.$post({
url: "/api/project/deleteCbgl",
data: {
id: item.id,
},
callback: (data) => {
ElMessage.success("删除成功");
getStatementData();
},
});
})
.catch(() => {});
};
onMounted(() => {
getStatementData();
});
</script>
<style scoped lang="less">
@import "@/styles/manage.less";
</style> </style>
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment