Commit 09d529f0 authored by yht15023815643's avatar yht15023815643

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

parents c3fc63ff 06b7e352
......@@ -16,6 +16,15 @@ public class SpecialPurposeBondsPageDto extends BasePage {
* 省Id
*/
private Integer provinceId;
/**
* 市Id
*/
private Integer cityId;
/**
* 区Id
*/
private Integer areaId;
/**
* 市Id
......
......@@ -3,16 +3,19 @@
* 1、url地址,如企业详情:https://pre-plug.jiansheku.com/enterprise?ak=aec7b3ff2y2q8x6t49a7e2c463ce21912&uid=a704fb35bca54707b9b5f8c9bba57815(ak:平台唯一标识;uid:用户标识)
*
* */
const steerScroll = function (iframeId, navHeight, state, parentId){ //state:监听or移除监听;navHeight:页面排除iframe后剩下高度;iframeId: iframe的id
const steerScroll = function(iframeId, navigation, state, parentId) { // state:监听or移除监听;navigation:页面排除iframe后剩下高度;iframeId: iframe的id
let dom = window
if(parentId){// 默认页面可以滚动
if (parentId) { // 默认页面可以滚动
dom = document.getElementById(parentId)
if(!dom){
return
}
dom.style.overflow = 'auto'
navHeight = 0
}else{
navigation.totalHeight = 0
} else {
document.body.style.overflow = 'visible'
}
if(state){
if (state) {
window.addEventListener('message', function(e) {
const data = e.data
const sct = parentId ? dom.scrollTop : document && document.documentElement.scrollTop || document && document.body.scrollTop
......@@ -20,10 +23,11 @@ const steerScroll = function (iframeId, navHeight, state, parentId){ //state:
// 动态设置iFrame高度
if (data.height) {
document.getElementById(iframeId).style.height = data.height+'px'
scrolling(iframeId, navHeight, parentId) // 初始加载获取滚动条距离顶部高度
scrolling(iframeId, navigation, parentId) // 初始加载获取滚动条距离顶部高度
}
// 点击企业详情页 栏目名动态设置滚动高度
if (data.scrollHeight) {
let navHeight = navigation.isFixed ? navigation.totalHeight - navigation.fixedHeight : navigation.totalHeight
dom.scrollTo(sct, parseInt(data.scrollHeight) + navHeight)
}
// 点击企业详情页 栏目下拉子标签动态设置滚动高度
......@@ -31,34 +35,39 @@ const steerScroll = function (iframeId, navHeight, state, parentId){ //state:
dom.scrollTo(sct, sct - parseInt(data.clientHeight))
}
// 点击下拉子标签动态设置滚动高度
if (data.initHeight>=0) {
if (data.initHeight >= 0) {
dom.scrollTo(sct, data.initHeight)
}
// 根据子页面弹窗显示隐藏控制当前页面是否固定不可滚动
if (data.scrollDisabled||data.scrollDisabled==false) {
if(parentId){
dom.style.overflow = data.scrollDisabled?'hidden':'auto'
}else{
document.body.style.overflow = data.scrollDisabled?'hidden':'visible'
if (data.scrollDisabled || data.scrollDisabled === false) {
if (parentId) {
dom.style.overflow = data.scrollDisabled ? 'hidden' : 'auto'
} else {
document.body.style.overflow = data.scrollDisabled ? 'hidden' : 'visible'
}
}
}
})
dom.addEventListener('scroll', scrolling(iframeId, navHeight, parentId))
}else{
dom.removeEventListener('scroll', scrolling(iframeId, navHeight, parentId))
dom.addEventListener('scroll', (event) => {
scrolling(iframeId, navigation, parentId)
})
} else {
dom.removeEventListener('scroll', (event) => {
scrolling(iframeId, navigation, parentId)
})
}
}
const scrolling = function (iframeId, navHeight, parentId){
const scrolling = function(iframeId, navigation, parentId) {
// 滚动条距文档顶部的距离
let scrollTop = parentId ? document.getElementById(parentId).scrollTop : window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
// 将滚动距离传入子组件
const ifa = document.getElementById(iframeId)
if(scrollTop<navHeight){
scrollTop = scrollTop+navHeight
if ((scrollTop < navigation.totalHeight && !navigation.isFixed) || navigation.isFixed) {
scrollTop = scrollTop + navigation.totalHeight
}
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop }, '*')
const bodyHeight = document.body.clientHeight - navigation.totalHeight
ifa.contentWindow.postMessage({ 'scrollTop': scrollTop, 'bodyHeight': bodyHeight }, '*')
}
export {
......
......@@ -656,6 +656,9 @@ ul, li {
height: 32px;
border: 0;
}
.el-input__suffix{
margin-top: -1px;
}
}
.btn{
background: #F5F5F5;
......
......@@ -827,10 +827,22 @@
right: 16px;
top: 17px;
.searchInput{
width: 178px;
border: 1px solid #D9D9D9;
.el-input--medium .el-input__inner{
font-size: 12px;
&.small{
border: 1px solid #d9d9d9;
width: 240px;
.el-input{
width: 180px;
}
.el-input__inner{
padding-right: 32px;
}
.el-input__prefix{
left: 8px;
top: -3px;
img{
width: 16px;
}
}
}
}
.b2{
......@@ -1187,3 +1199,6 @@
//box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
//-webkit-box-shadow: 4px 0 9px -5px rgba(0, 0, 0, 0.12);
}
.el-select .el-input__inner{
padding-left: 16px;
}
......@@ -5,6 +5,7 @@
transition: margin-left .28s;
margin-left: $base-sidebar-width;
position: relative;
background: #F5F5F5;
}
.sidebarHide {
......@@ -37,12 +38,12 @@
animation-fill-mode: forwards;
z-index: 1002;
}
@keyframes left-right{
0%{right: 0;}
100%{right: -21px;}
}
// reset element-ui css
.horizontal-collapse-transition {
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
......@@ -58,10 +59,10 @@
.el-scrollbar {
height: 100%;
}
&.has-logo {
.el-scrollbar {
......@@ -138,8 +139,8 @@
background: #fff!important;
}
}
// menu hover
.submenu-title-noDropdown, .el-submenu__title {
color: #fff!important;
......@@ -150,9 +151,9 @@
border: 1px solid #2b3f69;
}
}
}
.sidebar-container .el-submenu .el-menu-item:hover,.sidebar-container .nest-menu .el-submenu>.el-submenu__title:hover {
background-color: #1e2c4c!important;
......@@ -160,7 +161,7 @@
border-radius: 10px;
border: 1px solid #2b3f69;
}
.sidebar-container .el-submenu .el-menu-item:before, .sidebar-container .nest-menu .el-submenu>.el-submenu__title:before {
position: absolute;
width: 2px;
......@@ -210,7 +211,7 @@
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
}
}
......@@ -405,4 +406,4 @@
padding-top: 6px;
padding-bottom: 10px;
}
}
\ No newline at end of file
}
......@@ -46,9 +46,9 @@ export default {
<style scoped>
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
width: 1.29em;
height: 1.29em;
/*vertical-align: -0.22em;*/
fill: currentColor;
overflow: hidden;
}
......
......@@ -45,6 +45,7 @@ export default {
min-height: calc(100vh - 56px);
min-width:1440px;
background: #F5F5F5;
overflow: initial;
}
.fixed-header + .app-main {
......
......@@ -147,9 +147,9 @@ export default {
.user-avatar {
display: inline-block;
cursor: pointer;
width: 20px;
height: 20px;
line-height: 20px;
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
background: #E3EEF9;
color: #0081FF;
......
......@@ -7,7 +7,7 @@
<div class="app-container">
<el-card class="box-card noborder">
<div class="tables">
<div class="empty" v-if="tableData.total==0">
<div class="empty" v-if="tableData.total==0 && !isSkeleton">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
......@@ -25,7 +25,8 @@
<div class="btn btn_primary h32 p10" @click="opennew"><div class="img img1"></div>添加客户</div>
</div>
</div>
<el-table v-if="tableData.total > 0"
<skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0"
:data="tableData.rows"
stripe border
style="width: 100%">
......@@ -159,8 +160,11 @@
label="主营业务" width="400">
<template slot-scope="scope">
<div v-if="scope.row.mainBusiness == null || scope.row.mainBusiness == ''">--</div>
<div class="box" v-else-if="scope.row.sq1==true">{{scope.row.mainBusiness1}}...<span @click="sq1(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.mainBusiness}}<span @click="sq1(scope.row,true)">收起</span></div>
<div v-if="scope.row.mainBusiness1">
<div class="box" v-if="scope.row.sq1==true">{{scope.row.mainBusiness1}}...<span @click="sq1(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.mainBusiness}}<span @click="sq1(scope.row,true)">收起</span></div>
</div>
<div v-else>{{scope.row.mainBusiness}}</div>
</template>
</el-table-column>
<el-table-column
......@@ -168,8 +172,11 @@
label="发包属性" width="400">
<template slot-scope="scope">
<div v-if="scope.row.companyAttribute == null || scope.row.companyAttribute == ''">--</div>
<div class="box" v-else-if="scope.row.sq2==true">{{scope.row.companyAttribute1}}...<span @click="sq2(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.companyAttribute}}<span @click="sq2(scope.row,true)">收起</span></div>
<div v-if="scope.row.companyAttribute1">
<div class="box" v-if="scope.row.sq2==true">{{scope.row.companyAttribute1}}...<span @click="sq2(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.companyAttribute}}<span @click="sq2(scope.row,true)">收起</span></div>
</div>
<div v-else>{{scope.row.companyAttribute}}</div>
</template>
</el-table-column>
<el-table-column
......@@ -245,11 +252,12 @@
import {getEnterprise,getDictType,} from '@/api/main'
import prvinceTree from '@/assets/json/provinceTree'
import batchimport from '../../project/projectList/component/batchImport'
import skeleton from '../../project/projectList/component/skeleton'
import axios from 'axios'
import {encodeStr} from "@/assets/js/common"
export default {
name: 'CustomList',
components:{batchimport},
components:{batchimport,skeleton},
data() {
return{
encodeStr,
......@@ -297,6 +305,7 @@ export default {
// isNew:true,
showlist:false,
keys:1,
isSkeleton:true,
}
},
created() {
......@@ -343,6 +352,7 @@ export default {
//获取客户列表
getCustomerList(){
getCustomerList(this.searchParam).then(result=>{
this.isSkeleton = false
this.tableData = result
this.tableData.rows.forEach(item=>{
item.registerCapital = item.registerCapital == null?null: item.registerCapital.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')
......@@ -358,6 +368,7 @@ export default {
}else{
item.sq2 = false
}
console.log(item)
})
})
},
......@@ -378,6 +389,7 @@ export default {
},
//翻页
handleCurrentChange(val) {
this.isSkeleton = true
this.pldr=false
// this.isNew = false
this.searchParam.pageNum=val
......
......@@ -3,7 +3,7 @@
<div class="app-container">
<el-card class="box-card noborder">
<div class="tables">
<div class="empty" v-if="tableData.total==0">
<div class="empty" v-if="tableData.total==0&& !isSkeleton">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div>
......@@ -17,7 +17,8 @@
<div class="total">{{tableData.total}}</div>
</div>
</div>
<el-table v-if="tableData.total > 0"
<skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0"
:data="tableData.rows"
stripe border
style="width: 100%">
......@@ -42,13 +43,6 @@
<div @click="toRL(scope.row)"><img class="i" src="@/assets/images/project/khrl1.png"><img class="o" src="@/assets/images/project/khrl2.png"></div>
</div>
</div>
<div class="delform" v-if="scope.row.companyName == '重庆市永川区惠通建设发展有限公司'">
<div class="words">再次认领将会恢复默认客户数据</div>
<div>
<div class="btnsmall btn_primary h28" >确定</div>
<div class="btnsmall btn_cancel h28" >取消</div>
</div>
</div>
</template>
</el-table-column>
......@@ -157,8 +151,11 @@
label="主营业务" width="400">
<template slot-scope="scope">
<div v-if="scope.row.mainBusiness == null || scope.row.mainBusiness == ''">--</div>
<div class="box" v-else-if="scope.row.sq1==true">{{scope.row.mainBusiness1}}...<span @click="sq1(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.mainBusiness}}<span @click="sq1(scope.row,true)">收起</span></div>
<div v-if="scope.row.mainBusiness1">
<div class="box" v-if="scope.row.sq1==true">{{scope.row.mainBusiness1}}...<span @click="sq1(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.mainBusiness}}<span @click="sq1(scope.row,true)">收起</span></div>
</div>
<div v-else>{{scope.row.mainBusiness}}</div>
</template>
</el-table-column>
<el-table-column
......@@ -166,8 +163,11 @@
label="发包属性" width="400">
<template slot-scope="scope">
<div v-if="scope.row.companyAttribute == null || scope.row.companyAttribute == ''">--</div>
<div class="box" v-else-if="scope.row.sq2==true">{{scope.row.companyAttribute1}}...<span @click="sq2(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.companyAttribute}}<span @click="sq2(scope.row,true)">收起</span></div>
<div v-if="scope.row.companyAttribute1">
<div class="box" v-if="scope.row.sq2==true">{{scope.row.companyAttribute1}}...<span @click="sq2(scope.row,false)">更多</span></div>
<div class="box" v-else>{{scope.row.companyAttribute}}<span @click="sq2(scope.row,true)">收起</span></div>
</div>
<div v-else>{{scope.row.companyAttribute}}</div>
</template>
</el-table-column>
<el-table-column
......@@ -188,6 +188,13 @@
:total="tableData.total">
</el-pagination>
</div>
<div class="delform" v-if="RLcompanyName">
<div class="words">再次认领将会恢复默认客户数据</div>
<div>
<div class="btnsmall btn_primary h28" @click="RL">确定</div>
<div class="btnsmall btn_cancel h28" @click="RLcompanyName = ''">取消</div>
</div>
</div>
</div>
</el-card>
</div>
......@@ -201,15 +208,18 @@
import {getEnterprise,getDictType,} from '@/api/main'
import {encodeStr} from "@/assets/js/common"
import { historyClaim } from "@/api/common" //认领
import skeleton from '../../project/projectList/component/skeleton'
export default {
name: 'CustomList',
components:{skeleton},
data() {
return{
encodeStr,
searchParam:{
companyName:'',
pageNum:1,
pageSize:20
pageSize:20,
status:1,
},
tableData: [],//列表
......@@ -226,12 +236,13 @@ export default {
// isNew:true,
showlist:false,
keys:1,
RLcompanyName:'',//重新认领企业名称
isSkeleton:true,
}
},
created() {
this.getCustomerList()
this.getDictType()
this.prvinceTree()
},
methods:{
sq1(item,sq){
......@@ -266,6 +277,7 @@ export default {
//获取客户列表
getCustomerList(){
getCustomerList(this.searchParam).then(result=>{
this.isSkeleton = false
this.tableData = result
this.tableData.rows.forEach(item=>{
item.registerCapital = item.registerCapital == null?null: item.registerCapital.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')
......@@ -296,13 +308,15 @@ export default {
},
//认领客户
async toRL(row){
let param = row.companyName
let res = await historyClaim(param)
this.RLcompanyName = row.companyName
},
async RL(){
let res = await historyClaim(this.RLcompanyName)
if(res.code==200){
this.$message.success('认领成功!')
this.handleCurrentChange(1)
this.RLcompanyName=''
}
},
clearname(value){
if(value == ""){
......@@ -311,6 +325,7 @@ export default {
},
//翻页
handleCurrentChange(val) {
this.isSkeleton = true
this.searchParam.pageNum=val
this.getCustomerList()
},
......@@ -320,9 +335,14 @@ export default {
<style lang="scss" scoped>
.delform{
right: 5px;
top: 40px;
width: 228px;
left: 50%;
top: 50%;
margin-left: -114px;
margin-top: -57px;
.words{
font-size: 14px;
}
}
.app-container{
height: calc(100vh - 134px)
......
......@@ -118,9 +118,10 @@
</template>
<script>
import "@/assets/styles/project.scss"
import * as echarts from 'echarts'
export default {
import '@/assets/styles/project.scss'
import * as echarts from 'echarts'
export default {
name: 'Overview',
data() {
return {
......@@ -192,9 +193,9 @@ export default {
initChart(){
//客户级别
this.option = {
tooltip: {
trigger: 'item'
trigger: 'item',
extraCssText: 'border:0',
},
color:['#8A82F3','#5B9CF7','#8DCF96','#FFDC6B','#FE9C77'],//修改配色
series: [
......@@ -203,17 +204,17 @@ export default {
type: 'pie',
radius: ['50%','70%'],
data: [
{ value: 23, name: '集团总部:11%' },
{ value: 61, name: '一级单位:29%' },
{ value: 60, name: '二级单位:29%' },
{ value: 21, name: '三级单位:10%' },
{ value: 44, name: '其他单位: 21%' }
{ value: 23, name: '集团总部:11%',borderWidth:0 },
{ value: 61, name: '一级单位:29%',borderWidth:0 },
{ value: 60, name: '二级单位:29%',borderWidth:0 },
{ value: 21, name: '三级单位:10%',borderWidth:0 },
{ value: 44, name: '其他单位: 21%',borderWidth:0 }
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
shadowColor: 'rgba(0, 0, 0, 0)'
}
}
}
......@@ -267,7 +268,14 @@ export default {
}
}
}
]
],
emphasis: {
itemStyle: {
// 高亮时点的颜色。
color: 'rgb(90,146,247)'
},
}
}
this.option2 && this.myChart2.setOption(this.option2)
//客户资质分析
......@@ -317,7 +325,14 @@ export default {
},
}
}
]
],
emphasis: {
itemStyle: {
// 高亮时点的颜色。
color: 'rgb(134,231,231)'
},
}
}
this.option3 && this.myChart3.setOption(this.option3)
......@@ -358,6 +373,7 @@ export default {
axisPointer:{ //悬浮于圆点展示标签
type:'axis'
},
extraCssText: 'border:0',
// trigger: 'axis'
},
series: [
......
......@@ -210,10 +210,12 @@ export default {
display: flex;
border-radius: 2px 0px 0px 2px;
border: 1px solid #D9D9D9;
line-height: 32px;
height: 32px;
span {
width: 60px;
height: 32px;
line-height: 32px;
height: 30px;
line-height: 28px;
font-size: 14px;
background: #F5F5F5;
text-align: center;
......@@ -234,9 +236,12 @@ export default {
flex: 1;
}
::v-deep .el-input__inner {
border-radius: 2px 0 2px 0;
border: 0;
border-right: 0;
line-height: 30px;
height: 30px;
position: absolute;
top: 0;
padding-right: 32px;
}
}
.fromTime{
......@@ -251,6 +256,11 @@ export default {
.fromTime-icon {
display: none;
}
.el-select{
.el-input__suffix{
right: 10px;
}
}
}
::v-deep .form-content-width{
width: 170px;
......
......@@ -16,8 +16,8 @@ export default {
loading: false, // 是否加载完成-当前页控制
iframeTimer: '', // 是否加载中定时器-当前页控制
iframeHight: window.innerHeight, // iframe高度-当前页控制
navHeight: 68, // iframe以为的高度px
src: '',
navigation: {isFixed: true, fixedHeight: 56, totalHeight: 68}, // iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src: '', //iframe嵌套页面地址
domain: 'https://pre-plug.jiansheku.com',
// domain: 'http://192.168.60.30:3300',
ak: 'aec7b3ff2y2q8x6t49a7e2c463ce21912' // 需要携带的sdkId
......@@ -36,11 +36,11 @@ export default {
},
mounted() {
this.iframeLoading() // 判断iframe页面是否加载完成-当前页控制
steerScroll('companyIframe', this.navHeight, true) // 监听滚动(iframe的id、页面排除iframe后页面剩下高度[例:80]、增加监听[不传就是移除监听]、父级id[不带默认就是铺满整个页面]])
steerScroll('companyIframe', this.navigation, true) // 监听滚动(iframe的id、页面排除iframe后页面剩下顶部高度[例:80]、增加监听[不传就是移除监听]、父级id[不带默认就是铺满整个页面]])
},
beforeDestroy() {
clearInterval(this.iframeTimer) // -当前页控制
steerScroll('companyIframe', this.navHeight) // 销毁滚动
steerScroll('companyIframe', this.navigation) // 销毁滚动
},
methods: {
//判断iframe页面是否加载完成-当前页控制
......
......@@ -49,6 +49,7 @@
},
],
personnelHerf:'Owner'
}
},
......
......@@ -20,7 +20,7 @@
<div id="echarts" style="height: 400px"></div>
<p class="tips"> 注:数据均来源于统计公报、统计年鉴,实际披露中由于部分地区最新年度数据不全,导致年份间数据差距较大</p>
</div>
<div class="content-right">
<div class="content-right table-item">
<el-table
v-loading="tableLoading"
:data="tableData"
......@@ -296,6 +296,24 @@ export default {
.caret-wrapper{
width: 10px;
}
.has-gutter{
tr{
th:nth-child(4){
border-right:0;
.cell{
padding-right: 24px !important;
}
}
td:nth-child(6){
border-right:0;
}
}
}
.el-table__cell.gutter{
background: #F5F7FA;
width: 16px !important;
border-top: 1px solid #dfe6ec;
}
}
}
}
......
......@@ -11,8 +11,8 @@
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsGDP" style="height: 75px;"></div>
<div class="item-text up" v-if="recentlyYear.gdpGrowth > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowth).toString().substring(1)}}%</span></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpGrowth) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowth).toFixed(2).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #718AFF;"></i>{{recentlyYear.year}}年GDP增速</div>
......@@ -22,8 +22,8 @@
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsZS" style="height: 75px;"></div>
<div class="item-text up" v-if="(recentlyYear.gdpGrowth-nextYearMap.gdpGrowth) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text up" v-if="(Number(getMoneyNum(recentlyYear.gdpGrowth))-Number(getMoneyNum(nextYearMap.gdpGrowth))) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowthCompare).toFixed(2).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #3AD0D1;"></i>{{recentlyYear.year}}年人口</div>
......@@ -33,8 +33,8 @@
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsRK" style="height: 75px;"></div>
<div class="item-text up" v-if="recentlyYear.populationGrowthRate > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationGrowthRate}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{recentlyYear.populationGrowthRate}}%</span></div>
<div class="item-text up" v-if="Number(recentlyYear.populationGrowthRate) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationGrowthRate}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.populationGrowthRate).toFixed(2).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FFBE5D;"></i>{{recentlyYear.year}}年一般公共预算收入</div>
......@@ -44,8 +44,8 @@
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsSR" style="height: 75px;"></div>
<div class="item-text up" v-if="recentlyYear.gbrGrowth > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrGrowth).toString().substring(1)}}%</span></div>
<div class="item-text up" v-if="Number(recentlyYear.gbrGrowth) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrGrowth}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrGrowth).toFixed(2).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FF8935;"></i>{{recentlyYear.year}}年地方政府债务余额</div>
......@@ -55,7 +55,7 @@
<img v-else src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsYE" style="height: 75px;"></div>
<div class="item-text up" v-if="recentlyYear.govDebtBalance > nextYearMap.govDebtBalance">
<div class="item-text up" v-if="Number(getMoneyNum(recentlyYear.govDebtBalance)) > Number(getMoneyNum(nextYearMap.govDebtBalance))">
{{nextYearMap.year}}年上升<span>{{recentlyYear.govDebtBalanceCompare}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{recentlyYear.govDebtBalanceCompare}}%</span></div>
</div>
......@@ -823,6 +823,7 @@ export default {
.table-item{
margin-top: 22px;
::v-deep .el-table{
overflow:visible;
th{
font-size: 12px !important;
font-weight: 400 !important;
......@@ -836,6 +837,16 @@ export default {
.caret-wrapper{
width: 10px;
}
.el-table__body-wrapper{
overflow:visible;
}
.el-table__body{
tr:first-child{
position: sticky;
top:56px;
z-index: 9;
}
}
}
}
}
......
......@@ -135,7 +135,23 @@ export default {
this.aptitudeCode()
},
mounted() {
window.addEventListener("scroll",this.scrolling)
},
beforeDestroy() {
window.removeEventListener("scroll", this.scrolling);
},
methods: {
scrolling() {
let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0]
let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop>197){
let top = scrollTop-197
el.style.top = top+'px'
}else{
el.style.top = 0
}
},
//资质Json
async aptitudeCode() {
// await axios.post("https://files.jiansheku.com/file/json/common/aptitudeCode.json", {}, {
......@@ -405,6 +421,15 @@ export default {
}
}
::v-deep .el-table{
overflow:visible;
.el-table__header-wrapper{
position: sticky;
top:56px;
z-index: 9;
}
.el-table__fixed-header-wrapper{
z-index: 9;
}
th{
font-size: 12px !important;
font-weight: 400 !important;
......
......@@ -431,7 +431,7 @@ export default {
display: flex;
justify-content: space-between;
.box-left{
width: 55%;
width: 50%;
}
.empty{
margin: 0 auto;
......@@ -509,6 +509,9 @@ export default {
padding: 0;
line-height: 40px;
}
.el-table__body tr:hover > td.el-table__cell{
background: #DCEBFF;
}
::-webkit-scrollbar-track-piece {
//滚动条凹槽的颜色,还可以设置边框属性
background-color: #F3F4F5;
......@@ -538,6 +541,9 @@ export default {
th:nth-child(4){
border-right:0;
}
td:nth-child(4){
border-right:0;
}
}
}
.el-table__cell.gutter{
......
......@@ -295,5 +295,17 @@ export default {
}
.table-item{
padding: 16px 10px 16px 16px;
::v-deep .el-table{
/*.el-table__body-wrapper{*/
/*overflow:visible;*/
/*}*/
/*.el-table__body{*/
/*tr:first-child{*/
/*position: fixed;*/
/*top: 49px;*/
/*z-index: 9;*/
/*}*/
/*}*/
}
}
</style>
......@@ -6,7 +6,7 @@
<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="handleSearch">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择" @change="handleSearch" :popper-append-to-body='false'>
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" />
</el-select>
</el-form-item>
......@@ -31,11 +31,11 @@
<div class="table-item">
<el-table
v-loading="tableLoading"
class="fixed-table"
:data="tableData"
element-loading-text="Loading"
@sort-change="sortChange"
border
fit
highlight-current-row
v-if="tableDataTotal > 0"
:default-sort = "{prop: 'gdp', order: 'descending'}"
......@@ -150,7 +150,23 @@
this.dataRegion()
this.getYears()
},
mounted() {
window.addEventListener("scroll",this.scrolling)
},
beforeDestroy() {
window.removeEventListener("scroll", this.scrolling);
},
methods: {
scrolling() {
let el = document.getElementsByClassName("el-table__fixed-header-wrapper")[0]
let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop;
if (scrollTop>138){
let top = scrollTop-138
el.style.top = top+'px'
}else{
el.style.top = 0
}
},
getYears(){
getYears({}).then(res => {
this.yearOptions=res.data.reverse();
......@@ -322,6 +338,7 @@
</script>
<style lang="scss" scoped>
.qgjjdq{
.query-box{
margin: -8px 0 8px 0;
......@@ -346,13 +363,18 @@
}
}
}
::v-deep .el-select-dropdown{
.el-select-dropdown__item.hover{
color: #0081FF;
}
}
.content{
background: #ffffff;
padding: 16px;
margin-top: 12px;
/*height: calc(100vh - 300px);*/
.table-item{
position: relative;
/*position: relative;*/
.empty{
/*position: absolute;*/
/*top: 50%;*/
......@@ -379,6 +401,15 @@
}
}
::v-deep .el-table{
overflow:visible;
.el-table__header-wrapper{
position: sticky;
top:56px;
z-index: 9;
}
.el-table__fixed-header-wrapper{
z-index: 9;
}
th{
font-size: 12px !important;
font-weight: 400 !important;
......@@ -393,6 +424,9 @@
width: 10px;
}
}
::v-deep .fixed-table{
}
}
}
}
......
<template>
<div class="app-container container-box nationalEconomies">
<div class="app-container nationalEconomies">
<div class="header">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全国经济大全" name="first"></el-tab-pane>
......@@ -7,6 +7,7 @@
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
</el-tabs>
</div>
<Economic v-if="activeName === 'first'"></Economic>
<ZhaoBiao v-if="activeName === 'second'"></ZhaoBiao>
<ZhongBiao v-if="activeName === 'third'"></ZhongBiao>
......
......@@ -346,6 +346,7 @@ export default {
axisPointer:{ //悬浮于圆点展示标签
type:'axis'
},
extraCssText: 'border:0',
// trigger: 'axis'
},
legend: {
......
......@@ -61,69 +61,71 @@
</div>
</div>
</div>
<div class="recordlist" v-if="showtype=='gjdt'">
<div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="delform" v-if="isdel && delID == item.id">
<div class="words">是否删除该条记录</div>
<div>
<div class="btnsmall btn_primary h28" @click="delele">确定</div>
<div class="btnsmall btn_cancel h28" @click="isdel=false">取消</div>
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<div v-else>
<div class="recordlist" v-if="showtype=='gjdt'">
<div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="delform" v-if="isdel && delID == item.id">
<div class="words">是否删除该条记录</div>
<div>
<div class="btnsmall btn_primary h28" @click="delele">确定</div>
<div class="btnsmall btn_cancel h28" @click="isdel=false">取消</div>
</div>
</div>
</div>
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.createTime && item.createTime.slice(0, 16)}}</div>
<div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.createTime && item.createTime.slice(0, 16)}}</div>
<div class="operate">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png">
</div>
</div>
</div>
<div class="rec_con">
<div><strong>{{item.nickName}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div>
<div><span>{{item.content}}</span></div>
<div class="rec_text">
<span v-if="item.name">拜访对象:{{item.name||'--'}}</span>
<span v-if="showtype == 'gjdt' && item.companyName != ''">关联企业:{{item.companyName}}</span>
<span v-if="item.position">职位:{{item.position}}</span>
<span v-if="item.visitTime">拜访时间:{{item.visitTime.slice(0, 10)}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.nextVisitTime.slice(0, 10)}}</span>
<div class="rec_con">
<div><strong>{{item.nickName}}</strong> <span v-if="item.visitMode">({{item.visitMode}})</span></div>
<div><span>{{item.content}}</span></div>
<div class="rec_text">
<span v-if="item.name">拜访对象:{{item.name||'--'}}</span>
<span v-if="showtype == 'gjdt' && item.companyName != ''">关联企业:{{item.companyName}}</span>
<span v-if="item.position">职位:{{item.position}}</span>
<span v-if="item.visitTime">拜访时间:{{item.visitTime.slice(0, 10)}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.nextVisitTime.slice(0, 10)}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="recordlist" v-if="showtype=='gjjl' || showtype == 'projectgjdt' && recordlist.total>0">
<div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="delform" v-if="isdel && delID == item.id">
<div class="words">是否删除该条记录</div>
<div>
<div class="btnsmall btn_primary h28" @click="delele">确定</div>
<div class="btnsmall btn_cancel h28" @click="isdel=false">取消</div>
<div class="recordlist" v-if="showtype=='gjjl' || showtype == 'projectgjdt' && recordlist.total>0">
<div class="rec_detail" v-for="(item,index) in recordlist.rows">
<div class="delform" v-if="isdel && delID == item.id">
<div class="words">是否删除该条记录</div>
<div>
<div class="btnsmall btn_primary h28" @click="delele">确定</div>
<div class="btnsmall btn_cancel h28" @click="isdel=false">取消</div>
</div>
</div>
</div>
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.creatTime}}</div>
<div class="operate" v-if="isDisableds == false">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png">
<div class="rec_time">
<i class="el-icon-time"></i>
<div>{{item.creatTime}}</div>
<div class="operate" v-if="isDisableds == false">
<!--<img src="@/assets/images/edit.png">第一期不做编辑-->
<img @click="delRecord(item.id)" src="@/assets/images/delete.png">
</div>
</div>
</div>
<div class="rec_con">
<div><strong>{{item.nickName}}</strong> <span v-if="item.visitWay">({{item.visitWay}})</span></div>
<div><span>{{item.recordInfo}}</span></div>
<div class="rec_text">
<span v-if="item.projectName && showtype == 'projectgjdt'">关联项目:{{item.projectName||'--'}}</span>
<span v-if="item.visitPerson">拜访对象:{{item.visitPerson||'--'}}</span>
<span v-if="item.position">职位:{{item.position||'--'}}</span>
<span v-if="item.visitTime">拜访时间:{{item.visitTime}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.nextVisitTime || '--'}}</span>
<div class="rec_con">
<div><strong>{{item.nickName}}</strong> <span v-if="item.visitWay">({{item.visitWay}})</span></div>
<div><span>{{item.recordInfo}}</span></div>
<div class="rec_text">
<span v-if="item.projectName && showtype == 'projectgjdt'">关联项目:{{item.projectName||'--'}}</span>
<span v-if="item.visitPerson">拜访对象:{{item.visitPerson||'--'}}</span>
<span v-if="item.position">职位:{{item.position||'--'}}</span>
<span v-if="item.visitTime">拜访时间:{{item.visitTime}}</span>
<span v-if="item.nextVisitTime">下次拜访时间:{{item.nextVisitTime || '--'}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="tables" v-if="recordlist.total>pageSize">
<div class="tables" v-if="recordlist.total>pageSize">
<div class="bottems">
<el-pagination
background
......@@ -135,6 +137,7 @@
</el-pagination>
</div>
</div>
</div>
</div>
</el-card>
</div>
......@@ -145,7 +148,9 @@
import {getFollowList,addFollowRecord,getUserList,delFollowRecord} from '@/api/custom/custom'
import {getGJJL,addGJJL,delGJJL,relateProject,allRecord} from '@/api/project/project'
import {getEnterprise,getDictType,} from '@/api/main'
import skeleton from './skeleton'
export default {
components:{skeleton},
props:{
types: { //当前组件展示类型
type: String,
......@@ -191,6 +196,7 @@
projectList:[],//关联项目
isDisableds:this.isDisabled,
keys:1,
isSkeleton:true,
}
},
computed: {
......@@ -220,6 +226,7 @@
this.isDisableds = false
this.projectId = null//项目id暂时清空,必须手选id
relateProject(this.userId).then(res=>{
this.isSkeleton = false
this.projectList = res.data
})
this.getGJDT()
......@@ -323,6 +330,7 @@
param.customerId = this.customerIds
}
getFollowList(param).then(result=>{
this.isSkeleton = false
this.recordlist = result.code == 200?result:[]
this.recordlist.rows.forEach(item=>{
item.createTime = this.gettime(item.createTime)
......@@ -339,6 +347,7 @@
userId: this.userId
}
allRecord(param).then(result=>{
this.isSkeleton = false
this.recordlist = result.code == 200?result:[]
// this.recordlist.rows.forEach(item=>{
// item.createTime = this.gettime(item.createTime)
......@@ -354,10 +363,12 @@
businessId:this.projectId
}
getGJJL(param).then(result=>{
this.isSkeleton = false
this.recordlist = result.code == 200?result:[]
})
},
handleCurrentChange(val){
this.isSkeleton = true
this.pageNum = val
if(this.showtype == 'gjdt'){
this.getGJDTlist()
......
......@@ -3,51 +3,53 @@
<el-card class="box-card noborder">
<div class="cardtitles">工作待办</div>
<div class="records">
<div class="writeIn" v-if="isDisableds == false">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<div>新建一条工作代办,如:周五上午预约客户上门拜访</div>
</div>
<div class="writting" v-if="isEdit == true">
<div class="wri_top">
<div class="writeIn" v-if="isDisableds == false">
<div class="default" v-if="isEdit == false" @click="getEdit">
<img src="@/assets/images/project/add_3.png">
<el-input v-model="queryParam.task" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
<div>新建一条工作代办,如:周五上午预约客户上门拜访</div>
</div>
<div class="wr_bot">
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker value-format="yyyy-MM-dd"
v-model="queryParam.finishTime"
type="date"
placeholder="完成时间">
</el-date-picker>
<div class="writting" v-if="isEdit == true">
<div class="wri_top">
<img src="@/assets/images/project/add_3.png">
<el-input v-model="queryParam.task" placeholder="新建一条跟进记录,如:周五上午预约客户上门拜访"></el-input>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;">
</el-input>
<div class="wr_bot">
<div class="times"><img src="@/assets/images/project/ico_4.png">
<el-date-picker value-format="yyyy-MM-dd"
v-model="queryParam.finishTime"
type="date"
placeholder="完成时间">
</el-date-picker>
</div>
<div class="sels">
<img src="@/assets/images/project/ico_2.png">
<el-input v-model="queryParam.target" placeholder="拜访对象" style="width: 100px;">
</el-input>
</div>
<div class="btn btn_primary h32 wc" @click="add" :class="{'btn_disabled':queryParam.task == ''}">完成</div>
</div>
<div class="btn btn_primary h32 wc" @click="add" :class="{'btn_disabled':queryParam.task == ''}">完成</div>
</div>
</div>
</div>
<div class="tasktitle"><strong>我的任务</strong><span @click="getYQ">{{yqnum}}条已逾期</span><!--<span class="on">4条已逾期</span>--></div>
<div class="tasklist" v-for="(item,index) in datalist.rows">
<div class="task_name">{{item.task}}</div>
<div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div>
<div class="select" :class="{'on':item.state == 2}">
<div class="select-popper">
<span>
{{item.state == 2?"已完成":"未完成"}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-if="isDisableds == false" placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-option label="未完成" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
</div></div>
</div>
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<div v-else>
<div class="tasktitle"><strong>我的任务</strong><span @click="getYQ">{{yqnum}}条已逾期</span><!--<span class="on">4条已逾期</span>--></div>
<div class="tasklist" v-for="(item,index) in datalist.rows">
<div class="task_name">{{item.task}}</div>
<div class="task_con"><span>发起时间:{{item.createTime}}</span><span v-if="item.target">关联客户:<font class="wordprimary">{{item.target}}</font></span><span v-if="item.finishTime">完成时间:{{item.finishTime}}</span></div>
<div class="select" :class="{'on':item.state == 2}">
<div class="select-popper">
<span>
{{item.state == 2?"已完成":"未完成"}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-if="isDisableds == false" placeholder="请选择" v-model="item.state" class="select-multiple" @change="changes(item.id,$event)">
<el-option label="未完成" value="1"></el-option>
<el-option label="已完成" value="2"></el-option>
</el-select>
</div></div>
</div>
<div class="tables" v-if="datalist.total>searchPram.pageSize">
<div class="tables" v-if="datalist.total>searchPram.pageSize">
<div class="bottems">
<el-pagination
background
......@@ -59,6 +61,7 @@
</el-pagination>
</div>
</div>
</div>
</div>
</el-card>
</div>
......@@ -68,8 +71,10 @@
import "@/assets/styles/project.scss"
import "@/assets/styles/public.css"
import {addGZDB,getGZDB,editGZDB} from '@/api/project/project'
import skeleton from './skeleton'
export default {
components:{skeleton},
name: 'gjjl',
props: {
detailId: { //从企业详情跳转过来ID
......@@ -98,6 +103,7 @@
datalist:[],
yqnum:0,//已逾期数量
isDisableds:this.isDisabled,
isSkeleton:true,
}
},
created(){
......@@ -124,7 +130,9 @@
})
},
getList(){
this.isSkeleton = true
getGZDB(this.searchPram).then(result=>{
this.isSkeleton = false
this.datalist = result.code == 200?result:[]
let num = 0
this.datalist.rows.forEach(item=>{
......
......@@ -2,7 +2,9 @@
<div>
<el-card class="box-card noborder">
<div class="cardtitles">基本信息</div>
<div class="tables">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="tables" v-else>
<el-table
:data="tableData"
stripe border
......@@ -135,7 +137,9 @@
<script>
import "@/assets/styles/project.scss"
import {getLXR,editLXR,addLXR} from '@/api/project/project'
import skeleton from './skeleton'
export default {
components:{skeleton},
name: 'lxr',
props: {
detailId: { //从企业详情跳转过来ID
......@@ -163,6 +167,7 @@
projectname:this.$route.query.projectname,
queryParam:[],
isDisableds:this.isDisabled,
isSkeleton:true,
}
},
created(){
......@@ -180,7 +185,9 @@
this.isnew = false
},
getList(){
this.isSkeleton = true
getLXR(this.searchParam).then(result=>{
this.isSkeleton = false
this.tableData = result.code == 200?result.rows:[]
this.total = result.code == 200?result.total:0
})
......
<template>
<el-skeleton animated>
<template slot="template">
<el-skeleton-item variant="text" style="width: 60%;"/>
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 60%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
</template>
</el-skeleton>
</template>
<script>
export default {
name: 'skeleton'
}
</script>
<style lang="scss" scoped>
.el-skeleton__item{
height: 20px;
border-radius: 0;
margin: 9px 0;
background: #f0f0f0;
}
</style>
......@@ -7,14 +7,16 @@
<el-select class="select" placeholder="企业类型" clearable 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>
<div class="searchInput">
<el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName"></el-input>
<div class="searchInput small">
<el-input type="text" placeholder="输入关键词查询" clearable v-model="searchParam.companyName">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png"></i></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="btn btn_primary h32 b3" @click="opennew" v-if="isDisableds == false"><div class="img img1"></div>添加相关企业</div>
</div>
<div class="document tables">
<el-table
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<el-table v-else
:data="tableData.rows"
style="width: 100%"
:default-sort = "{prop: 'depth', order: 'descending'}"
......@@ -143,7 +145,9 @@
import "@/assets/styles/project.scss"
import {getXGQY,addXGQY,delXGQY} from '@/api/project/project'
import {getDictType,getEnterprise} from '@/api/main'
import skeleton from './skeleton'
export default {
components:{skeleton},
name: 'xgqy',
props: {
detailId: { //从企业详情跳转过来ID
......@@ -189,6 +193,7 @@
isDisableds:this.isDisabled,
showlist:false,
companData:[],
isSkeleton:true,
}
},
created(){
......@@ -261,8 +266,9 @@
})
},
getlist(){
this.isSkeleton = true
getXGQY(this.searchParam).then(result=>{
console.log(result)
this.isSkeleton = false
this.tableData = result
})
},
......
......@@ -5,8 +5,10 @@
<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" clearable placeholder="输入关键词查询"></el-input>
<div class="searchInput small">
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询">
<i slot="prefix" class="el-input__icon"><img src="@/assets/images/project/sousuo.png"></i>
</el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<!--<div class="btn btn_primary h32 b2" @click="getUP" v-if="fileDatas.total>0"><div class="img img2"></div>上传</div>-->
......@@ -58,7 +60,8 @@
</div>
</div>
<div class="document tables">
<el-table
<skeleton v-if="isSkeleton" style="padding-top: 16px"></skeleton>
<el-table v-else
:data="fileDatas.rows"
style="width: 100%"
:default-sort = "{prop: 'creatTime', order: 'descending'}"
......@@ -147,10 +150,13 @@
</template>
<script>
import "@/assets/styles/project.scss"
import { getToken } from "@/utils/auth";
import { getZLWD ,delZLWD} from "@/api/project/project";
import '@/assets/styles/project.scss'
import { getToken } from '@/utils/auth'
import { delZLWD, getZLWD } from '@/api/project/project'
import skeleton from './skeleton'
export default {
components:{skeleton},
name: 'zlwd',
props: {
detailId: { //从企业详情跳转过来ID
......@@ -181,6 +187,7 @@
ondel:"",
isDisableds:this.isDisabled,
keys:1,
isSkeleton:true,
}
},
created(){
......@@ -195,8 +202,10 @@
this.handleCurrentChange(1)
},
getList(){
this.isSkeleton = true
getZLWD(this.param).then(res=>{
this.fileDatas = res
this.isSkeleton = false
if(this.fileDatas.rows!=null && this.fileDatas.rows.length>0){
this.fileDatas.rows.forEach(item=>{
let names = item.filePath.split('/')
......@@ -300,6 +309,7 @@
</script>
<style lang="scss" scoped>
v-deep.el-upload:focus{
color: #FFFFFF !important;
}
......@@ -382,7 +392,4 @@
}
}
}
.searchInput .el-input{
width: 68%;
}
</style>
......@@ -10,7 +10,7 @@
<el-tab-pane label="公司全部项目" name="second"></el-tab-pane>
<div class="searchInput">
<el-input type="text" v-model="searchParam.projectName" placeholder="请输入项目或业主单位名称关键词进行搜索"></el-input>
<el-input type="text" style="width: 530px;" v-model="searchParam.projectName" placeholder="请输入项目或业主单位名称关键词进行搜索"></el-input>
<div class="btn" @click="getList(1)">搜索</div>
</div>
<div class="sellist">
......@@ -97,14 +97,16 @@
<el-card class="box-card noborder overflows">
<div class="titles">项目明细
<div class="dc">
<div class="total">{{total}}</div>
<!--<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">-->
<div class="btn-export" @click="dc"><img src="@/assets/images/EXCEL.png">导出EXCEL</div>
<!--</el-tooltip>-->
</div>
<div class="dc">
<div class="total">{{total}}</div>
<!--<el-tooltip class="item" effect="dark" content="功能正在开发中" placement="top">-->
<div class="btn-export" @click="dc"><img src="@/assets/images/EXCEL.png">导出EXCEL</div>
<!--</el-tooltip>-->
</div>
</div>
<div class="tables" v-if="total == 0">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="tables" v-if="total == 0 && !isSkeleton">
<div class="empty">
<img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div>
......@@ -113,7 +115,7 @@
<div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div>
</div>
</div>
<div class="datalist">
<div class="datalist" v-if="!isSkeleton">
<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>
......@@ -182,9 +184,10 @@
import {getDictType,} from '@/api/main'
import addproject from './component/addProject'
import batchimport from './component/batchImport'
import skeleton from './component/skeleton'
export default {
name: 'ProjectList',
components:{addproject,batchimport},
components:{addproject,batchimport,skeleton},
data() {
return {
types:'project',
......@@ -240,6 +243,7 @@ export default {
datalist:[],//列表数据
ondel:-1,
total:0,
isSkeleton:true
}
},
created() {
......@@ -289,6 +293,7 @@ export default {
},
//获取商机列表
getList(pageNum){
this.isSkeleton = true
this.searchParam.pageNum = pageNum
if(this.activeName == 'first'){
this.searchParam.userId = this.$store.state.user.userId
......@@ -297,6 +302,7 @@ export default {
}
this.searchParam.ownerCompany = this.searchParam.projectName
getProjectlist(this.searchParam).then(result=>{
this.isSkeleton = false
if(result.code == 200){
this.datalist = result.rows
this.total = result.total
......@@ -382,7 +388,7 @@ export default {
this.$router.push({ path: '/project/projectList/detail', query: {id:id,tag:tag} });
},
handleClick(){
this.getList(1)
this.reset()
},
handleChange(value) {
// console.log(value);
......
......@@ -34,8 +34,8 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://47.104.91.229:9099/prod-api`,
// target: `http://122.9.160.122:9011`,
// target: `http://47.104.91.229:9099/prod-api`,
target: `http://122.9.160.122:9011`,
// target: `http://192.168.60.126:9011`,
// target: `http://192.168.60.27:8766`,
changeOrigin: true,
......
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