首页,收入合同关联项目图标替换

This commit is contained in:
zhaoxiao
2021-09-24 17:57:12 +08:00
parent dbf8b7b7c5
commit 0708c190be
19 changed files with 539 additions and 20293 deletions
+243 -20263
View File
File diff suppressed because it is too large Load Diff
+5 -4
View File
@@ -8,23 +8,24 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"@tinymce/tinymce-vue": "^2.1.0",
"ant-design-vue": "^1.7.6",
"area-data": "^5.0.6",
"axios": "^0.21.1",
"compression-webpack-plugin": "^8.0.1",
"core-js": "^3.6.5",
"dayjs": "^1.10.6",
"echarts": "^5.2.1",
"enquire.js": "^2.1.6",
"jsencrypt": "^3.2.1",
"lodash.pick": "^4.4.0",
"nprogress": "^0.2.0",
"vue": "^2.6.11",
"vue-ls": "^3.2.2",
"tinymce": "^5.3.2",
"@tinymce/tinymce-vue": "^2.1.0",
"vue": "^2.6.11",
"vue-area-linkage": "^5.1.0",
"vue-ls": "^3.2.2",
"vue-photo-preview": "^1.1.3",
"vue-print-nb-jeecg": "^1.0.9",
"vue-area-linkage": "^5.1.0",
"vue-router": "^3.2.0",
"vuedraggable": "^2.20.0",
"vuex": "^3.4.0"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

