Commit f166a9fa authored by tianhongyang's avatar tianhongyang

规范全局主体容器宽高 规范滚动条出现容器位置

parent 446c5f52
......@@ -121,12 +121,6 @@ aside {
}
}
//main-container全局样式
.app-container {
//padding: 16px;
//margin-top: 56px;
}
.components-container {
margin: 30px 50px;
position: relative;
......@@ -226,18 +220,13 @@ li {
margin: 0;
}
.app-main {
position: relative;
background-color: #f5f5f5;
>div{
width: calc(100% - 48px);
}
}
.app-container {
margin: 16px 24px;
width: 100%;
height: 100%;
background-color: #f5f5f5;
padding: 16px 24px;
box-sizing: border-box;
//width: 100%;
overflow: auto;
.el-input__inner {
border-color: #d9d9d9;
color: #232323;
......
......@@ -215,7 +215,7 @@
.hideSidebar {
.sidebar-container {
width: 48px !important;
width: $hideSideBarWidth !important;
.sidebar-logo-container {
padding: 0px;
......@@ -235,8 +235,8 @@
}
.main-container {
margin-left: 48px;
width: calc(100% - 48px);
margin-left: $hideSideBarWidth;
width: calc(100% - #{$hideSideBarWidth});
}
.submenu-title-noDropdown {
......
......@@ -52,6 +52,7 @@ $subMenuHover:#001528;
$base-sidebar-width: 220px;
$sideBarWidth: 220px;
$hideSideBarWidth : 48px;
//系统默认颜色
$systemColor:#0081FF;
......
......@@ -10,16 +10,16 @@
</template>
<script>
import iframeToggle from "./IframeToggle/index"
import iframeToggle from "./IframeToggle/index";
export default {
name: 'AppMain',
components: { iframeToggle },
computed: {
cachedViews() {
return this.$store.state.tagsView.cachedViews
return this.$store.state.tagsView.cachedViews;
},
key() {
return this.$route.fullPath
return this.$route.fullPath;
}
}
}
......@@ -27,12 +27,11 @@ export default {
<style lang="scss" scoped>
.app-main {
/* 50= navbar 50 */
min-height: calc(100vh - 50px);
width: 100%;
position: relative;
height: calc(100% - 56px);
width: 100%;
background: #f5f5f5;
overflow: hidden;
display: flex;
}
.fixed-header + .app-main {
......@@ -41,20 +40,17 @@ export default {
.hasTagsView {
.app-main {
/* 84 = navbar + tags-view = 50 + 34 */
min-height: calc(100vh - 56px);
min-width:1240px;
background: #F5F5F5;
overflow: initial;
height: calc(100% - 56px);
min-width: 1240px;
}
.fixed-header + .app-main {
padding-top: 84px;
}
}
.EnterpriseData{
.EnterpriseData {
.app-main {
overflow: initial;
overflow: hidden;
}
}
</style>
......
......@@ -96,6 +96,7 @@ export default {
position: relative;
height: 100%;
width: 100%;
overflow: hidden;
&.mobile.openSidebar {
position: fixed;
......
<template>
<div class="app-container" @click = 'handleALL'>
<div class="app-container" @click='handleALL'>
<el-card class="box-card noborder">
<div class="tables">
<div class="empty" v-if="tableData.total==0&& !isSkeleton">
......@@ -19,8 +19,8 @@
@keydown.native.enter="handleSearch">
<template slot="suffix">
<transition mode="out-in" appear name="fade">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" alt="" @click.stop="searchParam.companyName = '';getCustomerList()"
v-show="showClearIcon">
<img src="@/assets/images/enterprise/search-input-clear-icon.svg" alt=""
@click.stop="searchParam.companyName = '';getCustomerList()" v-show="showClearIcon">
</transition>
</template>
</el-input>
......@@ -31,101 +31,68 @@
</div>
</div>
<skeleton v-if="isSkeleton"></skeleton>
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="tableData.total > 10 ? 'hover' : 'false'" max-height="640"
:data="tableData.rows"
stripe border
style="width: 100%">
<el-table-column
prop="index"
label="序号"
fixed="left"
width="60">
<el-table v-if="!isSkeleton&&tableData.total > 0" class="fixed-table" v-horizontal-scroll="tableData.total > 10 ? 'hover' : 'false'"
max-height="640" :data="tableData.rows" stripe border style="width: 100%">
<el-table-column prop="index" label="序号" fixed="left" width="60">
<template slot-scope='scope'>
<span>{{ (searchParam.pageNum - 1) * searchParam.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
prop="date"
label="企业名称"
fixed="left"
width="316">
<el-table-column prop="date" label="企业名称" fixed="left" width="316">
<template slot-scope="scope">
<div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row,'business')" v-html="scope.row.companyName"></div>
<div class="ps3">
<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>
</el-tooltip>
</div>
</div>
</template>
</el-table-column>
<el-table-column
prop="cooperationProject"
label="合作项目"
width="90">
<el-table-column prop="cooperationProject" label="合作项目" width="90">
<template slot-scope="scope">
{{scope.row.cooperationProject || '--'}}
</template>
</el-table-column>
<el-table-column
prop="followProject"
label="跟进项目"
width="90">
<el-table-column prop="followProject" label="跟进项目" width="90">
<template slot-scope="scope">
{{scope.row.followProject || '--'}}
</template>
</el-table-column>
<el-table-column
prop="reserveProject"
label="储备项目"
width="90">
<el-table-column prop="reserveProject" label="储备项目" width="90">
<template slot-scope="scope">
{{scope.row.reserveProject || '--'}}
</template>
</el-table-column>
<el-table-column
prop="legalPerson"
label="法定代表人"
width="110">
<el-table-column prop="legalPerson" label="法定代表人" width="110">
<template slot-scope="scope">
{{scope.row.legalPerson || '--'}}
</template>
</el-table-column>
<el-table-column
prop="registerAddress"
label="注册地区"
width="160">
<el-table-column prop="registerAddress" label="注册地区" width="160">
<template slot-scope="scope">
{{scope.row.registerAddress || '--'}}
</template>
</el-table-column>
<el-table-column
prop="registerCapitalStr"
label="注册资本金(万元)"
width="160">
<el-table-column prop="registerCapitalStr" label="注册资本金(万元)" width="160">
<template slot-scope="scope">
<span v-if="scope.row.registerCapital && scope.row.registerCapital>0">{{scope.row.registerCapital}}</span><span v-else>--</span>
</template>
</el-table-column>
<el-table-column
prop="creditLevel"
label="企业主体评级" width="100">
<el-table-column prop="creditLevel" label="企业主体评级" width="100">
<template slot-scope="scope">
{{scope.row.creditLevel || '--'}}
</template>
</el-table-column>
<el-table-column
prop="isOn"
label="上市公司" width="76">
<el-table-column prop="isOn" label="上市公司" width="76">
<template slot-scope="scope">
{{scope.row.isOn == 1?"是":"否"}}
</template>
</el-table-column>
<el-table-column
prop="isMajor"
label="局级大客户" width="88">
<el-table-column prop="isMajor" label="局级大客户" width="88">
<template slot-scope="scope">
<span v-if="scope.row.isMajor != null">
{{scope.row.isMajor == 1?"是":"否"}}
......@@ -133,37 +100,27 @@
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column
prop="customerLevel"
label="客户等级" width="76">
<el-table-column prop="customerLevel" label="客户等级" width="76">
<template slot-scope="scope">
{{scope.row.customerLevel || '--'}}
</template>
</el-table-column>
<el-table-column
prop="companyNature"
label="客户性质" width="76">
<el-table-column prop="companyNature" label="客户性质" width="76">
<template slot-scope="scope">
{{scope.row.companyNature || '--'}}
</template>
</el-table-column>
<el-table-column
prop="companyLevel"
label="客户级别" width="76">
<el-table-column prop="companyLevel" label="客户级别" width="76">
<template slot-scope="scope">
{{scope.row.companyLevel || '--'}}
</template>
</el-table-column>
<el-table-column
prop="address"
label="企业母公司" width="268">
<el-table-column prop="address" label="企业母公司" width="268">
<template slot-scope="scope">
<div class="">{{scope.row.superCompany || '--'}}</div>
</template>
</el-table-column>
<el-table-column :key="keys"
prop="mainBusiness"
label="主营业务" width="400">
<el-table-column :key="keys" prop="mainBusiness" label="主营业务" width="400">
<template slot-scope="scope">
<div v-if="scope.row.mainBusiness == null || scope.row.mainBusiness == ''">--</div>
<div v-if="scope.row.mainBusiness1">
......@@ -173,9 +130,7 @@
<div v-else>{{scope.row.mainBusiness}}</div>
</template>
</el-table-column>
<el-table-column
prop="companyAttribute" :key="keys+2"
label="发包属性" width="400">
<el-table-column prop="companyAttribute" :key="keys+2" label="发包属性" width="400">
<template slot-scope="scope">
<div v-if="scope.row.companyAttribute == null || scope.row.companyAttribute == ''">--</div>
<div v-if="scope.row.companyAttribute1">
......@@ -185,22 +140,15 @@
<div v-else>{{scope.row.companyAttribute}}</div>
</template>
</el-table-column>
<el-table-column
prop="followUser"
label="跟进人" width="110">
<el-table-column prop="followUser" label="跟进人" width="110">
<template slot-scope="scope">
{{scope.row.followUser || '--'}}
</template>
</el-table-column>
</el-table>
<div class="bottems" v-if="tableData.total>searchParam.pageSize">
<el-pagination
background
:page-size="searchParam.pageSize"
:current-page="searchParam.pageNum"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="tableData.total">
<el-pagination background :page-size="searchParam.pageSize" :current-page="searchParam.pageNum" @current-change="handleCurrentChange"
layout="prev, pager, next" :total="tableData.total">
</el-pagination>
</div>
<div class="delform" v-if="RLcompanyName">
......@@ -216,30 +164,30 @@
</template>
<script>
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss"
import {getCustomerList,importData,addCustomer} from '@/api/custom/custom'
import {getEnterprise,getDictType,} from '@/api/main'
import {encodeStr} from "@/assets/js/common"
import { historyClaim } from "@/api/common" //认领
import skeleton from '../../project/projectList/component/skeleton'
import { getToken } from "@/utils/auth";
import "@/assets/styles/project.scss";
import { getCustomerList, importData, addCustomer } from '@/api/custom/custom';
import { getEnterprise, getDictType, } from '@/api/main';
import { encodeStr } from "@/assets/js/common";
import { historyClaim } from "@/api/common"; //认领
import skeleton from '../../project/projectList/component/skeleton';
export default {
name: 'CustomList',
components:{skeleton},
components: { skeleton },
data() {
return{
return {
encodeStr,
searchParam:{
companyName:'',
pageNum:1,
pageSize:20,
status:1,
searchParam: {
companyName: '',
pageNum: 1,
pageSize: 20,
status: 1,
},
tableData: [],//列表
customerLevel:[],//客户等级
rules:{
companyName:[{ required: true, message: '请输入非空格字符!', trigger: 'blur' },]
customerLevel: [],//客户等级
rules: {
companyName: [{ required: true, message: '请输入非空格字符!', trigger: 'blur' },]
},
//批量导入
action: process.env.VUE_APP_BASE_API + "/customer/importData",
......@@ -248,102 +196,102 @@ export default {
Authorization: "Bearer " + getToken(),
},
// isNew:true,
showlist:false,
keys:1,
RLcompanyName:'',//重新认领企业名称
isSkeleton:true,
showlist: false,
keys: 1,
RLcompanyName: '',//重新认领企业名称
isSkeleton: true,
showClearIcon: false,
searchHoverStatus: false,
hover: false,
}
};
},
created() {
this.$watch(
() => this.$route.params,
() => {
this.getCustomerList()
this.getDictType()
this.searchParam.companyName = ''
},{ immediate: true })
this.getCustomerList();
this.getDictType();
this.searchParam.companyName = '';
}, { immediate: true });
},
methods:{
sq1(item,sq){
this.$nextTick(()=>{
item.sq1 = sq
this.keys++ ;
})
methods: {
sq1(item, sq) {
this.$nextTick(() => {
item.sq1 = sq;
this.keys++;
});
},
sq2(item,sq){
this.$nextTick(()=>{
item.sq2 = sq
this.keys++ ;
})
sq2(item, sq) {
this.$nextTick(() => {
item.sq2 = sq;
this.keys++;
});
},
handleALL(event){
handleALL(event) {
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
if (one) {
if (!one.contains(event.target)) {
this.showlist = false;
}
}
},
toct(){
this.dialogVisible = false
this.$router.push({path:'/macro/urban'})
toct() {
this.dialogVisible = false;
this.$router.push({ path: '/macro/urban' });
},
getDictType(){
getDictType() {
//获取客户等级
getDictType('customer_level_type').then(result=>{
this.customerLevel = result.code == 200 ? result.data:[]
})
getDictType('customer_level_type').then(result => {
this.customerLevel = result.code == 200 ? result.data : [];
});
},
//获取客户列表
getCustomerList(){
getCustomerList(this.searchParam).then(result=>{
this.isSkeleton = false
this.tableData = result
this.tableData.rows.forEach(item=>{
item.registerCapital = item.registerCapital == null?null: item.registerCapital.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')
if(item.mainBusiness != "" && item.mainBusiness != null && item.mainBusiness.length>84){
item.mainBusiness1 = item.mainBusiness.substring(0,81)
item.sq1 = true
}else{
item.sq1 = false
}
if(item.companyAttribute != "" && item.companyAttribute != null && item.companyAttribute.length>84){
item.companyAttribute1 = item.companyAttribute.substring(0,81)
item.sq2 = true
}else{
item.sq2 = false
}
})
})
getCustomerList() {
getCustomerList(this.searchParam).then(result => {
this.isSkeleton = false;
this.tableData = result;
this.tableData.rows.forEach(item => {
item.registerCapital = item.registerCapital == null ? null : item.registerCapital.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1');
if (item.mainBusiness != "" && item.mainBusiness != null && item.mainBusiness.length > 84) {
item.mainBusiness1 = item.mainBusiness.substring(0, 81);
item.sq1 = true;
} else {
item.sq1 = false;
}
if (item.companyAttribute != "" && item.companyAttribute != null && item.companyAttribute.length > 84) {
item.companyAttribute1 = item.companyAttribute.substring(0, 81);
item.sq2 = true;
} else {
item.sq2 = false;
}
});
});
},
//跳转到客户详情
toDetail(row,type){
let customerId = row.customerId
let companyId = row.companyId
let path = type
toDetail(row, type) {
let customerId = row.customerId;
let companyId = row.companyId;
let path = type;
// if(type == "" && companyId == null){
// path = 'business'
// }
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
this.$router.push({ path: '/enterprise/' + encodeStr(companyId), query: { customerId: customerId, path: path } });
},
//认领客户
async toRL(row){
this.RLcompanyName = row.companyName.replace(/<[^>]+>/g, '')
async toRL(row) {
this.RLcompanyName = row.companyName.replace(/<[^>]+>/g, '');
},
async RL(){
let res = await historyClaim(this.RLcompanyName)
if(res.code==200){
this.$message.success('认领成功!')
this.handleCurrentChange(1)
this.RLcompanyName=''
async RL() {
let res = await historyClaim(this.RLcompanyName);
if (res.code == 200) {
this.$message.success('认领成功!');
this.handleCurrentChange(1);
this.RLcompanyName = '';
}
},
clearname(value){
if(value == ""){
this.handleCurrentChange(1)
clearname(value) {
if (value == "") {
this.handleCurrentChange(1);
}
},
handleSearch() {
......@@ -354,14 +302,14 @@ export default {
},
//翻页
handleCurrentChange(val) {
this.isSkeleton = true
this.searchParam.pageNum=val
this.getCustomerList()
this.isSkeleton = true;
this.searchParam.pageNum = val;
this.getCustomerList();
},
searchFocus(event) {
const { target } = event;
if (target?.value?.length) {
this.showClearIcon=true
this.showClearIcon = true;
}
},
searchBlur(event) {
......@@ -394,24 +342,24 @@ export default {
</script>
<style lang="scss" scoped>
.delform{
.delform {
width: 228px;
left: 50%;
top: 50%;
margin-left: -114px;
margin-top: -57px;
.words{
.words {
font-size: 14px;
}
}
.app-container{
height: calc(100vh - 134px)
}
.box-card{
}
.app-container {
height: calc(100vh - 134px);
}
.box-card {
padding-top: 16px;
width: 100%;
height: 100%;
.table_search{
.table_search {
::v-deep .normal-search-container {
display: flex;
align-items: center;
......@@ -486,111 +434,110 @@ export default {
}
}
}
}
.box{
}
.box {
position: relative;
>span{
> span {
position: absolute;
right: 10px;
bottom: 0;
color: #0081FF;
color: #0081ff;
cursor: pointer;
&:hover{
color: #006AD1;
}
&:hover {
color: #006ad1;
}
}
.dc{
}
.dc {
font-size: 12px;
color: #3D3D3D;
color: #3d3d3d;
font-weight: 400;
position: relative;
line-height: 32px;
&::after{
content: ' ';
&::after {
content: " ";
width: 2px;
height: 2px;
background: rgba(35,35,35,0.4);
background: rgba(35, 35, 35, 0.4);
border-radius: 50%;
position: absolute;
top: 16px;
left: 14px;
}
>div{
> div {
display: inline-block;
margin-left: 20px;
}
}
.img.img1{
}
.img.img1 {
margin-right: 2px;
background: url('../../../../src/assets/images/project/add_2.png')no-repeat center center;
background: url("../../../../src/assets/images/project/add_2.png") no-repeat
center center;
background-size: 100%;
}
.w88{
}
.w88 {
width: 88px;
}
.tables{
}
.tables {
position: relative;
min-height: calc(100vh - 134px);
/*overflow: auto;*/
.empty{
.empty {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
.btn{
transform: translate(-50%, -50%);
.btn {
margin-right: 8px;
margin-top: 16px;
}
}
}
.ps1{
}
.ps1 {
display: flex;
justify-content: space-between;
.ps2{
.ps2 {
width: 350px;
}
.ps3{
.ps3 {
width: 60px;
display: flex;
justify-content: right;
>div{
> div {
margin-left: 12px;
>img{
> img {
float: right;
margin: 3px 0 0 4px;
width: 14px;
}
.i{
.i {
display: inline-block;
}
.o{
.o {
display: none;
}
&:hover{
&:hover {
cursor: pointer;
.i{
.i {
display: none;
}
.o{
.o {
display: inline-block;
}
}
}
}
}
.popbot{
.wordprimary{
}
.popbot {
.wordprimary {
display: inline;
padding-right: 26px;
}
}
.app-container{
height: auto;
}
.searchInput{
.el-input{
}
.searchInput {
.el-input {
width: 260px;
}
}
}
</style>
<template>
<div class="app-container home">
<div class="home">
<!--经理视角-->
<div class="manage" v-if="user === 1">
<el-row>
<el-col :span="16">
<div class="task-wrap">
<div class="item" v-for="item in routerLink" @click="handleUrl(item)">
<img class="icon-img" :src="`${item.imgUrl}`"/>
<img class="icon-img" :src="`${item.imgUrl}`" />
<p class="text">{{item.name}}</p>
</div>
</div>
......@@ -30,23 +30,21 @@
<div class="search">
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="address">
<el-select v-model="queryParams.address" :class="[`select-adaptive-${inputID1}`]" @change="iptAdaptive(inputID1,'','changeSelect1')" clearable placeholder="项目地区">
<el-select v-model="queryParams.address" :class="[`select-adaptive-${inputID1}`]" @change="iptAdaptive(inputID1,'','changeSelect1')"
clearable placeholder="项目地区">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="type">
<el-select v-model="queryParams.type" @change="iptAdaptive(inputID2,true,'changeSelect1')" :class="[`select-adaptive-${inputID2}`,queryParams.type.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable placeholder="项目类型">
<el-select v-model="queryParams.type" @change="iptAdaptive(inputID2,true,'changeSelect1')"
:class="[`select-adaptive-${inputID2}`,queryParams.type.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable
placeholder="项目类型">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="time">
<custom-time-select
:timeList="timeList"
v-model="queryParams.time"
:class="[`select-adaptive-${inputID3}`]"
timeValue="近七天"
placeholder="中标日期"
@handle-search="iptAdaptive(inputID3,'','changeSelect1')"/>
<custom-time-select :timeList="timeList" v-model="queryParams.time" :class="[`select-adaptive-${inputID3}`]" timeValue="近七天"
placeholder="中标日期" @handle-search="iptAdaptive(inputID3,'','changeSelect1')" />
</el-form-item>
</el-form>
</div>
......@@ -59,17 +57,11 @@
</el-col>
<el-col :span="10">
<div class="box-right">
<el-table
:data="jtzbList"
border
max-height="320"
fit
ref="tableRef"
highlight-current-row
>
<el-table :data="jtzbList" border max-height="320" fit ref="tableRef" highlight-current-row>
<el-table-column prop="combineName" label="集团名称">
<template slot-scope="scope">
<router-link :to="`/groupAccount/${scope.row.combineId}?name=${scope.row.combineName}`" tag="a" class="a-link">{{scope.row.combineName}}</router-link>
<router-link :to="`/groupAccount/${scope.row.combineId}?name=${scope.row.combineName}`" tag="a"
class="a-link">{{scope.row.combineName}}</router-link>
</template>
</el-table-column>
<el-table-column prop="count" label="中标数量" align="right" sortable width="150">
......@@ -101,31 +93,24 @@
<div class="search">
<el-form ref="queryForm" :model="queryParams1" :inline="true" size="small">
<el-form-item prop="money">
<custom-money-select
:moneyList="moneyList"
v-model="queryParams1.money"
:class="[`select-adaptive-${inputID4}`]"
placeholder="中标金额"
<custom-money-select :moneyList="moneyList" v-model="queryParams1.money" :class="[`select-adaptive-${inputID4}`]" placeholder="中标金额"
@handle-search="iptAdaptive(inputID4,'','changeSelect2')" />
</el-form-item>
<el-form-item prop="address">
<el-select v-model="queryParams1.address" :class="[`select-adaptive-${inputID5}`]" @change="iptAdaptive(inputID5,true,'changeSelect2')" clearable placeholder="项目地区">
<el-select v-model="queryParams1.address" :class="[`select-adaptive-${inputID5}`]"
@change="iptAdaptive(inputID5,true,'changeSelect2')" clearable placeholder="项目地区">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="type">
<el-select v-model="queryParams1.type" multiple collapse-tags @change="iptAdaptive(inputID6,true,'changeSelect2')" :class="[`select-adaptive-${inputID6}`,queryParams1.type.length > 1 ? 'selectTag' : '']" clearable placeholder="项目类型">
<el-select v-model="queryParams1.type" multiple collapse-tags @change="iptAdaptive(inputID6,true,'changeSelect2')"
:class="[`select-adaptive-${inputID6}`,queryParams1.type.length > 1 ? 'selectTag' : '']" clearable placeholder="项目类型">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="time">
<custom-time-select
:timeList="timeList"
v-model="queryParams1.time"
:class="[`select-adaptive-${inputID7}`]"
timeValue="近七天"
placeholder="中标日期"
@handle-search="iptAdaptive(inputID7,'','changeSelect2')"/>
<custom-time-select :timeList="timeList" v-model="queryParams1.time" :class="[`select-adaptive-${inputID7}`]" timeValue="近七天"
placeholder="中标日期" @handle-search="iptAdaptive(inputID7,'','changeSelect2')" />
</el-form-item>
</el-form>
</div>
......@@ -137,18 +122,12 @@
</el-col>
<el-col :span="10">
<div class="box-right">
<el-table
:data="dxmbList"
border
max-height="320"
ref="tableRef1"
fit
highlight-current-row
>
<el-table :data="dxmbList" border max-height="320" ref="tableRef1" fit highlight-current-row>
<el-table-column prop="companyName" label="企业名称">
<template slot-scope="scope">
<!--<router-link v-if="scope.row.companyId" :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link companyName" v-html="scope.row.companyName" ></router-link>-->
<span style="cursor: pointer;" class="a-link companyName" @click="getUipIdByCid(scope.row.companyId)">{{scope.row.companyName}}</span>
<span style="cursor: pointer;" class="a-link companyName"
@click="getUipIdByCid(scope.row.companyId)">{{scope.row.companyName}}</span>
</template>
</el-table-column>
<el-table-column prop="count" label="中标数量" align="right" sortable width="150">
......@@ -180,7 +159,8 @@
</div>
<div class="list" v-if="!zxzbIsSkeleton">
<div class="item" v-for="(item,index) in projectList" :key="index">
<p class="list-title"><router-link :to="`/biddetail/${item.pid}`" tag="a" class="a-link" v-if="item.pid" v-html="item.projectName"></router-link></p>
<p class="list-title"><router-link :to="`/biddetail/${item.pid}`" tag="a" class="a-link" v-if="item.pid"
v-html="item.projectName"></router-link></p>
<div class="list-content">
<p class="list-content-text">
<span>中标企业:</span>
......@@ -202,7 +182,8 @@
</div>
</div>
<div class="pagination-box" v-if="show_page && totalCount>queryParams2.pageSize && !zxzbIsSkeleton">
<el-pagination background :current-page="queryParams2.pageNum" :page-size="queryParams2.pageSize" :total="totalCount" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
<el-pagination background :current-page="queryParams2.pageNum" :page-size="queryParams2.pageSize" :total="totalCount"
layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</el-tab-pane>
<el-tab-pane label="大项目最新招标" name="second">
......@@ -214,7 +195,8 @@
<div v-if="!zhaobiaoIsSkeleton" class="list">
<div class="item" v-for="(item,index) in zbList" :key="index">
<p class="list-title"><router-link :to="`/radar/Notice/details/${item.id}`" tag="a" class="a-link" v-if="item.id" v-html="item.projectName"></router-link></p>
<p class="list-title"><router-link :to="`/radar/Notice/details/${item.id}`" tag="a" class="a-link" v-if="item.id"
v-html="item.projectName"></router-link></p>
<div class="list-content">
<p class="list-content-text">
<span>总投资:</span>
......@@ -232,39 +214,32 @@
</div>
</div>
<div class="pagination-box" v-if="show_page && zbTableTotal>queryParams2.pageSize && !zhaobiaoIsSkeleton">
<el-pagination background :current-page="queryParams2.pageNum" :page-size="queryParams2.pageSize" :total="zbTableTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
<el-pagination background :current-page="queryParams2.pageNum" :page-size="queryParams2.pageSize" :total="zbTableTotal"
layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</el-tab-pane>
</el-tabs>
<div class="search">
<el-form ref="queryForm" :model="queryParams2" :inline="true" size="small">
<el-form-item prop="amount">
<custom-money-select
:moneyList="moneyList"
v-model="amount"
:class="[`select-adaptive-${inputID8}`]"
moneyValue="2亿以上"
:placeholder="placeholder"
@handle-search="iptAdaptive(inputID8,'','changeSelect3')" />
<custom-money-select :moneyList="moneyList" v-model="amount" :class="[`select-adaptive-${inputID8}`]" moneyValue="2亿以上"
:placeholder="placeholder" @handle-search="iptAdaptive(inputID8,'','changeSelect3')" />
</el-form-item>
<el-form-item prop="provinceId">
<el-select v-model="queryParams2.provinceId" :class="[`select-adaptive-${inputID9}`]" @change="iptAdaptive(inputID9,'','changeSelect3')" clearable placeholder="项目地区">
<el-select v-model="queryParams2.provinceId" :class="[`select-adaptive-${inputID9}`]" @change="iptAdaptive(inputID9,'','changeSelect3')"
clearable placeholder="项目地区">
<el-option v-for="(item,index) in addressList" :key="index" :label="item.label" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="projects">
<el-select v-model="queryParams2.projects" @change="iptAdaptive(inputID10,true,'changeSelect3')" multiple collapse-tags clearable placeholder="项目类型" :class="[`select-adaptive-${inputID10}`,queryParams2.projects.length > 1 ? 'selectTag' : '']">
<el-select v-model="queryParams2.projects" @change="iptAdaptive(inputID10,true,'changeSelect3')" multiple collapse-tags clearable
placeholder="项目类型" :class="[`select-adaptive-${inputID10}`,queryParams2.projects.length > 1 ? 'selectTag' : '']">
<el-option v-for="(item,index) in projectType" :key="index" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="time">
<custom-time-select
:timeList="timeList"
v-model="queryParams2.time"
:class="[`select-adaptive-${inputID11}`]"
timeValue="近七天"
:placeholder="timePlaceholder"
@handle-search="iptAdaptive(inputID11,'','changeSelect3')"/>
<custom-time-select :timeList="timeList" v-model="queryParams2.time" :class="[`select-adaptive-${inputID11}`]" timeValue="近七天"
:placeholder="timePlaceholder" @handle-search="iptAdaptive(inputID11,'','changeSelect3')" />
</el-form-item>
</el-form>
</div>
......@@ -277,35 +252,35 @@
<div class="content-left">
<div class="task-wrap">
<div class="item">
<img class="left" src="@/assets/images/index/icon1.png"/>
<img class="left" src="@/assets/images/index/icon1.png" />
<div class="right">
<p class="title">即将开标项目</p>
<p class="number">36</p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png"/></span></p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png" /></span></p>
</div>
</div>
<div class="item">
<img class="left" src="@/assets/images/index/icon2.png"/>
<img class="left" src="@/assets/images/index/icon2.png" />
<div class="right">
<p class="title">重点关注项目</p>
<p class="number">36</p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png"/></span></p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png" /></span></p>
</div>
</div>
<div class="item">
<img class="left" src="@/assets/images/index/icon3.png"/>
<img class="left" src="@/assets/images/index/icon3.png" />
<div class="right">
<p class="title">重点关注客户</p>
<p class="number">36</p>
<p class="compare">较上月 <span class="down">-3<img src="@/assets/images/index/down.png"/></span></p>
<p class="compare">较上月 <span class="down">-3<img src="@/assets/images/index/down.png" /></span></p>
</div>
</div>
<div class="item">
<img class="left" src="@/assets/images/index/icon4.png"/>
<img class="left" src="@/assets/images/index/icon4.png" />
<div class="right">
<p class="title">储备合作客户</p>
<p class="number">36</p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png"/></span></p>
<p class="compare">较上月 <span class="up">+3<img src="@/assets/images/index/up.png" /></span></p>
</div>
</div>
<div class="item add">
......@@ -336,10 +311,7 @@
<el-tab-pane label="甲方舆情" name="first">
<div class="main-box">
<el-timeline>
<el-timeline-item
v-for="(item, index) in trendsList"
:key="index"
icon="el-icon-time">
<el-timeline-item v-for="(item, index) in trendsList" :key="index" icon="el-icon-time">
<div class="time">{{item.time}}<span class="company">{{item.name}}</span></div>
<div class="cont">{{item.main}}</div>
</el-timeline-item>
......@@ -350,10 +322,7 @@
<el-tab-pane label="监控动态" name="second">
<div class="main-box">
<el-timeline>
<el-timeline-item
v-for="(item, index) in trendsList"
:key="index"
icon="el-icon-time">
<el-timeline-item v-for="(item, index) in trendsList" :key="index" icon="el-icon-time">
<div class="time">{{item.time}}<span class="company">{{item.name}}</span></div>
<div class="cont">{{item.main}}</div>
</el-timeline-item>
......@@ -381,29 +350,29 @@
<span class="common-title">储备项目类</span>
<div class="list" style="margin-top: 8px;">
<div class="item">
<img src="@/assets/images/index/cb_icon1.png"/>
<img src="@/assets/images/index/cb_icon1.png" />
<p>EPC项目</p>
</div>
<div class="item">
<img src="@/assets/images/index/cb_icon2.png"/>
<img src="@/assets/images/index/cb_icon2.png" />
<p>投资项目</p>
</div>
<div class="item">
<img src="@/assets/images/index/cb_icon3.png"/>
<img src="@/assets/images/index/cb_icon3.png" />
<p>房建项目</p>
</div>
</div>
<div class="list">
<div class="item">
<img src="@/assets/images/index/cb_icon4.png"/>
<img src="@/assets/images/index/cb_icon4.png" />
<p>电力项目</p>
</div>
<div class="item">
<img src="@/assets/images/index/cb_icon5.png"/>
<img src="@/assets/images/index/cb_icon5.png" />
<p>市政项目</p>
</div>
<div class="item">
<img src="@/assets/images/index/cb_icon6.png"/>
<img src="@/assets/images/index/cb_icon6.png" />
<p>水利项目</p>
</div>
</div>
......@@ -469,137 +438,137 @@
</template>
<script>
import * as echarts from 'echarts';
import {encodeStr} from "@/assets/js/common.js"
import dataRegion from '@/assets/json/dataRegion'
import "@/assets/styles/public.scss";
import CustomTimeSelect from './component/CustomTimeSelect'
import CustomMoneySelect from './component/CustomMoneySelect'
import skeleton from './component/skeleton'
import { countByCompany,bidRank,bigWinningBidsPage,bigBidPage } from '@/api/index'
import { getUipIdByCid } from '@/api/macro/macro'
import api from '@/api/radar/radar.js';
import { v4 } from "uuid";
import * as echarts from 'echarts';
import { encodeStr } from "@/assets/js/common.js";
import dataRegion from '@/assets/json/dataRegion';
import "@/assets/styles/public.scss";
import CustomTimeSelect from './component/CustomTimeSelect';
import CustomMoneySelect from './component/CustomMoneySelect';
import skeleton from './component/skeleton';
import { countByCompany, bidRank, bigWinningBidsPage, bigBidPage } from '@/api/index';
import { getUipIdByCid } from '@/api/macro/macro';
import api from '@/api/radar/radar.js';
import { v4 } from "uuid";
export default {
name: "Index",
components: {
CustomTimeSelect,CustomMoneySelect,skeleton
CustomTimeSelect, CustomMoneySelect, skeleton
},
data() {
return {
encodeStr,
// 版本号
version: "3.8.5",
gjjlData:[
gjjlData: [
{
title:'今天拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '今天拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'今天拜访了重庆机场集团董事长,下个月招标项目预计1.2个亿。争取能拿到项目。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '今天拜访了重庆机场集团董事长,下个月招标项目预计1.2个亿。争取能拿到项目。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'5月27日早上劳动局去杨局长说希望我们把项目预算清单做出来看一下。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '5月27日早上劳动局去杨局长说希望我们把项目预算清单做出来看一下。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'5月27日早上劳动局去杨局长说希望我们把项目预算清单做出来看一下。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '5月27日早上劳动局去杨局长说希望我们把项目预算清单做出来看一下。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
{
title:'拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user:'李婷婷',
name:'重庆机场集团',
time:'2023-04-12 14: 00'
title: '拜访了重庆交通局杨科长,洽谈比较愉快,预计下月有项目招标,希望能有机会合作。',
user: '李婷婷',
name: '重庆机场集团',
time: '2023-04-12 14: 00'
},
],
pmData:[
pmData: [
{
name:'中治建工集团有限公司',
value:334,
value1:164,
name: '中治建工集团有限公司',
value: 334,
value1: 164,
},
{
name:'中机中联工程有限公司',
value:230,
value1:130,
name: '中机中联工程有限公司',
value: 230,
value1: 130,
},
{
name:'中铁五局集团第六公司',
value:156,
value1:150,
name: '中铁五局集团第六公司',
value: 156,
value1: 150,
},
{
name:'中铁长江交通设计公司',
value:112,
value1:130,
name: '中铁长江交通设计公司',
value: 112,
value1: 130,
},
{
name:'重庆设计院有限公公司',
value:110,
value1:90,
name: '重庆设计院有限公公司',
value: 110,
value1: 90,
},
{
name:'中铁五局集团第六公司',
value:100,
value1:91,
name: '中铁五局集团第六公司',
value: 100,
value1: 91,
},
{
name:'中铁五局集团第六公司',
value:99,
value1:102,
name: '中铁五局集团第六公司',
value: 99,
value1: 102,
},
{
name:'重庆设计院有限公公司',
value:80,
value1:90,
name: '重庆设计院有限公公司',
value: 80,
value1: 90,
},
{
name:'中铁五局集团第六公司',
value:100,
value1:91,
name: '中铁五局集团第六公司',
value: 100,
value1: 91,
},
{
name:'中铁五局集团第六公司',
value:99,
value1:102,
name: '中铁五局集团第六公司',
value: 99,
value1: 102,
},
],
rankIconsSize:'24',
rankIcons:[// 排序图标
rankIconsSize: '24',
rankIcons: [// 排序图标
require('@/assets/images/index/1.png'),
require('@/assets/images/index/2.png'),
require('@/assets/images/index/3.png'),
......@@ -611,157 +580,157 @@ export default {
require('@/assets/images/index/9.png'),
require('@/assets/images/index/10.png'),
],
user:1,
activeName:'first',
trendsList:[
user: 1,
activeName: 'first',
trendsList: [
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
{
time:'2018-04-03 10:20',
name:'重庆轨道交通集团有限公司',
main:'发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
time: '2018-04-03 10:20',
name: '重庆轨道交通集团有限公司',
main: '发布招标公告 重庆轨道交通环线鹅公岩轨道专用桥增设防船撞设施项目,项目地区是重庆市-江北区,项目类型为工程建设。'
},
],
jtzbList:[],
dxmbList:[],
addressList:[],
projectType:[], //项目类型
queryParams:{
address:'',
type:[],
time:'',
},
queryParams1:{
address:'',
type:[],
money:'',
time:'',
},
queryParams2:{
provinceId:'',
projects:[],
amount:'',
time:[this.formatDate(new Date(new Date().getTime() - 3600 * 1000 * 24 * 7)),this.formatDate(new Date())],
pageNum:1,
pageSize:10
},
amount:'',
jtzbList: [],
dxmbList: [],
addressList: [],
projectType: [], //项目类型
queryParams: {
address: '',
type: [],
time: '',
},
queryParams1: {
address: '',
type: [],
money: '',
time: '',
},
queryParams2: {
provinceId: '',
projects: [],
amount: '',
time: [this.formatDate(new Date(new Date().getTime() - 3600 * 1000 * 24 * 7)), this.formatDate(new Date())],
pageNum: 1,
pageSize: 10
},
amount: '',
timeList: ['近三天', '近七天', '近半月', '自定义'],
moneyList: ['2亿以上', '5亿以上', '10亿以上', '自定义'],
projectList:[],
zbList:[],
totalCount:0,
zbTableTotal:0,
isSkeleton:true,
zxzbIsSkeleton:true,
dxmzbState:true,
zhaobiaoIsSkeleton:true,
placeholder:'中标金额',
timePlaceholder:'中标日期',
show_page:true,
MaxPage:500,
nickName:'',
permissions:[],
routerLink:[
{url:'/project/overview',name:'项目管理',imgUrl:require('@/assets/images/index/icon1.png')},
{url:'/custom/overview',name:'客户管理',imgUrl:require('@/assets/images/index/icon2.png')},
{url:'/macro/nationalEconomies',name:'全国经济大全',imgUrl:require('@/assets/images/index/icon3.png')},
{url:'/enterpriseData/Group',name:'集团户',imgUrl:require('@/assets/images/index/icon4.png')},
{url:'/enterpriseData/Owner',name:'查城投平台',imgUrl:require('@/assets/images/index/icon5.png')},
{url:'/radar',name:'商机雷达',imgUrl:require('@/assets/images/index/icon6.png')},
projectList: [],
zbList: [],
totalCount: 0,
zbTableTotal: 0,
isSkeleton: true,
zxzbIsSkeleton: true,
dxmzbState: true,
zhaobiaoIsSkeleton: true,
placeholder: '中标金额',
timePlaceholder: '中标日期',
show_page: true,
MaxPage: 500,
nickName: '',
permissions: [],
routerLink: [
{ url: '/project/overview', name: '项目管理', imgUrl: require('@/assets/images/index/icon1.png') },
{ url: '/custom/overview', name: '客户管理', imgUrl: require('@/assets/images/index/icon2.png') },
{ url: '/macro/nationalEconomies', name: '全国经济大全', imgUrl: require('@/assets/images/index/icon3.png') },
{ url: '/enterpriseData/Group', name: '集团户', imgUrl: require('@/assets/images/index/icon4.png') },
{ url: '/enterpriseData/Owner', name: '查城投平台', imgUrl: require('@/assets/images/index/icon5.png') },
{ url: '/radar', name: '商机雷达', imgUrl: require('@/assets/images/index/icon6.png') },
],
inputID1:this.getUid(),
inputID2:this.getUid(),
inputID3:this.getUid(),
inputID4:this.getUid(),
inputID5:this.getUid(),
inputID6:this.getUid(),
inputID7:this.getUid(),
inputID8:this.getUid(),
inputID9:this.getUid(),
inputID10:this.getUid(),
inputID11:this.getUid(),
inputID1: this.getUid(),
inputID2: this.getUid(),
inputID3: this.getUid(),
inputID4: this.getUid(),
inputID5: this.getUid(),
inputID6: this.getUid(),
inputID7: this.getUid(),
inputID8: this.getUid(),
inputID9: this.getUid(),
inputID10: this.getUid(),
inputID11: this.getUid(),
};
},
watch : {
watch: {
user(newValue) {
this.getPlaceholder();
}
},
created() {
this.getPlaceholder();
this.searchDic()
this.getInfo()
this.dataRegion()
this.searchDic();
this.getInfo();
this.dataRegion();
this.$nextTick(() => {
this.getCountByCompany()
this.getBidRank()
this.getBigWinningBidsPage()
this.getBigBidPage()
})
this.getCountByCompany();
this.getBidRank();
this.getBigWinningBidsPage();
this.getBigBidPage();
});
},
methods: {
//项目类型
searchDic(){
api.searchDic().then(res=>{
searchDic() {
api.searchDic().then(res => {
this.projectType = res.projectType;
}).catch(error=>{});
},
getInfo(){
this.permissions= this.$store.state.user.permissions;
this.nickName= this.$store.state.user.name
},
getCountByCompany(){
let params={};
if(this.queryParams.time.length > 1){
params.startDate=this.queryParams.time[0]
params.endDate=this.queryParams.time[1]
}
if(this.queryParams.type.length > 0){
params.type=this.queryParams.type.join()
}
if(this.queryParams.address){
params.provinceId=this.queryParams.address
}
countByCompany(params).then(res=>{
this.isSkeleton=false;
if(res.code == 200){
this.jtzbList=res.data;
if(this.jtzbList.length > 0){
this.initChart(this.jtzbList)
}).catch(error => { });
},
getInfo() {
this.permissions = this.$store.state.user.permissions;
this.nickName = this.$store.state.user.name;
},
getCountByCompany() {
let params = {};
if (this.queryParams.time.length > 1) {
params.startDate = this.queryParams.time[0];
params.endDate = this.queryParams.time[1];
}
if (this.queryParams.type.length > 0) {
params.type = this.queryParams.type.join();
}
if (this.queryParams.address) {
params.provinceId = this.queryParams.address;
}
countByCompany(params).then(res => {
this.isSkeleton = false;
if (res.code == 200) {
this.jtzbList = res.data;
if (this.jtzbList.length > 0) {
this.initChart(this.jtzbList);
// setTimeout(() => {
// this.$nextTick(() => {
// this.$refs.tableRef.bodyWrapper.scrollTop = 0
......@@ -770,113 +739,113 @@ export default {
}
}
})
});
},
getBidRank(){
let params={};
if(this.queryParams1.time.length > 1){
params.startDate=this.queryParams1.time[0]
params.endDate=this.queryParams1.time[1]
getBidRank() {
let params = {};
if (this.queryParams1.time.length > 1) {
params.startDate = this.queryParams1.time[0];
params.endDate = this.queryParams1.time[1];
}
if(this.queryParams1.type.length > 0){
params.type=this.queryParams1.type.join()
if (this.queryParams1.type.length > 0) {
params.type = this.queryParams1.type.join();
}
if(this.queryParams1.address){
params.provinceId=this.queryParams1.address
if (this.queryParams1.address) {
params.provinceId = this.queryParams1.address;
}
if(this.queryParams1.money){
if(this.queryParams1.money.length > 1){
params.endMoney=this.queryParams1.money[1]
params.startMoney=this.queryParams1.money[0]
}else {
params.startMoney=this.queryParams1.money[0]
if (this.queryParams1.money) {
if (this.queryParams1.money.length > 1) {
params.endMoney = this.queryParams1.money[1];
params.startMoney = this.queryParams1.money[0];
} else {
params.startMoney = this.queryParams1.money[0];
}
}
bidRank(params).then(res=>{
if(res.code == 200){
this.dxmzbState=false;
this.dxmbList=res.data;
if(this.dxmbList.length > 0){
this.initChart1(this.dxmbList)
bidRank(params).then(res => {
if (res.code == 200) {
this.dxmzbState = false;
this.dxmbList = res.data;
if (this.dxmbList.length > 0) {
this.initChart1(this.dxmbList);
setTimeout(() => {
this.$nextTick(() => {
this.$refs.tableRef1.bodyWrapper.scrollTop = 0
this.$refs.tableRef1.bodyWrapper.scrollTop = 0;
});
}, 500);
}
}
})
});
},
getBigWinningBidsPage(){
let params={};
params.recentlyBidQueryDto=[]
let recentlyBidQueryDto={};
params.pageNum=this.queryParams2.pageNum;
params.pageSize=this.queryParams2.pageSize;
if(this.amount){
if(this.amount.length > 1){
recentlyBidQueryDto.endMoney=this.amount[1]
recentlyBidQueryDto.startMoney=this.amount[0]
}else {
recentlyBidQueryDto.startMoney=this.amount[0]
}
}
if(this.queryParams2.time){
recentlyBidQueryDto.startTenderTime=this.queryParams2.time[0]
recentlyBidQueryDto.endTenderTime=this.queryParams2.time[1]
}
if(this.queryParams2.provinceId){
recentlyBidQueryDto.province=this.queryParams2.provinceId
}
if(this.queryParams2.projects){
recentlyBidQueryDto.projectTypeNew=this.queryParams2.projects.join()
}
params.recentlyBidQueryDto.push(recentlyBidQueryDto)
this.zxzbIsSkeleton=true
bigWinningBidsPage(params).then(res=>{
this.zxzbIsSkeleton=false;
if(res.code == 200){
this.projectList=res.data.list;
this.totalCount=res.data.total;
getBigWinningBidsPage() {
let params = {};
params.recentlyBidQueryDto = [];
let recentlyBidQueryDto = {};
params.pageNum = this.queryParams2.pageNum;
params.pageSize = this.queryParams2.pageSize;
if (this.amount) {
if (this.amount.length > 1) {
recentlyBidQueryDto.endMoney = this.amount[1];
recentlyBidQueryDto.startMoney = this.amount[0];
} else {
recentlyBidQueryDto.startMoney = this.amount[0];
}
}
if (this.queryParams2.time) {
recentlyBidQueryDto.startTenderTime = this.queryParams2.time[0];
recentlyBidQueryDto.endTenderTime = this.queryParams2.time[1];
}
if (this.queryParams2.provinceId) {
recentlyBidQueryDto.province = this.queryParams2.provinceId;
}
if (this.queryParams2.projects) {
recentlyBidQueryDto.projectTypeNew = this.queryParams2.projects.join();
}
params.recentlyBidQueryDto.push(recentlyBidQueryDto);
this.zxzbIsSkeleton = true;
bigWinningBidsPage(params).then(res => {
this.zxzbIsSkeleton = false;
if (res.code == 200) {
this.projectList = res.data.list;
this.totalCount = res.data.total;
}
// window.scrollTo({
// top: 600,
// behavior: 'smooth' // 滚动行为:smooth平滑滚动,instant瞬间滚动,默认值auto,等同于instant
// })
})
});
},
getBigBidPage(){
let params={};
let jskBidQueryDto={};
params.pageNum=this.queryParams2.pageNum;
params.pageSize=this.queryParams2.pageSize;
if(this.amount){
if(this.amount.length > 1){
jskBidQueryDto.endBidMoney=this.amount[1]
jskBidQueryDto.startBidMoney=this.amount[0]
}else {
jskBidQueryDto.startBidMoney=this.amount[0]
getBigBidPage() {
let params = {};
let jskBidQueryDto = {};
params.pageNum = this.queryParams2.pageNum;
params.pageSize = this.queryParams2.pageSize;
if (this.amount) {
if (this.amount.length > 1) {
jskBidQueryDto.endBidMoney = this.amount[1];
jskBidQueryDto.startBidMoney = this.amount[0];
} else {
jskBidQueryDto.startBidMoney = this.amount[0];
}
}
if (this.queryParams2.time) {
jskBidQueryDto.startPunishDate = this.queryParams2.time[0];
jskBidQueryDto.endPunishDate = this.queryParams2.time[1];
}
if (this.queryParams2.provinceId) {
jskBidQueryDto.province = this.queryParams2.provinceId;
}
if (this.queryParams2.projects) {
jskBidQueryDto.projectType = this.queryParams2.projects.join();
}
params.jskBidQueryDto = jskBidQueryDto;
this.zhaobiaoIsSkeleton = true;
bigBidPage(params).then(res => {
this.zhaobiaoIsSkeleton = false;
if (res.code == 200) {
this.zbList = res.data.list;
this.zbTableTotal = res.data.total;
}
}
if(this.queryParams2.time){
jskBidQueryDto.startPunishDate=this.queryParams2.time[0]
jskBidQueryDto.endPunishDate=this.queryParams2.time[1]
}
if(this.queryParams2.provinceId){
jskBidQueryDto.province=this.queryParams2.provinceId
}
if(this.queryParams2.projects){
jskBidQueryDto.projectType=this.queryParams2.projects.join()
}
params.jskBidQueryDto=jskBidQueryDto
this.zhaobiaoIsSkeleton=true
bigBidPage(params).then(res=>{
this.zhaobiaoIsSkeleton=false
if(res.code == 200){
this.zbList=res.data.list;
this.zbTableTotal=res.data.total;
}
})
});
},
//地区
async dataRegion() {
......@@ -897,15 +866,15 @@ export default {
this.addressList = str;
},
initChart(list) {
let data=[]
for(var i=0;i<10;i++){
data.push(list[i])
let data = [];
for (var i = 0; i < 10; i++) {
data.push(list[i]);
}
this.$nextTick(()=>{
this.$nextTick(() => {
// 让 指定id 的 div 的_echarts_instance_属性值 为 空状态
document.getElementById("zbtj-echarts").removeAttribute('_echarts_instance_');
let myChart = echarts.init(document.getElementById("zbtj-echarts"))
let option ={
let myChart = echarts.init(document.getElementById("zbtj-echarts"));
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
......@@ -916,7 +885,7 @@ export default {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
color: "#666666"
},
axisTick: false, //坐标轴刻度
axisPointer: {
......@@ -928,7 +897,7 @@ export default {
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
color: "#666666"
},
name: '单位:个',
nameLocation: 'end',
......@@ -940,7 +909,7 @@ export default {
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
color: "#666666"
},
name: '单位:万元',
nameLocation: 'end',
......@@ -958,35 +927,35 @@ export default {
}
],
grid: {
top:30,
left:80,
right:90,
bottom:50,
top: 30,
left: 80,
right: 90,
bottom: 50,
},
series: [
{
name:'中标金额(万元)',
name: '中标金额(万元)',
smooth: false, //平滑
type:"line",
type: "line",
symbolSize: 6,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value
return value;
}
},
itemStyle: {
normal:{
normal: {
color: '#14C9C9',
lineStyle: {
width:2
width: 2
},
}
},
data:data.map(item => item.money),
data: data.map(item => item.money),
},
{
name:'中标总数(个)',
name: '中标总数(个)',
type: 'bar',
barWidth: 20,
tooltip: {
......@@ -995,7 +964,7 @@ export default {
}
},
itemStyle: {
normal:{
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
......@@ -1006,27 +975,27 @@ export default {
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
data: data.map(item => item.count),
}
]
}
};
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
});
},
initChart1(list){
let data=[]
let arr=list.sort(function(a, b) {
initChart1(list) {
let data = [];
let arr = list.sort(function (a, b) {
return b.money - a.money;
});
if(arr.length > 10){
for(var i=0;i<10;i++){
data.push(arr[i])
if (arr.length > 10) {
for (var i = 0; i < 10; i++) {
data.push(arr[i]);
}
}else {
data=arr;
} else {
data = arr;
}
var rankPic = [
......@@ -1040,11 +1009,11 @@ export default {
require('@/assets/images/index/8.png'),
require('@/assets/images/index/9.png'),
require('@/assets/images/index/10.png'),
]
this.$nextTick(()=>{
];
this.$nextTick(() => {
// 让 指定id 的 div 的_echarts_instance_属性值 为 空状态
document.getElementById("zbph-echarts").removeAttribute('_echarts_instance_');
let myChart = echarts.init(document.getElementById("zbph-echarts"))
let myChart = echarts.init(document.getElementById("zbph-echarts"));
// let option ={
// legend: {
// show: false,
......@@ -1202,7 +1171,7 @@ export default {
// }
// ],
// }
let option ={
let option = {
tooltip: {
trigger: 'axis',
axisPointer: {
......@@ -1213,7 +1182,7 @@ export default {
type: 'category',
axisLabel: { //坐标轴刻度标签的相关设置
margin: 15, //刻度标签与轴线之间的距离
color:"#666666"
color: "#666666"
},
axisTick: false, //坐标轴刻度
axisPointer: {
......@@ -1225,7 +1194,7 @@ export default {
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
color: "#666666"
},
name: '单位:个',
nameLocation: 'end',
......@@ -1237,7 +1206,7 @@ export default {
{
type: 'value',
axisLabel: { //坐标轴刻度标签的相关设置
color:"#666666"
color: "#666666"
},
name: '单位:万元',
nameLocation: 'end',
......@@ -1256,10 +1225,10 @@ export default {
}
],
grid: {
top:30,
left:60,
right:90,
bottom:50,
top: 30,
left: 60,
right: 90,
bottom: 50,
// containLabel: true
},
// dataZoom:[
......@@ -1290,28 +1259,28 @@ export default {
// ],
series: [
{
name:'中标金额(万元)',
name: '中标金额(万元)',
smooth: false, //平滑
type:"line",
type: "line",
symbolSize: 6,
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value
return value;
}
},
itemStyle: {
normal:{
normal: {
color: '#14C9C9',
lineStyle: {
width:2
width: 2
},
}
},
data:data.map(item => item.money),
data: data.map(item => item.money),
},
{
name:'中标总数(个)',
name: '中标总数(个)',
type: 'bar',
barWidth: 20,
tooltip: {
......@@ -1320,7 +1289,7 @@ export default {
}
},
itemStyle: {
normal:{
normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
offset: 0,
color: '#56A5FF'
......@@ -1331,113 +1300,113 @@ export default {
// barBorderRadius:[20,20, 0, 0]
}
},
data:data.map(item => item.count),
data: data.map(item => item.count),
}
]
}
};
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
})
});
},
handleClickTab(){
this.queryParams2.pageNum=1;
if(this.activeName === 'first'){
this.getBigWinningBidsPage()
this.placeholder='中标金额'
this.timePlaceholder='中标日期'
handleClickTab() {
this.queryParams2.pageNum = 1;
if (this.activeName === 'first') {
this.getBigWinningBidsPage();
this.placeholder = '中标金额';
this.timePlaceholder = '中标日期';
}
if(this.activeName === 'second'){
this.getBigBidPage()
this.placeholder='总投资'
this.timePlaceholder='发布日期'
if (this.activeName === 'second') {
this.getBigBidPage();
this.placeholder = '总投资';
this.timePlaceholder = '发布日期';
}
},
handleClickTab1(){},
handleChange(){
handleClickTab1() { },
handleChange() {
this.user = this.user === 1 ? 2 : 1;
if(this.user === 1){
this.$nextTick(()=>{
this.initChart(this.jtzbList)
this.initChart1(this.dxmbList)
})
if (this.user === 1) {
this.$nextTick(() => {
this.initChart(this.jtzbList);
this.initChart1(this.dxmbList);
});
}
},
changeSelect1(){
this.getCountByCompany()
changeSelect1() {
this.getCountByCompany();
},
changeSelect2(){
this.getBidRank()
changeSelect2() {
this.getBidRank();
},
changeSelect3(){
this.queryParams2.pageNum = 1
if(this.activeName === 'first'){
this.getBigWinningBidsPage()
changeSelect3() {
this.queryParams2.pageNum = 1;
if (this.activeName === 'first') {
this.getBigWinningBidsPage();
}
if(this.activeName === 'second'){
this.getBigBidPage()
if (this.activeName === 'second') {
this.getBigBidPage();
}
},
handleCurrentChange(val){
if(this.MaxPage<val){
this.show_page = false
handleCurrentChange(val) {
if (this.MaxPage < val) {
this.show_page = false;
this.$nextTick(() => {
this.queryParams2.pageNum = 1
this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`)
this.show_page = true
})
}else {
this.queryParams2.pageNum = val
if(this.activeName === 'first'){
this.getBigWinningBidsPage()
this.queryParams2.pageNum = 1;
this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`);
this.show_page = true;
});
} else {
this.queryParams2.pageNum = val;
if (this.activeName === 'first') {
this.getBigWinningBidsPage();
}
if(this.activeName === 'second'){
this.getBigBidPage()
if (this.activeName === 'second') {
this.getBigBidPage();
}
}
},
handleSizeChange(val){
this.queryParams2.pageNum = 1
this.queryParams2.pageSize = val
if(this.activeName === 'first'){
this.getBigWinningBidsPage()
handleSizeChange(val) {
this.queryParams2.pageNum = 1;
this.queryParams2.pageSize = val;
if (this.activeName === 'first') {
this.getBigWinningBidsPage();
}
if(this.activeName === 'second'){
this.getBigBidPage()
if (this.activeName === 'second') {
this.getBigBidPage();
}
},
getUipIdByCid(companyId){
var params=[companyId]
getUipIdByCid(params).then(res=>{
if (res.code==200) {
if(res.data&&res.data.length>0&&res.data[0].uipId){
this.$router.push({path: '/enterprise/'+this.encodeStr(companyId)})
}else{
this.$router.push({path: '/company/'+this.encodeStr(companyId)})
getUipIdByCid(companyId) {
var params = [companyId];
getUipIdByCid(params).then(res => {
if (res.code == 200) {
if (res.data && res.data.length > 0 && res.data[0].uipId) {
this.$router.push({ path: '/enterprise/' + this.encodeStr(companyId) });
} else {
this.$router.push({ path: '/company/' + this.encodeStr(companyId) });
}
}
}).catch(error=>{
}).catch(error => {
});
},
// 时间格式化
formatDate(timeStr) {
let date = new Date(Number(timeStr))
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, 0)
let day = String(date.getDate()).padStart(2, 0)
return `${year}-${month}-${day}`
let date = new Date(Number(timeStr));
let year = date.getFullYear();
let month = String(date.getMonth() + 1).padStart(2, 0);
let day = String(date.getDate()).padStart(2, 0);
return `${year}-${month}-${day}`;
},
handleUrl(item){
handleUrl(item) {
switch (item.name) {
case '项目管理':
if(this.permissions.includes('project:info')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('project:info')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1445,9 +1414,9 @@ export default {
}
break;
case '客户管理':
if(this.permissions.includes('customer:info')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('customer:info')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1455,9 +1424,9 @@ export default {
}
break;
case '全国经济大全':
if(this.permissions.includes('nationalEconomies:query')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('nationalEconomies:query')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1465,9 +1434,9 @@ export default {
}
break;
case '集团户':
if(this.permissions.includes('group:query')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('group:query')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1475,9 +1444,9 @@ export default {
}
break;
case '查城投平台':
if(this.permissions.includes('owner:query')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('owner:query')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1485,9 +1454,9 @@ export default {
}
break;
case '商机雷达':
if(this.permissions.includes('radar:query')){
this.$router.push({ path: item.url })
}else {
if (this.permissions.includes('radar:query')) {
this.$router.push({ path: item.url });
} else {
this.$message({
message: '您好,请联系管理员开通页面权限',
type: 'warning'
......@@ -1498,15 +1467,15 @@ export default {
break;
}
},
handleSearch(name){
if(name === 'changeSelect1'){
this.changeSelect1()
handleSearch(name) {
if (name === 'changeSelect1') {
this.changeSelect1();
}
if(name === 'changeSelect2'){
this.changeSelect2()
if (name === 'changeSelect2') {
this.changeSelect2();
}
if(name === 'changeSelect3'){
this.changeSelect3()
if (name === 'changeSelect3') {
this.changeSelect3();
}
},
async getPlaceholder() {
......@@ -1538,13 +1507,13 @@ export default {
}
},
iptAdaptive(uid, multiple = false, name) {
multiple ? this.multipleAdaptiveHandle(uid,name) : this.iptAdaptiveHandle(uid,name);
multiple ? this.multipleAdaptiveHandle(uid, name) : this.iptAdaptiveHandle(uid, name);
},
getUid() {
return v4();
},
// 多选处理
async multipleAdaptiveHandle(uid,name) {
async multipleAdaptiveHandle(uid, name) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
......@@ -1592,7 +1561,7 @@ export default {
}
},
// 单选处理
async iptAdaptiveHandle(uid,name) {
async iptAdaptiveHandle(uid, name) {
try {
await this.$nextTick();
const dom = document.querySelector(`.select-adaptive-${uid}`);
......@@ -1625,82 +1594,82 @@ export default {
</script>
<style scoped lang="scss">
.app-container{
padding: 0;
margin: 16px 24px;
}
p{
p {
padding: 0;
margin: 0;
}
.home {
}
.home {
width: 100%;
height: 100%;
overflow: auto;
padding: 16px 24px;
box-sizing: border-box;
@import "@/assets/styles/search-common.scss";
padding-bottom:24px;
::v-deep .el-row{
.el-col:nth-child(1){
::v-deep .el-row {
.el-col:nth-child(1) {
padding-left: 0 !important;
padding-right: 0 !important;
}
.el-col:nth-child(2){
.el-col:nth-child(2) {
padding-left: 16px !important;
padding-right: 0 !important;
}
}
.manage{
.manage {
::v-deep .el-form {
.el-select{
.el-select {
.el-select__tags {
flex-wrap: inherit;
.el-tag{
.el-tag {
/*max-width: 130px;*/
}
}
}
}
.task-wrap{
.task-wrap {
height: 99px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
display: flex;
justify-content: space-between;
.item{
.item {
width: 20%;
text-align: center;
margin: 0 auto;
cursor: pointer;
.icon-img{
.icon-img {
width: 48px;
height: 48px;
margin-top: 16px;
}
.text{
color: #3D3D3D;
.text {
color: #3d3d3d;
font-size: 12px;
margin-top: 5px;
}
}
}
.user{
.user {
height: 99px;
border-radius: 4px;
background-image: url("../assets/images/index/user_bg.png");
background-size: cover;
padding-left: 24px;
h3{
h3 {
font-weight: 700;
color: #1C1C28;
color: #1c1c28;
font-size: 18px;
padding-top: 16px;
padding-bottom: 8px;
margin: 0px;
span{
span {
height: 20px;
background: #FFF2E2;
background: #fff2e2;
display: inline-block;
border-radius: 11px;
border: 1px solid #FFB010;
color: #FFB010;
border: 1px solid #ffb010;
color: #ffb010;
font-size: 12px;
line-height: 20px;
padding: 0 10px;
......@@ -1708,87 +1677,85 @@ export default {
font-weight: 400;
}
}
p{
p {
color: #666666;
font-size: 16px;
}
}
.tips{
.tips {
color: #999999;
font-size: 12px;
margin: 12px 0;
padding-left: 16px;
}
.content{
.content {
background: #ffffff;
padding: 16px;
margin-top: 12px;
.query-box{
.query-box {
margin-bottom: 16px;
}
}
.content_wap1{
.content_wap1 {
height: 430px;
}
.content_wap2{
.content_wap2 {
height: 430px;
}
.search{
float:right;
::v-deep .el-form{
.el-form-item--small.el-form-item{
.search {
float: right;
::v-deep .el-form {
.el-form-item--small.el-form-item {
margin-bottom: 0;
}
.el-form-item{
.el-form-item {
height: 32px;
}
.el-form-item__content{
.el-form-item__content {
line-height: 32px;
}
.el-input{
.el-input {
line-height: 32px;
.el-input__inner{
.el-input__inner {
height: 32px;
line-height: 32px;
border-radius: 4px;
border: 0;
}
}
.is-focus{
.el-input__inner{
background: #F4F6F9;
.is-focus {
.el-input__inner {
background: #f4f6f9;
}
}
}
}
.box-right{
.box-right {
width: 90%;
float: right;
::v-deep .el-table{
.sort-caret.ascending{
border-bottom-color: rgba(0,129,255,0.5);
::v-deep .el-table {
.sort-caret.ascending {
border-bottom-color: rgba(0, 129, 255, 0.5);
}
.ascending .sort-caret.ascending{
border-bottom-color: #0081FF;
.ascending .sort-caret.ascending {
border-bottom-color: #0081ff;
}
.sort-caret.descending{
border-top-color: rgba(0,129,255,0.5);
.sort-caret.descending {
border-top-color: rgba(0, 129, 255, 0.5);
}
.descending .sort-caret.descending{
border-top-color: #0081FF;
.descending .sort-caret.descending {
border-top-color: #0081ff;
}
.el-table__header-wrapper{
background: #F0F3FA;
th{
background: #F0F3FA;
.el-table__header-wrapper {
background: #f0f3fa;
th {
background: #f0f3fa;
/*text-align: left;*/
}
}
.el-table__footer-wrapper{
background: #F0F3FA;
.el-table__footer-wrapper {
background: #f0f3fa;
}
th {
font-size: 13px !important;
......@@ -1799,33 +1766,33 @@ export default {
padding-left: 12px !important;
line-height: 18px;
}
.el-table__fixed-header-wrapper{
th{
background: #F0F3FA;
.el-table__fixed-header-wrapper {
th {
background: #f0f3fa;
}
}
td.el-table__cell{
td.el-table__cell {
border-bottom: 0;
}
tr{
&.current-row>td{
tr {
&.current-row > td {
background-color: initial;
}
&:nth-child(2n) {
background: #F8FBFF;
background: #f8fbff;
}
}
.el-table__cell{
.el-table__cell {
height: 40px;
padding: 0;
line-height: 40px;
}
.el-table__body tr:hover > td.el-table__cell{
background: #DCEBFF;
.el-table__body tr:hover > td.el-table__cell {
background: #dcebff;
}
::-webkit-scrollbar-track-piece {
//滚动条凹槽的颜色,还可以设置边框属性
background-color: #F3F4F5;
background-color: #f3f4f5;
height: 16px;
padding: 0 4px;
}
......@@ -1833,7 +1800,7 @@ export default {
::-webkit-scrollbar {
width: 8px;
height: 8px;
background-color: #F3F4F5;
background-color: #f3f4f5;
border-radius: 6px;
}
//滚动条的滑块
......@@ -1841,63 +1808,63 @@ export default {
border-radius: 8px;
height: 8px;
margin: 0 4px;
background: rgba(98,110,126,0.2);
border: 4px solid rgba(98,110,126,0.2);;
&:hover{
background: rgba(98, 110, 126, 0.2);
border: 4px solid rgba(98, 110, 126, 0.2);
&:hover {
background: #566380;
}
}
.has-gutter{
tr{
th:nth-last-child(2){
border-right:0;
.has-gutter {
tr {
th:nth-last-child(2) {
border-right: 0;
}
td:nth-last-child(2){
border-right:0;
td:nth-last-child(2) {
border-right: 0;
}
}
}
.el-table__cell.gutter{
background: #F0F3FA;
.el-table__cell.gutter {
background: #f0f3fa;
}
.el-table__row{
td:last-child{
.cell{
.el-table__row {
td:last-child {
.cell {
padding-right: 12px !important;
}
}
}
}
}
.content_wap3{
.content_wap3 {
margin-top: 12px;
background: #ffffff;
position:relative;
::v-deep .el-tabs{
.el-tabs__header{
position: relative;
::v-deep .el-tabs {
.el-tabs__header {
margin-bottom: 0;
}
.el-tabs__item{
.el-tabs__item {
height: 54px;
line-height: 54px;
font-size: 16px;
}
.el-tabs__item.is-active{
.el-tabs__item.is-active {
font-weight: 700;
color: #232323;
}
.el-tabs__nav-wrap{
padding:0 24px;
.el-tabs__nav-wrap {
padding: 0 24px;
}
.el-tabs__active-bar{
.el-tabs__active-bar {
border-radius: 8px;
}
.el-tabs__nav-wrap::after{
.el-tabs__nav-wrap::after {
height: 1px;
}
}
.search{
.search {
position: absolute;
right: 8px;
top: 10px;
......@@ -1905,31 +1872,31 @@ export default {
.el-form-item--small.el-form-item {
margin-bottom: 0;
}
.el-select{
.el-select {
width: 108px;
}
}
}
.list{
.list {
margin: 0 16px;
.item{
border-bottom: 1px solid #EFEFEF;
.item {
border-bottom: 1px solid #efefef;
padding: 13px 0;
.list-title{
.list-title {
font-size: 16px;
font-weight: 700;
color: #3D3D3D;
color: #3d3d3d;
line-height: 20px;
cursor: pointer;
.list-titel-a{
.list-titel-a {
text-decoration: none;
color:#3D3D3D;
color: #3d3d3d;
}
a{
color: #3D3D3D;
a {
color: #3d3d3d;
}
a:hover{
color:#0081FF;
a:hover {
color: #0081ff;
}
}
.list-content {
......@@ -1945,264 +1912,265 @@ export default {
font-size: 14px;
}
}
}
}
}
.pagination-box{
.pagination-box {
padding: 16px;
}
}
.empty{
.empty {
margin: 0 auto;
height: 300px;
text-align: center;
.img{
.img {
width: 108px;
height: 108px;
margin-bottom: 24px;
margin-top: 70px;
}
.p1{
.p1 {
color: #333333;
font-size: 16px;
}
}
.content-left{
.task-wrap{
.content-left {
.task-wrap {
height: 88px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
margin-bottom: 12px;
display: flex;
justify-content: space-between;
.item{
.item {
width: 20%;
display: flex;
padding-left: 16px;
margin-right: 9px;
margin-top: 14px;
margin-bottom: 14px;
border-right: 1px solid #EFEFEF;
border-right: 1px solid #efefef;
cursor: pointer;
.left{
.left {
width: 48px;
height: 48px;
margin-right: 8px;
}
.right{
.title{
.right {
.title {
font-size: 12px;
color: #3D3D3D;
color: #3d3d3d;
border-bottom: 0;
}
.number{
.number {
font-weight: bold;
color: #3D3D3D;
color: #3d3d3d;
font-size: 18px;
padding: 4px 0;
}
.compare{
color: rgba(35,35,35,0.4);
.compare {
color: rgba(35, 35, 35, 0.4);
font-size: 12px;
img{
img {
width: 8px;
height: 10px;
margin-left: 4px;
margin-bottom: -1px;
}
.down{
color:#FF3C3C;
.down {
color: #ff3c3c;
}
.up{
color:#0CBC6D;
.up {
color: #0cbc6d;
}
}
}
}
.item:nth-child(4){
.item:nth-child(4) {
border-right: 0;
}
.item:last-child{
.item:last-child {
border-right: 0;
}
.item:hover{
.right{
.title{
color: #0081FF;
.item:hover {
.right {
.title {
color: #0081ff;
}
.number{
color: #0081FF;
.number {
color: #0081ff;
}
}
}
.add{
.add {
padding-left: 0;
.yd{
.yd {
display: inline-block;
width: 5px;
margin-right: 10%;
i{
i {
width: 5px;
height: 5px;
border-radius: 2px;
background: #E6E6E9;
background: #e6e6e9;
margin-bottom: 6px;
display: block;
}
}
.btn{
.btn {
width: 100%;
height: 60px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
/*border: 1px solid #E6E6E9;*/
color:#0081FF;
color: #0081ff;
line-height: 64px;
font-size: 14px;
margin-left: 0;
margin-right: 7px;
i{
i {
margin-right: 4px;
}
}
.btn:hover{
background: #F6F9FC;
.btn:hover {
background: #f6f9fc;
}
}
}
.content-wrap{
.content-wrap {
margin-bottom: 12px;
height: 587px;
.select-popper{
margin-right:0;
.select-popper {
margin-right: 0;
}
.record{
.record {
height: 587px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
padding: 16px;
position: relative;
.list{
.list {
height: 510px;
overflow: hidden;
.item{
border-bottom: 1px solid #EEEEEE;
.item {
border-bottom: 1px solid #eeeeee;
padding: 16px 0;
h3{
h3 {
color: #232323;
font-size: 14px;
font-weight: 400;
margin: 0;
}
p{
color: rgba(35,35,35,0.4);
p {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-top: 8px;
span{
span {
margin-right: 15px;
}
}
}
.item:last-child{
.item:last-child {
border-bottom: 0;
}
}
.more{
.more {
text-align: center;
color: #0081FF;
color: #0081ff;
font-size: 14px;
cursor: pointer;
position: absolute;
width: 95%;
height: 60px;
line-height: 60px;
background: linear-gradient(360deg, #FFFFFF 0%, #FFFFFF 17%, rgba(255,255,255,0.6) 100%);
background: linear-gradient(
360deg,
#ffffff 0%,
#ffffff 17%,
rgba(255, 255, 255, 0.6) 100%
);
bottom: 0;
}
}
.ranking{
.ranking {
height: 587px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
padding: 16px;
.main{
.main {
background: url("../assets/images/index/yjpm_bg.png");
background-size: 100% 100%;
height: 525px;
margin-top: 10px;
}
.amount{
.amount {
padding: 16px 12px;
p{
p {
display: flex;
justify-content: space-between;
}
span{
span {
font-weight: 400;
color: #184280;
font-size: 14px;
}
.money{
.money {
font-weight: bold;
color: #184280;
font-size: 18px;
margin-top: 2px;
}
.money:first-child{
color:#48C5A0;
.money:first-child {
color: #48c5a0;
}
.money:last-child{
color:#60B0FD;
.money:last-child {
color: #60b0fd;
}
.progress1{
.progress1 {
height: 10px !important;
margin-bottom:6px;
margin-top:8px;
::v-deep .el-progress-bar__outer{
.el-progress-bar__inner{
background:#9AEAD3
margin-bottom: 6px;
margin-top: 8px;
::v-deep .el-progress-bar__outer {
.el-progress-bar__inner {
background: #9aead3;
}
}
}
.progress2{
.progress2 {
height: 10px !important;
::v-deep .el-progress-bar__outer{
.el-progress-bar__inner{
background:#92C9FF
::v-deep .el-progress-bar__outer {
.el-progress-bar__inner {
background: #92c9ff;
}
}
}
::v-deep .el-progress-bar__outer{
::v-deep .el-progress-bar__outer {
/*border: 1px solid #A2E8E8;*/
/*background-color:#ffffff !important;*/
height: 10px !important;
background-color: rgba(235, 238, 245, 0%) !important;
border-radius:0 20px 20px 0;
.el-progress-bar__inner{
border-radius: 0 20px 20px 0;
.el-progress-bar__inner {
/*<!--background: linear-gradient(-270deg, #C3F6F6 0%, #14C9C9 100%);-->*/
border-radius:0 20px 20px 0;
.el-progress-bar__innerText{
border-radius: 0 20px 20px 0;
.el-progress-bar__innerText {
color: #ffffff;
opacity: 0;
}
}
}
}
}
.select-popper{
.area{
.select-popper {
.area {
font-size: 14px;
color: #232323;
cursor: pointer;
i{
i {
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
......@@ -2212,12 +2180,12 @@ export default {
margin-left: 4px;
}
}
.month{
.month {
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
i {
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
......@@ -2227,42 +2195,42 @@ export default {
margin-left: 4px;
}
}
.color{
color: #0081FF;
i{
.color {
color: #0081ff;
i {
background: url("../assets/images/index/sjx2.png");
background-size: 100% 100%;
}
}
}
.select-popper:hover{
.area,.month{
color: #0081FF;
i{
.select-popper:hover {
.area,
.month {
color: #0081ff;
i {
background: url("../assets/images/index/sjx1.png");
background-size: 100% 100%;
}
}
}
}
.content-db{
.content-db {
height: 263px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
margin-bottom: 12px;
padding: 16px;
overflow: hidden;
.query-ability{
color: #0081FF;
.query-ability {
color: #0081ff;
font-size: 14px;
cursor: pointer;
span{
span {
width: 16px;
height: 16px;
background: #FF3C3C;
background: #ff3c3c;
display: inline-block;
color:#ffffff;
color: #ffffff;
font-size: 12px;
border-radius: 50%;
line-height: 16px;
......@@ -2270,17 +2238,17 @@ export default {
margin-right: 4px;
}
}
.list{
.list {
margin-top: 12px;
}
.item{
.item {
min-height: 62px;
background: #F6F9FD;
background: #f6f9fd;
border-radius: 6px;
margin-bottom: 8px;
position: relative;
padding: 10px 16px;
h3{
h3 {
font-weight: 400;
color: #232323;
font-size: 14px;
......@@ -2288,65 +2256,65 @@ export default {
padding-bottom: 6px;
width: 85%;
}
p{
color: rgba(35,35,35,0.4);
p {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
span{
span {
margin-right: 24px;
color:rgba(35, 35, 35, 0.8);
color: rgba(35, 35, 35, 0.8);
}
}
.btn{
.btn {
position: absolute;
right: 50px;
top:22px;
color: #0CBC6D;
top: 22px;
color: #0cbc6d;
font-size: 12px;
}
}
}
.analysis{
.analysis {
height: 334px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
padding: 16px;
position: relative;
.tabs{
.label{
.tabs {
.label {
display: inline-block;
padding: 0 14px;
height: 22px;
color: rgba(35,35,35,0.8);
color: rgba(35, 35, 35, 0.8);
font-size: 12px;
line-height: 22px;
border-top: 1px solid #EFEFEF;
border-bottom: 1px solid #EFEFEF;
border-left: 1px solid #EFEFEF;
border-top: 1px solid #efefef;
border-bottom: 1px solid #efefef;
border-left: 1px solid #efefef;
cursor: pointer;
}
.label:first-child{
.label:first-child {
border-radius: 2px 0px 0px 2px;
}
.label:last-child{
.label:last-child {
border-radius: 0px 2px 2px 0px;
border-right: 1px solid #EFEFEF;
border-right: 1px solid #efefef;
}
.color{
background: #0081FF;
color: #FFFFFF;
.color {
background: #0081ff;
color: #ffffff;
}
}
.select-popper{
.select-popper {
position: absolute;
right: 0;
top: 27px;
z-index: 99;
.area{
.area {
font-size: 14px;
color: #232323;
margin-left: 16px;
cursor: pointer;
i{
i {
background: url("../assets/images/index/sjx.png");
background-size: 100% 100%;
width: 10px;
......@@ -2357,73 +2325,79 @@ export default {
}
}
}
.select-popper:hover{
.area,.month{
color: #0081FF;
i{
.select-popper:hover {
.area,
.month {
color: #0081ff;
i {
background: url("../assets/images/index/sjx1.png");
background-size: 100% 100%;
}
}
}
}
.trends{
background: #FFFFFF;
.trends {
background: #ffffff;
border-radius: 4px;
padding: 16px;
height: 617px;
overflow: hidden;
position: relative;
::v-deep .el-tabs__header{
::v-deep .el-tabs__header {
margin: 0 0 18px;
}
::v-deep .el-tabs__content{
::v-deep .el-tabs__content {
overflow-y: auto;
height: 567px;
}
::v-deep .el-timeline{
.el-timeline-item{
::v-deep .el-timeline {
.el-timeline-item {
padding-bottom: 18px;
}
.el-timeline-item__tail{
.el-timeline-item__tail {
left: 7px;
border-left: 2px dotted rgba(0,129,255,0.5);
border-left: 2px dotted rgba(0, 129, 255, 0.5);
}
.el-timeline-item__node{
background-color:#ffffff;
.el-timeline-item__icon{
color:#0081FF;
.el-timeline-item__node {
background-color: #ffffff;
.el-timeline-item__icon {
color: #0081ff;
font-size: 14px;
}
}
.el-timeline-item__node--normal{
.el-timeline-item__node--normal {
left: 0px;
width: 16px;
height: 16px;
}
}
.time{
.time {
font-size: 14px;
color: rgba(35,35,35,0.8);
.company{
color: #0081FF;
color: rgba(35, 35, 35, 0.8);
.company {
color: #0081ff;
margin-left: 16px;
}
}
.cont{
background: #F6F9FD;
.cont {
background: #f6f9fd;
border-radius: 6px;
padding: 16px;
margin-top: 8px;
font-size: 14px;
color: rgba(35,35,35,0.8);
color: rgba(35, 35, 35, 0.8);
margin-right: 16px;
}
.check{
.check {
height: 60px;
background: linear-gradient(360deg, #FFFFFF 0%, #FFFFFF 17%, rgba(255,255,255,0.6) 100%);
background: linear-gradient(
360deg,
#ffffff 0%,
#ffffff 17%,
rgba(255, 255, 255, 0.6) 100%
);
font-size: 16px;
color: #0CBC6D;
color: #0cbc6d;
line-height: 60px;
text-align: center;
width: 100%;
......@@ -2431,31 +2405,30 @@ export default {
bottom: 46px;
cursor: pointer;
}
}
}
.content-right{
.user{
.content-right {
.user {
height: 88px;
border-radius: 4px;
margin-bottom: 12px;
background-image: url("../assets/images/index/user_bg.png");
background-size: cover;
padding-left: 24px;
h3{
h3 {
font-weight: 700;
color: #1C1C28;
color: #1c1c28;
font-size: 18px;
padding-top: 16px;
padding-bottom: 8px;
margin: 0px;
span{
span {
height: 20px;
background: #FFF2E2;
background: #fff2e2;
display: inline-block;
border-radius: 11px;
border: 1px solid #FFB010;
color: #FFB010;
border: 1px solid #ffb010;
color: #ffb010;
font-size: 12px;
line-height: 20px;
padding: 0 10px;
......@@ -2463,76 +2436,76 @@ export default {
font-weight: 400;
}
}
p{
p {
color: #666666;
font-size: 16px;
}
}
.search{
.search {
height: 322px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
margin-bottom: 12px;
padding: 16px;
::v-deep .el-input{
::v-deep .el-input {
height: 32px;
border-radius: 2px;
margin-bottom: 20px;
margin-top: 14px;
.el-input__inner{
.el-input__inner {
height: 32px;
line-height: 32px;
background: #F3F3F4;
background: #f3f3f4;
padding-left: 37px;
border: 0;
}
.el-icon-search{
.el-icon-search {
font-size: 16px;
line-height: 32px;
color:#0081FF;
color: #0081ff;
margin-left: 10px;
margin-right: 10px;
}
}
.list{
.list {
display: flex;
justify-content: space-between;
.item{
.item {
margin: 0 auto;
width: 33.3%;
height: 94px;
text-align: center;
cursor: pointer;
img{
img {
width: 40px;
height: 40px;
margin-top: 16px;
}
p{
color: #3D3D3D;
p {
color: #3d3d3d;
font-size: 12px;
}
}
.item:hover{
background: #F6F9FC;
.item:hover {
background: #f6f9fc;
}
}
}
.zbgg{
.zbgg {
height: 599px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
padding: 16px;
.list{
.list {
margin-top: 16px;
}
.item{
border-bottom: 1px solid #EEEEEE;
.item {
border-bottom: 1px solid #eeeeee;
padding: 10px 0;
cursor: pointer;
h3{
h3 {
font-weight: 400;
color: rgba(35,35,35,0.8);
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
padding-bottom: 8px;
margin: 0;
......@@ -2540,41 +2513,41 @@ export default {
white-space: nowrap;
text-overflow: ellipsis;
}
p{
color: rgba(35,35,35,0.4);
p {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
span{
span {
margin-right: 15px;
}
}
}
.item:hover{
h3{
color:#0081FF;
.item:hover {
h3 {
color: #0081ff;
}
}
.item:last-child{
.item:last-child {
border-bottom: 0;
}
}
.zbhxr{
.zbhxr {
height: 558px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
padding: 16px;
.list{
.list {
margin-top: 16px;
}
.item{
border-bottom: 1px solid #EEEEEE;
.item {
border-bottom: 1px solid #eeeeee;
padding: 10px 0;
cursor: pointer;
h3{
h3 {
font-weight: 400;
color: rgba(35,35,35,0.8);
color: rgba(35, 35, 35, 0.8);
font-size: 14px;
padding-bottom: 8px;
margin: 0;
......@@ -2582,27 +2555,27 @@ export default {
white-space: nowrap;
text-overflow: ellipsis;
}
p{
color: rgba(35,35,35,0.4);
p {
color: rgba(35, 35, 35, 0.4);
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
span{
span {
margin-right: 15px;
}
}
}
.item:hover{
h3{
color:#0081FF;
.item:hover {
h3 {
color: #0081ff;
}
}
.item:last-child{
.item:last-child {
border-bottom: 0;
}
}
}
}
}
</style>
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