Commit 3d34a012 authored by caixingbing's avatar caixingbing

*

parent 26fe8fee
......@@ -54,24 +54,6 @@ export function approvalProjectPage(data) {
})
}
// 拟建项目立项审批列表
export function approvalExaminePage(data) {
return request({
url: '/enterpriseProject/approvalExaminePage',
method: 'post',
data: data
})
}
// 拟建项目民间推介列表
export function approvalMarketingPage(data) {
return request({
url: '/enterpriseProject/approvalMarketingPage',
method: 'post',
data: data
})
}
// 标讯PRO招标公告列表
export function bidNoticeProPage(data) {
return request({
......@@ -126,10 +108,10 @@ export function specialDebtProjectPage(data) {
})
}
// 专项债列表
export function specialDebtPage(data) {
// 招标计划列表
export function bidPlanPage(data) {
return request({
url: '/enterpriseProject/specialDebtPage',
url: '/enterpriseProject/bidPlanPage',
method: 'post',
data: data
})
......
......@@ -5,12 +5,12 @@ import { parseTime } from './ruoyi'
*/
export function formatDate(cellValue) {
if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue)
var date = new Date(cellValue)
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}
......@@ -330,7 +330,7 @@ export function makeMap(str, expectsLowerCase) {
? val => map[val.toLowerCase()]
: val => map[val]
}
export const exportDefault = 'export default '
export const beautifierConf = {
......@@ -387,4 +387,4 @@ export function camelCase(str) {
export function isNumberStr(str) {
return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
}
......@@ -70,6 +70,18 @@
:placeholder="form.placeholder"
@handle-search="changeSelect" />
</template>
<!-- 地区选择 -->
<template v-else-if="form.type==7">
<el-cascader
:options="form.options"
:props="form.props"
v-model="form.value"
@change="changeSelect"
:placeholder="form.placeholder"
collapse-tags
style="margin-top: -1px;"
clearable></el-cascader>
</template>
<!-- 自定义 -->
<template v-if="form.type==0">
<slot name="slot"></slot>
......@@ -165,6 +177,22 @@ export default {
::v-deep .el-input--medium .el-input__icon{
line-height: 32px;
}
::v-deep .el-cascader{
height: 32px;
line-height: 32px;
.el-input{
input{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
margin-top: 1px;
.el-tag{
max-width: 120px;
}
}
}
.headForm-from {
display: flex;
.from-item{
......
......@@ -8,7 +8,7 @@
border
fit
highlight-current-row
:default-sort = 'defaultSort'
:default-sort = "defaultSort?defaultSort:{}"
@sort-change="sortChange"
>
<el-table-column
......@@ -30,15 +30,33 @@
:fixed="item.fixed"
:sortable="item.sortable ? 'custom' : false"
:resizable="false">
<template v-if="item.slotHeader" slot="header">
<slot :name="item.slotName"></slot>
</template>
<template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else>
<template v-if="item.children&&item.children.length">
<el-table-column
v-for="(cld, i) in item.children"
:key="i"
:prop="cld.prop"
:label="cld.label"
:width="cld.width"
:resizable="false">
<template slot-scope="cldscope">
<template v-if="cld.slot">
<slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot>
</template>
<template v-else>
<span>{{cldscope.row[cld.prop] || '--'}}</span>
</template>
</template>
</el-table-column>
</template>
<template v-else-if="item.slotHeader" slot="header">
<slot :name="item.slotName"></slot>
</template>
<template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else>
{{ scope.row[item.prop] || '--' }}
</span>
</template>
</template>
</el-table-column>
</template>
......@@ -51,6 +69,7 @@
</template>
<script>
import { tabFixed } from '@/utils'
export default {
name: "Tables",
props: {
......@@ -114,7 +133,7 @@ export default {
::v-deep .el-table__body tr.current-row > td.el-table__cell{
background-color: #ffffff;
}
::v-deep .el-table__fixed{
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}
}*/
</style>
......@@ -55,7 +55,7 @@ export default {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'issueTime', order: 'descending'},
forData: [
......
......@@ -45,7 +45,7 @@ export default {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '项目名称', prop: 'name', minWidth: '320', slot: true},
......
......@@ -70,7 +70,7 @@ export default {
tendereeId: this.data.tendereeId,
agencyId: this.data.agencyId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []},
......
......@@ -76,7 +76,7 @@ export default {
cid: this.companyId,
unitId: this.data.projectUnitId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
......
......@@ -76,7 +76,7 @@ export default {
cid: this.data.companyId,
unitId: this.companyId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: []},
......
......@@ -56,7 +56,7 @@ export default {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'time', order: 'descending'},
forData: [
......
......@@ -48,7 +48,7 @@ export default {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'winBidTime', order: 'descending'},
forData: [
......
......@@ -56,7 +56,7 @@ export default {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'time', order: 'descending'},
forData: [
......
......@@ -17,10 +17,10 @@
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="porjectName" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.porjectName)?'cell-span':'']" :style="{'-webkit-line-clamp': 2}">
{{ scope.row.porjectName }}
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.porjectName)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">展开</span></span>
<template slot="content" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)?'cell-span':'']" :style="{'-webkit-line-clamp': 2}">
{{ scope.row.content }}
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">展开</span></span>
</span>
</template>
</tables>
......@@ -30,7 +30,7 @@
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
import {creditXzxkPage} from '@/api/detail/party-a/opport'
export default {
name: 'Administrative',
props: ['companyId'],
......@@ -42,22 +42,22 @@ export default {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '许可决定日期', prop: 'use', width: '100'},
{label: '决定文书号', prop: 'type', width: '200'},
{label: '许可编号', prop: 'type', width: '80'},
{label: '决定文书名称', prop: 'type', width: '190'},
{label: '许可内容', prop: 'porjectName', width: '300', slot: true},
{label: '有效期自', prop: 'type', width: '100'},
{label: '有效期至', prop: 'type', width: '100'},
{label: '行政许可类别', prop: 'type', width: '100'},
{label: '许可机关', prop: 'type', width: '180'},
{label: '行政许可机关统一社会信用代码', prop: 'type', width: '200'},
{label: '数据来源单位', prop: 'type', width: '110'},
{label: '数据来源单位统一社会信用代码', prop: 'type', width: '200'},
{label: '来源', prop: 'type', width: '80'}
{label: '许可决定日期', prop: 'xxx', width: '100'},
{label: '决定文书号', prop: 'deciWritNo', width: '200'},
{label: '许可编号', prop: 'xxx', width: '100'},
{label: '决定文书名称', prop: 'deciWritName', width: '190'},
{label: '许可内容', prop: 'content', width: '300', slot: true},
{label: '有效期自', prop: 'valiBegin', width: '100'},
{label: '有效期至', prop: 'valiEnd', width: '100'},
{label: '行政许可类别', prop: 'xxx', width: '100'},
{label: '许可机关', prop: 'office', width: '180'},
{label: '行政许可机关统一社会信用代码', prop: 'xxx', width: '200'},
{label: '数据来源单位', prop: 'xxx', width: '110'},
{label: '数据来源单位统一社会信用代码', prop: 'xxx', width: '200'},
{label: '来源', prop: 'dataSource', width: '80'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []},
......@@ -75,27 +75,15 @@ export default {
this.handleQuery()
},
methods: {
handleQuery(params) {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装滨州医学院口腔医学大',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
let res = await creditXzxkPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
changeShowAll(row, column) {
this.showList.push({
......
......@@ -11,15 +11,21 @@
<tables
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}{{`${scope.row.area?'-'+scope.row.area:''}`}}
</template>
</tables>
......@@ -28,7 +34,7 @@
<script>
import mixin from '../mixins/mixin'
import {getList, getOption} from '@/api/detail/party-a/opport'
import {bidNoticeArea, bidNoticeTenderStage, bidNoticePage} from '@/api/detail/party-a/opport'
export default {
name: 'Announcement',
props: ['companyId'],
......@@ -39,25 +45,27 @@ export default {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'issueTime', order: 'descending'},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '发布日期', prop: 'use', sortable: 'custom', width: '120'},
{label: '预算金额(万元)', prop: 'type', sortable: 'custom', width: '140'},
{label: '项目地区', prop: 'way', width: '120'},
{label: '项目类别', prop: 'state', width: '90'},
{label: '招采单位联系人', prop: 'money', width: '110'},
{label: '招采单位联系方式', prop: 'money', width: '130'},
{label: '代理单位', prop: 'money', width: '170'},
{label: '代理单位联系人', prop: 'money', width: '110'},
{label: '代理单位联系方式', prop: 'money', width: '130'},
{label: '报名截止日期', prop: 'money', width: '100'}
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'},
{label: '预算金额(万元)', prop: 'projectAmount', sortable: 'custom', descending: '1', ascending: '2', width: '140'},
{label: '项目地区', prop: 'province', width: '120', slot: true},
{label: '项目类别', prop: 'tenderStage', width: '90'},
{label: '招采单位联系人', prop: 'contact', width: '110'},
{label: '招采单位联系方式', prop: 'contactTel', width: '130'},
{label: '代理单位', prop: 'agency', minWidth: '170'},
{label: '代理单位联系人', prop: 'agencyContact', width: '110'},
{label: '代理单位联系方式', prop: 'agencyContactTel', width: '130'},
{label: '报名截止日期', prop: 'overTime', width: '100'}
],
formData: [
{ type: 1, fieldName: 'projectStage', value: '', placeholder: '项目地区', options: []},
{ type: 1, fieldName: 'projectType', value: '', placeholder: '项目类型', options: []},
{ type: 7, fieldName: 'province', value: '',props: {multiple: true}, placeholder: '项目地区', options: []},
{ type: 4, fieldName: 'tenderStage', value: '', placeholder: '项目类型', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []}
],
//列表
......@@ -73,43 +81,74 @@ export default {
this.handleQuery()
},
methods: {
handleOption(){
getOption().then((res) => {
this.setFormData('projectStage', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
this.setFormData('projectType', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
async handleOption(){
let [area, tender] = await Promise.all([
bidNoticeArea({cid: this.companyId}),
bidNoticeTenderStage({cid: this.companyId})
])
if(area.code==200){
let region = area.data.map(item => {
let province = {label:item.province+'('+item.count+')',value:item.provinceId}
if(item.citys&&item.citys.length>0){
let city = [], citem = {}
for(let i=0;i<item.citys.length;i++){
citem = {label:item.citys[i].city, value:item.citys[i].cityId}
if(item.citys[i].areas&&item.citys[i].areas.length>0){
let area = [], aitem = {}
for(let j=0;j<item.citys[i].areas.length;j++){
aitem = {label:item.citys[i].areas[j].area, value:item.citys[i].areas[j].areaId}
area.push(aitem)
citem.children = area
}
}
city.push(citem)
}
city.length>0 ? province.children = city : ''
}
return province
})
this.setFormData('province', region)
}
if(tender.code==200){
let tenderStage = tender.data.map(item => {
let it = {name:item.tenderStage+'('+item.count+')',value:item.tenderStage}
return it
})
this.setFormData('tenderStage', tenderStage)
}
},
handleQuery(params) {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
let param = this.getAreaList(params || this.queryParams)
let res = await bidNoticePage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
getAreaList(params){
console.log('参数1:',params)
if(params.province&&params.province.length>0){
let provinceIds = [], cityIds = [], areaIds = []
for(let i=0;i<params.province.length;i++){
params.province[i][0]?provinceIds.push(params.province[i][0]):''
params.province[i][1]?cityIds.push(params.province[i][1]):''
params.province[i][2]?areaIds.push(params.province[i][2]):''
}
delete params.province
params.provinceIds = provinceIds.filter(function(value,index,self){
return self.indexOf(value) === index
})
params.cityIds = cityIds.filter(function(value,index,self){
return self.indexOf(value) === index
})
params.areaIds = areaIds.filter(function(value,index,self){
return self.indexOf(value) === index
})
}
console.log('参数2:',params)
return params
}
}
}
......
<template>
<div class="app-container detail-container">
biddingplan
<div class="detail-container">
<head-form
title="招标计划"
:form-data="formData"
:query-params="queryParams"
:isExcel="true"
:total="tableDataTotal"
/>
<tables
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}{{`${scope.row.area?'-'+scope.row.area:''}`}}
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import {bidPlanPage} from '@/api/detail/party-a/opport'
export default {
name: 'Biddingplan',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'issueTime', order: 'descending'},
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '400', slot: true},
{label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'},
{label: '合同预估金额(万元)', prop: 'planTenderAmount', sortable: 'custom', descending: '1', ascending: '2', width: '160'},
{label: '资金来源', prop: 'projecetCapitalSource', minWidth: '100'},
{label: '项目地区', prop: 'province', minWidth: '110', slot: true},
{label: '项目类型', prop: 'buildingProjectType', minWidth: '100'},
{label: '标的物类型', prop: 'objectType', minWidth: '100'},
{label: '预计招标日期', prop: 'planTenderDateStart', sortable: 'custom', descending: '15', ascending: '16', minWidth: '110'}
],
formData: [],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleQuery()
},
methods: {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidPlanPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
margin: 0;
background: #ffffff;
border-radius: 4px;
padding: 16px;
background: #FFFFFF;
}
</style>
......@@ -11,15 +11,18 @@
<tables
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......@@ -28,7 +31,7 @@
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
import {specialDebtProjectPage} from '@/api/detail/party-a/opport'
export default {
name: 'Bond',
props: ['companyId'],
......@@ -39,16 +42,16 @@ export default {
return {
queryParams: {
cid: this.companyId,
sort: 1,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'projectTotalInvestment', order: 'descending'},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '项目总投资(亿元)', prop: 'use', sortable: 'custom', width: '150'},
{label: '项目资本金(亿元)', prop: 'type', sortable: 'custom', width: '150'},
{label: '项目收益倍数(倍)', prop: 'way', sortable: 'custom', width: '150'},
{label: '专项债金额(亿元)', prop: 'state', sortable: 'custom', width: '150'},
{label: '专项债用作资本金(亿元)', prop: 'money', sortable: 'custom', width: '200'}
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '项目总投资(亿元)', prop: 'projectTotalInvestment', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{label: '项目资本金(亿元)', prop: 'projectCapital', sortable: 'custom', descending: '17', ascending: '18', width: '150'},
{label: '专项债用作资本金(亿元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
......@@ -65,27 +68,15 @@ export default {
this.handleQuery()
},
methods: {
handleQuery(params) {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
let res = await specialDebtProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
}
}
}
......
......@@ -11,15 +11,18 @@
<tables
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......@@ -28,7 +31,7 @@
<script>
import mixin from '../mixins/mixin'
import { getOption, getList } from '@/api/detail/party-a/opport'
import {landUse, landTransactionPage} from '@/api/detail/party-a/opport'
export default {
name: 'Landtransaction',
props: ['companyId'],
......@@ -39,29 +42,30 @@ export default {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'contractSignTime', order: 'descending'},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '土地用途', prop: 'use', width: '130'},
{label: '行业分类', prop: 'type', width: '100'},
{label: '供地方式', prop: 'way', width: '100'},
{label: '土地坐落', prop: 'state', width: '130'},
{label: '成交金额(万元)', prop: 'money', sortable: 'custom', width: '140'},
{label: '总面积(㎡)', prop: 'scale', sortable: 'custom', width: '130'},
{label: '批准单位', prop: 'unit', width: '130'},
{label: '签订日期', prop: 'date', width: '130'}
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '土地用途', prop: 'landUse', width: '130'},
{label: '行业分类', prop: 'industry', width: '100'},
{label: '供地方式', prop: 'supplyLandWay', width: '100'},
{label: '土地坐落', prop: 'landAddr', minWidth: '130'},
{label: '成交金额(万元)', prop: 'transactionPrice', sortable: 'custom', descending: '3', ascending: '4', width: '140'},
{label: '总面积(㎡)', prop: 'acreage', sortable: 'custom', descending: '11', ascending: '12', width: '130'},
{label: '批准单位', prop: 'authority', width: '130'},
{label: '签订日期', prop: 'contractSignTime', sortable: 'custom', descending: '1', ascending: '2', width: '130'}
],
formData: [
{ type: 1, fieldName: 'penalizeReasonType', value: '', placeholder: '土地用途', options: []},
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
showList:[],
tableDataTotal:0
}
},
computed: {
......@@ -71,37 +75,25 @@ export default {
this.handleQuery()
},
methods: {
handleOption(){
getOption().then((res) => {
this.setFormData('penalizeReasonType', [
{ name: '类别1', value: '1' },
{ name: '类别2', value: '2' },
{ name: '类别3', value: '3' },
{ name: '类别4', value: '4' }
])
})
async handleOption(){
let res = await landUse({cid: this.companyId})
if(res.code==200){
let use = res.data.map(item => {
let it = {name:item.landUse+'('+item.count+')',value:item.landUse}
return it
})
this.setFormData('landUse', use)
}
},
handleQuery(params) {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
let res = await landTransactionPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
}
}
}
......
......@@ -11,15 +11,21 @@
<tables
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="porjectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ scope.row.porjectName }}</router-link>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="isProjcet" slot-scope="scope">
<span>{{scope.row.isProjcet==1?'是':'否'}}</span>
</template>
</tables>
......@@ -28,7 +34,7 @@
<script>
import mixin from '../mixins/mixin'
import { getList } from '@/api/detail/party-a/opport'
import { approvalProjectPage } from '@/api/detail/party-a/opport'
export default {
name: 'Proposed',
props: ['companyId'],
......@@ -39,17 +45,19 @@ export default {
return {
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
defaultSort: {prop: 'planStartTime', order: 'descending'},
forData: [
{label: '项目名称', prop: 'porjectName', minWidth: '300', slot: true},
{label: '成交金额(万元)', prop: 'use', sortable: 'custom', width: '150'},
{label: '项目类别', prop: 'type', width: '100'},
{label: '计划开工日期', prop: 'way', sortable: 'custom', width: '130'},
{label: '计划完工日期', prop: 'state', sortable: 'custom', width: '130'},
{label: '审批结果', prop: 'money', width: '100'},
{label: '是否为民间推介项目', prop: 'scale', width: '150'}
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '成交金额(万元)', prop: 'money', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{label: '项目类别', prop: 'projectCategories', width: '100'},
{label: '计划开工日期', prop: 'planStartTime', sortable: 'custom', descending: '3', ascending: '4', width: '130'},
{label: '计划完工日期', prop: 'planEndTime', sortable: 'custom', descending: '13', ascending: '14', width: '130'},
{label: '审批结果', prop: 'examineStatus', width: '100'},
{label: '是否为民间推介项目', prop: 'isProjcet', width: '150', slot: true}
],
formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: []},
......@@ -66,27 +74,15 @@ export default {
this.handleQuery()
},
methods: {
handleQuery(params) {
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
getList(param).then((res) => {
this.tableLoading = false
this.tableData = [
{
projectId: '1',
porjectName:'滨州医学院口腔医学大楼铝合金门窗供货及安装',
use:'城镇住宅用地',
type:'房地产业',
way:'挂牌出让',
state:'重庆',
money:'11234万元',
scale:'222平米',
unit:'江苏省住房和城乡建设厅',
date:'2015-08-06',
}
]
this.tableDataTotal = 100
})
let res = await approvalProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
}
}
}
......
<template>
<div class="app-container detail-container">
tencent
<div class="detail-container">
<head-form
title="标讯Pro"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
:isExcel="true"
@handle-search="handleSearch"
/>
<tables
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="tenderee" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.tendereeId&&scope.row.tenderee " v-html="scope.row.tenderee"></router-link>
<div v-else v-html="scope.row.tenderee || '--'"></div>
</template>
<template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency " v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}{{`${scope.row.area?'-'+scope.row.area:''}`}}
</template>
</tables>
</div>
</template>
<script>
import mixin from '../mixins/mixin'
import { bidNoticeProProjectType, bidNoticeProProjectPurposes, bidNoticeProAssessmentWay, bidNoticeProPage } from '@/api/detail/party-a/opport'
export default {
name: 'Tencent',
props: ['companyId'],
mixins: [mixin],
components: {
},
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 20
},
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '320', slot: true},
{label: '金额(万元)', prop: '', children: [
{ label: '建安费暂估', prop: 'projectSafeAmount', width: '88px'},
{ label: '勘察费暂估', prop: 'projectSurveyAmount', width: '88px'},
{ label: '保证金', prop: 'projectEnsureAmount', width: '88px'}
]},
{label: '招标人及联系方式', prop: '', children: [
{ label: '招标人', prop: 'tenderee', width: '88px', slot: true},
{ label: '联系人', prop: 'tendereeTel', width: '88px'}
]},
{label: '代理机构及联系方式', prop: '', children: [
{ label: '代理机构', prop: 'agency', width: '88px', slot: true},
{ label: '联系人', prop: 'agencyTel', width: '88px'}
]},
{label: '项目分类', prop: 'projectType', width: '130'},
{label: '工程类别', prop: 'projectPurposes', width: '130'},
{label: '分部分项', prop: 'projectSub', width: '130'},
{label: '项目级别', prop: 'projectLevel', width: '130'},
{label: '评标办法', prop: 'bidAssessmentWay', width: '130'},
{label: '项目属地', prop: 'province', width: '130', slot: true},
{label: '发布日期', prop: 'pubdate', width: '130'}
],
formData: [
{ type: 1, fieldName: 'projectType', value: '', placeholder: '项目类别', options: []},
{ type: 1, fieldName: 'projectPurposes', value: '', placeholder: '工程类别', options: []},
{ type: 1, fieldName: 'bidAssessmentWay', value: '', placeholder: '评标办法', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入关键词查询', options: []}
],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
}
},
computed: {
},
created() {
this.handleOption()
this.handleQuery()
},
methods: {
async handleOption(){
let [projectType, projectPurposes, proAssessmentWay] = await Promise.all([
bidNoticeProProjectType({cid: this.companyId}),
bidNoticeProProjectPurposes({cid: this.companyId}),
bidNoticeProAssessmentWay({cid: this.companyId})
])
if(projectType.code==200){
let type = projectType.data.map(item => {
let it = {name:item.projectType+'('+item.count+')',value:item.projectType}
return it
})
this.setFormData('projectType', type)
}
if(projectPurposes.code==200){
let purposes = projectPurposes.data.map(item => {
let it = {name:item.projectPurposes+'('+item.count+')',value:item.projectPurposes}
return it
})
this.setFormData('projectPurposes', purposes)
}
if(proAssessmentWay.code==200){
let way = proAssessmentWay.data.map(item => {
let it = {name:item.bidAssessmentWay+'('+item.count+')',value:item.bidAssessmentWay}
return it
})
this.setFormData('bidAssessmentWay', way)
}
},
async handleQuery(params) {
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidNoticeProPage(param)
this.tableLoading = false
if(res.code==200){
this.tableData = res.rows
}
this.tableDataTotal = res.total
}
}
}
</script>
<style lang="scss" scoped>
.detail-container{
margin: 0;
background: #ffffff;
border-radius: 4px;
padding: 16px;
background: #FFFFFF;
}
</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