Commit d8768502 authored by danfuman's avatar danfuman

工程项目信息

parent 7da4a49f
<!-- 表格组件 -->
<template>
<div class="infoTable-container">
<h2 v-if="title !== '' && isSubTitle" class="infoTable-title">
{{ title }}
</h2>
<el-form v-if="Object.keys(obj).length > 0" class="infoTable-form" label-position="left">
<template v-for="(item, index) in list">
<el-form-item :style="item.span?{width: `${100/(24/item.span)}%`}:{}" :label="item.name" :label-width="labelWidth?labelWidth+'px':'130px'" :key="index" :class="[
{ 'infoTable-form-view': item.style },
{ 'infoTable-form-item': !item.style },
{ 'infoTable-form-row': item.rowstyle }
]">
<div>
<template v-if="item.slot === true">
<slot :name="item.prop" :data="obj"></slot>
</template>
<span v-else> {{ obj[item.prop] ?obj[item.prop] !==""?item.formatter?item.formatter(obj[item.prop]):obj[item.prop]:'-' :'-' }}</span>
</div>
</el-form-item>
</template>
</el-form>
<div v-else class="no-data">
<div class="no-data-box" v-if="show">
<img :src="noData" alt="暂时没有找到相关数据" />
<span>暂时没有找到相关数据</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: "InfoTable",
components: {
},
props: {
list: {
type: Array,
default: () => [],
},
title: {
type: String,
default: "",
},
obj: {
type: Object,
default: () => { }
},
labelWidth: {
type: Number,
default: null
},
isSubTitle: {
type: Boolean,
default: false,
},
},
data() {
return {
show:false,
// 当前移入单元格内容
noData: require("@/assets/images/detail/noData.png")
};
},
created() {
},
mounted(){
this.show = true;
},
methods: {
},
};
</script>
<style lang="scss" scoped>
.infoTable-container {
.infoTable-title {
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
padding-left: 8px;
border-left: 2px solid #58637B;
color: #000000;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
margin-bottom: 16px;
}
.infoTable-form {
display: flex;
flex-wrap: wrap;
border-left: 1px solid #e5e9f5;
border-top: 1px solid #e5e9f5;
border-collapse: collapse;
.infoTable-form-item {
width: 50%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 13px;
}
.infoTable-form-view {
width: 100%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 13px;
}
.infoTable-form-row {
width: 33%;
flex: auto;
margin-bottom: 0px;
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 13px;
}
::v-deep .el-form-item__label {
height: 100%;
background-color: #F0F3FA;
padding: 8px 12px 8px 12px;
font-size: 13px;
font-weight: normal;
color: rgba(35,35,35,0.8);
display: flex;
align-items: center;
line-height: normal;
}
::v-deep .el-form-item__content {
padding-left: 12px;
font-size: 13px;
color: #232323;
}
::v-deep .el-form-item__content {
border-left: 1px solid #e5e9f5;
height: 100%;
display: flex;
align-items: center;
}
::v-deep .el-col {
border-bottom: 1px solid #e5e9f5;
}
}
.no-data {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #999999;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
max-width: 1200px;
height: 328px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
border-radius: 0px 0px 0px 0px;
opacity: 1;
border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 64px;
height: 79px;
margin-bottom: 16px;
}
}
}
::v-deep .el-form-item__content {
line-height: 22px;
padding: 6px 4px;
}
}
</style>
<template>
<div class="detail-container">
<div class="detail-cont">
<info-table class="info-tab" :list="defaultList1" :obj="forInfo" :labelWidth="labelWidth" title="项目基本情况" :isSubTitle="true"></info-table>
</div>
<div class="detail-cont">
<info-table class="info-tab" :list="defaultList2" :obj="forInfo" :labelWidth="labelWidth" title="项目特征信息" :isSubTitle="true"></info-table>
</div>
<div class="detail-cont">
<h2 class="infoTable-title">项目投标时的要点</h2>
<dsk-tab-toggle v-model="currentList" :tabs="toggleTabs"></dsk-tab-toggle>
<div>
</div>
</div>
<div class="detail-cont">
<info-table class="info-tab" :list="defaultList3" :obj="forInfo" :labelWidth="labelWidth" title="评标办法" :isSubTitle="true"></info-table>
</div>
<div class="detail-cont"></div>
</div>
</template>
<script>
import DskTabToggle from "@/components/DskTabToggle";
import InfoTable from './component/infoTable';
import { v4 } from 'uuid';
export default {
name: "projectInformation",
components: {InfoTable,DskTabToggle},
data() {
return {
currentList: "yd1",
toggleTabs: [
{
value: "yd1",
name: "招标范围",
id: v4()
},
{
value: "yd2",
name: "指定分包/指定供应",
id: v4()
},
{
value: "yd3",
name: "商务标书投标文件组成(详细)",
id: v4()
},
{
value: "yd4",
name: "工期要求(天数,起止时间)",
id: v4()
},
{
value: "yd5",
name: "质量标准及质量要求",
id: v4()
},
],
labelWidth: 250,
forInfo: {
name:'宝安中学(集团)初中部改扩建工程施工总承包(二次公告)',
},
defaultList1: [
// { name: '工程名称', prop: 'name', slot: true },
{ name: '工程名称', prop: 'name', style: true },
{ name: '工程所在地', prop: 'creditNo' },
{ name: '工程详细地址', prop: 'operName' },
{ name: '业态', prop: 'status' },
{ name: '工程类型', prop: 'startDate' },
{ name: '计价模式(清单/定额)', prop: 'registCapi' },
{ name: '承包形式(EPC/DB/EP/PC)', prop: 'actualCapi'},
{ name: '合同类型', prop: 'checkDate' },
{ name: '建设单位', prop: 'orgNo' },
{ name: '设计单位', prop: 'regNo' },
{ name: '勘察单位', prop: 'creditNo' },
{ name: '监理单位', prop: 'econKind' },
{ name: '代理公司(或工料测量师)', prop: 'term'},
{ name: '招标形式', prop: 'qualification' },
{ name: '承包方式', prop: 'provinceCode'},
{ name: '资金来源', prop: 'belongOrg' },
{ name: '分包标准费用项价格库', prop: 'colleguesNum'},
{ name: '材料机械标准费用价格库', prop: 'colleguesNum'},
{ name: '专业类别', prop: 'scope'},
{ name: '平台项目名称', prop: 'scope'},
{ name: '核定总人数', prop: 'scope'},
{ name: '折算收入不含税系数(应纳税率)', prop: 'scope'},
{ name: '收入清单增值税率', prop: 'scope'},
],
defaultList2: [
{ name: '地上建筑面积', prop: 'creditNo' },
{ name: '地下建筑面积', prop: 'operName' },
{ name: '坑底面积', prop: 'status' },
{ name: '占地面积', prop: 'startDate' },
{ name: '结构类型', prop: 'registCapi' },
{ name: '基础类型', prop: 'actualCapi'},
{ name: '单体个数', prop: 'checkDate', style: true },
{ name: '地上层数', prop: 'orgNo' },
{ name: '地下层数', prop: 'regNo' },
{ name: '建筑高度', prop: 'creditNo' },
{ name: '地下深度', prop: 'econKind' },
{ name: '首层(m)', prop: 'term'},
{ name: '标准层(m)', prop: 'qualification' },
{ name: '其他说明', prop: 'provinceCode', style: true},
],
defaultList3: [
{ name: '评标程序', prop: 'creditNo' },
{ name: '专家组成', prop: 'operName' },
{ name: '评标原则', prop: 'status' },
{ name: '定标原则', prop: 'startDate' },
{ name: '招标控制价(如有)', prop: 'startDate' },
{ name: '报价上限(如有)', prop: 'startDate' },
],
};
},
//可访问data属性
created() {
},
//计算集
computed: {
},
//方法集
methods: {
},
}
</script>
<style lang="scss" scoped>
.detail-container {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 16px 24px;
.infoTable-title {
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
padding-left: 8px;
border-left: 2px solid #58637B;
color: #000000;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
margin-bottom: 16px;
}
.detail-cont{
margin-bottom: 24px;
}
}
</style>
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