+1 -1
View File
@@ -18,7 +18,7 @@
<span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
</a-tab-pane>
</a-tabs>
<div style="margin: 12px 12px 0;">
<div style="margin: 12px 12px 0; overflow-x: auto">
<!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 -->
<keep-alive v-if="multipage">
<router-view v-if="reloadFlag"/>
@@ -14,7 +14,7 @@
v-for="(item, index) in projectType"
:key="index"
@click="chooseProjectType(index, item.type)">
<img :src="choosedIndex === index ? item.selectedImg : item.img">
<img class="project-type-item-img" :src="choosedIndex === index ? item.selectedImg : item.img">
<div class="project-type-item-title">{{ item.title }}</div>
</div>
</div>
@@ -23,16 +23,24 @@
<script>
import GeneralProjectImg from '@/assets/imgs/generial_project.png'
import GeneralProjectSelectImg from '@/assets/imgs/working_group_project_selected.png'
import WorkingGroupProjectImg from '@/assets/imgs/working_group_project_selected.png'
import GeneralProjectSelectImg from '@/assets/imgs/generial_project_selected.png'
import WorkingGroupProjectImg from '@/assets/imgs/working_group_project.png'
import WorkingGroupProjectSelectedImg from '@/assets/imgs/working_group_project_selected.png'
import MeetingProjectImg from '@/assets/imgs/meeting_project.png'
import MeetingProjectSelectedImg from '@/assets/imgs/working_group_project_selected.png'
import MeetingProjectSelectedImg from '@/assets/imgs/meeting_project_selected.png'
import MemberProjectImg from '@/assets/imgs/member_project.png'
import MemberProjectSelectedImg from '@/assets/imgs/working_group_project_selected.png'
import MemberProjectSelectedImg from '@/assets/imgs/member_project_selected.png'
export default {
name: 'ProjectTypeSelection',
props: {
// 是否打包,打包不可选择会议
isPack: {
type: Boolean,
required: false,
default: false
}
},
data() {
return {
title: '关联项目',
@@ -66,6 +74,13 @@ export default {
]
}
},
watch: {
isPack(value) {
if (value) {
this.projectType.splice(2, 1)
}
}
},
methods: {
open() {
this.visible = true
@@ -103,6 +118,10 @@ export default {
&-item {
cursor: pointer;
&-img {
height: 60px;
}
&-title {
margin-top: 10px;
font-size: 14px;
@@ -255,7 +255,7 @@
</a-card>
<!-- 项目类型选择-->
<project-type-selection ref="projectTypeSelection" @ok="selectProjectTypeOk"></project-type-selection>
<project-type-selection ref="projectTypeSelection" :is-pack="isPackage" @ok="selectProjectTypeOk"></project-type-selection>
<!-- 普通项目选择-->
<select-project-module ref="selectProjectModule"
@ok="selectProjectOk"
@@ -467,14 +467,14 @@ export default {
name: record.signedContactsTemporaryName
}
// 回显打包年份
this.isPackage = record.pack === 1
this.isPackage = Number(record.pack) === 1
// 处理分期信息回显
this.$refs.installmentForm.initInstallmentList(record.listInstallment)
// 获取应收金额和已收金额
this.accountsReceivableNum = record.accountsReceivableAmount
this.amountReceivedNum = record.amountReceived
// 将pack值改为数字,解决控制台报错
record.pack = Number(record.pack)
record.pack = record.pack
this.model = Object.assign({}, record)
this.temporaryModel = Object.assign({}, record)
this.$nextTick(() => {
@@ -103,7 +103,7 @@ export default {
props: {
// 打包状态
pack: {
type: Number,
type: [Number, String],
requird: false,
default: null
},
+242 -16
View File
@@ -10,27 +10,27 @@
<div class="workspace-container">
<div class="workspace-item">
<img src="@/assets/imgs/homePage/user-management.png"/>
<span>个人设置</span>
<div class="workspace-item-text">个人设置</div>
</div>
<div class="workspace-item">
<div class="workspace-item" @click="workspaceJump('/businessManagement/BusinessManagement')">
<img src="@/assets/imgs/homePage/company-management.png"/>
<span>企业管理</span>
<div class="workspace-item-text">企业管理</div>
</div>
<div class="workspace-item">
<div class="workspace-item" @click="workspaceJump('/projectManagement/GeneralProjectManagement')">
<img src="@/assets/imgs/homePage/general-project.png"/>
<span>普通项目</span>
<div class="workspace-item-text">普通项目</div>
</div>
<div class="workspace-item">
<div class="workspace-item" @click="workspaceJump('/projectManagement/WorkingGroupProjectManagement')">
<img src="@/assets/imgs/homePage/working-group-project.png"/>
<span>工作组项目</span>
<div class="workspace-item-text">工作组项目</div>
</div>
<div class="workspace-item">
<div class="workspace-item" @click="workspaceJump('/incomePayments/memberManage/MemberProjectList')">
<img src="@/assets/imgs/homePage/member-project.png"/>
<span>会员项目</span>
<div class="workspace-item-text">会员项目</div>
</div>
<div class="workspace-item">
<img src="@/assets/imgs/homePage/data-statistics.png"/>
<span>数据统计</span>
<div class="workspace-item-text">数据统计</div>
</div>
</div>
@@ -42,7 +42,37 @@
<div class="home-part-title"><img src="@/assets/imgs/icon/icon_data_statistics.png"/>数据统计</div>
<div class="divider"></div>
<div class="data-statistics-container">
<div class="data-statistics-item bg-payment">
<div class="item-left">
本月新增收款项
</div>
<a-tooltip>
<template slot="title">{{ indexStyle.toString() }}</template>
<div class="item-right">{{ indexStyle.toString().slice(0, 3) }}</div>
</a-tooltip>
</div>
<div class="data-statistics-item bg-account">
<div class="item-left">
本月到账(万元)
</div>
<a-tooltip>
<template slot="title"></template>
<div class="item-right"></div>
</a-tooltip>
</div>
<div class="data-statistics-item bg-mail">
<div class="item-left">
本月邮寄项
</div>
<a-tooltip>
<template slot="title"></template>
<div class="item-right"></div>
</a-tooltip>
</div>
</div>
</a-card>
</div>
@@ -52,12 +82,40 @@
<!-- 标题-->
<div class="home-part-title"><img src="@/assets/imgs/icon/icon_home_report.png"/>统计报表</div>
<div class="divider"></div>
<div class="statistical-reports-container">
<!-- 个人统计and科室统计-->
<div class="container-box">
<!-- 个人统计-->
<div class="container-item">
<div class="container-item-title">个人统计前10</div>
<div class="container-item-echarts" id="personalStatistics"></div>
</div>
<div class="container-item">
<div class="container-item-title">科室统计前10</div>
<div class="container-item-echarts" id="departStatistics"></div>
</div>
</div>
<!-- 工作组统计and企业统计-->
<div class="container-box">
<!-- 个人统计-->
<div class="container-item">
<div class="container-item-title">工作组统计前10</div>
<div class="container-item-echarts" id="workingGroupStatistics"></div>
</div>
<div class="container-item">
<div class="container-item-title">企业统计前10</div>
<div class="container-item-echarts" id="companyStatistics"></div>
</div>
</div>
</div>
</a-card>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts'
export default {
@@ -65,22 +123,95 @@ export default {
components: {},
data() {
return {
indexStyle: 1
indexStyle: 1111111111111,
// 屏幕宽度
screenWidth: document.body.clientWidth,
option: {
legend: {
type: 'plain',
orient: 'vertical',
right: 10,
top: 20,
bottom: 20,
itemGap: 20,
itemWidth: 15,
data: ['Search Engine', 'Direct', 'Email', 'Union Ads', 'Video Ads', 'Search Engine1', 'Direct1', 'Email1', 'Union Ads1', 'Video Ads1']
},
color: ['#117FFA', '#06A1B3', '#6D62FF', '#60C39A', '#31C5E1'],
series: [
{
type: 'pie',
radius: ['50%', '70%'],
left: 0,
width: '50%',
label: {
show: true
},
emphasis: {
label: {
show: true
}
},
labelLine: {
show: true
},
data: [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' },
{ value: 1048, name: 'Search Engine1' },
{ value: 735, name: 'Direct1' },
{ value: 580, name: 'Email1' },
{ value: 484, name: 'Union Ads1' },
{ value: 300, name: 'Video Ads1' }
]
}
]
}
}
},
created() {
watch: {
screenWidth(value) {
console.log(value)
}
},
methods: {}
mounted() {
setTimeout(() => {
this.initPersonalStatisticsEcharts()
},0)
},
methods: {
initPersonalStatisticsEcharts() {
let personalBox = document.getElementById('personalStatistics')
let personalEchart = echarts.init(personalBox)
personalEchart.setOption(this.option)
window.addEventListener('resize', () => {
personalEchart.resize()
})
},
/**
* 工作区按钮跳转
* @param path
*/
workspaceJump(path) {
this.$router.push({
path: path
})
}
}
}
</script>
<style scoped lang="less">
//上部分整体
.page-top {
display: flex;
justify-content: space-between;
}
//各部分的title
.home-part-title {
font-size: 16px;
font-family: PingFang SC, PingFang SC-Medium;
@@ -94,12 +225,14 @@ export default {
}
}
//标题下横线
.divider {
height: 2px;
background-color: #F0F2F5;
margin: 20px -24px;
}
//工作区
.workspace {
margin-right: 10px;
width: calc(50% - 10px);
@@ -110,6 +243,9 @@ export default {
}
&-item {
width: 16%;
max-width: 80px;
height: 130px;
cursor: pointer;
display: flex;
flex-direction: column;
@@ -117,10 +253,13 @@ export default {
align-items: center;
& > img {
height: 74px;
max-width: 100%;
}
& > span {
&-text {
height: 40px;
line-height: 20px;
text-align: center;
margin-top: 15px;
font-size: 16px;
font-family: PingFang SC, PingFang SC-Regular;
@@ -130,12 +269,99 @@ export default {
}
}
//数据统计
.data-statistics {
margin-left: 10px;
width: calc(50% - 10px);
&-container {
display: flex;
justify-content: space-between;
}
&-item {
width: calc(33% - 10px);
height: 130px;
border-radius: 10px;
display: flex;
justify-content: space-between;
align-items: baseline;
}
.item-left {
flex-shrink: 0;
width: 60%;
padding-left: 15px;
height: 100%;
padding-top: 45px;
font-size: 18px;
font-family: Microsoft YaHei, Microsoft YaHei-Regular;
font-weight: 400;
color: #ffffff;
}
.item-right {
padding-right: 10px;
cursor: pointer;
max-height: 105px;
font-size: 36px;
font-family: Acre, Acre-Medium;
font-weight: bold;
text-align: left;
color: #ffffff;
line-height: 45px;
//word-break: break-all;
overflow: hidden;
//display: -webkit-box;
//-webkit-box-orient: vertical;
//-webkit-line-clamp: 2;
}
.bg-payment {
background: url("../../assets/imgs/homePage/bg-payment.png") 100%;
}
.bg-account {
background: url("../../assets/imgs/homePage/bg-account.png") 100%;
}
.bg-mail {
background: url("../../assets/imgs/homePage/bg-mail.png") 100%;
}
}
//统计报表
.statistical-reports {
margin-top: 20px;
display: flex;
flex-direction: column;
.container-box {
margin-bottom: 20px;
display: flex;
justify-content: space-between;
}
.container-item {
width: calc(50% - 10px);
box-shadow: -4px 0px 24px 24px rgba(51, 51, 51, 0.05);
border: 1px solid #f5f5f5;
border-radius: 8px;
background: #ffffff;
padding: 20px;box-sizing: border-box;
&-title {
font-size: 16px;
font-family: PingFang SC, PingFang SC-Medium;
font-weight: 500;
color: #333333;
}
&-echarts {
//position: absolute;
width: 100%;
height: 200px;
}
}
}
</style>
+20
View File
@@ -4374,6 +4374,14 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
echarts@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.2.1.tgz#bd58ec011cd82def4a714e4038ef4b73b8417bc3"
integrity sha512-OJ79b22eqRfbSV8vYmDKmA+XWfNbr0Uk/OafWcFNIGDWti2Uw9A6eVCiJLmqPa9Sk+EWL+t5v26aak0z3gxiZw==
dependencies:
tslib "2.3.0"
zrender "5.2.1"
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.nlark.com/ee-first/download/ee-first-1.1.1.tgz"
@@ -10346,6 +10354,11 @@ ts-pnp@^1.1.6:
resolved "https://registry.nlark.com/ts-pnp/download/ts-pnp-1.2.0.tgz"
integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=
tslib@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tslib@^1.10.0, tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1623450901878&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz"
@@ -11350,3 +11363,10 @@ yorkie@^2.0.0:
is-ci "^1.0.10"
normalize-path "^1.0.0"
strip-indent "^2.0.0"
zrender@5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/zrender/-/zrender-5.2.1.tgz#5f4bbda915ba6d412b0b19dc2431beaad05417bb"
integrity sha512-M3bPGZuyLTNBC6LiNKXJwSCtglMp8XUEqEBG+2MdICDI3d1s500Y4P0CzldQGsqpRVB7fkvf3BKQQRxsEaTlsw==
dependencies:
tslib "2.3.0"