Commit 563d64b9 authored by yht15023815643's avatar yht15023815643

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

parents f30fcd45 a9c26765
...@@ -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);
}
}
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
width="316"> width="316">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ps1"> <div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div> <div class="wordprimary ps2" @click="toDetail(scope.row,'')" v-html="scope.row.companyName"></div>
<div class="ps3"> <div class="ps3">
<el-tooltip class="item" effect="dark" content="重新认领" placement="top"> <el-tooltip class="item" effect="dark" content="重新认领" placement="top">
<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 @click="toRL(scope.row)"><img class="i" src="@/assets/images/project/khrl1.png"><img class="o" src="@/assets/images/project/khrl2.png"></div>
......
<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>
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
:tableLoading="tableLoading" v-if="!isSkeleton"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -27,11 +27,12 @@ import { ...@@ -27,11 +27,12 @@ import {
abnormalYears abnormalYears
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'BusinessAnomaly', name: 'BusinessAnomaly',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -56,6 +57,7 @@ export default { ...@@ -56,6 +57,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -68,11 +70,11 @@ export default { ...@@ -68,11 +70,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
abnormalPage(data).then(res => { abnormalPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
years(){ years(){
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
:tableLoading="tableLoading" v-if="!isSkeleton"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -29,11 +29,12 @@ import { ...@@ -29,11 +29,12 @@ import {
noticesCaseReason noticesCaseReason
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'CourtNotice', name: 'CourtNotice',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -60,6 +61,7 @@ export default { ...@@ -60,6 +61,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -74,11 +76,11 @@ export default { ...@@ -74,11 +76,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
noticesPage(data).then(res => { noticesPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
// 公告 // 公告
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
:isExcel="false" :isExcel="false"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
v-if="!isSkeleton"
:index-fixed="true" :index-fixed="true"
:tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -27,11 +27,12 @@ import { ...@@ -27,11 +27,12 @@ import {
executedPage executedPage
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'Dishonesty', name: 'Dishonesty',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -56,6 +57,7 @@ export default { ...@@ -56,6 +57,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -67,11 +69,11 @@ export default { ...@@ -67,11 +69,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
executedPage(data).then(res => { executedPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
} }
} }
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
:isExcel="false" :isExcel="false"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
:tableLoading="tableLoading" v-if="!isSkeleton"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -26,11 +26,12 @@ import { ...@@ -26,11 +26,12 @@ import {
executedPersonsPage executedPersonsPage
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'IfThePerson', name: 'IfThePerson',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -53,6 +54,7 @@ export default { ...@@ -53,6 +54,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -64,11 +66,11 @@ export default { ...@@ -64,11 +66,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
executedPersonsPage(data).then(res => { executedPersonsPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
} }
} }
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
:isExcel="false" :isExcel="false"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
:tableLoading="tableLoading" v-if="!isSkeleton"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -35,11 +35,12 @@ import { ...@@ -35,11 +35,12 @@ import {
lawsuitsRole lawsuitsRole
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'Judgment', name: 'Judgment',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -68,6 +69,7 @@ export default { ...@@ -68,6 +69,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -81,14 +83,14 @@ export default { ...@@ -81,14 +83,14 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
lawsuitsPage(data).then(res => { lawsuitsPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){ for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies) this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
lawsuitsCauseActions(){ lawsuitsCauseActions(){
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
:isExcel="false" :isExcel="false"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
:index-fixed="true" :index-fixed="true"
:tableLoading="tableLoading" v-if="!isSkeleton"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -35,11 +35,12 @@ import { ...@@ -35,11 +35,12 @@ import {
kaitingPureRole kaitingPureRole
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'OpenacourtsessionNotice', name: 'OpenacourtsessionNotice',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -71,6 +72,7 @@ export default { ...@@ -71,6 +72,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -88,14 +90,14 @@ export default { ...@@ -88,14 +90,14 @@ export default {
}, },
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
kaitingPage(data).then(res => { kaitingPage(data).then(res => {
this.tableData = res.rows this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){ for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies) this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
kaitingCauseActions(){ kaitingCauseActions(){
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
v-if="!isSkeleton"
:indexFixed="true" :indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
...@@ -35,11 +35,12 @@ import { ...@@ -35,11 +35,12 @@ import {
penalizePage, penalizePage,
penalizeReasonType penalizeReasonType
} from '@/api/detail/party-a/riskInformation' } from '@/api/detail/party-a/riskInformation'
import skeleton from '../component/skeleton'
export default { export default {
name: 'Punish', name: 'Punish',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -66,6 +67,7 @@ export default { ...@@ -66,6 +67,7 @@ export default {
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
showList:[], showList:[],
isSkeleton:true
} }
}, },
created() { created() {
...@@ -78,11 +80,11 @@ export default { ...@@ -78,11 +80,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
penalizePage(data).then((res) => { penalizePage(data).then((res) => {
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
penalizeReasonTypeData(){ penalizeReasonTypeData(){
......
...@@ -8,8 +8,9 @@ ...@@ -8,8 +8,9 @@
:isExcel="true" :isExcel="true"
@handle-search="handleSearch" @handle-search="handleSearch"
/> />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
v-if="!isSkeleton"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
...@@ -32,11 +33,12 @@ import { ...@@ -32,11 +33,12 @@ import {
landUse landUse
} from '@/api/detail/party-a/urbanLnvestment' } from '@/api/detail/party-a/urbanLnvestment'
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default { export default {
name: 'landAcquisition', name: 'landAcquisition',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId'], props: ['companyId'],
data() { data() {
...@@ -66,6 +68,7 @@ export default { ...@@ -66,6 +68,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -78,11 +81,11 @@ export default { ...@@ -78,11 +81,11 @@ export default {
methods: { methods: {
handleQuery(params) { handleQuery(params) {
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
this.tableLoading = true this.isSkeleton = true
landTransactionPage(data).then(res=>{ landTransactionPage(data).then(res=>{
this.tableData = res.rows this.tableData = res.rows
this.tableDataTotal = res.total this.tableDataTotal = res.total
this.tableLoading = false this.isSkeleton = false
}) })
}, },
//土地用途 //土地用途
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
</div> </div>
<div class="params-dw"><img src="@/assets/images/addree.png" />{{ addressList }}</div> <div class="params-dw"><img src="@/assets/images/addree.png" />{{ addressList }}</div>
</div> </div>
<div class="table-item"> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="table-item" v-if="!isSkeleton">
<el-table <el-table
:tableLoading="tableLoading" :tableLoading="tableLoading"
:data="getValues" :data="getValues"
...@@ -29,13 +30,14 @@ ...@@ -29,13 +30,14 @@
<script> <script>
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
import skeleton from '../component/skeleton'
import { import {
regionalEconomy regionalEconomy
} from '@/api/detail/party-a/urbanLnvestment' } from '@/api/detail/party-a/urbanLnvestment'
export default { export default {
name: 'regionalEconomies', name: 'regionalEconomies',
components: { components: {
skeleton
}, },
props: ['companyId','companyInfo'], props: ['companyId','companyInfo'],
data() { data() {
...@@ -209,7 +211,8 @@ export default { ...@@ -209,7 +211,8 @@ export default {
label: '债务率-宽口径(%)', label: '债务率-宽口径(%)',
}, },
], ],
tableLoading: true tableLoading: true,
isSkeleton:true
} }
}, },
created() { created() {
...@@ -228,11 +231,11 @@ export default { ...@@ -228,11 +231,11 @@ export default {
methods: { methods: {
//地区 //地区
regionalEconomys() { regionalEconomys() {
this.tableLoading = true this.isSkeleton = true
if(this.companyInfo){ if(this.companyInfo){
regionalEconomy(this.params).then(res => { regionalEconomy(this.params).then(res => {
this.tableData = res.data this.tableData = res.data
this.tableLoading = false this.isSkeleton = false
}) })
this.dataRegion(this.companyInfo.provinceId, this.companyInfo.cityId) this.dataRegion(this.companyInfo.provinceId, this.companyInfo.cityId)
} }
......
...@@ -87,8 +87,9 @@ ...@@ -87,8 +87,9 @@
</div> </div>
</template> </template>
</head-form> </head-form>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables <tables
v-if="!isSkeleton"
:tableLoading="tableLoading" :tableLoading="tableLoading"
:tableData="tableData" :tableData="tableData"
:forData="forData" :forData="forData"
...@@ -118,6 +119,7 @@ ...@@ -118,6 +119,7 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
import dataRegion from '@/assets/json/dataRegion' import dataRegion from '@/assets/json/dataRegion'
import { import {
urbanInvestmentPage, urbanInvestmentPage,
...@@ -127,7 +129,7 @@ export default { ...@@ -127,7 +129,7 @@ export default {
name: 'SameRegion', name: 'SameRegion',
mixins: [mixin], mixins: [mixin],
components: { components: {
skeleton
}, },
props: ['companyId', 'companyInfo'], props: ['companyId', 'companyInfo'],
data() { data() {
...@@ -200,6 +202,7 @@ export default { ...@@ -200,6 +202,7 @@ export default {
tableLoading:false, tableLoading:false,
tableData:[], tableData:[],
tableDataTotal:0, tableDataTotal:0,
isSkeleton:true
} }
}, },
watch:{ watch:{
...@@ -338,12 +341,12 @@ export default { ...@@ -338,12 +341,12 @@ export default {
}, },
handleQuery(params){ handleQuery(params){
this.tableLoading = true this.isSkeleton = true
let data = params ? params : this.queryParams let data = params ? params : this.queryParams
urbanInvestmentPage(data).then(res => { urbanInvestmentPage(data).then(res => {
this.tableData = res.data.list this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount this.tableDataTotal = res.data.totalCount
this.tableLoading = false this.isSkeleton = false
}) })
}, },
//排序 //排序
......
...@@ -108,6 +108,9 @@ ...@@ -108,6 +108,9 @@
export default { export default {
name: 'comparison', name: 'comparison',
props:['dataQuery','provinceId'], props:['dataQuery','provinceId'],
components: {
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -292,7 +295,8 @@ export default { ...@@ -292,7 +295,8 @@ export default {
regionData:[], regionData:[],
compareList:[{},{},{},{},{}], compareList:[{},{},{},{},{}],
fixed: false, fixed: false,
StyWidth:null StyWidth:null,
isSkeleton:true
} }
}, },
watch: { watch: {
......
<template> <template>
<div class="regionalEconomy"> <div class="regionalEconomy">
<div class="flex-box query-box"> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">主要指标</span> <span class="common-title">主要指标</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
...@@ -15,7 +16,7 @@ ...@@ -15,7 +16,7 @@
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span> <span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div> </div>
</div> </div>
<div class="content"> <div v-if="!isSkeleton" class="content">
<div class="content-left"> <div class="content-left">
<div id="echarts" style="height: 400px"></div> <div id="echarts" style="height: 400px"></div>
<p class="tips"> 注:数据均来源于统计公报、统计年鉴,实际披露中由于部分地区最新年度数据不全,导致年份间数据差距较大</p> <p class="tips"> 注:数据均来源于统计公报、统计年鉴,实际披露中由于部分地区最新年度数据不全,导致年份间数据差距较大</p>
...@@ -29,18 +30,19 @@ ...@@ -29,18 +30,19 @@
highlight-current-row highlight-current-row
:summary-method="getSummaries" :summary-method="getSummaries"
show-summary show-summary
@sort-change="sortChange"
> >
<el-table-column label="序号" width="60" align="left"> <el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 2 }}</template> <template slot-scope="scope">{{ scope.$index + 2 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="产业类型" prop="projectType"></el-table-column> <el-table-column label="产业类型" prop="projectType"></el-table-column>
<el-table-column :label="oneYear"> <el-table-column :label="oneYear">
<el-table-column prop="money" label="金额(亿元)" sortable></el-table-column> <el-table-column prop="money" label="金额(亿元)" sortable="custom" :formatter="formatStatus"></el-table-column>
<el-table-column prop="rate" label="占比(%)"> </el-table-column> <el-table-column prop="rate" label="占比(%)" sortable> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column :label="twoYear"> <el-table-column :label="twoYear">
<el-table-column prop="lastMoney" label="金额(亿元)" sortable> </el-table-column> <el-table-column prop="lastMoney" label="金额(亿元)" sortable="custom" :formatter="formatStatus"> </el-table-column>
<el-table-column prop="lastRate" label="占比(%)" > </el-table-column> <el-table-column prop="lastRate" label="占比(%)" sortable> </el-table-column>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
...@@ -57,9 +59,13 @@ ...@@ -57,9 +59,13 @@
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro' import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default { export default {
name: 'industrialStructure', name: 'industrialStructure',
props:['dataQuery','provinceId'], props:['dataQuery','provinceId'],
components: {
skeleton
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -68,11 +74,13 @@ export default { ...@@ -68,11 +74,13 @@ export default {
}, },
yearOptions: [], yearOptions: [],
tableData:[], tableData:[],
tabData:[],
tableLoading: false, tableLoading: false,
data:[], data:[],
oneYear:'', oneYear:'',
twoYear:'', twoYear:'',
state:false state:false,
isSkeleton:true
} }
}, },
watch: { watch: {
...@@ -86,11 +94,11 @@ export default { ...@@ -86,11 +94,11 @@ export default {
this.yearOptions=res.data.reverse(); this.yearOptions=res.data.reverse();
this.queryParams.year = this.yearOptions[0].year; this.queryParams.year = this.yearOptions[0].year;
}) })
this.getData()
this.getGroupCount()
this.$nextTick(()=>{
this.$nextTick(()=>{
this.getData()
this.getGroupCount()
}) })
}, },
methods: { methods: {
...@@ -112,6 +120,7 @@ export default { ...@@ -112,6 +120,7 @@ export default {
if(this.provinceId.length >= 2){ if(this.provinceId.length >= 2){
params.county=this.provinceId[2] params.county=this.provinceId[2]
} }
bidMoneyGroupByProjectType(params).then(res => { bidMoneyGroupByProjectType(params).then(res => {
if(res.data.length > 0){ if(res.data.length > 0){
let list=[] let list=[]
...@@ -133,16 +142,18 @@ export default { ...@@ -133,16 +142,18 @@ export default {
} }
} }
for(let i=0; i<list.length; i++){ for(let i=0; i<list.length; i++){
list[i].money=list[i].money ? Number(list[i].money).toFixed(2) : '-'; // list[i].money=list[i].money ? Number(list[i].money).toFixed(2) : '-';
list[i].rate=list[i].rate ? Number(list[i].rate).toFixed(2) : '-'; list[i].rate=list[i].rate ? Number(list[i].rate).toFixed(2) : '-';
list[i].lastMoney=list[i].lastMoney ? Number(list[i].lastMoney).toFixed(2) : '-'; // list[i].lastMoney=list[i].lastMoney ? Number(list[i].lastMoney).toFixed(2) : '-';
list[i].lastRate=list[i].lastRate ? Number(list[i].lastRate).toFixed(2) : '-'; list[i].lastRate=list[i].lastRate ? Number(list[i].lastRate).toFixed(2) : '-';
} }
this.tableData=list.reverse() this.tableData=list.reverse()
this.tabData=list.reverse()
} }
}) })
}, },
getGroupCount(){ getGroupCount(){
this.isSkeleton = true
let mydate=new Date(); let mydate=new Date();
let startTime='' let startTime=''
let endTime='' let endTime=''
...@@ -164,6 +175,7 @@ export default { ...@@ -164,6 +175,7 @@ export default {
params.county=this.provinceId[2] params.county=this.provinceId[2]
} }
bidGroupCountByProjectType(params).then(res => { bidGroupCountByProjectType(params).then(res => {
this.isSkeleton = false
if(res.code === 200){ if(res.code === 200){
let list=[] let list=[]
for(let i=0; i<res.data.length; i++){ for(let i=0; i<res.data.length; i++){
...@@ -174,7 +186,9 @@ export default { ...@@ -174,7 +186,9 @@ export default {
} }
this.data=list; this.data=list;
// if(list.length > 0){ // if(list.length > 0){
this.$nextTick(() => {
this.initChart() this.initChart()
})
// } // }
} }
}) })
...@@ -270,6 +284,47 @@ export default { ...@@ -270,6 +284,47 @@ export default {
}); });
return sums; return sums;
}, },
sortChange(column) {
if (column.order !== null && column.prop) {
let data1 = [];
let data2 = [];
for (let i = 0; i < this.tableData.length; i++) {
this.tableData[i].money=this.tableData[i].money ? Number(this.tableData[i].money) : 0
this.tableData[i].lastMoney=Number(this.tableData[i].lastMoney)
let temp = null;
temp = this.tableData[i][column.prop];
if (temp === null || typeof temp == "undefined") {
data2.push(this.tableData[i]);
} else {
data1.push(this.tableData[i]);
}
}
if (column.order === "ascending") {
data1 = data1.sort(this.compare(column.prop, "ascending"));
} else {
data1 = data1.sort(this.compare(column.prop, "descending"));
}
this.$nextTick(() => {
this.tableData = data1.concat(data2);
});
}
if (column.order === null) {
this.tableData = this.tabData; // tabData存放的是list副本,不排序时恢复到初始状态
}
this.$forceUpdate()
},
compare(property, type, prop) {
return function(obj1, obj2) {
if (type === "ascending") {
return obj1[property] - obj2[property];
} else {
return obj2[property] - obj1[property];
}
};
},
formatStatus: function(row, column, cellValue) {
return cellValue? Number(cellValue).toFixed(2) : '-'
},
} }
} }
......
<template> <template>
<div class="regionalEconomy"> <div class="regionalEconomy">
<div class="content"> <skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">经济数据</span> <span class="common-title">经济数据</span>
...@@ -52,15 +53,18 @@ ...@@ -52,15 +53,18 @@
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { nationalPage,getYears } from '@/api/macro/macro' import { nationalPage,getYears } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default { export default {
name: 'localEconomy', name: 'localEconomy',
props:['dataQuery','provinceId'], props:['dataQuery','provinceId'],
components: {
skeleton
},
data() { data() {
return { return {
queryParams: { queryParams: {
...@@ -74,7 +78,8 @@ export default { ...@@ -74,7 +78,8 @@ export default {
pageSize: 20, pageSize: 20,
tableDataTotal: 0, tableDataTotal: 0,
show_page:true, show_page:true,
MaxPage:500 MaxPage:500,
isSkeleton:true
} }
}, },
watch: { watch: {
...@@ -95,6 +100,7 @@ export default { ...@@ -95,6 +100,7 @@ export default {
}, },
methods: { methods: {
getData(){ getData(){
this.isSkeleton = true
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:2 } const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:2 }
if(this.queryParams.field){ if(this.queryParams.field){
params.field=this.queryParams.field params.field=this.queryParams.field
...@@ -113,6 +119,7 @@ export default { ...@@ -113,6 +119,7 @@ export default {
} }
// params.provinceIds=[this.dataQuery.provinceId] // params.provinceIds=[this.dataQuery.provinceId]
nationalPage(params).then(res => { nationalPage(params).then(res => {
this.isSkeleton = false
this.tableData = res.data.list this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount this.tableDataTotal = res.data.totalCount
}) })
......
<template> <template>
<div class="regionalEconomy"> <div class="regionalEconomy">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton">
<div class="content content1"> <div class="content content1">
<div class="common-title">经济数据</div> <div class="common-title">经济数据</div>
<div class="content-box"> <div class="content-box">
<div class="item"> <div class="item">
<div class="item-title"><i style="background: #4E8EFF;"></i>{{recentlyYear.year}}年GDP</div> <div class="item-title"><i style="background: #4E8EFF;"></i>{{recentlyYear.year}}年GDP</div>
<div class="item-count"> <div class="item-count">
<span>{{recentlyYear.gdp}}</span>亿 <span>{{recentlyYear.gdp}}</span>{{recentlyYear.gdp ? '亿':'-'}}
<img v-if="Number(recentlyYear.gdpCompare) > 0" src="@/assets/images/economies/icon_up.png"> <img v-if="Number(recentlyYear.gdpCompare) > 0 && recentlyYear.gdp" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-if="Number(recentlyYear.gdpCompare) <= 0 && recentlyYear.gdp" src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsGDP" style="height: 75px;"></div> <div id="echartsGDP" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpCompare}}亿</span></div> <div class="item-text up" v-if="Number(recentlyYear.gdpCompare) > 0 && recentlyYear.gdp">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpCompare).toString().substring(1)}}亿</span></div> <div class="item-text down" v-if="Number(recentlyYear.gdpCompare) <= 0 && recentlyYear.gdp">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpCompare).toString().substring(1)}}亿</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="item-title"><i style="background: #718AFF;"></i>{{recentlyYear.year}}年GDP增速</div> <div class="item-title"><i style="background: #718AFF;"></i>{{recentlyYear.year}}年GDP增速</div>
<div class="item-count"> <div class="item-count">
<span>{{recentlyYear.gdpGrowth}}</span>% <span>{{recentlyYear.gdpGrowth}}</span>{{recentlyYear.gdpGrowth ? '%':'-'}}
<img v-if="Number(recentlyYear.gdpGrowthCompare) > 0" src="@/assets/images/economies/icon_up.png"> <img v-if="Number(recentlyYear.gdpGrowthCompare) > 0 && recentlyYear.gdpGrowth" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-if="Number(recentlyYear.gdpGrowthCompare) <= 0 && recentlyYear.gdpGrowth" src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsZS" style="height: 75px;"></div> <div id="echartsZS" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpGrowthCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div> <div class="item-text up" v-if="Number(recentlyYear.gdpGrowthCompare) > 0 && recentlyYear.gdpGrowth">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowthCompare).toString().substring(1)}}%</span></div> <div class="item-text down" v-if="Number(recentlyYear.gdpGrowthCompare) <= 0 && recentlyYear.gdpGrowth">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowthCompare).toString().substring(1)}}%</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="item-title"><i style="background: #3AD0D1;"></i>{{recentlyYear.year}}年人口</div> <div class="item-title"><i style="background: #3AD0D1;"></i>{{recentlyYear.year}}年人口</div>
<div class="item-count"> <div class="item-count">
<span>{{recentlyYear.population}}</span> <span>{{recentlyYear.population}}</span>{{recentlyYear.population ? '万':'-'}}
<img v-if="Number(recentlyYear.populationCompare) > 0" src="@/assets/images/economies/icon_up.png"> <img v-if="Number(recentlyYear.populationCompare) > 0 && recentlyYear.population" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-if="Number(recentlyYear.populationCompare) <= 0 && recentlyYear.population" src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsRK" style="height: 75px;"></div> <div id="echartsRK" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.populationCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationCompare}}</span></div> <div class="item-text up" v-if="Number(recentlyYear.populationCompare) > 0 && recentlyYear.population">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationCompare}}</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.populationCompare).toString().substring(1)}}</span></div> <div class="item-text down" v-if="Number(recentlyYear.populationCompare) <= 0 && recentlyYear.population">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.populationCompare).toString().substring(1)}}</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="item-title"><i style="background: #FFBE5D;"></i>{{recentlyYear.year}}年一般公共预算收入</div> <div class="item-title"><i style="background: #FFBE5D;"></i>{{recentlyYear.year}}年一般公共预算收入</div>
<div class="item-count"> <div class="item-count">
<span>{{recentlyYear.gbr}}</span>亿 <span>{{recentlyYear.gbr}}</span>{{recentlyYear.gbr ? '亿':'-'}}
<img v-if="Number(recentlyYear.gbrCompare) > 0" src="@/assets/images/economies/icon_up.png"> <img v-if="Number(recentlyYear.gbrCompare) > 0 && recentlyYear.gbr" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-if="Number(recentlyYear.gbrCompare) <= 0 && recentlyYear.gbr" src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsSR" style="height: 75px;"></div> <div id="echartsSR" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gbrCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrCompare}}亿</span></div> <div class="item-text up" v-if="Number(recentlyYear.gbrCompare) > 0 && recentlyYear.gbr">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrCompare).toString().substring(1)}}亿</span></div> <div class="item-text down" v-if="Number(recentlyYear.gbrCompare) <= 0 && recentlyYear.gbr">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrCompare).toString().substring(1)}}亿</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="item-title"><i style="background: #FF8935;"></i>{{recentlyYear.year}}年地方政府债务余额</div> <div class="item-title"><i style="background: #FF8935;"></i>{{recentlyYear.year}}年地方政府债务余额</div>
<div class="item-count"> <div class="item-count">
<span>{{recentlyYear.govDebtBalance}}</span>亿 <span>{{recentlyYear.govDebtBalance}}</span>{{recentlyYear.gbr ? '亿':'-'}}
<img v-if="Number(recentlyYear.govDebtBalanceCompare) > 0" src="@/assets/images/economies/icon_up.png"> <img v-if="Number(recentlyYear.govDebtBalanceCompare) > 0 && recentlyYear.govDebtBalance" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png"> <img v-if="Number(recentlyYear.govDebtBalanceCompare) <= 0 && recentlyYear.govDebtBalance" src="@/assets/images/economies/icon_down.png">
</div> </div>
<div id="echartsYE" style="height: 75px;"></div> <div id="echartsYE" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.govDebtBalanceCompare) > 0"> <div class="item-text up" v-if="Number(recentlyYear.govDebtBalanceCompare) > 0 && recentlyYear.govDebtBalance">
{{nextYearMap.year}}年上升<span>{{recentlyYear.govDebtBalanceCompare}}亿</span></div> {{nextYearMap.year}}年上升<span>{{recentlyYear.govDebtBalanceCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.govDebtBalanceCompare).toString().substring(1)}}亿</span></div> <div class="item-text down" v-if="Number(recentlyYear.govDebtBalanceCompare) <= 0 && recentlyYear.govDebtBalance">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.govDebtBalanceCompare).toString().substring(1)}}亿</span></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -99,14 +101,20 @@ ...@@ -99,14 +101,20 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { regional,regionalList,location } from '@/api/macro/macro' import { regional,regionalList,location } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default { export default {
name: 'regionalEconomy', name: 'regionalEconomy',
props:['dataQuery','provinceId'], props:['dataQuery','provinceId'],
components: {
skeleton
},
data() { data() {
return { return {
tableData: [], tableData: [],
...@@ -276,6 +284,7 @@ export default { ...@@ -276,6 +284,7 @@ export default {
valData4:[], valData4:[],
recentlyYear:{}, recentlyYear:{},
nextYearMap:{}, nextYearMap:{},
isSkeleton:true
} }
}, },
created() { created() {
...@@ -286,6 +295,13 @@ export default { ...@@ -286,6 +295,13 @@ export default {
// console.log(this.dataQuery) // console.log(this.dataQuery)
}) })
}, },
// updated(){
// this.initChart()
// this.initChart1()
// this.initChart2()
// this.initChart3()
// this.initChart4()
// },
computed: { computed: {
getHeaders() { getHeaders() {
return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title']) return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
...@@ -306,6 +322,7 @@ export default { ...@@ -306,6 +322,7 @@ export default {
}, },
methods: { methods: {
getData(){ getData(){
this.isSkeleton = true
let params={} let params={}
if(this.dataQuery.id){ if(this.dataQuery.id){
params.id=this.dataQuery.id params.id=this.dataQuery.id
...@@ -320,6 +337,7 @@ export default { ...@@ -320,6 +337,7 @@ export default {
params.areaId=this.provinceId[2] params.areaId=this.provinceId[2]
} }
regional(params).then(res => { regional(params).then(res => {
this.isSkeleton = false
this.recentlyYear=res.data[0].recentlyYear; this.recentlyYear=res.data[0].recentlyYear;
this.nextYearMap=res.data[0].nextYearMap; this.nextYearMap=res.data[0].nextYearMap;
this.valData=[this.getMoneyNum(this.nextYearMap.gdp),this.getMoneyNum(this.recentlyYear.gdp)] this.valData=[this.getMoneyNum(this.nextYearMap.gdp),this.getMoneyNum(this.recentlyYear.gdp)]
...@@ -327,12 +345,14 @@ export default { ...@@ -327,12 +345,14 @@ export default {
this.valData2=[this.getMoneyNum(this.nextYearMap.population),this.getMoneyNum(this.recentlyYear.population)] this.valData2=[this.getMoneyNum(this.nextYearMap.population),this.getMoneyNum(this.recentlyYear.population)]
this.valData3=[this.getMoneyNum(this.nextYearMap.gbr),this.getMoneyNum(this.recentlyYear.gbr)] this.valData3=[this.getMoneyNum(this.nextYearMap.gbr),this.getMoneyNum(this.recentlyYear.gbr)]
this.valData4=[this.getMoneyNum(this.nextYearMap.govDebtBalance),this.getMoneyNum(this.recentlyYear.govDebtBalance)] this.valData4=[this.getMoneyNum(this.nextYearMap.govDebtBalance),this.getMoneyNum(this.recentlyYear.govDebtBalance)]
this.$nextTick(() => {
this.initChart() this.initChart()
this.initChart1() this.initChart1()
this.initChart2() this.initChart2()
this.initChart3() this.initChart3()
this.initChart4() this.initChart4()
}) })
})
regionalList(params).then(res => { regionalList(params).then(res => {
this.tableData=res.data; this.tableData=res.data;
}) })
......
<template>
<div class="zhongbiao">
<div class="zb-content content1">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业概览</span>
</div>
</div>
<div class="text">截止{{currentdate}},全国共有{{glDetail.major}}资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1">
<div style="height: 300px;">
<div class="left">
<div class="item" v-for="(item,index) in glData" :class="typeIndex === index ? 'color':''" @click="handleClick(1,index)">{{item.major}}施工总承包<i></i></div>
</div>
<div class="right">
<div id="gl-echarts" style="height: 260px;background: #ffffff;"></div>
</div>
</div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为有效期内资质,未公开不包含在内</p>
</div>
<div class="main2">
<!--<div class="flex-box query-box head">-->
<!--<span>近五年全国招标总数<span class="number">10,610,000 </span></span>-->
<!--<el-select v-model="year" filterable multiple collapse-tags class="form-content-width" placeholder="请选择">-->
<!--<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.name" :value="item.value" />-->
<!--</el-select>-->
<!--</div>-->
<div class="table-item">
<el-table
:data="zzTableData"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="major" label="资质类型"/>
<el-table-column label="特级" align="right">
<el-table-column prop="tjCount" label="数量(个)" align="right"/>
<el-table-column prop="tjRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="一级" align="right">
<el-table-column prop="oneCount" label="数量(个)" align="right"/>
<el-table-column prop="oneRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="二级" align="right">
<el-table-column prop="twoCount" label="数量(个)" align="right"/>
<el-table-column prop="twoRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="三级" align="right">
<el-table-column prop="threeCount" label="数量(个)" align="right"/>
<el-table-column prop="threeRate" label="占比(%)" align="right"/>
</el-table-column>
</el-table>
</div>
</div>
</div>
<div class="zb-content content2">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业地区分布</span>
</div>
</div>
<div class="main1">
<div class="tabs">
<div class="item" v-for="(item,index) in dqData" :class="qydqIndex === index ? 'color':''" @click="handleClick(2,index)">{{item.major}}<i></i></div>
</div>
<div id="jzqy-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为有效期内资质,未公开不包含在内</p>
</div>
<div class="table-item">
<el-table
:data="jzdqData"
border
height="470"
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="province" label="地区"/>
<el-table-column label="特级" align="right">
<el-table-column prop="tjCount" label="数量(个)" align="right"/>
<el-table-column prop="tjRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="一级" align="right">
<el-table-column prop="oneCount" label="数量(个)" align="right"/>
<el-table-column prop="oneRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="二级" align="right">
<el-table-column prop="twoCount" label="数量(个)" align="right"/>
<el-table-column prop="twoRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="三级" align="right">
<el-table-column prop="threeCount" label="数量(个)" align="right"/>
<el-table-column prop="threeRate" label="占比(%)" align="right"/>
</el-table-column>
</el-table>
</div>
</div>
<div class="zb-content content3">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业备案分布</span>
</div>
</div>
<div class="text">
通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了<span v-for="(item,index) in rankList">{{item.province}}{{ rankList.length === index+1 ? '':'、'}}</span>等地开展经营。</div>
<div class="main1">
<div id="ba-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p>
</div>
<div class="table-item">
<el-table
:data="zbData"
border
height="430"
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="province" label="地区" />
<el-table-column prop="count" label="企业异地备案数量(个)" sortable align="right"/>
<!--<el-table-column prop="zb" label="占比"/>-->
</el-table>
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import { certGroupByMajorAndLevel,certGroupByMajorProvinceLevel,areaGroupByProvince } from '@/api/macro/macro'
export default {
name: 'NationalEconomies',
data() {
return {
typeIndex:0,
glData:[],
jzglData:[],
zzTableData:[],
tableOption:[
{
label:'资质类型',
prop:'major'
},
{
label: '特级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '一级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '二级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '三级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
],
dqData:[],
qydqIndex:0,
zbData:[],
rankList:[],
jzdqData:[],
currentdate:'',
total:'',
glDetail:{},
}
},
created() {
this.getData()
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
this.currentdate=year + '-' +month + '-' + day;
},
methods: {
getData(){
//全国建筑企业概览
certGroupByMajorAndLevel().then(res => {
let list=[];
for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse();
let item={};
item.major=res.data[i].major+'施工总承包';
for (let j=0; j<res.data[i].levelList.length; j++){
if(res.data[i].levelList[j].levelValue === '特级'){
item.tjCount=res.data[i].levelList[j].count;
item.tjRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '一级'){
item.oneCount=res.data[i].levelList[j].count;
item.oneRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '二级'){
item.twoCount=res.data[i].levelList[j].count;
item.twoRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '三级'){
item.threeCount=res.data[i].levelList[j].count;
item.threeRate=res.data[i].levelList[j].rate;
}
}
// item.levelList=res.data[i].levelList.reverse();
list.push(item)
}
this.zzTableData=list;
this.glData=res.data;
this.jzglData=this.glData[0].levelList;
this.glDetail=list[0]
let total=0;
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.initChart()
})
certGroupByMajorProvinceLevel().then(res => {
this.dqData=res.data;
let data=this.dqData[0].province;
let list=[];
for(let i=0; i<data.length; i++){
let item={};
item.province=data[i].province;
for (let j=0; j<data[i].levelList.length; j++){
if(data[i].levelList[j].levelValue === '特级'){
item.tjCount=data[i].levelList[j].count;
item.tjRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '一级'){
item.oneCount=data[i].levelList[j].count;
item.oneRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '二级'){
item.twoCount=data[i].levelList[j].count;
item.twoRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '三级'){
item.threeCount=data[i].levelList[j].count;
item.threeRate=data[i].levelList[j].rate;
}
}
list.push(item)
}
this.jzdqData=list
this.initChart1()
})
areaGroupByProvince().then(res => {
this.zbData=res.data;
//定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存
// let dataArr = JSON.parse(JSON.stringify(res.data))
let arr=res.data.sort((old,New)=>{
return New.count - old.count
})
let data=[]
for(let i=0; i<5; i++){
data.push(arr[i])
}
this.rankList=data;
//将原数组数据赋值回去 保持数据不变
// this.zbData = JSON.parse(JSON.stringify(dataArr))
this.initChart2()
})
},
initChart() {
let myChart = echarts.init(document.getElementById("gl-echarts"))
let option ={
tooltip: {
// show:false
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.jzglData.map(item => item.levelValue),
},
yAxis: {
type: 'value',
},
grid: {
top:40,
left:70,
right:40,
bottom:40,
},
series: [
{
data: this.jzglData.map(item => item.count),
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 1,
color: "#0081FF",
},
itemStyle:{
color: "#4E8EFF",
},
//设置面积区域为渐变效果
areaStyle: {
color: echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#DFEAFF",
},
{
offset: 1,
color: "#5895FF",
},
]),
},
}
]
}
myChart.clear(); //图表清除
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
initChart1() {
let myChart = echarts.init(document.getElementById("jzqy-echarts"))
let option ={
legend: {
x:'right',
padding:[0,30,0,0],
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'line',
label: {
backgroundColor: '#FFFFFF'
}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.jzdqData.map(item => item.province),
},
yAxis: {
type: 'value',
},
grid: {
top:35,
left:60,
right:30,
bottom:20,
},
series: [
{
data: this.jzdqData.map(item => item.tjCount),
name:'特级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#0081FF",
},
itemStyle:{
color: "#4E8EFF",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#DFEAFF",
},
{
offset: 1,
color: "#5895FF",
},
]),
},
},
{
data: this.jzdqData.map(item => item.oneCount),
name:'一级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA6C6C",
},
itemStyle:{
color: "#FA6C6C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#FDF8F5",
},
{
offset: 1,
color: "#FCD7C8",
},
]),
},
},
{
data: this.jzdqData.map(item => item.twoCount),
name:'二级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#8077F2",
},
itemStyle:{
color: "#8077F2",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#ECE8FF",
},
{
offset: 1,
color: "#BCC0FF",
},
]),
},
},
{
data: this.jzdqData.map(item => item.threeCount),
name:'三级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA936C",
},
itemStyle:{
color: "#FA936C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#FEFBFA",
},
{
offset: 1,
color: "#FCD7C8",
},
]),
},
},
]
}
myChart.clear();
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
initChart2() {
let myChart = echarts.init(document.getElementById("ba-echarts"))
let option ={
tooltip: {
// show:false
},
legend:{},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.zbData.map(item => item.province),
},
yAxis: {
type: 'value',
},
grid: {
top:20,
left:65,
right:50,
bottom:20,
},
series: [
{
data: this.zbData.map(item => item.count),
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 1,
color: "#FFAB44",
},
itemStyle:{
color: "#FFAB44",
},
//设置面积区域为渐变效果
areaStyle: {
color: echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#FFEDD0",
},
{
offset: 1,
color: "#FFC671",
},
]),
},
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
handleClick(type,index){
if(type === 1){
this.typeIndex=index;
this.jzglData=this.glData[index].levelList;
let total=0
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.glDetail=this.zzTableData[index]
this.initChart()
}
if(type === 2){
this.qydqIndex=index;
let data=this.dqData[index].province;
let list=[];
for(let i=0; i<data.length; i++){
let item={};
item.province=data[i].province;
for (let j=0; j<data[i].levelList.length; j++){
if(data[i].levelList[j].levelValue === '特级'){
item.tjCount=data[i].levelList[j].count;
item.tjRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '一级'){
item.oneCount=data[i].levelList[j].count;
item.oneRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '二级'){
item.twoCount=data[i].levelList[j].count;
item.twoRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '三级'){
item.threeCount=data[i].levelList[j].count;
item.threeRate=data[i].levelList[j].rate;
}
}
list.push(item)
}
this.jzdqData=list;
this.$nextTick(()=>{
this.initChart1()
})
}
},
}
}
</script>
<style lang="scss" scoped>
.zhongbiao{
.zb-content{
background: #ffffff;
border-radius: 4px;
margin-top: 12px;
padding: 16px;
}
.text{
width: 100%;
line-height: 28px;
padding: 0 16px;
margin-top: 24px;
font-size: 12px;
color: rgba(35,35,35,0.8);
background: #F4F4F5;
border-radius: 2px;
margin-bottom: 24px;
}
.tips{
margin: 0;
padding-top: 16px;
font-size: 12px;
color: rgba(35,35,35,0.4);
i{
color:#909399;
margin-right: 9px;
font-size: 14px;
}
}
.content1{
.main1{
.left{
width: 20%;
float: left;
.item{
height: 74px;
line-height: 74px;
color: #333333;
font-size: 16px;
padding-left: 30px;
border-top: 1px solid #EAF3FF;
border-left: 1px solid #EAF3FF;
border-right: 1px solid #EAF3FF;
cursor: pointer;
}
.item:last-child{
border-bottom: 1px solid #EAF3FF;
}
.color{
background: #F0F3FA;
color:#0081FF;
i{
width: 4px;
height: 29px;
background: #0081FF;
border-radius: 10px;
display: inline-block;
float: right;
margin-top: 22px;
}
}
}
.right{
width: 79%;
float: right;
background: #F0F3FA;
height: 295px;
padding: 16px;
}
}
.main2{
margin-top: 30px;
.head{
span{
font-size: 12px;
color: rgba(35,35,35,0.8);
}
.number{
color:#FF3C3C;
}
::v-deep .el-select{
width: 100px;
height: 32px;
.el-input{
width: 100%;
height: 32px;
}
.el-input__inner{
height: 32px !important;
line-height: 32px;
}
}
}
}
.table-item{
margin-top: 12px;
}
}
.content2{
.tabs{
margin-top: 32px;
margin-bottom: 24px;
.item{
display: inline-block;
color: #3D3D3D;
font-size: 14px;
margin-right: 24px;
cursor: pointer;
}
.color{
color: #3D3D3D;
font-weight: 700;
position: relative;
i{
width: 42px;
height: 2px;
background: #0081FF;
display: inline-block;
position: absolute;
bottom:-4px;
left: 50%;
transform: translate(-50%,0);
}
}
}
.table-item{
margin-top: 32px;
}
}
.content3{
.table-item{
margin-top: 32px;
}
.table-item {
::v-deep .el-table {
.has-gutter{
tr{
th:nth-child(3){
border-right:0;
.cell{
padding-right: 24px !important;
}
}
}
}
}
}
}
.table-item{
::v-deep .el-table{
.el-table__header-wrapper{
th{
padding: 0;
}
}
.el-table__cell.is-right{
text-align: right;
}
.has-gutter{
tr{
th:nth-child(6),th:nth-child(8){
border-right:0;
.cell{
padding-right: 24px !important;
}
}
}
}
.el-table__cell.gutter{
/*background: #F0F3FA;*/
width: 16px !important;
}
.el-table__row{
td:last-child{
.cell{
padding-right: 24px !important;
}
}
}
th{
font-size: 12px !important;
font-weight: 400 !important;
}
.el-table__fixed-header-wrapper th{
background: #F0F3FA;
}
td.el-table__cell{
border-bottom: 0;
}
.caret-wrapper{
width: 10px;
}
}
}
}
</style>
...@@ -3,25 +3,28 @@ ...@@ -3,25 +3,28 @@
<div class="header"> <div class="header">
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全国经济大全" name="first"></el-tab-pane> <el-tab-pane label="全国经济大全" name="first"></el-tab-pane>
<el-tab-pane label="全国招标市场分析" name="second"></el-tab-pane> <el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane>
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane> <el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
<el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<Economic v-if="activeName === 'first'"></Economic> <Economic v-if="activeName === 'first'"></Economic>
<ZhaoBiao v-if="activeName === 'second'"></ZhaoBiao> <Sjxmfx v-if="activeName === 'second'"></Sjxmfx>
<ZhongBiao v-if="activeName === 'third'"></ZhongBiao> <Zhongbiao v-if="activeName === 'third'"></Zhongbiao>
<Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx>
</div> </div>
</template> </template>
<script> <script>
import Economic from './component/qgjjdq' import Economic from './component/qgjjdq'
import ZhaoBiao from './component/zhaobiao' import Sjxmfx from './component/sjxmfx'
import ZhongBiao from './component/zhongbiao' import Jzqyfx from './component/jzqyfx'
import Zhongbiao from './component/zhongbiao'
export default { export default {
name: 'NationalEconomies', name: 'NationalEconomies',
components: { components: {
Economic,ZhaoBiao,ZhongBiao Economic,Sjxmfx,Jzqyfx,Zhongbiao
}, },
data() { data() {
return { return {
......
...@@ -99,35 +99,35 @@ ...@@ -99,35 +99,35 @@
<div class="list-box"> <div class="list-box">
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.count}}<span></span></p> <p>{{statistics.count ? statistics.count:'-'}}<span></span></p>
<span>平台家数</span> <span>平台家数</span>
</div> </div>
<img src="@/assets/images/urban/img1.png"> <img src="@/assets/images/urban/img1.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.creditBalance}}<span>亿元</span></p> <p>{{statistics.creditBalance ? statistics.creditBalance:'-'}}<span>亿元</span></p>
<span>授信余额</span> <span>授信余额</span>
</div> </div>
<img src="@/assets/images/urban/img2.png"> <img src="@/assets/images/urban/img2.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.totalAssets}}<span>亿元</span></p> <p>{{statistics.totalAssets ? statistics.totalAssets:'-'}}<span>亿元</span></p>
<span>资产总额</span> <span>资产总额</span>
</div> </div>
<img src="@/assets/images/urban/img3.png"> <img src="@/assets/images/urban/img3.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.accountsReceivable}}<span>亿元</span></p> <p>{{statistics.accountsReceivable ? statistics.accountsReceivable:'-'}}<span>亿元</span></p>
<span>应收账款</span> <span>应收账款</span>
</div> </div>
<img src="@/assets/images/urban/img4.png"> <img src="@/assets/images/urban/img4.png">
</div> </div>
<div class="item"> <div class="item">
<div class="left"> <div class="left">
<p>{{statistics.nonStandardBalance}}<span>亿元</span></p> <p>{{statistics.nonStandardBalance ? statistics.nonStandardBalance:'-'}}<span>亿元</span></p>
<span>非标余额</span> <span>非标余额</span>
</div> </div>
<img src="@/assets/images/urban/img5.png"> <img src="@/assets/images/urban/img5.png">
......
...@@ -128,7 +128,6 @@ ...@@ -128,7 +128,6 @@
} }
getGZDB(params).then(result=>{ getGZDB(params).then(result=>{
this.datalist = result.code == 200?result:[] this.datalist = result.code == 200?result:[]
console.log(this.datalist.rows)
if(this.datalist){ if(this.datalist){
this.yqnum = `已逾期 ${this.datalist.rows.length} 条`; this.yqnum = `已逾期 ${this.datalist.rows.length} 条`;
} }
...@@ -140,7 +139,6 @@ ...@@ -140,7 +139,6 @@
this.value = "" this.value = ""
}, },
add(){ add(){
// if(this.queryParam.task == '' || this.queryParam.dueTime == '') // if(this.queryParam.task == '' || this.queryParam.dueTime == '')
if(this.queryParam.task == '') if(this.queryParam.task == '')
return this.$message.warning('时间和内容需填写完整!') return this.$message.warning('时间和内容需填写完整!')
......
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
<div class="datalist" v-if="!isSkeleton"> <div class="datalist" v-if="!isSkeleton">
<div class="datali" v-for="(item,index) in datalist"> <div class="datali" v-for="(item,index) in datalist">
<div class="det-title" @click="toDetail(item.id,'xmsl')"> <div class="det-title" @click="toDetail(item.id,'xmsl')">
{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i> <span v-html="item.projectName"></span> <span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>
<span v-if="item.provinceName != '' && item.provinceName!==null">{{item.provinceName}}-</span> <span v-if="item.provinceName != '' && item.provinceName!==null">{{item.provinceName}}-</span>
{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div> {{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips"> <div class="det-tips">
...@@ -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); return businessInfoMapper.selectBusinessInfoList(dto);
}
dto.setOthers(null);
//查询自己参与的项目
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