Commit 26b5b2b7 authored by danfuman's avatar danfuman

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

parents 7b20ff30 c9b8058d
...@@ -4,6 +4,7 @@ import com.dsk.common.core.controller.BaseController; ...@@ -4,6 +4,7 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.system.domain.business.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.service.IBusinessBacklogService; import com.dsk.system.service.IBusinessBacklogService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -31,10 +32,10 @@ public class BusinessBacklogController extends BaseController ...@@ -31,10 +32,10 @@ public class BusinessBacklogController extends BaseController
*/ */
// @PreAuthorize("@ss.hasPermi('system:backlog:list')") // @PreAuthorize("@ss.hasPermi('system:backlog:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(BusinessBacklog businessBacklog) public TableDataInfo list(BusinessBacklogListDto dto)
{ {
startPage(); startPage();
return getDataTable(businessBacklogService.selectBusinessBacklogList(businessBacklog)); return getDataTable(businessBacklogService.selectBusinessBacklogList(dto));
} }
/** /**
......
...@@ -52,8 +52,7 @@ public class BusinessInfoController extends BaseController ...@@ -52,8 +52,7 @@ public class BusinessInfoController extends BaseController
public TableDataInfo list(BusinessListDto dto) public TableDataInfo list(BusinessListDto dto)
{ {
startPage(); startPage();
List<BusinessListVo> list = businessInfoService.selectBusinessInfoList(dto); return getDataTable(businessInfoService.selectBusinessInfoList(dto));
return getDataTable(list);
} }
/** /**
......
...@@ -69,6 +69,9 @@ public class SysUser extends BaseEntity ...@@ -69,6 +69,9 @@ public class SysUser extends BaseEntity
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT) @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
private Date loginDate; private Date loginDate;
//是否体验用户 0否 1是
private Integer isExperience;
/** 部门对象 */ /** 部门对象 */
@Excels({ @Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT), @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
...@@ -296,6 +299,14 @@ public class SysUser extends BaseEntity ...@@ -296,6 +299,14 @@ public class SysUser extends BaseEntity
this.roleId = roleId; this.roleId = roleId;
} }
public Integer getIsExperience() {
return isExperience;
}
public void setIsExperience(Integer isExperience) {
this.isExperience = isExperience;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
...@@ -312,6 +323,7 @@ public class SysUser extends BaseEntity ...@@ -312,6 +323,7 @@ public class SysUser extends BaseEntity
.append("delFlag", getDelFlag()) .append("delFlag", getDelFlag())
.append("loginIp", getLoginIp()) .append("loginIp", getLoginIp())
.append("loginDate", getLoginDate()) .append("loginDate", getLoginDate())
.append("isExperience", getIsExperience())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
......
package com.dsk.common.dtos;
import lombok.Data;
import java.util.Objects;
/**
* @ClassName UrbanInvestmentPlatformSubjectLevelDto
* @Description 信用评级
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class UrbanInvestmentPlatformSubjectLevelDto {
/**
* 企业Id
*/
private Long companyId;
/**
* 主体评级
*/
private String bratingSubjectLevel;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
UrbanInvestmentPlatformSubjectLevelDto that = (UrbanInvestmentPlatformSubjectLevelDto) o;
return Objects.equals(companyId, that.companyId);
}
@Override
public int hashCode() {
return Objects.hash(companyId);
}
}
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -81,11 +82,13 @@ export default { ...@@ -81,11 +82,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await oftenAgencyPage(param) let res = await oftenAgencyPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows.map((item)=>{ this.tableData = res.rows.map((item)=>{
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo
return item return item
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
...@@ -70,11 +71,13 @@ export default { ...@@ -70,11 +71,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await tenderPage(param) let res = await tenderPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -83,11 +84,13 @@ export default { ...@@ -83,11 +84,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await clientPage(param) let res = await clientPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){ if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => { this.tableData.forEach(item => {
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -93,11 +94,13 @@ export default { ...@@ -93,11 +94,13 @@ export default {
}, },
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await historySendPage(param) let res = await historySendPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -83,11 +84,13 @@ export default { ...@@ -83,11 +84,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await supplierPage(param) let res = await supplierPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){ if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => { this.tableData.forEach(item => {
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
<div class="app-container part-container"> <div class="app-container part-container">
<div class="financial-header"> <div class="financial-header">
<div class="common-title">财务简析</div> <div class="common-title">财务简析</div>
<div class="flex-box header-box"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box header-box" v-else>
<div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div> <div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div> <div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div> <div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
...@@ -11,7 +13,9 @@ ...@@ -11,7 +13,9 @@
</div> </div>
<div class="financial-zcqk"> <div class="financial-zcqk">
<div class="common-title">资产情况</div> <div class="common-title">资产情况</div>
<ul class="zcqk-list"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''"> <li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''"> <div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div> <div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div>
...@@ -22,7 +26,9 @@ ...@@ -22,7 +26,9 @@
</div> </div>
<div class="financial-ylnl"> <div class="financial-ylnl">
<div class="common-title">盈利能力</div> <div class="common-title">盈利能力</div>
<ul class="flex-box ylnl-list"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="flex-box ylnl-list" v-else>
<li v-for="(item, index) in ylnlList" :key="index" :style="index===0?'border-left: 0;':''"> <li v-for="(item, index) in ylnlList" :key="index" :style="index===0?'border-left: 0;':''">
<div class="ylnl-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div> <div class="ylnl-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="ylnl-title">{{item.name}}</div> <div class="ylnl-title">{{item.name}}</div>
...@@ -31,7 +37,9 @@ ...@@ -31,7 +37,9 @@
</div> </div>
<div class="financial-zwqk"> <div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div> <div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box zwqk-box" v-else>
<div class="zwqk-info"> <div class="zwqk-info">
<div class="zwqk-title">总负债</div> <div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><template v-if="financialDetail.totalLiabilities"><span>{{saveFixed(financialDetail.totalLiabilities)}}</span>亿元</template><template v-else><span>--</span></template></div> <div class="zwqk-amount"><template v-if="financialDetail.totalLiabilities"><span>{{saveFixed(financialDetail.totalLiabilities)}}</span>亿元</template><template v-else><span>--</span></template></div>
...@@ -53,7 +61,9 @@ ...@@ -53,7 +61,9 @@
</div> </div>
<div class="financial-zcqk"> <div class="financial-zcqk">
<div class="common-title">资金情况</div> <div class="common-title">资金情况</div>
<ul class="zcqk-list"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''"> <li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''"> <div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div> <div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div>
...@@ -69,15 +79,17 @@ ...@@ -69,15 +79,17 @@
import {saveFixed} from "@/assets/js/common" import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial' import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import skeleton from '@/views/project/projectList/component/skeleton'
import NoData from '../component/noData' import NoData from '../component/noData'
export default { export default {
name: 'Financial', name: 'Financial',
props: ['companyId'], props: ['companyId'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
saveFixed, saveFixed,
financialDetail: {}, financialDetail: {},
// 资产情况 // 资产情况
...@@ -138,10 +150,12 @@ export default { ...@@ -138,10 +150,12 @@ export default {
}, },
methods: { methods: {
async handleQuery() { async handleQuery() {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let res = await financial({cid:this.companyId}) let res = await financial({cid:this.companyId})
this.tableLoading = false this.tableLoading = false
if(res.code==200 && res.data){ if(res.code==200 && res.data){
this.isSkeleton = false;
this.financialDetail = res.data this.financialDetail = res.data
//资产情况 //资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div id="partBox" v-if="companyId"> <div id="partBox" v-if="companyId">
<template v-if="isCompany"> <template v-if="isCompany">
<!-- 企业概览 --> <!-- 企业概览 -->
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :companyInfo="companyInfo" /> <Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :isSkeleton="isSkeleton" :companyInfo="companyInfo" />
<Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" /> <Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" /> <Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" /> <Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
...@@ -150,6 +150,7 @@ export default { ...@@ -150,6 +150,7 @@ export default {
}, },
data() { data() {
return { return {
isSkeleton:true,
companyInfo: {}, companyInfo: {},
customerInfo: {}, customerInfo: {},
companyId: '', //企业Id(测试默认3068) companyId: '', //企业Id(测试默认3068)
...@@ -250,8 +251,10 @@ export default { ...@@ -250,8 +251,10 @@ export default {
} }
}, },
async handleQuery() { async handleQuery() {
this.isSkeleton = true;
let res = await infoHeader({companyId:this.companyId}) let res = await infoHeader({companyId:this.companyId})
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.companyInfo = res.data || {} this.companyInfo = res.data || {}
let data = { let data = {
pageNum: 1, pageNum: 1,
......
import {encodeStr} from "@/assets/js/common" import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm" import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables" import Tables from "../component/Tables"
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
components: { components: {
HeadForm, HeadForm,
Tables Tables,
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
encodeStr encodeStr
} }
}, },
......
...@@ -7,8 +7,9 @@ ...@@ -7,8 +7,9 @@
:total="tableDataTotal" :total="tableDataTotal"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
...@@ -33,15 +34,18 @@ ...@@ -33,15 +34,18 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {creditXzxkPage} from '@/api/detail/party-a/opport' import {creditXzxkPage} from '@/api/detail/party-a/opport'
export default { export default {
name: 'Administrative', name: 'Administrative',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
...@@ -79,11 +83,13 @@ export default { ...@@ -79,11 +83,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await creditXzxkPage(param) let res = await creditXzxkPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){ if(res.rows&&res.rows.length>0){
res.rows.forEach(item => { res.rows.forEach(item => {
item.smallContent = item.content.replace(/<.*?>/ig,"") item.smallContent = item.content.replace(/<.*?>/ig,"")
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -35,15 +36,18 @@ ...@@ -35,15 +36,18 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {bidNoticeArea, bidNoticeTenderStage, bidNoticePage} from '@/api/detail/party-a/opport' import {bidNoticeArea, bidNoticeTenderStage, bidNoticePage} from '@/api/detail/party-a/opport'
export default { export default {
name: 'Announcement', name: 'Announcement',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
...@@ -119,11 +123,13 @@ export default { ...@@ -119,11 +123,13 @@ export default {
} }
}, },
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = this.getAreaList(params || this.queryParams) let param = this.getAreaList(params || this.queryParams)
let res = await bidNoticePage(param) let res = await bidNoticePage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
@handle-search="handleSearch" @handle-search="handleSearch"
:total="tableDataTotal" :total="tableDataTotal"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -35,14 +36,17 @@ ...@@ -35,14 +36,17 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import {bidPlanPage,bidPlanProjectType} from '@/api/detail/party-a/opport' import {bidPlanPage,bidPlanProjectType} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Biddingplan', name: 'Biddingplan',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
...@@ -88,11 +92,13 @@ export default { ...@@ -88,11 +92,13 @@ export default {
} }
}, },
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await bidPlanPage(param) let res = await bidPlanPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -32,14 +33,17 @@ ...@@ -32,14 +33,17 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import {specialDebtProjectPage} from '@/api/detail/party-a/opport' import {specialDebtProjectPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Bond', name: 'Bond',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 1, sort: 1,
...@@ -69,11 +73,13 @@ export default { ...@@ -69,11 +73,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await specialDebtProjectPage(param) let res = await specialDebtProjectPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -32,14 +33,17 @@ ...@@ -32,14 +33,17 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import {landUse, landTransactionPage} from '@/api/detail/party-a/opport' import {landUse, landTransactionPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Landtransaction', name: 'Landtransaction',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
...@@ -86,11 +90,13 @@ export default { ...@@ -86,11 +90,13 @@ export default {
} }
}, },
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await landTransactionPage(param) let res = await landTransactionPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
if(this.tableData.length>0){ if(this.tableData.length>0){
this.tableData.map(item=>{ this.tableData.map(item=>{
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:defaultSort="defaultSort" :defaultSort="defaultSort"
:tableLoading="tableLoading" :tableLoading="tableLoading"
...@@ -35,11 +36,13 @@ ...@@ -35,11 +36,13 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import { approvalProjectPage } from '@/api/detail/party-a/opport' import { approvalProjectPage } from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Proposed', name: 'Proposed',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
...@@ -66,7 +69,8 @@ export default { ...@@ -66,7 +69,8 @@ export default {
//列表 //列表
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0 tableDataTotal:0,
isSkeleton:true,
} }
}, },
computed: { computed: {
...@@ -76,11 +80,13 @@ export default { ...@@ -76,11 +80,13 @@ export default {
}, },
methods: { methods: {
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await approvalProjectPage(param) let res = await approvalProjectPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables <tables
v-else
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
...@@ -40,12 +41,14 @@ ...@@ -40,12 +41,14 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import { bidNoticeProProjectType, bidNoticeProProjectPurposes, bidNoticeProAssessmentWay, bidNoticeProPage } from '@/api/detail/party-a/opport' import { bidNoticeProProjectType, bidNoticeProProjectPurposes, bidNoticeProAssessmentWay, bidNoticeProPage } from '@/api/detail/party-a/opport'
export default { export default {
name: 'Tencent', name: 'Tencent',
props: ['companyId'], props: ['companyId'],
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
data() { data() {
return { return {
...@@ -86,7 +89,8 @@ export default { ...@@ -86,7 +89,8 @@ export default {
//列表 //列表
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0 tableDataTotal:0,
isSkeleton:true,
} }
}, },
computed: { computed: {
...@@ -125,11 +129,13 @@ export default { ...@@ -125,11 +129,13 @@ export default {
} }
}, },
async handleQuery(params) { async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
let res = await bidNoticeProPage(param) let res = await bidNoticeProPage(param)
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){ if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => { this.tableData.forEach(item => {
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="bid-zbph"> <div class="bid-zbph">
<div class="common-title">招标偏好</div> <div class="common-title">招标偏好</div>
<template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="(dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0)&& !isSkeleton">
<div class="flex-box zbph-item"> <div class="flex-box zbph-item">
<div>历史招标总数 <div>历史招标总数
<el-popover <el-popover
...@@ -45,9 +46,10 @@ ...@@ -45,9 +46,10 @@
</div> </div>
<div class="bid-ywwl"> <div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div> <div class="common-title">业务往来供应商TOP5</div>
<skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<div class="table-item"> <div class="table-item">
<el-table <el-table
v-if="tableData.length>0" v-if="tableData.length>0&& !isSkeleton1"
:data="tableData" :data="tableData"
style="width: 100%" style="width: 100%"
> >
...@@ -96,15 +98,18 @@ import {encodeStr} from "@/assets/js/common" ...@@ -96,15 +98,18 @@ import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview' import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../../component/noData' import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Bidding', name: 'Bidding',
props: ['companyId'], props: ['companyId'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
encodeStr, encodeStr,
isSkeleton:true,
isSkeleton1:true,
datatype:'1',//切换类型 datatype:'1',//切换类型
dataAll: {}, dataAll: {},
dtdata:[],//数据 dtdata:[],//数据
...@@ -121,8 +126,10 @@ export default { ...@@ -121,8 +126,10 @@ export default {
}, },
methods: { methods: {
async handleBid(){ async handleBid(){
this.isSkeleton = true;
let res = await bidDataGroup({cid: this.companyId, spanId: this.datatype}) let res = await bidDataGroup({cid: this.companyId, spanId: this.datatype})
if(res.code==200 && res.data){ if(res.code==200 && res.data){
this.isSkeleton = false;
let {totalCount, lastYearCount, bidAmount} = res.data let {totalCount, lastYearCount, bidAmount} = res.data
this.dataAll = {totalCount, lastYearCount, bidAmount} this.dataAll = {totalCount, lastYearCount, bidAmount}
this.dtdata=res.data.groupCount.map(item=>{ this.dtdata=res.data.groupCount.map(item=>{
...@@ -139,8 +146,10 @@ export default { ...@@ -139,8 +146,10 @@ export default {
} }
}, },
async handleSupplier() { async handleSupplier() {
this.isSkeleton1 = true;
let res = await supplierPage({cid: this.companyId, sort: 1, pageNum: 1, pageSize: 5}) let res = await supplierPage({cid: this.companyId, sort: 1, pageNum: 1, pageSize: 5})
if(res.code==200){ if(res.code==200){
this.isSkeleton1 = false;
this.tableData = res.rows this.tableData = res.rows
this.tableData.forEach((item, index) => { this.tableData.forEach((item, index) => {
item.amount = item.amount?parseFloat(item.amount.toFixed(6)):0 item.amount = item.amount?parseFloat(item.amount.toFixed(6)):0
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
<el-tab-pane label="按金额" name="0"></el-tab-pane> <el-tab-pane label="按金额" name="0"></el-tab-pane>
<el-tab-pane label="按项目" name="1"></el-tab-pane> <el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="flex-box clue-box"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box clue-box" v-else>
<div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div> <div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="table-item" v-if="viewData.length>0"> <div class="table-item" v-if="viewData.length>0">
...@@ -43,6 +44,7 @@ ...@@ -43,6 +44,7 @@
</template> </template>
<script> <script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {projectTenderDataGroup} from '@/api/detail/party-a/overview' import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common" import {changePath} from "@/assets/js/common"
...@@ -51,11 +53,12 @@ export default { ...@@ -51,11 +53,12 @@ export default {
name: 'Busclue', name: 'Busclue',
props: ['companyId', 'statistic'], props: ['companyId', 'statistic'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
viewData:[], viewData:[],
isSkeleton:true,
activeIndex:0, activeIndex:0,
typeList:[ typeList:[
{name: '土地交易', pathName: 'landtransaction', ico: require("@/assets/images/detail/overview/clue_ico1.png"), count: 0, category:'global', field:'landInfo', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico1.png")}, {name: '土地交易', pathName: 'landtransaction', ico: require("@/assets/images/detail/overview/clue_ico1.png"), count: 0, category:'global', field:'landInfo', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico1.png")},
...@@ -75,8 +78,10 @@ export default { ...@@ -75,8 +78,10 @@ export default {
}, },
methods: { methods: {
async handleQuery(){ async handleQuery(){
this.isSkeleton = true;
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex}) let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex})
if(res.code==200 && res.data){ if(res.code==200 && res.data){
this.isSkeleton = false;
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur) let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => { this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))} let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))}
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
<el-tab-pane label="总资产" name="2"></el-tab-pane> <el-tab-pane label="总资产" name="2"></el-tab-pane>
<el-tab-pane label="净资产" name="3"></el-tab-pane> <el-tab-pane label="净资产" name="3"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="flex-box finance-box"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box finance-box" v-else>
<div class="finance-echarts" v-if="viewData.length>0"><div id="echartsFinance" style="width: 100%;height:300px; margin: 0 auto;"></div></div> <div class="finance-echarts" v-if="viewData.length>0"><div id="echartsFinance" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="finance-no-data" v-else> <div class="finance-no-data" v-else>
<no-data /> <no-data />
...@@ -61,6 +62,7 @@ ...@@ -61,6 +62,7 @@
</template> </template>
<script> <script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {financialData} from '@/api/detail/party-a/overview' import {financialData} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../../component/noData' import NoData from '../../component/noData'
...@@ -68,11 +70,12 @@ export default { ...@@ -68,11 +70,12 @@ export default {
name: 'Finance', name: 'Finance',
props: ['companyId'], props: ['companyId'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
viewData:[], viewData:[],
isSkeleton:true,
activeIndex:0, activeIndex:0,
vals:['operatingIncome','netProfit','totalAssets','netAssets'], vals:['operatingIncome','netProfit','totalAssets','netAssets'],
names:['营业收入(亿)','净利润(亿)','总资产(亿)','净资产(亿)'], names:['营业收入(亿)','净利润(亿)','总资产(亿)','净资产(亿)'],
...@@ -85,8 +88,10 @@ export default { ...@@ -85,8 +88,10 @@ export default {
}, },
methods: { methods: {
async handleQuery(val){ async handleQuery(val){
this.isSkeleton = true;
let res = await financialData({cid: this.companyId}) let res = await financialData({cid: this.companyId})
if(res.code==200 && res.data){ if(res.code==200 && res.data){
this.isSkeleton = false;
this.viewData = res.data this.viewData = res.data
if(this.viewData.length>0){ if(this.viewData.length>0){
this.$nextTick(() => { this.$nextTick(() => {
......
<template> <template>
<div class="app-container operations-container"> <div class="app-container operations-container">
<div class="common-title">公司经营</div> <div class="common-title">公司经营</div>
<div class="part-swiper" v-if="operList.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="part-swiper" v-if="operList.length>0&&!isSkeleton">
<div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''"> <div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper"> <ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index"> <li class="swiper-slide" v-for="(item, index) in operList" :key="index">
...@@ -18,7 +19,7 @@ ...@@ -18,7 +19,7 @@
<div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div> <div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div> <div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div> </div>
<div class="part-swiper" v-else> <div class="part-swiper" v-if="operList.length==0&&!isSkeleton">
<no-data /> <no-data />
</div> </div>
<div class="flex-box operations-list"> <div class="flex-box operations-list">
...@@ -33,17 +34,19 @@ ...@@ -33,17 +34,19 @@
<script> <script>
import {bondCreditRating} from '@/api/detail/party-a/overview' import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js') var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/lib/swiper/swiper-bundle.css" import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData' import NoData from '../../component/noData'
export default { export default {
name: 'Overview', name: 'Overview',
props: ['companyId', 'financial'], props: ['companyId', 'financial'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
operList: [], operList: [],
isSkeleton:true,
gsjyList: [ gsjyList: [
{ name: '总资产', ico: require('@/assets/images/detail/overview/gsjy_ico1.png'), amount: ''}, { name: '总资产', ico: require('@/assets/images/detail/overview/gsjy_ico1.png'), amount: ''},
{ name: '净资产', ico: require('@/assets/images/detail/overview/gsjy_ico2.png'), amount: ''}, { name: '净资产', ico: require('@/assets/images/detail/overview/gsjy_ico2.png'), amount: ''},
...@@ -71,8 +74,10 @@ export default { ...@@ -71,8 +74,10 @@ export default {
}) })
}, },
async handleQuery() { async handleQuery() {
this.isSkeleton = true;
let res = await bondCreditRating({cid: this.companyId}) let res = await bondCreditRating({cid: this.companyId})
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
this.operList = res.data || [] this.operList = res.data || []
this.$nextTick(() => { this.$nextTick(() => {
this.companySwiper() this.companySwiper()
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
<el-tab-pane label="对外投资" :disabled="shipTotal<1" name="second"></el-tab-pane> <el-tab-pane label="对外投资" :disabled="shipTotal<1" name="second"></el-tab-pane>
<el-tab-pane label="分支机构" :disabled="affiliatesTotal<1" name="third"></el-tab-pane> <el-tab-pane label="分支机构" :disabled="affiliatesTotal<1" name="third"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="table-item"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div> <div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'"> <el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'">
<el-table-column label="序号" width="55" align="left" fixed> <el-table-column label="序号" width="55" align="left" fixed>
...@@ -103,14 +104,16 @@ ...@@ -103,14 +104,16 @@
import {encodeStr, changePath} from "@/assets/js/common" import {encodeStr, changePath} from "@/assets/js/common"
import {bestStockPage, investment,affiliates} from '@/api/detail/party-a/overview' import {bestStockPage, investment,affiliates} from '@/api/detail/party-a/overview'
import NoData from '../../component/noData' import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Relationship', name: 'Relationship',
props: ['companyId', 'financial'], props: ['companyId', 'financial'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
encodeStr, encodeStr,
activeName:'first', activeName:'first',
//表格数据 //表格数据
...@@ -147,8 +150,10 @@ export default { ...@@ -147,8 +150,10 @@ export default {
}, },
methods: { methods: {
async handleQuery(){ async handleQuery(){
this.isSkeleton = true;
let res = await bestStockPage(this.holderParams) let res = await bestStockPage(this.holderParams)
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){ if(res.rows&&res.rows.length>0){
res.rows.forEach(item => { res.rows.forEach(item => {
item.stockPercent?item.stockPercent = parseFloat(Number(item.stockPercent*100).toFixed(4))+'%':'' item.stockPercent?item.stockPercent = parseFloat(Number(item.stockPercent*100).toFixed(4))+'%':''
......
<template> <template>
<div class="app-container rela-container"> <div class="app-container rela-container">
<div class="common-title">高管</div> <div class="common-title">高管</div>
<div class="table-item"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<el-table <el-table
v-if="tableData.length>0" v-if="tableData.length>0"
:data="tableData" :data="tableData"
...@@ -36,12 +37,13 @@ ...@@ -36,12 +37,13 @@
<script> <script>
import {keymembers} from "@/api/detail/party-a/overview" import {keymembers} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData' import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Senior', name: 'Senior',
props: ['companyId'], props: ['companyId'],
data() { data() {
return { return {
isSkeleton:true,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
...@@ -52,7 +54,7 @@ export default { ...@@ -52,7 +54,7 @@ export default {
} }
}, },
components: { components: {
NoData NoData,skeleton
}, },
created() { created() {
this.handleQuery() this.handleQuery()
...@@ -61,8 +63,10 @@ export default { ...@@ -61,8 +63,10 @@ export default {
}, },
methods: { methods: {
async handleQuery(){ async handleQuery(){
this.isSkeleton = true;
let res = await keymembers(this.queryParams) let res = await keymembers(this.queryParams)
if(res.code==200){ if(res.code==200){
this.isSkeleton = false;
let tempRows = [] let tempRows = []
if(res.rows&&res.rows.length>0){ if(res.rows&&res.rows.length>0){
let arrLength = res.rows.length%2==0?(res.rows.length/2):(Math.floor(res.rows.length/2)+1) let arrLength = res.rows.length%2==0?(res.rows.length/2):(Math.floor(res.rows.length/2)+1)
......
<template> <template>
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="tender-list" ref="zbggScroll" @scroll="scrollbottom()"> <div class="tender-list" ref="zbggScroll" @scroll="scrollbottom()">
<div class="common-title">招标公告</div> <div class="common-title">招标公告</div>
<template v-if="zbggList.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="zbggList.length>0&&!isSkeleton">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index"> <div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl2" :title="item.projectName"><router-link :to="'/radar/Notice/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'" v-if="item.projectCategory">{{item.projectCategory}}</span></div> <div class="flex-box tender-title"><div class="text-cl2" :title="item.projectName"><router-link :to="'/radar/Notice/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'" v-if="item.projectCategory">{{item.projectCategory}}</span></div>
<span class="tender-time"><span @click="handleUrl(item.url)" style="cursor: pointer;">{{item.dataSource}}</span> {{item.issueTime}}</span> <span class="tender-time"><span @click="handleUrl(item.url)" style="cursor: pointer;">{{item.dataSource}}</span> {{item.issueTime}}</span>
</div> </div>
</template> </template>
<div class="tender-no-data" v-else> <div class="tender-no-data" v-if="zbggList.length==0&&!isSkeleton">
<no-data /> <no-data />
</div> </div>
</div> </div>
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)"> <div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)" >
<div class="common-title">企业动态</div> <div class="common-title">企业动态</div>
<template v-if="trendList.length>0"> <skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<template v-if="trendList.length>0&&!isSkeleton1">
<div class="tender-item" v-for="(item, index) in trendList" :key="index"> <div class="tender-item" v-for="(item, index) in trendList" :key="index">
<div class="flex-box tender-title"><div class="text-cl2" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div> <div class="flex-box tender-title"><div class="text-cl2" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div>
<span class="tender-time">{{item.createTime}}</span> <span class="tender-time">{{item.createTime}}</span>
</div> </div>
</template> </template>
<div class="tender-no-data" v-else> <div class="tender-no-data" v-if="trendList.length==0&&!isSkeleton1">
<no-data /> <no-data />
</div> </div>
</div> </div>
...@@ -30,14 +33,17 @@ ...@@ -30,14 +33,17 @@
<script> <script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview" import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData' import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default { export default {
name: 'Tender', name: 'Tender',
props: ['companyId'], props: ['companyId'],
components: { components: {
NoData NoData,skeleton
}, },
data() { data() {
return { return {
isSkeleton:true,
isSkeleton1:true,
zbggParams: { zbggParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
...@@ -81,15 +87,19 @@ export default { ...@@ -81,15 +87,19 @@ export default {
}, },
methods: { methods: {
async handleQuery() { async handleQuery() {
this.isSkeleton = true;
this.isSkeleton1 = true;
let [notice, namic] = await Promise.all([ let [notice, namic] = await Promise.all([
bidNoticePage(this.zbggParams), bidNoticePage(this.zbggParams),
dynamicPage(this.trendParams) dynamicPage(this.trendParams)
]) ])
if(notice.code==200){ if(notice.code==200){
this.isSkeleton = false;
this.zbggList = notice.rows; this.zbggList = notice.rows;
this.zbggTotal = notice.total; this.zbggTotal = notice.total;
} }
if(namic.code==200){ if(namic.code==200){
this.isSkeleton1 = false;
this.trendList = namic.rows; this.trendList = namic.rows;
this.trendTotal = namic.total; this.trendTotal = namic.total;
} }
......
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 --> <div class="view-content"><skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton><Infoheader v-else :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 --> <div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 -->
<div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来--> <div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索--> <div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索-->
...@@ -23,10 +23,11 @@ import Finance from './component/finance' ...@@ -23,10 +23,11 @@ import Finance from './component/finance'
import Relationship from './component/relationship' import Relationship from './component/relationship'
import Senior from './component/senior' import Senior from './component/senior'
import Risk from './component/risk' import Risk from './component/risk'
import skeleton from '@/views/project/projectList/component/skeleton'
import Tender from "./component/tender" import Tender from "./component/tender"
export default { export default {
name: 'Overview', name: 'Overview',
props: ['companyId', 'companyInfo'], props: ['companyId', 'companyInfo','isSkeleton'],
components: { components: {
Infoheader, Infoheader,
Operations, Operations,
...@@ -36,6 +37,7 @@ export default { ...@@ -36,6 +37,7 @@ export default {
Senior, Senior,
Risk, Risk,
Finance, Finance,
skeleton,
Tender Tender
}, },
data() { data() {
......
...@@ -206,7 +206,7 @@ export default { ...@@ -206,7 +206,7 @@ export default {
minAmount:'',//投资估算最小值 minAmount:'',//投资估算最小值
maxAmount:'',//投资估算最大值 maxAmount:'',//投资估算最大值
searchParam: { searchParam: {
userId:null,//个人项目需传,公司项目不传 isPrivate:1,//0 公司 1 个人
projectName:'',//项目名称 projectName:'',//项目名称
ownerCompany:'',//业主单位 ownerCompany:'',//业主单位
projectType:'',//项目类型 projectType:'',//项目类型
...@@ -299,9 +299,9 @@ export default { ...@@ -299,9 +299,9 @@ export default {
this.isSkeleton = true this.isSkeleton = true
this.searchParam.pageNum = pageNum this.searchParam.pageNum = pageNum
if(this.activeName == 'first'){ if(this.activeName == 'first'){
this.searchParam.userId = this.$store.state.user.userId this.searchParam.isPrivate = 1
}else{ }else{
this.searchParam.userId = null this.searchParam.isPrivate = 0
} }
this.searchParam.ownerCompany = this.searchParam.projectName this.searchParam.ownerCompany = this.searchParam.projectName
getProjectlist(this.searchParam).then(result=>{ getProjectlist(this.searchParam).then(result=>{
...@@ -332,7 +332,7 @@ export default { ...@@ -332,7 +332,7 @@ export default {
this.$refs.myCascader.$refs.panel.activePath = [] this.$refs.myCascader.$refs.panel.activePath = []
}) })
this.searchParam ={ this.searchParam ={
userId:null, isPrivate:1,
projectName:'',//项目名称 projectName:'',//项目名称
ownerCompany:'',//业主单位 ownerCompany:'',//业主单位
projectType:'',//项目类型 projectType:'',//项目类型
......
...@@ -16,7 +16,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; ...@@ -16,7 +16,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @date 2023-05-17 * @date 2023-05-17
*/ */
@Data @Data
public class BusinessBacklog extends BaseEntity public class BusinessBacklog
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -49,4 +49,8 @@ public class BusinessBacklog extends BaseEntity ...@@ -49,4 +49,8 @@ public class BusinessBacklog extends BaseEntity
@Excel(name = "状态 0:进行中 1:已到期") @Excel(name = "状态 0:进行中 1:已到期")
private Integer state; private Integer state;
private Date createTime;
private Date updateTime;
} }
package com.dsk.system.domain.business.dto;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 项目工作待办对象 business_backlog
*
* @author lxl
* @date 2023-05-17
*/
@Data
public class BusinessBacklogListDto extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 项目id */
private Integer businessId;
/** 状态 (0进行中 1已完成 2逾期) */
private Integer state;
private Date startTime;
private Date endTime;
}
...@@ -11,6 +11,11 @@ import java.util.List; ...@@ -11,6 +11,11 @@ import java.util.List;
**/ **/
@Data @Data
public class BusinessListDto { public class BusinessListDto {
/**
* 是否私人数据 0:否 1:是
*/
private Integer isPrivate;
/** /**
* 项目名称 * 项目名称
*/ */
...@@ -19,12 +24,7 @@ public class BusinessListDto { ...@@ -19,12 +24,7 @@ public class BusinessListDto {
/** /**
* 用户id * 用户id
*/ */
private Integer userId; private Long userId;
/**
* 用户查看全部他人可见项目标示
*/
private Long others;
/** /**
* 省id * 省id
......
...@@ -245,7 +245,14 @@ public class EnterpriseService { ...@@ -245,7 +245,14 @@ public class EnterpriseService {
ArrayList<String> companyNames = new ArrayList<>(); ArrayList<String> companyNames = new ArrayList<>();
ArrayList<Long> cIds = new ArrayList<>(); ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) { for (Object dataMap : list) {
companyNames.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName")); String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName");
if (ObjectUtil.isNotEmpty(name) && ObjectUtil.isNotEmpty(body.getKeys())) {
name = name.replaceAll("<font color='red'>","");
name = name.replaceAll("</font>","");
companyNames.add(name);
} else {
companyNames.add(name);
}
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId")); cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
} }
...@@ -269,6 +276,10 @@ public class EnterpriseService { ...@@ -269,6 +276,10 @@ public class EnterpriseService {
companyMap.put("bratingSubjectLevel", null); companyMap.put("bratingSubjectLevel", null);
String uipId = MapUtils.getString(companyMap, "uipId"); String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", ""); String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(body.getKeys())) {
companyName = companyName.replace("<font color='red'>","");
companyName = companyName.replace("</font>","");
}
Long companyId = MapUtils.getLong(companyMap, "companyId"); Long companyId = MapUtils.getLong(companyMap, "companyId");
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")));
......
package com.dsk.system.mapper; package com.dsk.system.mapper;
import com.dsk.system.domain.business.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo; import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List; import java.util.List;
...@@ -23,11 +24,8 @@ public interface BusinessBacklogMapper ...@@ -23,11 +24,8 @@ public interface BusinessBacklogMapper
/** /**
* 查询项目工作待办列表 * 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/ */
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog); public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto);
/** /**
* 新增项目工作待办 * 新增项目工作待办
......
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.system.domain.business.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo; import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List; import java.util.List;
...@@ -23,11 +24,8 @@ public interface IBusinessBacklogService ...@@ -23,11 +24,8 @@ public interface IBusinessBacklogService
/** /**
* 查询项目工作待办列表 * 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/ */
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog); public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto);
/** /**
* 新增项目工作待办 * 新增项目工作待办
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.dsk.system.domain.business.BusinessBacklog; import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.exception.base.BaseException; import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo; import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import com.dsk.system.mapper.BusinessBacklogMapper; import com.dsk.system.mapper.BusinessBacklogMapper;
import com.dsk.system.service.IBusinessBacklogService; import com.dsk.system.service.IBusinessBacklogService;
...@@ -43,15 +44,31 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService { ...@@ -43,15 +44,31 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService {
/** /**
* 查询项目工作待办列表 * 查询项目工作待办列表
* *
* @param businessBacklog 项目工作待办 * @param dto 项目工作待办
* @return 项目工作待办 * @return 项目工作待办
*/ */
@Override @Override
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog) { public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto) {
if (ObjectUtil.isEmpty(businessBacklog.getBusinessId())) { if (ObjectUtil.isEmpty(dto.getBusinessId())) {
throw new BeanException("项目id不能为空!"); throw new BeanException("项目id不能为空!");
} }
return businessBacklogMapper.selectBusinessBacklogList(businessBacklog); if (ObjectUtil.isEmpty(dto.getState())) {
throw new BeanException("工作代办状态不能为空!");
}
switch (dto.getState()){
case 0:
dto.setStartTime(new Date());
break;
case 1:
break;
case 2:
dto.setState(0);
dto.setEndTime(new Date());
break;
default:
throw new BeanException("工作代办状态参数错误!");
}
return businessBacklogMapper.selectBusinessBacklogList(dto);
} }
/** /**
......
...@@ -9,10 +9,7 @@ import com.dsk.acc.openapi.client.util.CommonUtils; ...@@ -9,10 +9,7 @@ import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.config.RuoYiConfig; import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus; import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessInfo; import com.dsk.common.core.domain.entity.*;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.core.domain.entity.BusinessUser;
import com.dsk.common.exception.ServiceException; import com.dsk.common.exception.ServiceException;
import com.dsk.common.exception.base.BaseException; import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.*; import com.dsk.common.utils.*;
...@@ -95,18 +92,12 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -95,18 +92,12 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
*/ */
@Override @Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) { public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
List<BusinessListVo> othersList = new ArrayList<>(); SysUser user = SecurityUtils.getLoginUser().getUser();
//userId不传值,就查询全部他人可见项目+自己的 dto.setUserId(user.getUserId());
if (dto.getUserId() == null) { if(user.getIsExperience() == 1){
dto.setOthers(SecurityUtils.getUserId()); dto.setIsPrivate(1);
//查询他人可见项目
othersList = businessInfoMapper.selectBusinessInfoList(dto);
} }
dto.setOthers(null); return businessInfoMapper.selectBusinessInfoList(dto);
//查询自己参与的项目
List<BusinessListVo> businessList = businessInfoMapper.selectBusinessInfoList(dto);
businessList.addAll(othersList);
return businessList;
} }
@Override @Override
......
...@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.annotation.DataScope; import com.dsk.common.annotation.DataScope;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.entity.SysUser;
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.common.utils.StringUtils;
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -5,6 +5,7 @@ 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;
import com.dsk.common.dtos.UrbanInvestmentPlatformSubjectLevelDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo; import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.service.ICustomerService; import com.dsk.system.service.ICustomerService;
...@@ -15,10 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,10 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @ClassName EconomicServiceImpl * @ClassName EconomicServiceImpl
...@@ -52,7 +50,14 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -52,7 +50,14 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
ArrayList<String> companyNames = new ArrayList<>(); ArrayList<String> companyNames = new ArrayList<>();
ArrayList<Long> cIds = new ArrayList<>(); ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) { for (Object dataMap : list) {
companyNames.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName")); String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName");
if (ObjectUtil.isNotEmpty(name) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
name = name.replace("<font color='red'>","");
name = name.replace("</font>","");
companyNames.add(name);
} else {
companyNames.add(name);
}
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId")); cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
} }
List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames); List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames);
...@@ -76,6 +81,10 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -76,6 +81,10 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
Long companyId = MapUtils.getLong(companyMap, "companyId"); Long companyId = MapUtils.getLong(companyMap, "companyId");
String uipId = MapUtils.getString(companyMap, "uipId"); String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", ""); String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
companyName = companyName.replace("<font color='red'>","");
companyName = companyName.replace("</font>","");
}
companyMap.put("claimStatus", 0); companyMap.put("claimStatus", 0);
companyMap.put("bratingSubjectLevel", null); companyMap.put("bratingSubjectLevel", null);
for (CustomerStatusListVo vo : customerStatusListVos) { for (CustomerStatusListVo vo : customerStatusListVos) {
...@@ -83,11 +92,19 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -83,11 +92,19 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
companyMap.put("claimStatus", 1); companyMap.put("claimStatus", 1);
} }
} }
// 去除重复的数据
Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
for (Map<String, Object> m : objArrayList) { for (Map<String, Object> m : objArrayList) {
UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L); Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
if (companyIdCredit.equals(companyId)) { String rate = MapUtils.getString(m, "bratingSubjectLevel");
companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel")); dto.setCompanyId(companyIdCredit);
dto.setBratingSubjectLevel(rate);
subjectLevelDtoSet.add(dto);
}
for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
if (dto.getCompanyId().equals(companyId)) {
companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
} }
} }
} }
......
...@@ -28,14 +28,13 @@ ...@@ -28,14 +28,13 @@
from business_backlog from business_backlog
</sql> </sql>
<select id="selectBusinessBacklogList" parameterType="com.dsk.system.domain.business.vo.BusinessBacklogListVo" <select id="selectBusinessBacklogList" parameterType="com.dsk.system.domain.business.dto.BusinessBacklogListDto"
resultMap="BusinessBacklogResult"> resultType="com.dsk.system.domain.business.vo.BusinessBacklogListVo">
<include refid="selectBusinessBacklogVo"/> <include refid="selectBusinessBacklogVo"/>
where business_id = #{businessId} where business_id = #{businessId}
<if test="target != null and target != ''">and target = #{target}</if> <if test="state != null "> and state = #{state} </if>
<if test="task != null and task != ''">and task = #{task}</if> <if test="startTime != null "> and(due_time &gt;= #{startTime} or due_time is null) </if>
<if test="finishTime != null ">and finish_time = #{finishTime}</if> <if test="endTime != null "> and due_time &lt;= #{endTime} </if>
<if test="state != null ">and state = #{state}</if>
ORDER BY create_time DESC ORDER BY create_time DESC
</select> </select>
......
...@@ -105,9 +105,12 @@ ...@@ -105,9 +105,12 @@
LEFT JOIN business_label l on l.business_id = i.id LEFT JOIN business_label l on l.business_id = i.id
LEFT JOIN sys_user u on u.user_id = bu.user_id LEFT JOIN sys_user u on u.user_id = bu.user_id
<where> <where>
<if test="userId != null"> <if test="isPrivate == 1 ">
and bu.user_id = #{userId} and bu.user_id = #{userId}
</if> </if>
<if test="isPrivate == 0 ">
and (bu.user_id = #{userId} or i.is_private = 1)
</if>
<if test="projectType != null and projectType != ''"> <if test="projectType != null and projectType != ''">
and i.project_type in and i.project_type in
<foreach collection="projectType" item="projectType" open="(" separator="," close=")"> <foreach collection="projectType" item="projectType" open="(" separator="," close=")">
...@@ -123,85 +126,27 @@ ...@@ -123,85 +126,27 @@
</foreach> </foreach>
</if> </if>
<if test="projectName != null and projectName != ''"> <if test="projectName != null and projectName != ''">
and i.project_name like concat('%',#{projectName},'%') and ( i.project_name like concat('%',#{projectName},'%')
</if> or i.construction_unit like concat('%',#{projectName},'%') )
<if test="ownerCompany != null and ownerCompany != ''">
or i.construction_unit like concat('%',#{ownerCompany},'%')
</if>
<if test="others != null">
and bu.user_id != #{others} and i.is_private = 1
</if> </if>
<if test="provinceId != null and provinceId.size > 0 ">
<if test="provinceId != null and provinceId.size > 0 and cityId == null and districtId == null">
and i.province_id in and i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")"> <foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId} #{provinceId}
</foreach> </foreach>
</if> </if>
<if test="cityId != null and cityId.size > 0 and provinceId == null and districtId == null"> <if test="cityId != null and cityId.size > 0 ">
and i.city_id in and i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")"> <foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId} #{cityId}
</foreach> </foreach>
</if> </if>
<if test="districtId != null and districtId.size > 0 and provinceId == null and cityId == null"> <if test="districtId != null and districtId.size > 0">
and i.district_id in and i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")"> <foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId} #{districtId}
</foreach> </foreach>
</if> </if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and districtId != null and districtId.size > 0 and cityId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0 and provinceId ==null">
and (
i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
</where> </where>
GROUP BY i.id GROUP BY i.id
ORDER BY i.create_time DESC ORDER BY i.create_time DESC
......
...@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" /> <result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" /> <result property="loginDate" column="login_date" />
<result property="isExperience" column="is_experience"/>
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
...@@ -47,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -47,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber,
u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
...@@ -57,7 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -57,7 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
...@@ -154,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -154,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">sex,</if> <if test="sex != null and sex != ''">sex,</if>
<if test="password != null and password != ''">password,</if> <if test="password != null and password != ''">password,</if>
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="isExperience != null ">is_experience,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
create_time create_time
...@@ -168,6 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -168,6 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">#{sex},</if> <if test="sex != null and sex != ''">#{sex},</if>
<if test="password != null and password != ''">#{password},</if> <if test="password != null and password != ''">#{password},</if>
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="isExperience != null ">#{isExperience},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
sysdate() sysdate()
...@@ -188,6 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -188,6 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if> <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="loginDate != null">login_date = #{loginDate},</if>
<if test="isExperience != null">is_experience = #{isExperience},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
update_time = sysdate() update_time = sysdate()
......
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