You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

529 lines
15 KiB

<template>
<!-- 项目基本信息-->
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>{{ item.routeName }}</el-breadcrumb-item
>
</el-breadcrumb>
<el-page-header
@back="goBack"
:content="routeList[0].routeName"
style="margin-bottom: 25px"
>
</el-page-header>
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<el-form-item label="周期">
<el-select
v-model="queryParams.data.startDate"
placeholder="请选择周期"
clearable
size="small"
style="width: 100%"
@change="handleQuery"
>
<el-option
v-for="dict in timeOptions"
:key="dict.id"
:label="dict.name"
:value="dict.startDate"
@click.native="getEndDate(dict)"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
placeholder="请输入项目名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
>
<el-button
type="primary"
slot="append"
icon="el-icon-search"
size="small"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item label="行政区划" prop="projectName">
<el-cascader
:options="areasOptions"
v-model="queryParams.data.adcd"
:props="areasOptionProps"
placeholder="请选择行政区划"
clearable
size="small"
style="width: 100%"
@change="handleQuery"
>
</el-cascader>
</el-form-item> -->
<el-form-item>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="infoList"
border
class="exporttable"
:header-cell-style="{ borderColor: '#DFE6EC' }"
:cell-style="{ borderColor: '#DFE6EC' }"
>
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed
/>
<el-table-column
label="项目名称"
align="center"
prop="projectName"
min-width="120"
fixed
/>
<el-table-column label="所在地" align="center" min-width="240" fixed>
<el-table-column
label="所在省"
align="center"
min-width="80"
prop="adcd"
:formatter="(row) => adcdFormat(row, 'province')"
fixed
/>
<el-table-column
label="所在市"
align="center"
min-width="80"
prop="adcd"
:formatter="(row) => adcdFormat(row, 'city')"
fixed
/>
<el-table-column
label="所在县"
align="center"
min-width="80"
prop="adcd"
:formatter="(row) => adcdFormat(row, 'county')"
fixed
/>
</el-table-column>
<el-table-column
label="工程等别"
align="center"
prop="engineeringGrade"
:formatter="engineeringGradeFormat"
min-width="120"
/>
<!-- <el-table-column label="库容" align="center" prop="22" min-width="120" /> -->
<el-table-column label="初设批复情况" align="center" min-width="120">
<el-table-column label="批复文号" align="center" prop="approvalNo" />
<!-- <el-table-column label="批复工期(月)" align="center" prop="222" /> -->
<el-table-column
label="初设批复投资"
align="center"
prop="projectInvestmentEstimate"
/>
</el-table-column>
<el-table-column
label="本年年度投资(万元)"
align="center"
min-width="120"
>
<el-table-column label="下达投资" align="center">
<el-table-column label="合计" align="center" prop="xdTotal" />
<el-table-column
label="中央"
align="center"
prop="xdCenterPaidinAmount"
/>
<el-table-column
label="地方"
align="center"
prop="xdLandPaidnAmount"
/>
</el-table-column>
<!-- <el-table-column label="到位投资" align="center">
<el-table-column label="合计" align="center" prop="333" />
<el-table-column label="中央" align="center" prop="333" />
<el-table-column label="地方" align="center" prop="333" />
</el-table-column> -->
<!-- <el-table-column label="投资到位率(%)" align="center" prop="333" /> -->
<!-- <el-table-column label="完成投资" align="center">
<el-table-column label="合计" align="center" prop="333" />
<el-table-column label="中央" align="center" prop="333" />
<el-table-column label="地方" align="center" prop="333" />
</el-table-column> -->
<el-table-column label="支付金额" align="center">
<el-table-column label="合计" align="center" prop="zfTotal" />
<el-table-column
label="中央"
align="center"
prop="zfCenterPaidinAmount"
/>
<el-table-column
label="地方"
align="center"
prop="zfLandPaidnAmount"
/>
</el-table-column>
<el-table-column label="投资完成率(%)" align="center" prop="333">
<template slot-scope="scope">
{{ scope.row.zfTotal?parseFloat(((scope.row.zfTotal / scope.row.xdTotal) * 100)).toFixed(2):"待下达资金填报" }}
</template>
</el-table-column>
</el-table-column>
<!-- <el-table-column
label="年内到位及完成(含结转 万元)"
align="center"
min-width="120"
>
<el-table-column label="投资到位" align="center">
<el-table-column label="合计" align="center" prop="333" />
<el-table-column label="中央" align="center" prop="333" />
<el-table-column label="地方" align="center" prop="333" />
</el-table-column>
<el-table-column label="完成投资" align="center">
<el-table-column label="合计" align="center" prop="333" />
<el-table-column label="中央" align="center" prop="333" />
<el-table-column label="地方" align="center" prop="333" />
</el-table-column>
</el-table-column>
<el-table-column
label="累计下达及完成(万元)"
align="center"
min-width="120"
>
<el-table-column label="下达投资" align="center">
<el-table-column label="合计" align="center" prop="xdTotal" />
<el-table-column
label="中央"
align="center"
prop="xdCenterPaidinAmount"
/>
<el-table-column
label="地方"
align="center"
prop="xdLandPaidnAmount"
/>
</el-table-column>
<el-table-column label="完成投资" align="center">
<el-table-column label="合计" align="center" prop="zfTotal" />
<el-table-column
label="中央"
align="center"
prop="zfCenterPaidinAmount"
/>
<el-table-column
label="地方"
align="center"
prop="zfLandPaidnAmount"
/>
</el-table-column>
<el-table-column label="投资完成率(%)" align="center" prop="333" />
</el-table-column> -->
<el-table-column label="用工(人天)" align="center" min-width="180">
<el-table-column label="农民工" align="center">
<el-table-column label="累计" align="center" prop="farmerTotal" />
<el-table-column label="本年" align="center" prop="farmerYear" />
<el-table-column label="2024年" align="center" prop="farmerNow" />
</el-table-column>
<!-- <el-table-column label="贫困人口用工" align="center">
<el-table-column label="累计" align="center" prop="333" />
<el-table-column label="本年" align="center" prop="333" />
<el-table-column label="2024年" align="center" prop="333" />
</el-table-column> -->
</el-table-column>
<el-table-column
label="是否主体工程施工招标"
align="center"
prop="isBelon"
:formatter="isBelonFormat"
/>
<el-table-column
label="是否开工"
align="center"
prop="isStart"
:formatter="isStartFormat"
/>
<el-table-column
label="(人天)建设时间节点"
align="center"
min-width="120"
>
<el-table-column
label="主体工程施工招标时间"
align="center"
prop="bidTime"
/>
<el-table-column label="开工时间" align="center" prop="startTime" />
<el-table-column label="完工时间" align="center" prop="endTime" />
</el-table-column>
<el-table-column
label="是否完工"
align="center"
prop="isEnd"
:formatter="isEndFormat"
/>
<el-table-column
label="工程进展是否滞后及其原因分析"
align="center"
prop="333"
/>
<el-table-column label="备注" align="center" prop="remark" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listById } from "@/api/warn/projectBrief";
import { getInfo } from "@/api/build/projectInfo";
import {
listGzjb,
getGzjb,
delGzjb,
addGzjb,
updateGzjb,
exportGzjb,
} from "@/api/build/gzjb";
import { regionData, codeToText, TextToCode } from "element-china-area-data";
import { getAreasData } from "@/api/areas/index";
export default {
name: "Info",
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 项目简报表格数据
infoList: [],
// 工程等别字典
engineeringGradeOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {},
// 排序方式
params: {
// 按哪个字段排序
orderBy: "create_time",
// desc降序,升序asc
sortBy: "desc",
},
},
// 表单参数
form: {},
// 表单校验
rules: {},
// 面包屑,路由信息
routeList: [],
areasOptions: [],
areasOptionProps: {
emitPath: false,
checkStrictly: true, //选择任意一级
},
timeOptions: [],
whetherOptions: [],
};
},
created() {
this.getList();
this.getDicts("engineering_grade").then((response) => {
this.engineeringGradeOptions = response.data;
});
this.getDicts("whether").then((response) => {
this.whetherOptions = response.data;
});
this.routeList = JSON.parse(this.$store.state.basePageData.routeList);
this.getTreeData();
listGzjb({ data: {} }).then((res) => {
// console.log(4444, res);
this.timeOptions = res.records;
if (res.records[0]) {
this.queryParams.data.startDate = res.records[0].startDate;
}
});
},
methods: {
getEndDate(dict) {
this.queryParams.data.endDate = dict.endDate;
},
// 工程等别字典翻译
engineeringGradeFormat(row, column) {
return this.selectDictLabel(
this.engineeringGradeOptions,
row.engineeringGrade
);
},
isBelonFormat(row, column) {
return this.selectDictLabel(this.whetherOptions, row.isBelon);
},
isStartFormat(row, column) {
return this.selectDictLabel(this.whetherOptions, row.isStart);
},
isEndFormat(row, column) {
return this.selectDictLabel(this.whetherOptions, row.isEnd);
},
adcdFormat(row, key) {
if (row.adcd) {
let provinceCode = row.adcd.slice(0, 2);
let cityCode = row.adcd.slice(2, 4);
let areaCode = row.adcd.slice(4, 6);
if (key === "province") return codeToText[provinceCode];
if (key === "city") return codeToText[provinceCode + cityCode];
if (key === "county")
return codeToText[provinceCode + cityCode + areaCode];
}
},
goBack() {
this.$router.back();
},
getTreeData() {
getAreasData().then((items) => {
// console.log("getAreasData", items.data);
let res = [];
let getChildren = (res, pid) => {
for (const i of items.data) {
if (i.parentid === pid) {
const newItem = {
label: i.name,
value: i.id,
};
if (i.layer != 3) newItem.children = [];
res.push(newItem);
getChildren(newItem.children, newItem.value);
}
}
};
getChildren(res, items.data[0].parentid);
// console.log(66666666666, res);
this.areasOptions = res;
// return res;
});
},
/** 查询项目基本信息管理列表 */
getList() {
this.loading = true;
getInfo(this.$route.query.baseDataId).then((response) => {
// console.log(2222, response);
this.queryParams.data.proNo = response.data.proNo;
this.queryParams.data.proCode = response.data.proCode;
listById(this.queryParams).then((res) => {
// console.log(1111, res);
this.infoList = res.records;
this.loading = false;
});
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {};
this.resetForm("form");
},
// 查询表单重置
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {},
// 排序方式
params: {
// 按哪个字段排序
orderBy: "create_time",
// desc降序,升序asc
sortBy: "desc",
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/dialog.scss";
::v-deep {
.el-dialog {
margin-top: 2vh !important;
}
.el-table__body-wrapper {
z-index: 2;
}
}
.exporttable {
border: solid 1px #dfe6ec;
}
</style>