Commit e160bbd1 authored by zhangyi's avatar zhangyi

Merge remote-tracking branch 'origin/master'

parents b45bbb32 7e25454f
......@@ -72,4 +72,9 @@ public class UrbanInvestmentPlatformDto extends BasePage {
* 字段 desc asc
*/
private String order;
/**
* 含下属区:1 本级:2
*/
private Integer type =1;
}
......@@ -46,6 +46,7 @@
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"js-md5": "^0.7.3",
......
......@@ -32,6 +32,7 @@ let uipGroupData= function uipGroupData(param) {
return request({
url: '/enterprise/uipGroupData',
method: 'post',
data: param
})
}
// 查甲方列表
......
......@@ -175,10 +175,11 @@ export function enterprise(param) {
}
//城投平台-企业查询选项
export function uipGroupData() {
export function uipGroupData(param) {
return request({
url: '/enterprise/uipGroupData',
method: 'POST'
method: 'POST',
data: param
})
}
......
......@@ -15,5 +15,13 @@ let searchDic= function searchDic(param) {
})
}
// 专项债项目查询
let bondProjectPage= function bondProjectPage(param) {
return request({
url: '/radar/bondProjectPage',
method: 'post',
data: param
})
}
export default {importData,searchDic}
\ No newline at end of file
export default {importData,searchDic,bondProjectPage}
\ No newline at end of file
......@@ -86,6 +86,14 @@
border-radius: 2px;
line-height: 28px;
cursor: pointer;
.rig {
position: absolute;
left: 0;
padding: 0;
white-space: nowrap;
visibility: hidden;
height: 0;
}
&:hover{
background: #F3F4F5;
}
......@@ -155,18 +163,26 @@
display: inline-block;
margin-top: 1px;
width: calc(100% - 116px);
.spanText {
position: absolute;
left: 0;
padding: 0;
white-space: nowrap;
visibility: hidden;
height: 0;
}
.el-input{
float: left;
margin-right: 8px;
width: 70px;
min-width: 70px;
width: auto;
margin-bottom: 10px;
.el-input__inner{
width: 70px;
min-width: 70px;
padding: 0 14px;
height: 24px;
background: #F3F4F5;
border-radius: 2px;
padding: 0;
text-indent: 14px;
border: 0;
}
}
......@@ -472,7 +488,7 @@
padding-top: 8px;
padding-right: 0;
.btn{
border-radius: 0;
border-radius: 2px;
width: 80px;
}
}
......@@ -569,6 +585,7 @@
border: 0;
padding: 0;
text-indent: 8px;
float: left;
}
}
.wr_bot{
......@@ -1105,3 +1122,6 @@
}
.none{display: none}
.el-popper[x-placement^=bottom]{
margin-top: 0 !important;
}
......@@ -45,7 +45,7 @@
width="441">
<template slot-scope="scope">
<div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row.companyId,'')">{{scope.row.companyName}}</div>
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="ps3">
<div @click="toDetail(scope.row,'gjjl')">写跟进<img src="@/assets/images/project/edit_1.png"></div>
<div @click="toDetail(scope.row,'preference')">编辑信息<img src="@/assets/images/project/edit_2.png"></div>
......@@ -239,11 +239,13 @@
import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport'
import axios from 'axios'
import {encodeStr} from "@/assets/js/common"
export default {
name: 'CustomList',
components:{batchimport},
data() {
return{
encodeStr,
pldr: false,
types:'custom',
searchParam:{
......@@ -318,7 +320,7 @@ export default {
let customerId = row.customerId
let companyId = row.companyId
let path = type
this.$router.push({path:'/party/party-a',query:{customerId:customerId,companyId:companyId,path:path}})
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
},
//翻页
handleCurrentChange(val) {
......
......@@ -223,13 +223,19 @@ export default {
type: 'category',
data: ['地方单位', '事业单位', '政府机关', '中央企业', '上市公司', '军队', '民营企业','其他'],
axisTick: {
alignWithLabel: true
alignWithLabel: true,
show: false
}
}
],
yAxis: [
{
type: 'value'
type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
}
],
series: [
......@@ -267,13 +273,19 @@ export default {
type: 'category',
data: ['AA', 'AA+', 'AA-', 'A', 'A+', 'A', 'A-','其他'],
axisTick: {
alignWithLabel: true
alignWithLabel: true,
show: false
}
}
],
yAxis: [
{
type: 'value'
type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
}
],
series: [
......@@ -301,10 +313,18 @@ export default {
this.option1 = {
xAxis: {
type: 'category',
data: labels
data: labels,
axisTick: {
show: false
},
},
yAxis: {
type: 'value'
type: 'value',
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
},
grid:{
left:'8%',
......@@ -349,6 +369,7 @@ export default {
global: false
}
},
symbolSize:8,
}
]
}
......@@ -509,6 +530,7 @@ export default {
&.on{
background: #0081FF;
color: #FFFFFF;
border-color: #0081FF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
......
......@@ -35,7 +35,7 @@
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<el-input clearable @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<span :id="'focus'+i" @click="changeSelect">搜索</span>
</div>
</template>
......
......@@ -81,6 +81,7 @@ export default {
this.tableLoading = false
})
},
// 公告
noticesTypes(){
noticesType({cid: this.queryParams.cid}).then(res => {
let data = res.data
......@@ -94,12 +95,13 @@ export default {
}
})
},
// 身份
noticesRoles(){
noticesRole({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[1].options.push({
this.formData[2].options.push({
name: data[i].role + '(' + data[i].count + ')',
value: data[i].role,
})
......@@ -107,12 +109,13 @@ export default {
}
})
},
// 案由
noticesCaseReasons(){
noticesCaseReason({cid: this.queryParams.cid}).then(res => {
let data = res.data
if(data.length > 0){
for (var i=0;i<data.length;i++){
this.formData[2].options.push({
this.formData[1].options.push({
name: data[i].caseReason + '(' + data[i].count + ')',
value: data[i].caseReason,
})
......
......@@ -62,7 +62,7 @@ export default {
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索关键字'}
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入执行案号'}
],
//列表
tableLoading:false,
......
......@@ -65,7 +65,7 @@ export default {
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'pureRole', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入案号'},
],
//列表
tableLoading:false,
......
......@@ -20,7 +20,7 @@
>
<template slot="punishReason" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}">
{{ scope.row.punishReason }}
<div v-html="scope.row.punishReason"></div>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span>
</span>
</template>
......
......@@ -17,8 +17,9 @@
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
>
<template slot="projectName" slot-scope="data">
<router-link to="" tag="a" class="a-link">{{ data.row.projectName }}</router-link>
<template slot="projectName" slot-scope="scope">
<router-link :to="`/radar/Land/details/${scope.row.id}`" 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>
......
......@@ -97,8 +97,9 @@
@handle-current-change="handleCurrentChange"
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="data">
<router-link to="" tag="a" class="a-link">{{ data.row.companyName }}</router-link>
<template slot="companyName" slot-scope="scope">
<router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName " v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
</tables>
......
......@@ -4,8 +4,8 @@
<div class="content_item">
<div class="label">项目名称</div>
<div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入项目名称关键字" v-model="keys" @input="projectNamebtn('keys',keys,'关键字:')">
<div slot="append" class="btn-search" @click="">搜索</div>
<el-input class="ename_input" placeholder="请输入项目名称关键字" v-model="keys" >
<div slot="append" class="btn-search" @click="search">搜索</div>
</el-input>
</div>
......@@ -151,7 +151,7 @@
<el-table-column label="公司名称" width="430" >
<template slot-scope="scope">
<div class="renling">
<router-link :to="'/radar/bxprozbgg/details/'+ 1" tag="a" class="list-titel-a" >{{scope.row.companyName}}</router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.agencyId)}`" tag="a" class="list-titel-a" v-html="scope.row.companyName" ></router-link>
<div class="renling-btn">
<img src="@/assets/images/owner/renling1.png" alt="">
<span v-if="scope.row.claimStatus" class="renling-hui">
......@@ -237,10 +237,10 @@
</el-table-column>
<el-table-column label="实控人" width="290" >
<template slot-scope="scope">
<router-link v-if="scope.row.actualController" :to="'/radar/bxprozbgg/details/'+ 1" tag="a" class="list-titel-a" >
<!-- <router-link v-if="scope.row.actualController" :to="'/radar/bxprozbgg/details/'+ 1" tag="a" class="list-titel-a" >
{{scope.row.actualController}}
</router-link>
<template v-else>
</router-link> -->
<template >
{{scope.row.actualController||"--"}}
</template>
</template>
......@@ -461,12 +461,14 @@
</template>
<script>
import {encodeStr} from "@/assets/js/common.js"
import jsk_data from '../../../../../public/jsk.json';
import api from '@/api/enterpriseData/enterpriseData.js';
export default {
name: 'Owner',
data() {
return {
encodeStr,
keys:'',
addressList: [],
addressType: [],
......@@ -586,7 +588,6 @@ export default {
}).catch(error=>{
});
},
mounted() {
......@@ -774,10 +775,11 @@ export default {
});
},
claimbtn(item){
console.log(item.companyName);
var params={
companyId:item.companyId,
uipId:item.uipId,
companyName:item.companyName,
companyName:item.companyName.replace(/<font color='red'>/g,'').replace(/<\/font>/g,''),
// creditLevel:item.bratingSubjectLevel,
// legalPerson:item.legalPerson,
// registerCapital:item.registerCapital,
......@@ -875,6 +877,7 @@ export default {
},
renlin(){
this.dialogVisible=false;
// this.$router.push({path:'/home',query: {id:'1'}})
// 跳转地址
},
......
......@@ -12,14 +12,14 @@
</el-form>
</div>
<div class="flex-box query-ability">
<span class="flex-box"><img src="@/assets/images/ability_vs.png">地区经济对比</span>
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<!--<span class="flex-box"><img src="@/assets/images/ability_vs.png">地区经济对比</span>-->
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="table-item">
<div class="table-title">
<span class="title">指标</span>
<span class="title">
<span class="span-tit">指标</span>
<span class="span-tit">
<span class="address" v-if="value1Flag">{{addressValue1}}<i class="el-icon-circle-close" @click="handleDelete(1)"></i></span>
<el-cascader
v-else
......@@ -31,7 +31,7 @@
@change="handleChange(1)"
placeholder="添加地区"></el-cascader>
</span>
<span class="title">
<span class="span-tit">
<span class="address" v-if="value2Flag">{{addressValue2}}<i class="el-icon-circle-close" @click="handleDelete(2)"></i></span>
<el-cascader
v-else
......@@ -43,7 +43,7 @@
@change="handleChange(2)"
placeholder="添加地区"></el-cascader>
</span>
<span class="title">
<span class="span-tit">
<span class="address" v-if="value3Flag">{{addressValue3}}<i class="el-icon-circle-close" @click="handleDelete(3)"></i></span>
<el-cascader
v-else
......@@ -55,7 +55,7 @@
@change="handleChange(3)"
placeholder="添加地区"></el-cascader>
</span>
<span class="title">
<span class="span-tit">
<span class="address" v-if="value4Flag">{{addressValue4}}<i class="el-icon-circle-close" @click="handleDelete(4)"></i></span>
<el-cascader
v-else
......@@ -67,7 +67,7 @@
@change="handleChange(4)"
placeholder="添加地区"></el-cascader>
</span>
<span class="title">
<span class="span-tit">
<span class="address" v-if="value5Flag">{{addressValue5}}<i class="el-icon-circle-close" @click="handleDelete(5)"></i></span>
<el-cascader
v-else
......@@ -289,10 +289,17 @@ export default {
},
created() {
this.dataRegion();
console.log(this.dataQuery)
// this.getData();
getYears({}).then(res => {
this.yearOptions=res.data.reverse();
this.queryParams.year = this.yearOptions[0].year;
if(this.dataQuery.pId){
const params = { year: this.queryParams.year,type:3,provinceId:this.dataQuery.provinceId }
this.value1Flag=true
this.addressValue1=this.dataQuery.province
this.getData(params,1)
}
})
},
computed: {
......@@ -370,39 +377,40 @@ export default {
},
handleVisibleChange(flag,index){
if(!flag){
switch (index) {
case 1:
this.value1Flag=true
break;
case 2:
this.value2Flag=true
break;
case 3:
this.value3Flag=true
break;
case 4:
this.value4Flag=true
break;
case 5:
this.value5Flag=true
break;
}
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:3 }
let code=[];
for (var i in this.regionData) {
code=this.regionData[i].path
}
if(code.length >= 1){
params.provinceId=code[0]
}
if(code.length >= 2){
params.cityId=code[1]
}
if(code.length >= 3){
params.areaId=code[2]
if(this.value1 || this.value2 || this.value3 || this.value4 || this.value5){
switch (index) {
case 1:
this.value1Flag=true
break;
case 2:
this.value2Flag=true
break;
case 3:
this.value3Flag=true
break;
case 4:
this.value4Flag=true
break;
case 5:
this.value5Flag=true
break;
}
const params = { year: this.queryParams.year,type:3 }
let code=[];
for (var i in this.regionData) {
code=this.regionData[i].path
}
if(code.length >= 1){
params.provinceId=code[0]
}
if(code.length >= 2){
params.cityId=code[1]
}
if(code.length >= 3){
params.areaId=code[2]
}
this.getData(params,index)
}
this.getData(params,index)
}
},
handleChange(index) {
......@@ -487,20 +495,33 @@ export default {
switch (index) {
case 1:
this.addressValue1='';
this.value1='';
this.value1Flag=false
break;
case 2:
this.addressValue2='';
this.value2='';
this.value2Flag=false
break;
case 3:
this.addressValue3='';
this.value3='';
this.value3Flag=false
break;
case 4:
this.addressValue4='';
this.value4='';
this.value4Flag=false
break;
case 5:
this.addressValue5='';
this.value5='';
this.value5Flag=false
break;
}
this.tableData.splice(index-1,1,{})
this.$forceUpdate();
},
formatStatus: function(row, column, cellValue) {
if(row.title === '经济'||row.title === '财政'||row.title === '债务'){
......@@ -517,6 +538,12 @@ export default {
fontWeight: 'bold'
}
}
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}
}
......@@ -557,7 +584,7 @@ export default {
/*justify-content:space-around;*/
border: 1px solid #E6EAF1;
border-bottom: 0;
.title{
.span-tit{
display: inline-block;
width: 16.7%;
height: 50px;
......
......@@ -12,7 +12,7 @@
</el-form>
</div>
<div class="flex-box query-ability">
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="content">
......@@ -129,7 +129,6 @@ export default {
this.initChart()
})
},
initChart() {
let myChart = echarts.init(document.getElementById("echarts"))
let option ={
......@@ -172,6 +171,12 @@ export default {
}
myChart.setOption(option);
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}
}
......
......@@ -6,14 +6,14 @@
<span class="common-title">经济数据</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="getData">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择" @change="getData">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" />
</el-select>
</el-form-item>
</el-form>
</div>
<div class="flex-box query-ability">
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="table-item">
......@@ -124,6 +124,12 @@ export default {
this.pageIndex = 1;
this.getData()
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}
}
</script>
......
......@@ -77,8 +77,8 @@
<span class="common-title">主要指标</span>
</div>
<div class="flex-box query-ability">
<span class="flex-box"><img src="@/assets/images/ability_vs.png">地区经济对比</span>
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box" @click="childMethod"><img src="@/assets/images/ability_vs.png">地区经济对比</span>
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="table-item">
......@@ -638,6 +638,17 @@ export default {
fontWeight: 'bold'
}
}
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
},
childMethod() {
let data=this.dataQuery
data.pId=this.dataQuery.provinceId
this.$parent.handleClick('four',data);
}
}
}
......
......@@ -44,15 +44,25 @@ export default {
this.provinceId=res.data.currentProvince.id;
if(!this.dataQuery.provinceId){
this.dataQuery.provinceId=this.provinceId
this.dataQuery.province=this.province
}
})
console.log(this.dataQuery)
if(this.dataQuery.activeName){
this.activeName=this.dataQuery.activeName;
}
// let name = sessionStorage.getItem('currentTab')
// if (name != "undefined" && name){
// this.activeName = name;
// }
},
methods: {
handleClick() {
handleClick(key,item) {
console.log(item)
if(key === 'four'){
this.activeName='four'
}
// sessionStorage.setItem('currentTab', this.activeName)
}
}
......
......@@ -155,7 +155,6 @@ export default {
}
},
created() {
console.log(this.$route.params)
this.id=this.$route.params.id;
this.getDetails()
......@@ -171,7 +170,6 @@ export default {
const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:'2e59fca0-21a6-47db-975d-5481e1c52f45_74'}
// const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:this.details.specialBondUuid}
bondPage(params).then(res => {
console.log(res.data)
this.tableData=res.data.list;
this.tableDataTotal=res.data.totalCount;
})
......
......@@ -139,7 +139,6 @@ export default {
let arr=this.tableData.sort((old,New)=>{
return New.value - old.value
})
console.log(arr)
let data=[]
for(let i=0; i<10; i++){
data.push(arr[i])
......
......@@ -24,8 +24,8 @@
</el-form>
</div>
<div class="flex-box query-ability">
<router-link to="/macro/economies" tag="a" class="a-link"><span class="flex-box"><img src="@/assets/images/ability_vs.png">地区经济对比</span></router-link>
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<router-link to="/macro/economies?activeName=four" tag="a" class="a-link"><span class="flex-box"><img src="@/assets/images/ability_vs.png">地区经济对比</span></router-link>
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="table-item">
......@@ -279,6 +279,12 @@
this.pageIndex = 1
this.querySubmit()
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
}
}
</script>
......
......@@ -3,7 +3,7 @@
<div class="zb-content content1">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">近五年全国招标数量</span>
<span class="common-title">全国招标数量分析</span>
</div>
</div>
<div class="text">{{value}}全国项目招标数量达到{{totalCount}}万个,招标数量前五的地区分别是
......@@ -80,10 +80,10 @@
<span class="common-title">全国招标项目概览</span>
</div>
</div>
<div class="text">通过对近年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div>
<div class="text">通过对近{{year}}年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div>
<div class="main1">
<div id="gl-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近年全国公开的招标项目,未公开的不含在内</p>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近{{year}}年全国公开的招标项目,未公开的不含在内</p>
</div>
<div class="main2">
<div class="selectYear">
......@@ -119,7 +119,7 @@ export default {
name: 'NationalEconomies',
data() {
return {
year:'',
year:'2023',
yearOptions: [
{ label: '近五年', value: '近五年' },
{ label: '近三年', value: '近三年' },
......
......@@ -6,7 +6,7 @@
<span class="common-title">全国建筑企业概览</span>
</div>
</div>
<div class="text">截止{{currentdate}},全国共有建筑工程施工总承包资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="text">截止{{currentdate}},全国共有{{glDetail.major}}资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1">
<div style="height: 300px;">
<div class="left">
......
......@@ -136,7 +136,7 @@
<span class="common-title">主要指标</span>
</div>
<div class="flex-box query-ability">
<span class="flex-box"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="table-item">
......@@ -288,7 +288,7 @@ export default {
},
methods: {
getType(){
uipGroupData().then(res => {
uipGroupData({}).then(res => {
this.typeList=res.data;
})
},
......@@ -527,6 +527,12 @@ export default {
this.pageIndex = 1;
this.querySubmit()
},
handleMessage(){
this.$message({
message: '功能正在开发中',
type: 'warning'
});
}
},
}
</script>
......
......@@ -305,10 +305,19 @@ export default {
this.option = {
xAxis: {
type: 'category',
data: labels
data: labels,
axisTick: {
show: false
},
},
yAxis: {
type: 'value'
type: 'value',
splitNumber: 5,
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
},
grid:{
left:'4%',
......@@ -325,7 +334,10 @@ export default {
legend: {
left: '12px',
top:"15px",
data: ['成交金额', '储备项目', '跟进动态']
data: ['成交金额', '储备项目', '跟进动态'],
itemHeight: 8, // 修改icon图形大小
itemGap: 20
},
series: [
{
......@@ -349,7 +361,7 @@ export default {
},
itemStyle: {
normal:{
color:'#0081FF'
color:'#0081FF',
}
},
label:{
......@@ -357,6 +369,7 @@ export default {
show:false
}
},
symbolSize:8,
},
{
name: '储备项目',
......@@ -387,6 +400,7 @@ export default {
show:false
}
},
symbolSize:8,
},
{
name: '跟进动态',
......@@ -417,6 +431,7 @@ export default {
show:false
}
},
symbolSize:8,
},
]
}
......@@ -504,17 +519,23 @@ export default {
.ss{
color: #0CBC6D;
padding-left: 3px;
position: relative;
>img{
width: 8px;
margin-top: -3px;
margin-top: 0px;
position: absolute;
margin-left: 8px;
}
}
.xj{
color: #FF3C3C;
padding-left: 3px;
position: relative;
>img{
width: 8px;
margin-top: -3px;
margin-top: 1px;
position: absolute;
margin-left: 8px;
}
}
}
......@@ -580,12 +601,15 @@ export default {
height: auto;
width: calc(100% - 369px);
.records{
margin-top: -17px;
margin-top: 2px;
height: 627px;
overflow-y: auto;
width: 100%;
padding-right: 47px;
box-sizing: border-box;
.recordlist{
padding-top: 0;
}
}
}
}
......@@ -616,6 +640,7 @@ export default {
&.on{
background: #0081FF;
color: #FFFFFF;
border-color: #0081FF;
}
&:first-child{
border-radius: 2px 0px 0px 2px;
......
......@@ -5,6 +5,7 @@
:visible.sync="isshow"
@close="resetForm('ruleForm')"
>
<div @click = 'handleALL'>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>添加项目</span>
......@@ -15,7 +16,7 @@
</el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany"></el-input>
<div class="resultlist" v-if="showlist">
<div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
......@@ -48,6 +49,7 @@
<div class="btn btn_primary h32" @click="submitForm('ruleForm')">新建商机</div>
</div>
</el-form>
</div>
</el-dialog>
</template>
......@@ -107,6 +109,14 @@
})
},
methods:{
handleALL(event){
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
}
}
},
//获取建设库客户
getCompany(value){
if (value.length>=2){
......
......@@ -16,10 +16,10 @@
:headers="headers"
:on-success="onSuccess">
<img class="up_img" src="@/assets/images/project/upload.png">
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传成员名录</div>
<div class="up_text">点击选择或将文件(xls,xlsx)拖拽至此上传项目表格</div>
<div class="up_tip">导入的文件内容必须依照下载模板的要求填写</div>
<div class="up_tip">上传文件最大为2M,仅支持Excel表格文件(xls,xlsx)</div>
<div class="up_tip">导入已存在的客户将自动跳过</div>
<div class="up_tip">导入已存在的{{titletext}}将自动跳过</div>
</el-upload>
<div class="up_success" v-if="isUpload == true">
<img src="@/assets/images/project/success.png">上传成功
......@@ -42,7 +42,7 @@
<div class="p3">
<img src="@/assets/images/project/success.png">查询成功
</div>
<div class="p2">成功导入{{successCount}}{{titletext}}信息</div>
<div class="p2">导入成功,已为您去掉重复{{titletext}}{{successCount}}</div>
<div class="btns">
<div class="btn btn_primary h32" @click="getmsg">查看</div>
</div>
......@@ -79,12 +79,12 @@
created(){
if(this.importtype == 'project'){//项目管理
this.downloadhref = '/file/projectTemplate.xlsx'
this.titletext = '商机'
this.titletext = '项目'
this.action = process.env.VUE_APP_BASE_API + '/business/info/upload'
}
if(this.importtype == 'custom'){//客户管理
this.downloadhref = '/file/Template.xlsx'
this.titletext = '客户'
this.titletext = '企业'
this.action = process.env.VUE_APP_BASE_API + "/customer/importData"
}
},
......
......@@ -7,7 +7,7 @@
<div class="row">
<div class="con">
<span>总投资额(万元) :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1">
<el-input placeholder="待添加" v-model="investmentAmount" @input="number"></el-input>
<div class="flex">
......@@ -20,7 +20,7 @@
</div>
<div class="con i">
<span>资金来源 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="amountSource"></el-input>
<div class="flex">
......@@ -35,7 +35,7 @@
<div class="row">
<div class="con">
<span>建设性质 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt3">
<div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="buildProperty"></el-input>
<div class="flex">
......@@ -95,8 +95,8 @@
</el-card>
<el-card class="box-card noborder">
<div class="cardtitles">项目概况与建设规模</div>
<div class="baseinfo">
<el-input v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input>
<div class="baseinfo" >
<el-input id="inputxt9" v-model="projectDetails" @focus="nowedit = 9" class="textarea" type="textarea" placeholder="请输入项目概况与建设规模详细信息" maxlength="500" :show-word-limit="true" ></el-input>
<div class="flex btns" v-if="nowedit == 9">
<div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'projectDetails':projectDetails})" style="width: 56px">确定</div>
......@@ -111,7 +111,7 @@
<div class="row">
<div class="con">
<span>评标办法 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="evaluationBidWay"></el-input>
<div class="flex">
......@@ -140,7 +140,7 @@
<div class="row">
<div class="con">
<span>保证金缴纳 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="earnestMoneyPay"></el-input>
<div class="flex">
......@@ -153,7 +153,7 @@
</div>
<div class="con i">
<span>保证金金额(万元) :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="earnestMoney"></el-input>
<div class="flex">
......@@ -168,7 +168,7 @@
<div class="row">
<div class="con">
<span>开标地点 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="bidOpenPlace"></el-input>
<div class="flex">
......@@ -181,7 +181,7 @@
</div>
<div class="con i">
<span>评标委员会 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt8">
<div class="flex" v-if="nowedit == 8">
<el-input placeholder="待添加" v-model="evaluationBidCouncil"></el-input>
<div class="flex">
......@@ -230,6 +230,22 @@
},
watch:{
},
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=9;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 9){
this.nowedit = -1
}
})
},
created(){
this.getJSNR()
},
......
......@@ -60,7 +60,7 @@
</el-table-column>
</el-table>
<div class="bottems">
<div class="btn btn_primary h28" @click="opennew"><div class="img img1"></div>新增联系人</div>
<div class="btn btn_primary h28" @click="opennew" v-if="total>0"><div class="img img1"></div>新增联系人</div>
<el-pagination v-if="total>searchParam.pageSize"
background
:page-size="searchParam.pageSize"
......
......@@ -3,7 +3,7 @@
<div>
<el-card class="box-card noborder">
<div class="cardtitles">相关企业</div>
<div class="searchbtns">
<div class="searchbtns" v-if="tableData.total>0">
<el-select class="select" placeholder="企业类型" v-model="searchParam.companyType" @change="handleCurrentChange(1)">
<el-option v-for="(item,index) in companytype" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
......@@ -230,8 +230,10 @@
cancel(type){
if(type == 0)
this.dialogVisible = false
else
else{
this.dialogVisible = true
this.hzhbVisible = false
}
},
totype(value){
this.types = value
......@@ -243,7 +245,8 @@
this.typename = this.typelist[index]
}
})
this.hzhbVisible=true
this.hzhbVisible = true
this.dialogVisible = false
},
//打开新建窗口
opennew(){
......
......@@ -7,7 +7,7 @@
<div class="row">
<div class="con">
<span>项目级别 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt1">
<div class="flex" v-if="nowedit == 1">
<el-input placeholder="待添加" v-model="xmsldata.projectLevel"></el-input>
<div class="flex">
......@@ -37,7 +37,9 @@
<span style="float: left;margin-top: 2px">项目标签 :</span>
<div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<el-input placeholder="待添加" v-model="tipsvalue"></el-input>
<div style="position: relative">
<el-input placeholder="待添加" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div>
<div class="addbtn" @click="addtips"></div>
</div>
</div>
......@@ -50,7 +52,7 @@
<div class="row">
<div class="con">
<span>主管单位 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == 2">
<el-input placeholder="待添加" v-model="xmsldata.supervisorUnit"></el-input>
<div class="flex">
......@@ -63,7 +65,7 @@
</div>
<div class="con i">
<span>建设单位 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt3" :style="{width:rig1}">
<div class="flex" v-if="nowedit == 3">
<el-input placeholder="待添加" v-model="xmsldata.constructionUnit"></el-input>
<div class="flex">
......@@ -72,13 +74,14 @@
</div>
</div>
<span :class="{txt:!xmsldata.constructionUnit}" v-else @click="nowedit = 3">{{xmsldata.constructionUnit||'待添加'}}</span>
<span class="rig rig1">{{xmsldata.constructionUnit}}</span>
</div>
</div>
</div>
<div class="row">
<div class="con">
<span>主管单位负责人 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt4">
<div class="flex" v-if="nowedit == 4">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPrincipal"></el-input>
<div class="flex">
......@@ -91,7 +94,7 @@
</div>
<div class="con i">
<span>建设单位负责人 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt5">
<div class="flex" v-if="nowedit == 5">
<el-input placeholder="待添加" v-model="xmsldata.constructionPrincipal"></el-input>
<div class="flex">
......@@ -106,7 +109,7 @@
<div class="row">
<div class="con">
<span>主管单位联系电话 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6">
<el-input placeholder="待添加" v-model="xmsldata.supervisorPhone"></el-input>
<div class="flex">
......@@ -119,7 +122,7 @@
</div>
<div class="con i">
<span>建设单位联系电话 :</span>
<div class="inputxt">
<div class="inputxt" id="inputxt7">
<div class="flex" v-if="nowedit == 7">
<el-input placeholder="待添加" v-model="xmsldata.constructionPhone"></el-input>
<div class="flex">
......@@ -189,6 +192,8 @@
projectStage:[],//项目阶段
id: this.detailId ? this.detailId : this.$route.query.id,
xmsldata:this.datas,
spanWidth:'width: 70px',
rig1:'184px',
}
},
created(){
......@@ -198,7 +203,34 @@
})
this.getXMSL()
},
mounted(){
document.addEventListener('mouseup',(e) => {
let j = 0
for(var i=1;i<=7;i++){
let isSelf = document.getElementById('inputxt'+i).contains(event.target) // 这个是自己的区域
if(isSelf) {
this.nowedit = i
}else {
j++;
}
}
if(j == 7){
this.nowedit = -1
}
})
},
methods:{
getValue(){
const spanStyle = document.querySelector(".spanText");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
let wid =
spanStyle.offsetWidth <= 70
? "70px"
: spanStyle.offsetWidth + 28 + "px";
this.spanWidth = 'width:'+wid
});
},
editXMSL(param){
let params = param
params.id = this.id
......@@ -270,6 +302,15 @@
this.xmjd = result.data.projectStage
this.tipslit = result.data.labelList
this.xmsldata = result.data
const spanStyle = document.querySelector(".rig1");
this.$nextTick(() => { // 如果不用$nextTick的话页面并不会更新,它是在下次dom更新后再渲染到页面上
this.rig1 =
spanStyle.offsetWidth <= 184
? "184px"
: spanStyle.offsetWidth + "px";
});
})
},
}
......@@ -280,4 +321,7 @@
.select-popper{
top: 3px;
}
.inputxt .flex{
background: #fff;
}
</style>
......@@ -3,7 +3,7 @@
<div>
<el-card class="box-card noborder">
<div class="cardtitles">资料文档</div>
<div class="searchbtns">
<div class="searchbtns" v-if="fileDatas.rows != null && fileDatas.rows.length>0">
<div class="searchInput">
<el-input type="text" v-model="param.keyword" placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
......@@ -199,12 +199,6 @@
downnlod(row){
let param = {filePath:row.filePath}
this.$download.exportByPost('/business/file/download',param);
// let a = document.createElement("a");
// a.setAttribute("href", row.filePath);
// a.setAttribute("download", row.name);
// document.body.appendChild(a);
// a.click();
},
delQY(){
......
<template>
<div>
<div @click="handleALL">
<div class="miantitle">
<template v-if="!detailId">
<span>项目管理</span>
......@@ -56,7 +56,7 @@
</div>
</span>
</div>
<div class="det-con con" >
<div class="det-con con" id="inputxt">
<span>投资估算(万元):</span>
<div class="inputxt i" :class="{'nomar':nowedit != 3}">
<div class="flex" v-if="nowedit == 3">
......@@ -197,6 +197,16 @@
this.getXMSL()
},
methods: {
handleALL(event){
var one = document.getElementById("inputxt");
if(one){
if(!one.contains(event.target)){
this.nowedit = -1
}else{
this.nowedit = 3
}
}
},
getXMSL(){
getXMSL(this.id).then(result=>{
this.ProjectData = result.code==200?result.data:{}
......
......@@ -114,29 +114,31 @@
<div class="datalist">
<div class="datali" v-for="(item,index) in datalist">
<div class="det-title" @click="toDetail(item.id,'xmsl')">{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"><span class="tips tip1" v-if="item.label">{{item.label}}</span><span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
<div class="det-tips">
<span class="tips tip1" v-for="label in item.labels">{{label}}</span>
<span v-if="item.address" class="tips tip2">{{item.address}}</span></div>
<div class="det-contets">
<div class="det-con">
<div class="det-con" v-if="item.projectType">
<span>项目类型:</span>
<span>{{item.projectType || '--'}}</span>
<span>{{item.projectType}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.investmentAmount">
<span>投资估算(万元):</span>
<span>{{item.investmentAmount || '--'}}</span>
<span>{{item.investmentAmount}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.followTime">
<span>最后跟进时间:</span>
<span>{{item.followTime || '--'}}</span>
<span>{{item.followTime}}</span>
</div>
<div class="det-con">
<div class="det-con" v-if="item.ownerCompany ">
<span>业主单位:</span>
<span class="wordprimary">{{item.ownerCompany || '--'}}</span>
<span class="wordprimary">{{item.ownerCompany}}</span>
</div>
</div>
<el-divider v-if="index != datalist.length-1"></el-divider>
<div class="operates" v-if="activeName=='first'">
<div class="i1"><img src="@/assets/images/follow.png" @click="toDetail(item.id,'gjjl')">跟进</div>
<div class="i2"><img src="@/assets/images/edit1.png" @click="toDetail(item.id,'xmsl')">编辑</div>
<div class="i1" @click="toDetail(item.id,'gjjl')"><img src="@/assets/images/follow.png">跟进</div>
<div class="i2" @click="toDetail(item.id,'xmsl')"><img src="@/assets/images/edit1.png">编辑</div>
<div class="i3" @click="deldetail(index)"><img src="@/assets/images/delete.png">删除</div>
</div>
<div class="delform" v-if="activeName=='first' && ondel == index">
......@@ -296,6 +298,11 @@ export default {
str += '-' +item.districtName
item.address = str
item.nickName1 = item.nickName?item.nickName.slice(0,1):''
item.labels=[]
if(item.label!=null && item.label !=""){
item.labels = item.label.split(',')
}
})
}
})
......
......@@ -229,7 +229,7 @@
],
projectTypeText: ['不限'],
arrList:[],
total:6000,
total:0,
page:1,
pageSize:20
......@@ -449,8 +449,26 @@
handleCurrentChange(val){
},
search(){
search(page, limit,exportFlag) {
if (!page) {
this.page = 1;
}
if (!limit) {
this.limit = 20;
}
if (!page && !limit) {
this.reloadPage();
}
let params = {
page:{
"page":this.page,
"limit":this.limit,
"field":"",
"order":"desc"
},
specialBondProjectDto:{}
};
},
reset(){
......
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