Commit ee1ca657 authored by danfuman's avatar danfuman

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 7047a3b4 a17e00d5
package com.dsk.common.utils; package com.dsk.common.utils;
import java.math.BigDecimal;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -51,7 +52,8 @@ public class CheckUtils { ...@@ -51,7 +52,8 @@ public class CheckUtils {
* @return * @return
*/ */
public static int checkIntegerPlaces(Double number) { public static int checkIntegerPlaces(Double number) {
String strNumber = Double.toString(Math.abs(number)); BigDecimal bigDecimal = new BigDecimal(number);
String strNumber = bigDecimal.toString();
int integerPlaces = strNumber.indexOf('.'); int integerPlaces = strNumber.indexOf('.');
if (integerPlaces == -1) { if (integerPlaces == -1) {
return strNumber.length(); return strNumber.length();
...@@ -66,7 +68,8 @@ public class CheckUtils { ...@@ -66,7 +68,8 @@ public class CheckUtils {
* @return * @return
*/ */
public static int checkDecimalPlaces(Double number) { public static int checkDecimalPlaces(Double number) {
String strNumber = Double.toString(Math.abs(number)); BigDecimal bigDecimal = new BigDecimal(number);
String strNumber = bigDecimal.toString();
int decimalPlaces = 0; int decimalPlaces = 0;
int index = strNumber.indexOf('.'); int index = strNumber.indexOf('.');
if (index != -1) { if (index != -1) {
......
...@@ -394,8 +394,11 @@ ul, li { ...@@ -394,8 +394,11 @@ ul, li {
} }
} }
} }
}
.el-table__body tr.hover-row > td.el-table__cell{
background-color: #DCEBFF;
} }
.common-title{ .common-title{
border-left: 2px solid #445781; border-left: 2px solid #445781;
padding-left: 8px; padding-left: 8px;
......
...@@ -1008,7 +1008,7 @@ ...@@ -1008,7 +1008,7 @@
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
z-index: 3; z-index: 10;
.upload{ .upload{
width: 528px; width: 528px;
height: 430px; height: 430px;
......
...@@ -155,7 +155,7 @@ export const constantRoutes = [ ...@@ -155,7 +155,7 @@ export const constantRoutes = [
path: '/biddetail/:id(\\d+)', path: '/biddetail/:id(\\d+)',
component: () => import('@/views/detail//biddetail/index'), component: () => import('@/views/detail//biddetail/index'),
name: 'Biddetail', name: 'Biddetail',
meta: { title: '中标业绩详情'} meta: { title: '中标业绩详情',icon: 'enterprise'}
} }
] ]
}, },
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</span> </span>
<label class="label">中标时间</label> <label class="label">中标时间</label>
<span>{{info.winBidTime||"--"}}</span> <span>{{info.winBidTime||"--"}}</span>
<label class="label">中标金额(万)</label> <label class="label">中标金额</label>
<span>{{info.winBidAmount||"--"}}</span> <span>{{info.winBidAmount||"--"}}</span>
</p> </p>
<p> <p>
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<p> <p>
<label class="label">工期(天)</label> <label class="label">工期(天)</label>
<span>{{info.period||"--"}}</span> <span>{{info.period||"--"}}</span>
<label class="label">下浮率</label> <label class="label">下浮率(%)</label>
<span>{{info.lowerRate||"--"}}</span> <span>{{info.lowerRate||"--"}}</span>
<label class="label">建设性质</label> <label class="label">建设性质</label>
<span>{{info.projectNature||"--"}}</span> <span>{{info.projectNature||"--"}}</span>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"></div> <div class="flex-box query-params"></div>
<div class="flex-box query-add"> <div class="flex-box query-add">
<el-button type="primary" icon="el-icon-plus" @click="opennew">新增决策链条</el-button> <el-button type="primary" icon="el-icon-plus" @click="opennew">新增联系人</el-button>
</div> </div>
</div> </div>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<!-- 弹窗添加联系人 --> <!-- 弹窗添加联系人 -->
<el-dialog <el-dialog
class="popups" class="popups1"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
:before-close="cancel" :before-close="cancel"
width="464px"> width="464px">
...@@ -41,28 +41,25 @@ ...@@ -41,28 +41,25 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>{{ companyInfo && companyInfo.companyName || customerInfo.companyName }}</span> <span>{{ companyInfo && companyInfo.companyName || customerInfo.companyName }}</span>
</div> </div>
<el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="137px"> <el-form :model="addRorm" :rules="addRules" ref="addRorm" class="popform" label-width="90px">
<el-form-item label="联系人姓名:" prop="name" class="row"> <el-form-item label="姓名:" prop="name">
<el-input v-model="addRorm.name" placeholder="请输入"></el-input> <el-input v-model="addRorm.name" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系人性别:" class="row"> <el-form-item label="角色:" prop="role">
<el-radio-group v-model="addRorm.sex">
<el-radio label=1></el-radio>
<el-radio label=0></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="联系人角色:" prop="role" class="row">
<el-input v-model="addRorm.role" placeholder="请输入"></el-input> <el-input v-model="addRorm.role" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="关联企业:" class="row"> <el-form-item label="职位:" prop="workUnit">
<el-input type="text" v-model="addRorm.office" placeholder="请输入"></el-input> <el-input v-model="addRorm.workUnit" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系人职位:" prop="workUnit" class="row"> <el-form-item label="公司/机关:" prop="position">
<el-input v-model="addRorm.position" placeholder="请输入"></el-input> <el-input v-model="addRorm.position" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式:" prop="contactInformation" class="row"> <el-form-item label="联系方式:" prop="contactInformation">
<el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input> <el-input v-model="addRorm.contactInformation" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input v-model="addRorm.remark" placeholder="请输入"></el-input>
</el-form-item>
<div class="popbot"> <div class="popbot">
<div class="btn btn_cancel h32" @click="cancel">返回</div> <div class="btn btn_cancel h32" @click="cancel">返回</div>
<div class="btn btn_primary h32" @click="add">保存</div> <div class="btn btn_primary h32" @click="add">保存</div>
...@@ -74,259 +71,256 @@ ...@@ -74,259 +71,256 @@
</template> </template>
<script> <script>
import Tables from "../component/Tables" import Tables from "../component/Tables"
import { import {
getList, getList,
addChain addChain
} from '@/api/detail/party-a/decisionMaking' } from '@/api/detail/party-a/decisionMaking'
export default { export default {
name: 'DecisionMaking', name: 'DecisionMaking',
components: { components: {
Tables Tables
},
props: ['customerIds','companyInfo','customerInfo'],
data() {
return {
ifEmpty:false,
queryParams:{
customerId:this.customerIds,
pageNum:1,
pageSize:20,
},
forData: [
{label: '姓名', prop: 'name', width: '124'},
{label: '角色', prop: 'role', width: '110'},
// {label: '公司/机关', prop: 'position', width: '268'},
{label: '职位', prop: 'position', width: '110'},
{label: '联系方式', prop: 'contactInformation', width: '105'},
{label: '内部维护人', prop: 'updateBy', width: '100'},
{label: '来源', prop: 'remark'},
],
addRorm: {
customerId:this.customerIds,
name:'',
role:'',
sex:"1",
position:'',
// position:'',
contactInformation:'',
// remark:'',
},
addRules:{
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
],
},
stageOptions:[],
statusOptions:[],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
//弹窗
dialogVisible: false,
}
},
created() {
this.list();
},
computed: {
},
methods: {
list(){
this.tableLoading = true
getList(this.queryParams).then((res) => {
if(res.code == 200){
if(res.rows.length >0){
this.tableData = res.rows
this.tableDataTotal = res.total
this.ifEmpty = true
}
this.tableLoading = false
}
})
}, },
//分页 props: ['customerIds','companyInfo','customerInfo'],
handleCurrentChange(e){ data() {
this.queryParams.pageNum = e return {
this.list() ifEmpty:false,
}, queryParams:{
add(){ customerId:this.customerIds,
this.$refs.addRorm.validate((valid) => { pageNum:1,
if (valid) { pageSize:20,
let param = JSON.parse(JSON.stringify(this.addRorm)) },
param.sex = parseInt(param.sex) forData: [
addChain(param).then((res) => { {label: '姓名', prop: 'name', width: '124'},
if(res.data){ {label: '角色', prop: 'role', width: '110'},
this.$message({ {label: '公司/机关', prop: 'position', width: '268'},
message: '新增成功', {label: '职位', prop: 'workUnit', width: '110'},
type: 'success' {label: '联系方式', prop: 'contactInformation', width: '105'},
}); {label: '内部维护人', prop: 'updateBy', width: '100'},
this.cancel() {label: '备注', prop: 'remark'},
this.list() ],
}else{ addRorm: {
this.$message({ customerId:this.customerIds,
message: res.msg, name:'',
type: 'error' role:'',
}); workUnit:'',
} position:'',
}) contactInformation:'',
} remark:'',
}); },
addRules:{
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' },
],
},
stageOptions:[],
statusOptions:[],
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0,
//弹窗
dialogVisible: false,
}
}, },
cancel(){ created() {
this.$refs.addRorm.resetFields(); this.list();
this.dialogVisible = false
}, },
//打开新建窗口 computed: {
opennew(){
this.dialogVisible = true
}, },
methods: {
list(){
this.tableLoading = true
getList(this.queryParams).then((res) => {
if(res.code == 200){
if(res.rows.length >0){
this.tableData = res.rows
this.tableDataTotal = res.total
this.ifEmpty = true
}
this.tableLoading = false
}
})
},
//分页
handleCurrentChange(e){
this.queryParams.pageNum = e
this.list()
},
add(){
this.$refs.addRorm.validate((valid) => {
if (valid) {
addChain(this.addRorm).then((res) => {
if(res.data){
this.$message({
message: '新增成功',
type: 'success'
});
this.cancel()
this.list()
}else{
this.$message({
message: res.msg,
type: 'error'
});
}
})
}
});
},
cancel(){
this.$refs.addRorm.resetFields();
this.dialogVisible = false
},
//打开新建窗口
opennew(){
this.dialogVisible = true
},
}
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.decisionMaking{ .decisionMaking{
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
padding: 16px; padding: 16px;
input{ input{
border: 1px solid #EFEFEF; border: 1px solid #EFEFEF;
}
::v-deep .el-form-item{
margin-bottom: 16px;
}
::v-deep .el-input__inner{
border-radius: 2px 0 2px 0;
height: 32px;
line-height: 32px;
}
.cooperate-name{
::v-deep .el-form-item__content{
display: flex;
span{
width: 60px;
height: 32px;
background: #F5F5F5;
text-align: center;
color: #0081FF;
border: 1px solid #EFEFEF;
border-left: 0;
cursor: pointer;
}
} }
::v-deep .el-form-item{
} margin-bottom: 16px;
.query-add{ }
button{ ::v-deep .el-input__inner{
width: 124px; border-radius: 2px 0 2px 0;
line-height: 32px;
height: 32px; height: 32px;
background: #0081FF; line-height: 32px;
border-radius: 2px 2px 2px 2px; }
padding: 0; .cooperate-name{
color: #ffffff; ::v-deep .el-form-item__content{
span{ display: flex;
color: #ffff; span{
margin-left: 4px; width: 60px;
height: 32px;
background: #F5F5F5;
text-align: center;
color: #0081FF;
border: 1px solid #EFEFEF;
border-left: 0;
cursor: pointer;
}
} }
} }
} .query-add{
.cooperate_empty{ button{
text-align: center; width: 124px;
height: calc(100vh - 170px); line-height: 32px;
display: flex; height: 32px;
align-items: center; background: #0081FF;
justify-content: center; border-radius: 2px 2px 2px 2px;
flex-direction: column; padding: 0;
img{ color: #ffffff;
width: 108px; span{
height: 108px; color: #ffff;
border-radius: 50%; margin-left: 4px;
margin-bottom: 24px; }
}
} }
.empty-t{ .cooperate_empty{
font-size: 16px; text-align: center;
color: #333333; height: calc(100vh - 170px);
margin-bottom: 8px; display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
img{
width: 108px;
height: 108px;
border-radius: 50%;
margin-bottom: 24px;
}
.empty-t{
font-size: 16px;
color: #333333;
margin-bottom: 8px;
}
.empty-d{
font-size: 14px;
font-weight: 400;
color: #999999;
margin-bottom: 24px;
}
.empty-b{
width: 116px;
height: 36px;
background: #0081FF;
border-radius: 4px;
padding: 0;
}
} }
.empty-d{ .table-item{
font-size: 14px; margin-top: 10px;
font-weight: 400;
color: #999999;
margin-bottom: 24px;
} }
.empty-b{ // 弹窗
width: 116px; .popups1{
height: 36px; .poptitle {
background: #0081FF; line-height: 48px;
border-radius: 4px; border-bottom: 1px solid #E1E1E1;
padding: 0; height: 48px;
position: absolute;
top: 0;
left: 0;
width: 100%;
img {
width: 17px;
margin: 16px;
float: left;
}
span {
font-weight: bold;
font-size: 16px;
color: #232323;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
width: 385px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
::v-deep .el-dialog__body{
padding: 24px 24px 18px;
}
.popform {
padding-top: 14px;
::v-deep .el-form-item__label{
padding:0;
}
.row {
padding-bottom: 16px;
.left {
width: 137px;
display: inline-block;
text-align: right;
opacity: 0.8;
}
::v-deep .el-input {
display: inline-block;
width: 240px;
}
}
.popbot {
text-align: right;
padding-top: 8px;
}
}
} }
} }
.table-item{ ::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{
margin-top: 10px; background-color:unset;
}
::v-deep .el-dialog__headerbtn{
z-index: 9;
} }
// 弹窗
/*.popups1{*/
/*.poptitle {*/
/*line-height: 48px;*/
/*border-bottom: 1px solid #E1E1E1;*/
/*height: 48px;*/
/*position: absolute;*/
/*top: 0;*/
/*left: 0;*/
/*width: 100%;*/
/*img {*/
/*width: 17px;*/
/*margin: 16px;*/
/*float: left;*/
/*}*/
/*span {*/
/*font-weight: bold;*/
/*font-size: 16px;*/
/*color: #232323;*/
/*font-family: Microsoft YaHei-Bold, Microsoft YaHei;*/
/*width: 385px;*/
/*display: block;*/
/*overflow: hidden;*/
/*white-space: nowrap;*/
/*text-overflow: ellipsis;*/
/*}*/
/*}*/
/*::v-deep .el-dialog__body{*/
/*padding: 24px 24px 18px;*/
/*}*/
/*.popform {*/
/*padding-top: 14px;*/
/*::v-deep .el-form-item__label{*/
/*padding:0;*/
/*}*/
/*.row {*/
/*padding-bottom: 16px;*/
/*.left {*/
/*width: 137px;*/
/*display: inline-block;*/
/*text-align: right;*/
/*opacity: 0.8;*/
/*}*/
/*::v-deep .el-input {*/
/*display: inline-block;*/
/*width: 240px;*/
/*}*/
/*}*/
/*.popbot {*/
/*text-align: right;*/
/*padding-top: 8px;*/
/*}*/
/*}*/
/*}*/
}
::v-deep .el-table__fixed::before, ::v-deep .el-table__fixed-right::before{
background-color:unset;
}
::v-deep .el-dialog__headerbtn{
z-index: 9;
}
</style> </style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="content"> <div class="content">
<div class="content_item"> <div class="content_item">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入企业名称关键字" v-model="keys" > <el-input class="ename_input" placeholder="请输入企业名称关键字" clearable v-model="keys" >
<div slot="append" class="btn-search" @click="search()">搜索</div> <div slot="append" class="btn-search" @click="search()">搜索</div>
</el-input> </el-input>
...@@ -137,13 +137,15 @@ ...@@ -137,13 +137,15 @@
</div> </div>
</div> </div>
<div class="table-item-jf table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<div class=" table-item-jf" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<el-table :data="tableData" v-loading="loading" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" element-loading-text="Loading" class="table-item1 fixed-table" border highlight-current-row>
<div class=" table-item-jf" v-if="!isSkeleton&&tableData.length>0">
<el-table :data="tableData" :header-cell-style="{ background:'#f0f3fa',color: 'rgba(35,35,35,0.8)'}" class="table-item1 fixed-table" border highlight-current-row>
<el-table-column type="index" label="序号" fixed width="60"> <el-table-column type="index" label="序号" fixed width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{(pageNum - 1) *20 + scope.$index + 1}}</span> <span>{{(pageNum - 1) *20 + scope.$index + 1}}</span>
...@@ -484,12 +486,15 @@ ...@@ -484,12 +486,15 @@
<script> <script>
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
export default { export default {
name: 'Owner', name: 'Owner',
components:{skeleton},
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
keys:'', keys:'',
addressList: [], addressList: [],
addressType: [], addressType: [],
...@@ -498,10 +503,7 @@ export default { ...@@ -498,10 +503,7 @@ export default {
expandTrigger: "hover", expandTrigger: "hover",
value: "id", value: "id",
}, },
loading:false,
pageSize: 20, pageSize: 20,
jskBidQueryDto: { jskBidQueryDto: {
provinceIds: [], provinceIds: [],
cityIds: [], cityIds: [],
...@@ -918,9 +920,9 @@ export default { ...@@ -918,9 +920,9 @@ export default {
}else{ }else{
delete params.equityRelationship delete params.equityRelationship
} }
this.loading = true; this.isSkeleton = true;
api.uipSerach(params).then(res=>{ api.uipSerach(params).then(res=>{
this.loading = false; this.isSkeleton = false
// console.log(res) // console.log(res)
if (res.code==200) { if (res.code==200) {
this.tableData=res.rows; this.tableData=res.rows;
...@@ -928,7 +930,6 @@ export default { ...@@ -928,7 +930,6 @@ export default {
} }
}).catch(error=>{ }).catch(error=>{
this.loading = false;
}); });
}, },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div class="content"> <div class="content">
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
<el-input class="ename_input" placeholder="请输入关键字,如企业名称、统一社会信用代码等" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')"> <el-input class="ename_input" clearable placeholder="请输入关键字,如企业名称、统一社会信用代码等" v-model="ename" @input="projectNamebtn('ename',ename,'关键字:')">
<div slot="append" class="btn-search" @click="search()">搜索</div> <div slot="append" class="btn-search" @click="search()">搜索</div>
</el-input> </el-input>
<!-- <template v-if="ename"> <!-- <template v-if="ename">
...@@ -454,12 +454,13 @@ ...@@ -454,12 +454,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="!isSkeleton&&tableData.length>0">
<li class="info-list" v-for="(item,index) in tableData" :key="index"> <li class="info-list" v-for="(item,index) in tableData" :key="index">
<div class="info-list-left"> <div class="info-list-left">
<img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" /> <img v-if="item.logoUrl" :src="item.logoUrl" :alt="item.name.replace(/<font color='#FF204E'>/g,'').replace(/<\/font>/g,'')" />
...@@ -584,8 +585,10 @@ ...@@ -584,8 +585,10 @@
import options from '@/assets/json/options.json'; import options from '@/assets/json/options.json';
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'EnterpriseQuery', name: 'EnterpriseQuery',
components:{skeleton},
directives: { directives: {
numberOnly: { numberOnly: {
bind: function(el) { bind: function(el) {
...@@ -605,6 +608,7 @@ ...@@ -605,6 +608,7 @@
return { return {
encodeStr, encodeStr,
ename: '', ename: '',
isSkeleton:true,
enameQueryTypeList: [{ enameQueryTypeList: [{
key: 'and', key: 'and',
status: false, status: false,
...@@ -2752,7 +2756,9 @@ ...@@ -2752,7 +2756,9 @@
data.aptitudeQueryDto['aptitudeDtoList'] = aptitudeDtoList; data.aptitudeQueryDto['aptitudeDtoList'] = aptitudeDtoList;
data.aptitudeQueryDto['aptitudeSource'] = 'new'; data.aptitudeQueryDto['aptitudeSource'] = 'new';
} }
this.isSkeleton = true;
api.enterprisePage(data).then(res=>{ api.enterprisePage(data).then(res=>{
this.isSkeleton = false
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
......
...@@ -225,7 +225,7 @@ export default { ...@@ -225,7 +225,7 @@ export default {
img{ img{
width: 28px; width: 28px;
height: 28px; height: 28px;
margin-bottom: -9px; // margin-bottom: -9px;
margin-right: 17px; margin-right: 17px;
} }
} }
......
...@@ -12,12 +12,12 @@ ...@@ -12,12 +12,12 @@
</div> </div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px"> <el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="项目名称:" class="row" prop="projectName"> <el-form-item label="项目名称:" class="row" prop="projectName">
<el-input type="text" placeholder="请输入" v-model="queryParam.projectName" @input="getProject"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.projectName" @input="getProject" :οnkeyup="queryParam.projectName=queryParam.projectName.replace(/^\s+|\s+$/g,'')"></el-input>
<div class="resultlist" v-if="proList.length>0" id="box1"> <div class="resultlist" v-if="proList.length>0" id="box1">
<div v-for="(item,index) in proList" @click="selProject(item)"><span v-html="item.projectName"></span></div> <div v-for="(item,index) in proList" @click="selProject(item)"><span v-html="item.projectName"></span></div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="业主单位:" class="row" prop="ownerCompany"> <el-form-item label="招采单位:" class="row" prop="ownerCompany">
<el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany" :οnkeyup="queryParam.ownerCompany=queryParam.ownerCompany.replace(/^\s+|\s+$/g,'')"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.ownerCompany" @input="getCompany" :οnkeyup="queryParam.ownerCompany=queryParam.ownerCompany.replace(/^\s+|\s+$/g,'')"></el-input>
<div class="resultlist" v-if="showlist" id="box"> <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 v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
userId:'',//用户id userId:'',//用户id
projectName:'',// 项目名称 projectName:'',// 项目名称
companyId:'',//企业id companyId:'',//企业id
ownerCompany:'',//业主单位 ownerCompany:'',//招采单位
projectStage:null,//项目阶段 projectStage:null,//项目阶段
projectType:null,//项目类型 projectType:null,//项目类型
projectCategory:null,//项目类别 projectCategory:null,//项目类别
...@@ -205,7 +205,7 @@ ...@@ -205,7 +205,7 @@
this.queryParam = { this.queryParam = {
projectName:'',// 项目名称 projectName:'',// 项目名称
companyId:'',//企业id companyId:'',//企业id
ownerCompany:'',//业主单位 ownerCompany:'',//招采单位
projectStage:null,//项目阶段 projectStage:null,//项目阶段
projectType:null,//项目类型 projectType:null,//项目类型
projectCategory:null,//项目类别 projectCategory:null,//项目类别
......
...@@ -61,11 +61,11 @@ ...@@ -61,11 +61,11 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="responsiblePerson" prop="phone"
label="负责人联系方式" label="负责人联系方式"
width=""> width="">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.responsiblePerson || '--'}} {{scope.row.phone || '--'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
......
...@@ -87,7 +87,10 @@ ...@@ -87,7 +87,10 @@
</p> </p>
<p> <p>
<label class="label">项目联系方式</label> <label class="label">项目联系方式</label>
<span>{{textList.personTel||'--'}}</span> <span v-if="textList.personTel && textList.personTel.length>0">
<template v-for="item in JSON.parse(textList.personTel)">{{ item.tel }} </template>
</span>
<span v-else>--</span>
<label class="label">行业分类</label> <label class="label">行业分类</label>
<span>{{textList.projectIndustry||'--'}}</span> <span>{{textList.projectIndustry||'--'}}</span>
</p> </p>
......
...@@ -119,7 +119,11 @@ ...@@ -119,7 +119,11 @@
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<div></div> <div class="bottomlist-title-left" >
<p class="title-left">
查询结果
</p>
</div>
<div class="title-right"> <div class="title-right">
<p>共有{{total}}</p> <p>共有{{total}}</p>
<p> <p>
...@@ -129,12 +133,13 @@ ...@@ -129,12 +133,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/BidRecord/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link> <router-link :to="'/radar/BidRecord/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
...@@ -184,11 +189,14 @@ ...@@ -184,11 +189,14 @@
<script> <script>
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: 'BidRecord', name: 'BidRecord',
components:{skeleton},
data() { data() {
return { return {
isSkeleton:true,
addressList: [], addressList: [],
addressType: [], addressType: [],
props: { props: {
...@@ -434,7 +442,9 @@ export default { ...@@ -434,7 +442,9 @@ export default {
}else{ }else{
delete params.keywordNot delete params.keywordNot
} }
this.isSkeleton = true;
api.jskBidTenderPage(params).then(res=>{ api.jskBidTenderPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -970,7 +980,20 @@ export default { ...@@ -970,7 +980,20 @@ export default {
cursor: pointer; cursor: pointer;
} }
} }
.bottomlist-title-left{
display: inline-flex;;
align-items: center;
.title-left{
border-left:2px solid #445781;
padding-left:8px;
padding-right:32px;
font-size: 16px;
height:16px;
line-height: 16px;
font-weight: bold;
color: #232323;
}
}
} }
.bottomlist-content{ .bottomlist-content{
......
...@@ -204,7 +204,11 @@ ...@@ -204,7 +204,11 @@
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<div></div> <div class="bottomlist-title-left" >
<p class="title-left">
查询结果
</p>
</div>
<div class="title-right"> <div class="title-right">
<p>共有{{total}}</p> <p>共有{{total}}</p>
<p> <p>
...@@ -214,12 +218,13 @@ ...@@ -214,12 +218,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/Bidding/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link> <router-link :to="'/radar/Bidding/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
...@@ -306,12 +311,15 @@ ...@@ -306,12 +311,15 @@
<script> <script>
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: 'Bidding', name: 'Bidding',
components:{skeleton},
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
IssueTimeOptions: [ IssueTimeOptions: [
{ {
label: "不限", label: "不限",
...@@ -590,7 +598,9 @@ export default { ...@@ -590,7 +598,9 @@ export default {
}else{ }else{
delete params.keywordNot delete params.keywordNot
} }
this.isSkeleton = true;
api.jskBidPlanPage(params).then(res=>{ api.jskBidPlanPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -1151,7 +1161,20 @@ export default { ...@@ -1151,7 +1161,20 @@ export default {
margin-top: 12px; margin-top: 12px;
padding: 16px ; padding: 16px ;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
.bottomlist-title-left{
display: inline-flex;;
align-items: center;
.title-left{
border-left:2px solid #445781;
padding-left:8px;
padding-right:32px;
font-size: 16px;
height:16px;
line-height: 16px;
font-weight: bold;
color: #232323;
}
}
.title-right{ .title-right{
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -175,7 +175,11 @@ ...@@ -175,7 +175,11 @@
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<div></div> <div class="bottomlist-title-left" >
<p class="title-left">
查询结果
</p>
</div>
<div class="title-right"> <div class="title-right">
<p>共有{{total}}</p> <p>共有{{total}}</p>
<p> <p>
...@@ -185,12 +189,13 @@ ...@@ -185,12 +189,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/Establishment/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link> <router-link :to="'/radar/Establishment/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
...@@ -269,14 +274,15 @@ ...@@ -269,14 +274,15 @@
<script> <script>
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: 'Establishment', name: 'Establishment',
components: { components:{skeleton},
},
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
//是否为向民间推介项目 //是否为向民间推介项目
isProjectOptions: [{ isProjectOptions: [{
value: 0, value: 0,
...@@ -625,8 +631,9 @@ ...@@ -625,8 +631,9 @@
}, },
establishmentDto: data, establishmentDto: data,
}; };
this.isSkeleton = true;
api.establishmentPage(params).then(res=>{ api.establishmentPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -1264,7 +1271,20 @@ ...@@ -1264,7 +1271,20 @@
cursor: pointer; cursor: pointer;
} }
} }
.bottomlist-title-left{
display: inline-flex;;
align-items: center;
.title-left{
border-left:2px solid #445781;
padding-left:8px;
padding-right:32px;
font-size: 16px;
height:16px;
line-height: 16px;
font-weight: bold;
color: #232323;
}
}
} }
.bottomlist-content{ .bottomlist-content{
......
...@@ -202,19 +202,24 @@ ...@@ -202,19 +202,24 @@
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<el-popover v-model="fieldshow" placement="bottom-start" trigger="click" <div class="bottomlist-title-left" >
popper-class="viewlist-el-popover"> <p class="title-left">
<ul class="pup_list"> 查询结果
<li v-for="(itme,i) in fieldOptions" :class="itme.status?'active':''" </p>
@click="handsequencingList(i)" :key="i"> <el-popover v-model="fieldshow" placement="bottom-start" trigger="click"
{{itme.value}} popper-class="viewlist-el-popover">
</li> <ul class="pup_list">
</ul> <li v-for="(itme,i) in fieldOptions" :class="itme.status?'active':''"
<span slot="reference" class="toolbar-right-download" > @click="handsequencingList(i)" :key="i">
{{fieldText}}<i class="el-icon-arrow-down" {{itme.value}}
:style="{transform:fieldshow?'rotate(180deg)':''}"></i> </li>
</span> </ul>
</el-popover> <span slot="reference" class="toolbar-right-download" >
{{fieldText}}<i class="el-icon-arrow-down"
:style="{transform:fieldshow?'rotate(180deg)':''}"></i>
</span>
</el-popover>
</div>
<div class="title-right"> <div class="title-right">
<p>共有{{total}}</p> <p>共有{{total}}</p>
<p> <p>
...@@ -224,13 +229,13 @@ ...@@ -224,13 +229,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0"> <ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/Land/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link> <router-link :to="'/radar/Land/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
...@@ -312,13 +317,16 @@ ...@@ -312,13 +317,16 @@
<script> <script>
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
export default { export default {
name: 'Land', name: 'Land',
components:{skeleton},
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
conditionTitles: { conditionTitles: {
keyword: "关键词:", keyword: "关键词:",
landAddr: "土地坐落:", landAddr: "土地坐落:",
...@@ -612,7 +620,9 @@ ...@@ -612,7 +620,9 @@
}, },
landMarketDto: data, landMarketDto: data,
}; };
this.isSkeleton = true;
api.landMarketPage(params).then(res=>{ api.landMarketPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -1041,7 +1051,20 @@ ...@@ -1041,7 +1051,20 @@
margin-top: 12px; margin-top: 12px;
padding: 16px ; padding: 16px ;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
.bottomlist-title-left{
display: inline-flex;;
align-items: center;
.title-left{
border-left:2px solid #445781;
padding-left:8px;
padding-right:32px;
font-size: 16px;
height:16px;
line-height: 16px;
font-weight: bold;
color: #232323;
}
}
.title-right{ .title-right{
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -177,19 +177,26 @@ ...@@ -177,19 +177,26 @@
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<p>共有{{total}}</p> <div class="bottomlist-title-left" >
<p> <p class="title-left">
<img src="@/assets/images/EXCEL.png" alt=""> 查询结果
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span> </p>
</div>
</p> <div class="title-right">
<p>共有{{total}}</p>
<p>
<img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span>
</p>
</div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="tableData.length>0&& !isSkeleton">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/Tender/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link> <router-link :to="'/radar/Tender/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName"></router-link>
...@@ -285,18 +292,20 @@ ...@@ -285,18 +292,20 @@
import Select from "./Select.vue"; import Select from "./Select.vue";
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: 'Tender', name: 'Tender',
components: { components: {
Select Select,skeleton
}, },
data() { data() {
return { return {
//有无联系方式 //有无联系方式
encodeStr, encodeStr,
isSkeleton:true,
phonePointType: [{ phonePointType: [{
value: '', value: '',
label: '不限' label: '不限'
...@@ -787,8 +796,9 @@ ...@@ -787,8 +796,9 @@
}; };
params.keyword = this.keyword; params.keyword = this.keyword;
params.keywordNot = this.keywordNot; params.keywordNot = this.keywordNot;
this.isSkeleton = true;
api.jskBidPage(params).then(res=>{ api.jskBidPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -1232,31 +1242,48 @@ ...@@ -1232,31 +1242,48 @@
.bottomlist-title { .bottomlist-title {
display: flex; display: flex;
justify-content: end; justify-content: space-between;
align-items: center; align-items: center;
margin-top: 12px; margin-top: 12px;
padding: 24px; padding: 16px ;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
.bottomlist-title-left{
p:first-child { display: inline-flex;;
font-size: 12px; align-items: center;
font-weight: 400; .title-left{
color: #3D3D3D; border-left:2px solid #445781;
margin-right: 10px; padding-left:8px;
} padding-right:32px;
font-size: 16px;
p:last-child { height:16px;
font-size: 14px; line-height: 16px;
font-weight: 400; font-weight: bold;
color: rgba(35, 35, 35, 0.8); color: #232323;
} }
img {
width: 18px;
height: 18px;
} }
.excel{ .title-right{
cursor: pointer; display: flex;
align-items: center;
p:first-child{
font-size: 12px;
font-weight: 400;
color: #3D3D3D;
margin-right: 10px;
}
p:last-child{
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
img{
width: 18px;
height: 18px;
}
.excel{
cursor: pointer;
}
} }
} }
......
...@@ -331,7 +331,11 @@ ...@@ -331,7 +331,11 @@
</div> </div>
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<div></div> <div class="bottomlist-title-left" >
<p class="title-left">
查询结果
</p>
</div>
<div class="title-right"> <div class="title-right">
<p>共有{{total}}条</p> <p>共有{{total}}条</p>
<p> <p>
...@@ -341,13 +345,13 @@ ...@@ -341,13 +345,13 @@
</div> </div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-if="tableData.length>0"> <div class="table-item" v-if="tableData.length>0&& !isSkeleton">
<el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row> <el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row>
<el-table-column label="序号" width="60"> <el-table-column label="序号" width="60">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -486,15 +490,17 @@ ...@@ -486,15 +490,17 @@
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import Keyword from "@/components/Keyword"; import Keyword from "@/components/Keyword";
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
export default { export default {
name: "bxprozbgg", name: "bxprozbgg",
components: { components: {
Keyword Keyword,skeleton
}, },
data(){ data(){
return{ return{
encodeStr, encodeStr,
isSkeleton:true,
allDownloadList:[], allDownloadList:[],
province:[ province:[
{ {
...@@ -1635,7 +1641,9 @@ ...@@ -1635,7 +1641,9 @@
params.keyword = this.keyword; params.keyword = this.keyword;
params.keywordNot = this.keywordNot; params.keywordNot = this.keywordNot;
this.currentPage = params.page.page; this.currentPage = params.page.page;
this.isSkeleton = true;
api.jskBidNewsPage(params).then(res=>{ api.jskBidNewsPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -1987,7 +1995,20 @@ ...@@ -1987,7 +1995,20 @@
align-items: center; align-items: center;
margin-top: 12px; margin-top: 12px;
padding: 16px ; padding: 16px ;
.bottomlist-title-left{
display: inline-flex;;
align-items: center;
.title-left{
border-left:2px solid #445781;
padding-left:8px;
padding-right:32px;
font-size: 16px;
height:16px;
line-height: 16px;
font-weight: bold;
color: #232323;
}
}
.title-right{ .title-right{
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -2030,7 +2051,6 @@ ...@@ -2030,7 +2051,6 @@
} }
} }
} }
} }
.bottomlist-content{ .bottomlist-content{
......
...@@ -91,20 +91,26 @@ ...@@ -91,20 +91,26 @@
<div class="bottomlist"> <div class="bottomlist">
<div class="bottomlist-title"> <div class="bottomlist-title">
<p>共有{{total}}条</p> <div class="bottomlist-title-left" >
<p> <p class="title-left">
<img src="@/assets/images/EXCEL.png" alt=""> 查询结果
</p>
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span> </div>
<div class="title-right">
</p> <p>共有{{total}}条</p>
<p>
<img src="@/assets/images/EXCEL.png" alt="">
<span class="excel" @click="$message({message: '功能正在开发中',type: 'warning'})">导出EXCEL</span>
</p>
</div>
</div> </div>
<div class="table-item-jf1" v-if="tableData.length==0"> <div class="table-item-jf1" v-if="tableData.length==0&& !isSkeleton">
<img class="item-jf-img" src="@/assets/images/kong.png" alt=""> <img class="item-jf-img" src="@/assets/images/kong.png" alt="">
<div class="item-jf-titel">抱歉,没找到相关数据!</div> <div class="item-jf-titel">抱歉,没找到相关数据!</div>
<div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div> <div class="item-jf-text">建议调整关键词或筛选条件,重新搜索!</div>
</div> </div>
<ul class="bottomlist-content" v-if="tableData.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="bottomlist-content" v-if="!isSkeleton&&tableData.length>0">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/debtProject/details/'+ item.uuid" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link> <router-link :to="'/radar/debtProject/details/'+ item.uuid" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
...@@ -180,13 +186,16 @@ ...@@ -180,13 +186,16 @@
<script> <script>
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/radar/radar.js'; import api from '@/api/radar/radar.js';
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
export default { export default {
name: 'debtProject', name: 'debtProject',
components:{skeleton},
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
projectName:'', projectName:'',
nameTypeList: [{ nameTypeList: [{
key: 'like', key: 'like',
...@@ -250,7 +259,7 @@ ...@@ -250,7 +259,7 @@
this.search(); this.search();
}, },
searchDic(){ searchDic(){
api.searchDic().then(res=>{ api.searchDic().then(res=>{
this.specialBondProjectType=res.specialBondProjectType; this.specialBondProjectType=res.specialBondProjectType;
}).catch(error=>{ }).catch(error=>{
...@@ -490,8 +499,9 @@ ...@@ -490,8 +499,9 @@
if(this.projectType.length>0&&this.projectType[0]!='不限'){ if(this.projectType.length>0&&this.projectType[0]!='不限'){
params.specialBondProjectDto['projectType'] = this.projectType.join(','); params.specialBondProjectDto['projectType'] = this.projectType.join(',');
} }
this.isSkeleton = true;
api.bondProjectPage(params).then(res=>{ api.bondProjectPage(params).then(res=>{
this.isSkeleton = false;
if (res.code==200) { if (res.code==200) {
this.tableData=res.data.list; this.tableData=res.data.list;
this.total=res.data.total; this.total=res.data.total;
...@@ -672,28 +682,48 @@ ...@@ -672,28 +682,48 @@
border-radius: 4px 4px 4px 4px; border-radius: 4px 4px 4px 4px;
.bottomlist-title{ .bottomlist-title{
display: flex; display: flex;
justify-content: end; justify-content: space-between;
align-items: center; align-items: center;
margin-top: 12px; margin-top: 12px;
padding: 24px ; padding: 16px ;
border-bottom: 1px solid #EFEFEF; border-bottom: 1px solid #EFEFEF;
p:first-child{ .bottomlist-title-left{
font-size: 12px; display: inline-flex;;
font-weight: 400; align-items: center;
color: #3D3D3D; .title-left{
margin-right: 10px; border-left:2px solid #445781;
} padding-left:8px;
p:last-child{ padding-right:32px;
font-size: 14px; font-size: 16px;
font-weight: 400; height:16px;
color: rgba(35,35,35,0.8); line-height: 16px;
} font-weight: bold;
img{ color: #232323;
width: 18px; }
height: 18px;
} }
.excel{ .title-right{
cursor: pointer; display: flex;
align-items: center;
p:first-child{
font-size: 12px;
font-weight: 400;
color: #3D3D3D;
margin-right: 10px;
}
p:last-child{
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(35,35,35,0.8);
}
img{
width: 18px;
height: 18px;
}
.excel{
cursor: pointer;
}
} }
} }
.bottomlist-content{ .bottomlist-content{
......
...@@ -149,31 +149,34 @@ public class EnterpriseService { ...@@ -149,31 +149,34 @@ public class EnterpriseService {
return new TableDataInfo(new ArrayList<>(), 0); return new TableDataInfo(new ArrayList<>(), 0);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
Integer code = MapUtils.getInteger(map, "code", 300); return dskOpenApiUtil.responsePage(map);
if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException(); // Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/investment", BeanUtil.beanToMap(body, false, false));
} // Integer code = MapUtils.getInteger(map, "code", 300);
Map data = MapUtils.getMap(map, "data", null); // if (!code.equals(HttpStatus.OK.value())) {
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", "")); // throw new RuntimeException();
if (CollectionUtils.isEmpty(list)) { // }
return new TableDataInfo(list, 0); // Map data = MapUtils.getMap(map, "data", null);
} // List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
List<Object> newList = new ArrayList<>(20); // if (CollectionUtils.isEmpty(list)) {
for (Object companyObj : list) { // return new TableDataInfo(list, 0);
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); // }
String businessStatus = MapUtils.getString(companyMap, "businessStatus"); // List<Object> newList = new ArrayList<>(20);
if (!"注销".equals(businessStatus)) { // for (Object companyObj : list) {
newList.add(companyMap); // Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
} // String businessStatus = MapUtils.getString(companyMap, "businessStatus");
} // if (!"注销".equals(businessStatus)) {
for (Object companyObj : list) { // newList.add(companyMap);
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); // }
String businessStatus = MapUtils.getString(companyMap, "businessStatus"); // }
if ("注销".equals(businessStatus)) { // for (Object companyObj : list) {
newList.add(companyMap); // Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
} // String businessStatus = MapUtils.getString(companyMap, "businessStatus");
} // if ("注销".equals(businessStatus)) {
return new TableDataInfo(newList, MapUtils.getInteger(data, "totalCount", 0)); // newList.add(companyMap);
// }
// }
// return new TableDataInfo(newList, MapUtils.getInteger(data, "totalCount", 0));
} }
public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception { public TableDataInfo affiliates(EnterpriseAffiliatesBody body) throws Exception {
...@@ -256,6 +259,18 @@ public class EnterpriseService { ...@@ -256,6 +259,18 @@ public class EnterpriseService {
//按照城投企业id合并两个list //按照城投企业id合并两个list
for (Object companyObj : list) { for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
companyMap.put("cid", MapUtils.getString(companyMap, "companyId"));
companyMap.put("bratingSubjectLevel", null);
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRating", companyMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) {
ArrayList obj = (ArrayList)object;
Map<String, Object> bondCreditRating = (Map<String, Object>)obj.get(0);
companyMap.put("bratingSubjectLevel", bondCreditRating.get("bratingSubjectLevel"));
}
}
String uipId = MapUtils.getString(companyMap, "uipId"); String uipId = MapUtils.getString(companyMap, "uipId");
companyMap.put("bondBalance",MapUtils.getDouble(companyMap, "bondBalance")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "bondBalance"))); companyMap.put("bondBalance",MapUtils.getDouble(companyMap, "bondBalance")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "bondBalance")));
companyMap.put("totalAssets",MapUtils.getDouble(companyMap, "totalAssets")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "totalAssets"))); companyMap.put("totalAssets",MapUtils.getDouble(companyMap, "totalAssets")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "totalAssets")));
......
...@@ -35,6 +35,7 @@ import com.dsk.system.mapper.BusinessUserMapper; ...@@ -35,6 +35,7 @@ import com.dsk.system.mapper.BusinessUserMapper;
import com.dsk.system.service.IBusinessInfoService; import com.dsk.system.service.IBusinessInfoService;
import com.dsk.system.service.ICustomerService; import com.dsk.system.service.ICustomerService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -141,7 +142,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -141,7 +142,13 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override @Override
public List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto) { public List<BusinessLikeProjectNameListVo> selectProjectName(BusinessListDto dto) {
return businessInfoMapper.selectProjectName(dto); List<BusinessLikeProjectNameListVo> vos = businessInfoMapper.selectProjectName(dto);
if (!CollectionUtils.isEmpty(vos)) {
for (BusinessLikeProjectNameListVo vo : vos) {
vo.setProjectName(vo.getProjectName().replace(dto.getProjectName(), "<font color='#FF204E'>" + dto.getProjectName() + "</font>"));
}
}
return vos;
} }
@Override @Override
......
...@@ -3,10 +3,12 @@ package com.dsk.system.service.impl; ...@@ -3,10 +3,12 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanException; import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.exception.ServiceException; import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.SecurityUtils; import com.dsk.common.utils.SecurityUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.system.domain.customer.Customer; import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.CustomerUser; import com.dsk.system.domain.customer.CustomerUser;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
...@@ -179,36 +181,53 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -179,36 +181,53 @@ public class CustomerServiceImpl implements ICustomerService {
private void dealWithcustomerData(Customer customer) { private void dealWithcustomerData(Customer customer) {
if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空"); if (ObjectUtils.isEmpty(customer.getCompanyName())) throw new BeanException("企业名称不能为空");
if (ObjectUtils.isEmpty(customer.getCompanyId())) { try {
try { Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName());
Map<String, Object> map = opportunityRadarService.enterpriseByName(customer.getCompanyName()); if (!ObjectUtils.isEmpty(map.get("data"))) {
if (!ObjectUtils.isEmpty(map.get("data"))) { Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
customer.setCompanyId(MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid")); Integer companyId = MapUtil.getInt(data, "jskEid");
if (ObjectUtils.isEmpty(customer.getLegalPerson())) { if(ObjectUtil.isNotEmpty(customer.getCompanyId()) && !customer.getCompanyId().equals(companyId)) {
customer.setLegalPerson(MapUtil.getStr(map, "legalPerson")); return;
} }
if (ObjectUtils.isEmpty(customer.getRegisterCapital())) { customer.setCompanyId(companyId);
customer.setRegisterCapital(MapUtil.getStr(map, "registeredCapitalStr")); if (ObjectUtils.isEmpty(customer.getLegalPerson())) {
} customer.setLegalPerson(MapUtil.getStr(data, "legalPerson"));
if (ObjectUtils.isEmpty(customer.getProvinceId())) { }
customer.setProvinceId(MapUtil.getInt(map, "provinceId")); if (ObjectUtils.isEmpty(customer.getRegisterCapital())) {
} customer.setRegisterCapital(MapUtil.getStr(data, "registeredCapitalStr"));
if (ObjectUtils.isEmpty(customer.getCityId())) { }
customer.setCityId(MapUtil.getInt(map, "cityId")); if (ObjectUtils.isEmpty(customer.getProvinceId())) {
} customer.setProvinceId(MapUtil.getInt(data, "provinceId"));
if (ObjectUtils.isEmpty(customer.getDistrictId())) { }
customer.setDistrictId(MapUtil.getInt(map, "countyId")); if (ObjectUtils.isEmpty(customer.getCityId())) {
} customer.setCityId(MapUtil.getInt(data, "cityId"));
if (ObjectUtils.isEmpty(customer.getRegisterAddress())) { }
customer.setRegisterAddress(MapUtil.getStr(map, "domicile")); if (ObjectUtils.isEmpty(customer.getDistrictId())) {
} customer.setDistrictId(MapUtil.getInt(data, "countyId"));
if (ObjectUtils.isEmpty(customer.getCreditCode())) { }
customer.setCreditCode(MapUtil.getStr(map, "creditCode")); if (ObjectUtils.isEmpty(customer.getRegisterAddress())) {
if(ObjectUtil.isNotEmpty(MapUtil.getStr(data, "domicile"))){
customer.setRegisterAddress(MapUtil.getStr(data, "domicile"));
}else {
String address = null;
if (ObjectUtils.isEmpty(MapUtil.getStr(data, "province"))) {
address = MapUtil.getStr(data, "province");
if (ObjectUtils.isEmpty(MapUtil.getStr(data, "city"))) {
address = address.concat("-").concat(MapUtil.getStr(data, "city"));
if (ObjectUtils.isEmpty(MapUtil.getStr(data, "county"))) {
address = address.concat("-").concat(MapUtil.getStr(data, "county"));
}
}
}
customer.setRegisterAddress(address);
} }
} }
} catch (Exception e) { if (ObjectUtils.isEmpty(customer.getCreditCode())) {
log.debug("获取企业id错误!error:{}", e.getMessage()); customer.setCreditCode(MapUtil.getStr(data, "creditCode"));
}
} }
} catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage());
} }
} }
......
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils; import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto; import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
...@@ -58,6 +59,18 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -58,6 +59,18 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
//按照城投企业id合并两个list //按照城投企业id合并两个list
for (Object companyObj : list) { for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
companyMap.put("bratingSubjectLevel", null);
companyMap.put("cid", MapUtils.getString(companyMap, "companyId"));
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRating", companyMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) {
ArrayList obj = (ArrayList)object;
Map<String, Object> bondCreditRating = (Map<String, Object>)obj.get(0);
companyMap.put("bratingSubjectLevel", bondCreditRating.get("bratingSubjectLevel"));
}
}
String uipId = MapUtils.getString(companyMap, "uipId"); String uipId = MapUtils.getString(companyMap, "uipId");
companyMap.put("claimStatus", 0); companyMap.put("claimStatus", 0);
for (CustomerStatusListVo vo : customerStatusListVos) { for (CustomerStatusListVo vo : customerStatusListVos) {
......
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