Commit 6402c952 authored by 乐宝呗666's avatar 乐宝呗666

添加运营模块的功能

parent b30dab83
...@@ -6,5 +6,6 @@ VUE_APP_TITLE = D2Admin Dev ...@@ -6,5 +6,6 @@ VUE_APP_TITLE = D2Admin Dev
NODE_ENV = "production" NODE_ENV = "production"
# 生产环境 API # 生产环境 API
VUE_APP_BASE_API = '/' VUE_APP_BASE_API = '/'
VUE_APP_PUBLIC_PATH = '/front'
# 生产环境 URL # 生产环境 URL
VUE_APP_REQUEST_URL = 'http://111.203.232.175:8085' VUE_APP_REQUEST_URL = 'http://111.203.232.175:8085'
import { service, request, serviceForMock, requestForMock, mock } from './service' import { request } from './service'
// 获取商机统计
// 获取商机 export function getOpportunitiesStatistics () {
export function GetBusinessList () {
return request({ return request({
url: '/tp/niche/list', url: '/tp/opportunities/getOpportunitiesStatistics',
method: 'get' method: 'get'
}) })
} }
// 获取商机行业分布
export function getDistribution (params) {
return request({
url: '/tp/opportunities/getDistribution',
method: 'get',
params
})
}
// 用户端获取商机分布
export function getOpportunitiesDistribution (params) {
return request({
url: '/tp/opportunities/getOpportunitiesDistribution',
method: 'get',
params
})
}
// 用户端获取合同税率分布
export function getTaxRate (params) {
return request({
url: '/tp/opportunities/getTaxRate',
method: 'get',
params
})
}
// 用户端获取产品类型分析
export function getProductType (params) {
return request({
url: '/tp/opportunities/getProductType',
method: 'get',
params
})
}
// 用户端获取新商机分析
export function getNewOpportunities (params) {
return request({
url: '/tp/opportunities/getNewOpportunities',
method: 'get',
params
})
}
// 用户端获取商机成功率
export function getBillRate (params) {
return request({
url: '/tp/opportunities/getBillRate',
method: 'get',
params
})
}
import { request } from './service'
// 获取预算完成比年份下拉框
export function getBudgetYear () {
return request({
url: '/tp/operate/getBudgetYear',
method: 'get'
})
}
// 获取预算完图表数据
export function getBudget (params) {
return request({
url: '/tp/operate/getBudget',
method: 'get',
params
})
}
// 获取合同金额年份下拉框
export function getContractYear (params) {
return request({
url: '/tp/operate/getContractYear',
method: 'get',
params
})
}
// 获取合同金额图表数据
export function getContract (params) {
return request({
url: '/tp/operate/getContract',
method: 'get',
params
})
}
// 获取项目收入年份下拉框
export function getProjectYear () {
return request({
url: '/tp/operate/getProjectYear',
method: 'get'
})
}
// 获取项目收入图表数据
export function getProject (params) {
return request({
url: '/tp/operate/getProject',
method: 'get',
params
})
}
// 获取应收账龄年份下拉框
export function getCollectAgeYear (params) {
return request({
url: '/tp/operate/getCollectAgeYear',
method: 'get',
params
})
}
// 获取应收账龄图表数据
export function getCollectAge (params) {
return request({
url: '/tp/operate/getCollectAge',
method: 'get',
params
})
}
// 获取回款统计年份下拉框
export function getCollectionYear () {
return request({
url: '/tp/operate/getCollectionYear',
method: 'get'
})
}
// 获取回款统计图表数据
export function getCollection (params) {
return request({
url: '/tp/operate/getCollection',
method: 'get',
params
})
}
// 获取现金流年份下拉框
export function getCashFlowYear (params) {
return request({
url: '/tp/operate/getCashFlowYear',
method: 'get',
params
})
}
// 获取现金流图表数据
export function getCashFlow (params) {
return request({
url: '/tp/operate/getCashFlow',
method: 'get',
params
})
}
// 获取组织机构下拉列表数据
export function getCashFlowList (params) {
return request({
url: '/tp/organ/getList',
method: 'post',
params
})
}
// 营收排行年份下拉框
export function getRankYear (params) {
return request({
url: '/tp/operate/getRankYear',
method: 'get',
params
})
}
// 获取营收排行图表数据
export function getRank (params) {
return request({
url: '/tp/operate/getRank',
method: 'get',
params
})
}
// 费用统计年份下拉框
export function getFeeYear (params) {
return request({
url: '/tp/operate/getFeeYear',
method: 'get',
params
})
}
// 费用统计
export function getFee (params) {
return request({
url: '/tp/operate/getFee',
method: 'get',
params
})
}
// 营收统计年份下拉框
export function getRevenueYear (params) {
return request({
url: '/tp/operate/getRevenueYear',
method: 'get',
params
})
}
// 营收统计
export function getRevenue (params) {
return request({
url: '/tp/operate/getRevenue',
method: 'get',
params
})
}
...@@ -16,4 +16,10 @@ ...@@ -16,4 +16,10 @@
.el-tabs__item:focus.is-active.is-focus:not(:active) { .el-tabs__item:focus.is-active.is-focus:not(:active) {
box-shadow: none !important; box-shadow: none !important;
}
.el-autocomplete-suggestion li.highlighted, .el-autocomplete-suggestion li:hover {
text-overflow: inherit;
}
.el-autocomplete-suggestion li {
padding: 0 .1rem !important;
} }
\ No newline at end of file
...@@ -121,6 +121,7 @@ ul{list-style: none; padding: 0} ...@@ -121,6 +121,7 @@ ul{list-style: none; padding: 0}
.height21{height: 2.1rem} .height21{height: 2.1rem}
.heightCut44 {height: calc(100% - .44rem);} .heightCut44 {height: calc(100% - .44rem);}
.heightCut68 {height: calc(100% - 0.68rem);} .heightCut68 {height: calc(100% - 0.68rem);}
.heightCut112 {height: calc(100% - 1.12rem);}
.section{ .section{
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<h3 class="flex-1">企业运营图谱</h3> <h3 class="flex-1">企业运营图谱</h3>
<div class="flex-1 header-right-box"> <div class="flex-1 header-right-box">
<!-- <div class="time">{{nowDate | moment("YYYY/MM/DD")}} {{nowDate | moment("HH:mm:ss")}} 星期{{week | weekFilter}}</div> --> <!-- <div class="time">{{nowDate | moment("YYYY/MM/DD")}} {{nowDate | moment("HH:mm:ss")}} 星期{{week | weekFilter}}</div> -->
<div class="time">{{user}}</div> <div class="time">{{deptName}}</div>
<div class="right-menu"> <div class="right-menu">
<el-dropdown class="avatar-container" trigger="click"> <el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper"> <div class="avatar-wrapper">
...@@ -35,7 +35,7 @@ export default { ...@@ -35,7 +35,7 @@ export default {
data () { data () {
return { return {
screenWidth: document.body.clientWidth, screenWidth: document.body.clientWidth,
user: '', deptName: '',
num: 0, num: 0,
nowDate: '', nowDate: '',
week: '', week: '',
...@@ -109,7 +109,7 @@ export default { ...@@ -109,7 +109,7 @@ export default {
this.$router.push('/login') this.$router.push('/login')
}, },
init () { init () {
this.user = sessionStorage.getItem('user') ? JSON.parse(sessionStorage.getItem('user')).name : '无相关信息' this.deptName = sessionStorage.getItem('user') ? JSON.parse(sessionStorage.getItem('user')).deptName : '无相关信息'
this.num = sessionStorage.getItem('num') this.num = sessionStorage.getItem('num')
}, },
// 获取时间 // 获取时间
......
<template> <template>
<div class="wrapper"> <div class="wrapper">
<div class="back text-right" @click="goBack" v-if="message.parent">&lt; 返回</div> <div class="back text-right" @click="goBack" v-if="message.parentId">&lt; 返回</div>
<div :id="idstr" class="h-100"></div> <div :id="idstr" class="h-100"></div>
</div> </div>
</template> </template>
...@@ -75,7 +75,7 @@ export default { ...@@ -75,7 +75,7 @@ export default {
series: [ series: [
{ {
type: 'bar', type: 'bar',
barWidth: '30%', barWidth: '25%',
itemStyle: { itemStyle: {
color: '#30DDF4', color: '#30DDF4',
barBorderRadius: [20, 20, 20, 20] barBorderRadius: [20, 20, 20, 20]
...@@ -84,7 +84,6 @@ export default { ...@@ -84,7 +84,6 @@ export default {
} }
] ]
} }
vm.drawBar() vm.drawBar()
// window.addEventListener("resize",()=>{ // window.addEventListener("resize",()=>{
// chart.resize(); // chart.resize();
...@@ -99,7 +98,7 @@ export default { ...@@ -99,7 +98,7 @@ export default {
goBack () { goBack () {
if (this.recordList.length) { if (this.recordList.length) {
const popItem = this.recordList.pop() const popItem = this.recordList.pop()
this.$emit('downData', popItem.parent) this.$emit('downData', popItem.parentId)
} else { } else {
this.$emit('update:isShow', false) this.$emit('update:isShow', false)
} }
...@@ -108,11 +107,13 @@ export default { ...@@ -108,11 +107,13 @@ export default {
const vm = this const vm = this
vm.chart.off('click') vm.chart.off('click')
vm.chart.on('click', function (params) { vm.chart.on('click', function (params) {
if (params.data.isLeaf) return if (vm.message.isLeaf) return
if (params.data.parent === undefined) return if (vm.message.parentId === undefined) return
vm.recordList.push({ name: params.name, parent: params.data.parent }) console.log(params.dataIndex)
const _id = vm.message.idxs[params.dataIndex]
vm.recordList.push({ name: params.name, id: _id, parentId: vm.message.parentId })
console.log(vm.recordList) console.log(vm.recordList)
vm.$emit('downData', params.name) vm.$emit('downData', _id)
}) })
} }
}, },
......
<template> <template>
<div class="wrapper"> <div class="wrapper">
<div class="back text-right" @click="goBack" v-if="message.parent">&lt; 返回</div> <div class="back text-right" @click="goBack" v-if="message.parentId">&lt; 返回</div>
<div :id="idstr" class="h-100"></div> <div :id="idstr" class="h-100"></div>
</div> </div>
</template> </template>
...@@ -112,19 +112,20 @@ export default { ...@@ -112,19 +112,20 @@ export default {
goBack () { goBack () {
if (this.recordList.length) { if (this.recordList.length) {
const popItem = this.recordList.pop() const popItem = this.recordList.pop()
this.$emit('downData', popItem.parent) this.$emit('downData', popItem.parentId)
} }
}, },
eventList () { eventList () {
const vm = this const vm = this
vm.chart.off('click') vm.chart.off('click')
vm.chart.on('click', function (params) { vm.chart.on('click', function (params) {
console.log(params) if (vm.message.isLeaf) return
if (params.data.isLeaf) return if (vm.message.parentId === undefined) return
if (params.data.parent === undefined) return console.log(params.dataIndex)
vm.recordList.push({ name: params.name, parent: params.data.parent }) const _id = vm.message.idxs[params.dataIndex]
vm.recordList.push({ name: params.name, id: _id, parentId: vm.message.parentId })
console.log(vm.recordList) console.log(vm.recordList)
vm.$emit('downData', params.name) vm.$emit('downData', _id)
}) })
} }
}, },
......
...@@ -6,10 +6,8 @@ ...@@ -6,10 +6,8 @@
export default { export default {
data () { data () {
return { return {
dataObj: {},
option: {}, option: {},
chart: null, chart: null
clickNum: [1, 1, 1, 1, 1]
} }
}, },
props: ['message', 'idstr'], props: ['message', 'idstr'],
...@@ -68,14 +66,16 @@ export default { ...@@ -68,14 +66,16 @@ export default {
}, },
series: [ series: [
{ {
name: vm.message.legend[0],
type: 'bar', type: 'bar',
barWidth: '25%', barWidth: '25%',
itemStyle: { itemStyle: {
color: '#30DDF4' color: '#30DDF4'
}, },
data: vm.message.data.inCome data: vm.message.data.inflow
}, },
{ {
name: vm.message.legend[1],
type: 'bar', type: 'bar',
barWidth: '25%', barWidth: '25%',
itemStyle: { itemStyle: {
...@@ -84,12 +84,13 @@ export default { ...@@ -84,12 +84,13 @@ export default {
data: vm.message.data.flowOut data: vm.message.data.flowOut
}, },
{ {
name: vm.message.legend[2],
type: 'bar', type: 'bar',
barWidth: '25%', barWidth: '25%',
itemStyle: { itemStyle: {
color: '#E23AA2' color: '#E23AA2'
}, },
data: vm.message.data.inFlow data: vm.message.data.netInflow
} }
] ]
} }
......
<template> <template>
<div class="wrapper"> <div class="wrapper">
<div class="back text-right" @click="goBack" v-if="message.parent">&lt; 返回</div> <div class="back text-right" @click="goBack" v-if="isShowBack">&lt; 返回</div>
<div :id="idstr" class="h-100"></div> <div :id="idstr" class="h-100"></div>
</div> </div>
</template> </template>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
export default { export default {
data () { data () {
return { return {
recordList: [], isShowBack: false,
option: {}, option: {},
chart: null chart: null
} }
...@@ -72,18 +72,14 @@ export default { ...@@ -72,18 +72,14 @@ export default {
vm.eventList() vm.eventList()
}, },
goBack () { goBack () {
if (this.recordList.length) { this.isShowBack = false
const popItem = this.recordList.pop() this.$emit('downData', '')
this.$emit('downData', popItem.parent)
}
}, },
eventList () { eventList () {
const vm = this const vm = this
vm.chart.off('click') vm.chart.off('click')
vm.chart.on('click', function (params) { vm.chart.on('click', function (params) {
if (params.data.isLeaf) return vm.isShowBack = true
if (params.data.parent === undefined) return
vm.recordList.push({ name: params.name, parent: params.data.parent })
vm.$emit('downData', params.name) vm.$emit('downData', params.name)
}) })
} }
......
This diff is collapsed.
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectType" size="mini"> <el-select v-model="selectType" size="mini" @change="getCollectAgeYear">
<el-option <el-option
v-for="item in typeList" v-for="item in typeList"
:key="item" :key="item"
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:value="item"> :value="item">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getCollectAge">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<script> <script>
import pieChart from '@/components/echarts/pieChart' // 应收账龄分析饼图 import pieChart from '@/components/echarts/pieChart' // 应收账龄分析饼图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { pieChart }, components: { pieChart },
data () { data () {
...@@ -33,22 +33,31 @@ export default { ...@@ -33,22 +33,31 @@ export default {
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: ['2021', '2020', '2019', '2018', '2017'],
selectType: '合同', selectType: '合同',
typeList: ['合同', '验收', '开票', '出库'], typeList: ['合同', '验收', '开票', '出库'],
dataList: { dataList: {}
legend: ['<30天', '<60天', '<90天', '<120天', '<180天', '180+天'],
data: [
{ value: 335, name: '<30天' },
{ value: 310, name: '<60天' },
{ value: 234, name: '<90天' },
{ value: 135, name: '<120天' },
{ value: 548, name: '<180天' },
{ value: 348, name: '180+天' }
]
}
} }
}, },
mounted () { async mounted () {
await this.getCollectAgeYear()
}, },
methods: { methods: {
async getCollectAgeYear () {
const _data = await API_OPERATION.getCollectAgeYear({ type: this.selectType })
this.yearList = _data.data
this.selectYear = _data.data[0]
this.getCollectAge()
},
async getCollectAge () {
const _data = await API_OPERATION.getCollectAge({ type: this.selectType, year: this.selectYear })
this.dataList = _data.data
// for (var i of _seriesData) {
// for (var k in i) {
// console.log('键:' + k)
// console.log('值:' + i[k])
// }
// }
console.log(this.dataList)
}
} }
} }
</script> </script>
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getBudget('')">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -16,198 +16,46 @@ ...@@ -16,198 +16,46 @@
<script> <script>
import doubleYBarChart from '@/components/echarts/doubleYBarChart' // 预算完成比 双柱加折线图 import doubleYBarChart from '@/components/echarts/doubleYBarChart' // 预算完成比 双柱加折线图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { doubleYBarChart }, components: { doubleYBarChart },
data () { data () {
return { return {
selectYear: '2020', selectYear: '',
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: [],
dataList: { selectId: '',
legend: ['新签预算', '新签实际', '完成比'], dataList: {}
xAxis: ['运营管理中心', '解决方案中心', '智能制造中心', '生态合作中心', '客户运营中心', 'XXXX中心'],
yAxis: ['单位:万元', '完成比:%'],
data: [
{
name: '新签预算',
type: 'bar',
data: [
{ value: 123.2, isLeaf: false, parent: '' },
{ value: 125.6, isLeaf: false, parent: '' },
{ value: 176.7, isLeaf: false, parent: '' },
{ value: 135.6, isLeaf: false, parent: '' },
{ value: 162.2, isLeaf: false, parent: '' },
{ value: 200, isLeaf: false, parent: '' }
]
}, {
name: '新签实际',
type: 'bar',
data: [
{ value: 83.2, isLeaf: false, parent: '' },
{ value: 75.6, isLeaf: false, parent: '' },
{ value: 86.7, isLeaf: false, parent: '' },
{ value: 85.6, isLeaf: false, parent: '' },
{ value: 62.2, isLeaf: false, parent: '' },
{ value: 90, isLeaf: false, parent: '' }
]
}, {
name: '完成比',
type: 'line',
yAxisIndex: 1,
data: [
{ value: 4.5, isLeaf: false, parent: '' },
{ value: 6.3, isLeaf: false, parent: '' },
{ value: 10.2, isLeaf: false, parent: '' },
{ value: 20.3, isLeaf: false, parent: '' },
{ value: 23.4, isLeaf: false, parent: '' },
{ value: 30.2, isLeaf: false, parent: '' }
]
}
]
}
} }
}, },
mounted () { mounted () {
this.getYears()
}, },
methods: { methods: {
async getYears () {
const _data = await API_OPERATION.getBudgetYear()
this.yearList = _data.data
this.selectYear = _data.data[0]
this.getBudget()
},
async getBudget (param, isLeaf) {
this.selectId = param || null
const _data = await API_OPERATION.getBudget({ center: this.selectId, year: this.selectYear })
this.dataList = {
parentId: param || '',
isLeaf: isLeaf,
xAxis: _data.data.xAxis,
yAxis: _data.data.yAxis,
idxs: _data.data.idxs,
data: _data.data.data
}
},
downData (item) { downData (item) {
console.log('传来的值:', item) console.log('传来的值:', item)
setTimeout(() => { if (!item) {
if (!item) { this.getBudget('', false)
this.dataList = { } else {
legend: ['新签预算', '新签实际', '完成比'], this.getBudget(item, true)
xAxis: ['运营管理中心', '解决方案中心', '智能制造中心', '生态合作中心', '客户运营中心', 'XXXX中心'], }
yAxis: ['单位:万元', '完成比:%'],
data: [
{
name: '新签预算',
type: 'bar',
data: [
{ value: 123.2, isLeaf: false, parent: '' },
{ value: 125.6, isLeaf: false, parent: '' },
{ value: 176.7, isLeaf: false, parent: '' },
{ value: 135.6, isLeaf: false, parent: '' },
{ value: 162.2, isLeaf: false, parent: '' },
{ value: 200, isLeaf: false, parent: '' }
]
}, {
name: '新签实际',
type: 'bar',
data: [
{ value: 83.2, isLeaf: false, parent: '' },
{ value: 75.6, isLeaf: false, parent: '' },
{ value: 86.7, isLeaf: false, parent: '' },
{ value: 85.6, isLeaf: false, parent: '' },
{ value: 62.2, isLeaf: false, parent: '' },
{ value: 90, isLeaf: false, parent: '' }
]
}, {
name: '完成比',
type: 'line',
yAxisIndex: 1,
data: [
{ value: 4.5, isLeaf: false, parent: '' },
{ value: 6.3, isLeaf: false, parent: '' },
{ value: 10.2, isLeaf: false, parent: '' },
{ value: 20.3, isLeaf: false, parent: '' },
{ value: 23.4, isLeaf: false, parent: '' },
{ value: 30.2, isLeaf: false, parent: '' }
]
}
]
}
}
if (item.indexOf('中心') !== -1) {
this.dataList = {
parent: item,
legend: ['新签预算', '新签实际', '完成比'],
xAxis: ['运营管理部门', '解决方案部门', '智能制造部门', '生态合作部门', '客户运营部门', 'XXXX部门'],
yAxis: ['单位:万元', '完成比:%'],
data: [
{
name: '新签预算',
type: 'bar',
data: [
{ value: 123.2, isLeaf: false, parent: item },
{ value: 125.6, isLeaf: false, parent: item },
{ value: 176.7, isLeaf: false, parent: item },
{ value: 135.6, isLeaf: false, parent: item },
{ value: 162.2, isLeaf: false, parent: item },
{ value: 200, isLeaf: false, parent: item }
]
}, {
name: '新签实际',
type: 'bar',
data: [
{ value: 83.2, isLeaf: false, parent: item },
{ value: 75.6, isLeaf: false, parent: item },
{ value: 86.7, isLeaf: false, parent: item },
{ value: 85.6, isLeaf: false, parent: item },
{ value: 62.2, isLeaf: false, parent: item },
{ value: 90, isLeaf: false, parent: item }
]
}, {
name: '完成比',
type: 'line',
yAxisIndex: 1,
data: [
{ value: 4.5, isLeaf: false, parent: item },
{ value: 6.3, isLeaf: false, parent: item },
{ value: 10.2, isLeaf: false, parent: item },
{ value: 20.3, isLeaf: false, parent: item },
{ value: 23.4, isLeaf: false, parent: item },
{ value: 30.2, isLeaf: false, parent: item }
]
}
]
}
}
if (item.indexOf('部门') !== -1) {
this.dataList = {
parent: item,
legend: ['新签预算', '新签实际', '完成比'],
xAxis: ['小小黄', '小小安', '小小圆', '小小静', '小小宝', 'XXXXXXX'],
yAxis: ['单位:万元', '完成比:%'],
data: [
{
name: '新签预算',
type: 'bar',
data: [
{ value: 123.2, isLeaf: true, parent: item },
{ value: 125.6, isLeaf: true, parent: item },
{ value: 176.7, isLeaf: true, parent: item },
{ value: 135.6, isLeaf: true, parent: item },
{ value: 162.2, isLeaf: true, parent: item },
{ value: 200, isLeaf: true, parent: item }
]
}, {
name: '新签实际',
type: 'bar',
data: [
{ value: 83.2, isLeaf: true, parent: item },
{ value: 75.6, isLeaf: true, parent: item },
{ value: 86.7, isLeaf: true, parent: item },
{ value: 85.6, isLeaf: true, parent: item },
{ value: 62.2, isLeaf: true, parent: item },
{ value: 90, isLeaf: true, parent: item }
]
}, {
name: '完成比',
type: 'line',
yAxisIndex: 1,
data: [
{ value: 4.5, isLeaf: true, parent: item },
{ value: 6.3, isLeaf: true, parent: item },
{ value: 10.2, isLeaf: true, parent: item },
{ value: 20.3, isLeaf: true, parent: item },
{ value: 23.4, isLeaf: true, parent: item },
{ value: 30.2, isLeaf: true, parent: item }
]
}
]
}
}
}, 0)
} }
} }
} }
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectType" size="mini"> <el-select v-model="selectTypeId" size="mini" @change="getCashFlowYear">
<el-option <el-option
v-for="item in typeList" v-for="item in typeList"
:key="item" :key="item.id"
:label="item" :label="item.name"
:value="item"> :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getCashFlow">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -24,29 +24,41 @@ ...@@ -24,29 +24,41 @@
<script> <script>
import negativeBarChart from '@/components/echarts/negativeBarChart' // 饼图 import negativeBarChart from '@/components/echarts/negativeBarChart' // 饼图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { negativeBarChart }, components: { negativeBarChart },
data () { data () {
return { return {
selectYear: '2020', selectYear: '',
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: [],
selectType: '总裁办', selectTypeId: '',
typeList: ['总裁办', '客户营销中心', '计划财务中心', '运营管理中心', '解决方案中心', 'IT服务中心', '智能制造中心', '生态合作中心', '客户运营中心'], typeList: [],
dataList: { dataList: {}
legend: ['流入', '流出', '净流入'],
xAxis: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
data: {
inCome: [34, 56, 55, 33, 11, 76, 54, 34, 21, 33, 87, 66],
flowOut: [-4, -56, -55, -33, -11, -76, -54, -34, -21, -33, -87, -66],
inFlow: [30, 0, 0, 0, 22, -65, 22, 20, 13, 0, 0, 0]
}
}
} }
}, },
mounted () { async mounted () {
await this.getCashFlowList()
}, },
methods: { methods: {
async getCashFlowList () {
const _data = await API_OPERATION.getCashFlowList()
this.typeList = _data.data
this.selectTypeId = this.typeList[0].id
this.getCashFlowYear()
},
async getCashFlowYear () {
const _data = await API_OPERATION.getCashFlowYear({ id: this.selectTypeId })
this.yearList = _data.data
this.selectYear = this.yearList[0]
this.getCashFlow()
},
async getCashFlow () {
const _data = await API_OPERATION.getCashFlow({ id: this.selectTypeId, year: this.selectYear })
this.dataList = _data.data
this.dataList.data.inflow = _data.data.data.inflow.map(item => item.value)
this.dataList.data.flowOut = _data.data.data.flowOut.map(item => -item.value)
this.dataList.data.netInflow = _data.data.data.netInflow.map(item => -item.value)
}
} }
} }
</script> </script>
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectType" size="mini"> <el-select v-model="selectType" size="mini" @change="getContractYear">
<el-option <el-option
v-for="item in typeList" v-for="item in typeList"
:key="item" :key="item"
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:value="item"> :value="item">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getContract">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -24,30 +24,32 @@ ...@@ -24,30 +24,32 @@
<script> <script>
import pieChart from '@/components/echarts/pieChart' // 合同金额 饼图 import pieChart from '@/components/echarts/pieChart' // 合同金额 饼图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { pieChart }, components: { pieChart },
data () { data () {
return { return {
selectYear: '2020', selectYear: '',
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: [],
selectType: '销售合同', selectType: '销售合同',
typeList: ['销售合同', '采购合同'], typeList: ['销售合同', '采购合同'],
dataList: { dataList: {}
legend: ['10W以下', '10W-30W', '30W-50W', '50W-100W', '100W以上'],
data: [
{ value: 335, name: '10W以下' },
{ value: 310, name: '10W-30W' },
{ value: 234, name: '30W-50W' },
{ value: 135, name: '50W-100W' },
{ value: 1548, name: '100W以上' }
]
}
} }
}, },
mounted () { async mounted () {
await this.getContractYear()
}, },
methods: { methods: {
async getContractYear () {
const _data = await API_OPERATION.getContractYear({ type: this.selectType })
this.yearList = _data.data
this.selectYear = _data.data[0]
this.getContract()
},
async getContract () {
const _data = await API_OPERATION.getContract({ type: this.selectType, year: this.selectYear })
this.dataList = _data.data
}
} }
} }
</script> </script>
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getProject">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -12,14 +12,14 @@ ...@@ -12,14 +12,14 @@
</div> </div>
<div class="d-flex heightCut68"> <div class="d-flex heightCut68">
<div class="flex-1 ball"> <div class="flex-1 ball">
<waterBall :message="dataList1" idstr="ball1" class="heightCut68"></waterBall> <waterBall :message="acutalBall.charts" idstr="ball1" class="heightCut68"></waterBall>
<p>预算收入 200万元</p> <p>预算收入 {{acutalBall.budgetCost}}万元</p>
<p>实际收入 170万元</p> <p>实际收入 {{acutalBall.actualCost}}170万元</p>
</div> </div>
<div class="flex-1 ball"> <div class="flex-1 ball">
<waterBall :message="dataList2" idstr="ball2" class="heightCut68"></waterBall> <waterBall :message="budgetBall.charts" idstr="ball2" class="heightCut68"></waterBall>
<p>预算成本 200万元</p> <p>预算成本 {{budgetBall.budgetIncome}}万元</p>
<p>实际成本 170万元</p> <p>实际成本 {{budgetBall.realIncome}}万元</p>
</div> </div>
</div> </div>
</div> </div>
...@@ -27,26 +27,32 @@ ...@@ -27,26 +27,32 @@
<script> <script>
import waterBall from '@/components/echarts/waterBallChart' // 项目收入 水球图 import waterBall from '@/components/echarts/waterBallChart' // 项目收入 水球图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { waterBall }, components: { waterBall },
data () { data () {
return { return {
selectYear: '2021/4', selectYear: '',
yearList: ['2021/4', '2021/3', '2021/2', '2021/1'], yearList: [],
dataList1: { acutalBall: {},
name: '收入比', budgetBall: {}
data: [0.79]
},
dataList2: {
name: '成本比',
data: [0.59]
}
} }
}, },
mounted () { mounted () {
this.getProjectYear()
}, },
methods: { methods: {
async getProjectYear () {
const _data = await API_OPERATION.getProjectYear()
this.yearList = _data.data
this.selectYear = _data.data[0]
this.getProject()
},
async getProject () {
const _data = await API_OPERATION.getProject({ date: this.selectYear })
this.budgetBall = _data.data.budgetBall
this.acutalBall = _data.data.acutalBall
}
} }
} }
</script> </script>
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="changeYear">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
</div> </div>
<div class="ball-line d-flex heightCut68"> <div class="ball-line d-flex heightCut68">
<div class="ball flex-1"> <div class="ball flex-1">
<waterBall :message="dataList1" idstr="ballLeft" class="heightCut68"></waterBall> <waterBall :message="waterBall.charts" idstr="ballLeft" class="heightCut68"></waterBall>
<p>共计 1200万元</p> <p>共计 {{waterBall.sign.toFixed(2)}}万元</p>
<p>已回款 170万元</p> <p>已回款 {{waterBall.acc.toFixed(2)}}万元</p>
</div> </div>
<div class="flex-2"> <div class="flex-2">
<lineChart :message="dataList" idstr="receiptStatistics" class="receiptStatistics"></lineChart> <lineChart :message="dataList" idstr="receiptStatistics" class="receiptStatistics"></lineChart>
...@@ -27,40 +27,35 @@ ...@@ -27,40 +27,35 @@
<script> <script>
import lineChart from '@/components/echarts/lineChart' // 回款额 折线图 import lineChart from '@/components/echarts/lineChart' // 回款额 折线图
import waterBall from '@/components/echarts/waterBallChart' import waterBall from '@/components/echarts/waterBallChart'
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { waterBall, lineChart }, components: { waterBall, lineChart },
data () { data () {
return { return {
selectYear: '2020', selectYear: '',
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: [],
dataList1: { waterBall: {},
name: '收入比', dataList: {}
data: [0.19]
},
dataList: {
legend: ['合同签署金额', '应收款', '累计收款金额'],
xAxis: ['1月', '2月', '3月', '4月', '5月', '6月', '7月'],
data: [{
name: '合同签署金额',
data: [820, 932, 901, 934, 1290, 1330, 620],
type: 'line'
},
{
name: '应收款',
data: [420, 532, 701, 434, 290, 330, 120],
type: 'line'
}, {
name: '累计收款金额',
data: [520, 232, 401, 334, 790, 830, 320],
type: 'line'
}]
}
} }
}, },
mounted () { mounted () {
this.getYears()
}, },
methods: { methods: {
async getYears () {
const _data = await API_OPERATION.getCollectionYear()
this.yearList = _data.data
this.selectYear = _data.data[0]
this.getCollection()
},
changeYear () {
this.getCollection()
},
async getCollection () {
const _data = await API_OPERATION.getCollection({ year: this.selectYear })
this.dataList = _data.data
this.waterBall = _data.data.waterBall
}
} }
} }
</script> </script>
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectYear" size="mini"> <div class="back" @click="goBack" v-if="!isClick">&lt;返回</div>
<el-select v-model="selectYear" size="mini" @change="getRank">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -9,17 +10,18 @@ ...@@ -9,17 +10,18 @@
:value="item"> :value="item">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="block"> <div class="block">
<div class="listTitleBox"> <div class="listTitleBox">
<div class="listTitle" v-for="(item,index) in column" :key="index">{{item}}</div> <div class="listTitle" v-for="(item,index) in column" :key="index">{{item}}</div>
</div> </div>
<ul> <ul>
<li v-for="(item,index) in list" :key="index"> <li v-for="(item,index) in list" :key="index" @click="getDataById(item)">
<div>{{Number(index)+1}}</div> <div>{{Number(index)+1}}</div>
<div>{{item.name}}</div> <div>{{item.name}}</div>
<div>{{item.num}}</div> <div>{{item.autual}}</div>
<div>{{item.percent}}</div> <div>{{item.rate}}</div>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -27,49 +29,58 @@ ...@@ -27,49 +29,58 @@
</template> </template>
<script> <script>
import * as API_OPERATION from '@/api/con.operation'
// 营收排行 // 营收排行
export default { export default {
data () { data () {
return { return {
selectYear: '2020', selectYear: '',
yearList: ['2021', '2020', '2019', '2018', '2017'], yearList: [],
selectType: '',
isClick: true,
column: ['排名', '中心名称', '完成数额', '完成比'], column: ['排名', '中心名称', '完成数额', '完成比'],
list: [ list: []
{
name: '平台应用吧',
num: '1500W',
percent: '50%'
},
{
name: '平台应用吧',
num: '1500W',
percent: '50%'
},
{
name: '平台应用吧',
num: '1500W',
percent: '50%'
},
{
name: '平台应用吧',
num: '1500W',
percent: '50%'
},
{
name: '平台应用吧',
num: '1500W',
percent: '50%'
}
]
} }
}, },
mounted () { mounted () {
this.getRankYear()
}, },
methods: { methods: {
async getRankYear () {
const _data = await API_OPERATION.getRankYear()
this.yearList = _data.data
this.selectYear = this.yearList[0]
this.getRank()
},
async getRank () {
const _data = await API_OPERATION.getRank({ center: this.selectType || null, year: this.selectYear })
this.list = _data.data
},
getDataById (item) {
if (this.isClick) {
this.isClick = false
this.selectType = item.id
this.$set(this.column, 1, '部门名称')
this.getRank()
}
},
goBack () {
this.isClick = true
this.selectType = null
this.$set(this.column, 1, '中心名称')
this.getRank()
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '~@/assets/style/operation.scss'; @import '~@/assets/style/operation.scss';
.back {
font-size: .12rem;
color: #fff;
padding-right: .1rem;
padding-top: .05rem;
cursor: pointer;
}
</style> </style>
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectType" size="mini"> <el-select v-model="selectType" size="mini" @change="getRevenueYear">
<el-option <el-option
v-for="item in typeList" v-for="item in typeList"
:key="item" :key="item"
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:value="item"> :value="item">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getRevenue('')">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -24,15 +24,16 @@ ...@@ -24,15 +24,16 @@
<script> <script>
import barChart from '@/components/echarts/barChart' // 营收统计 柱图 import barChart from '@/components/echarts/barChart' // 营收统计 柱图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { barChart }, components: { barChart },
data () { data () {
return { return {
selectId: '',
selectType: '合同收入', selectType: '合同收入',
typeList: ['合同收入', '项目收入', '切分收入'], typeList: ['合同收入', '项目收入', '切分收入'],
selectYear: '2021/4', selectYear: '',
yearList: ['2021/4', '2021/3', '2021/2', '2021/1'], yearList: [],
dataList: { dataList: {
xAxis: ['总裁办中心', '客户营销中心', '计划财务中心', '运营管理中心', '解决方案中心', 'IT服务中心', '智能制造中心', '生态合作中心', '客户运营中心'], xAxis: ['总裁办中心', '客户营销中心', '计划财务中心', '运营管理中心', '解决方案中心', 'IT服务中心', '智能制造中心', '生态合作中心', '客户运营中心'],
data: [ data: [
...@@ -50,63 +51,33 @@ export default { ...@@ -50,63 +51,33 @@ export default {
} }
}, },
mounted () { mounted () {
this.getRevenueYear()
}, },
methods: { methods: {
async getRevenueYear () {
const _data = await API_OPERATION.getRevenueYear({ type: this.selectType })
this.yearList = _data.data
this.selectYear = this.yearList[0]
this.getRevenue()
},
async getRevenue (param, isLeaf) {
this.selectId = param || null
const _data = await API_OPERATION.getRevenue({ center: this.selectId, type: this.selectType, date: this.selectYear })
this.dataList = {
parentId: param || '',
isLeaf: isLeaf,
xAxis: _data.data.xAxis,
idxs: _data.data.idxs,
data: _data.data.data
}
},
downData (item) { downData (item) {
console.log('传来的值:', item) console.log('传来的值:', item)
setTimeout(() => { if (!item) {
if (!item) { this.getRevenue('', false)
this.dataList = { } else {
xAxis: ['总裁办中心', '客户营销中心', '计划财务中心', '运营管理中心', '解决方案中心', 'IT服务中心', '智能制造中心', '生态合作中心', '客户运营中心'], this.getRevenue(item, true)
data: [ }
{ value: 123.2, parent: '', isLeaf: false },
{ value: 76.7, parent: '', isLeaf: false },
{ value: 135.6, parent: '', isLeaf: false },
{ value: 162.2, parent: '', isLeaf: false },
{ value: 32.6, parent: '', isLeaf: false },
{ value: 76.7, parent: '', isLeaf: false },
{ value: 135.6, parent: '', isLeaf: false },
{ value: 162.2, parent: '', isLeaf: false },
{ value: 32.6, parent: '', isLeaf: false }
]
}
}
if (item.indexOf('中心') !== -1) {
this.dataList = {
parent: item,
xAxis: ['总裁办部门', '客户营销部门', '计划财务部门', '运营管理部门', '解决方案部门', 'IT服务部门', '智能制造部门', '生态合作部门', '客户运营部门'],
data: [
{ value: 123.2, parent: item, isLeaf: false },
{ value: 76.7, parent: item, isLeaf: false },
{ value: 135.6, parent: item, isLeaf: false },
{ value: 162.2, parent: item, isLeaf: false },
{ value: 32.6, parent: item, isLeaf: false },
{ value: 123.2, parent: item, isLeaf: false },
{ value: 76.7, parent: item, isLeaf: false },
{ value: 135.6, parent: item, isLeaf: false },
{ value: 162.2, parent: item, isLeaf: false }
]
}
}
if (item.indexOf('部门') !== -1) {
this.dataList = {
parent: item,
level: 'people',
xAxis: ['小小黄', '小小安', '小小圆', '小小静', '小小宝', '小小丽', '小小徐', '小小→', '小小人'],
data: [
{ value: 23.2, parent: item, isLeaf: true },
{ value: 6.7, parent: item, isLeaf: true },
{ value: 35.6, parent: item, isLeaf: true },
{ value: 62.2, parent: item, isLeaf: true },
{ value: 2.6, parent: item, isLeaf: true },
{ value: 6.7, parent: item, isLeaf: true },
{ value: 35.6, parent: item, isLeaf: true },
{ value: 62.2, parent: item, isLeaf: true },
{ value: 2.6, parent: item, isLeaf: true }
]
}
}
}, 0)
} }
} }
} }
......
<template> <template>
<div> <div>
<div class="d-flex search-box jc-end"> <div class="d-flex search-box jc-end">
<el-select v-model="selectYear" size="mini"> <el-select v-model="selectYear" size="mini" @change="getFee('')">
<el-option <el-option
v-for="item in yearList" v-for="item in yearList"
:key="item" :key="item"
...@@ -16,71 +16,45 @@ ...@@ -16,71 +16,45 @@
<script> <script>
import barChart from '@/components/echarts/barChart' // 费用统计 柱图 import barChart from '@/components/echarts/barChart' // 费用统计 柱图
import * as API_OPERATION from '@/api/con.operation'
export default { export default {
components: { barChart }, components: { barChart },
data () { data () {
return { return {
selectYear: '2021/4', selectYear: '',
yearList: ['2021/4', '2021/3', '2021/2', '2021/1'], yearList: [],
dataList: { selectId: '',
xAxis: ['运营管理中心', '解决方案中心', '智能制造中心', '生态合作中心', '客户运营中心'], dataList: {}
data: [
{ value: 123.2, parent: '', isLeaf: false },
{ value: 76.7, parent: '', isLeaf: false },
{ value: 135.6, parent: '', isLeaf: false },
{ value: 162.2, parent: '', isLeaf: false },
{ value: 32.6, parent: '', isLeaf: false }
]
}
} }
}, },
mounted () { mounted () {
this.getFeeYear()
}, },
methods: { methods: {
async getFeeYear () {
const _data = await API_OPERATION.getFeeYear()
this.yearList = _data.data
this.selectYear = this.yearList[0]
this.getFee()
},
async getFee (param, isLeaf) {
this.selectId = param || null
const _data = await API_OPERATION.getFee({ center: this.selectId, date: this.selectYear })
this.dataList = {
parentId: param || '',
isLeaf: isLeaf,
xAxis: _data.data.xAxis,
idxs: _data.data.idxs,
data: _data.data.data
}
},
downData (item) { downData (item) {
console.log('传来的值:', item) console.log('传来的值:', item)
setTimeout(() => { if (!item) {
if (!item) { this.getFee('', false)
this.dataList = { } else {
xAxis: ['运营管理中心', '解决方案中心', '智能制造中心', '生态合作中心', '客户运营中心'], this.getFee(item, true)
data: [ }
{ value: 123.2, parent: '', isLeaf: false },
{ value: 76.7, parent: '', isLeaf: false },
{ value: 135.6, parent: '', isLeaf: false },
{ value: 162.2, parent: '', isLeaf: false },
{ value: 32.6, parent: '', isLeaf: false }
]
}
}
if (item.indexOf('中心') !== -1) {
this.dataList = {
parent: '运营管理中心',
xAxis: ['运营管理部门', '解决方案部门', '智能制造部门', '生态合作部门', '客户运营部门'],
data: [
{ value: 123.2, parent: '运营管理中心', isLeaf: false },
{ value: 76.7, parent: '运营管理中心', isLeaf: false },
{ value: 135.6, parent: '运营管理中心', isLeaf: false },
{ value: 162.2, parent: '运营管理中心', isLeaf: false },
{ value: 32.6, parent: '运营管理中心', isLeaf: false }
]
}
}
if (item.indexOf('部门') !== -1) {
this.dataList = {
parent: '解决方案部门',
level: 'people',
xAxis: ['小小黄', '小小安', '小小圆', '小小静', '小小宝'],
data: [
{ value: 23.2, parent: '解决方案部门', isLeaf: true },
{ value: 6.7, parent: '解决方案部门', isLeaf: true },
{ value: 35.6, parent: '解决方案部门', isLeaf: true },
{ value: 62.2, parent: '解决方案部门', isLeaf: true },
{ value: 2.6, parent: '解决方案部门', isLeaf: true }
]
}
}
}, 0)
} }
} }
} }
......
...@@ -67,8 +67,10 @@ export default { ...@@ -67,8 +67,10 @@ export default {
} }
}, },
mounted () { mounted () {
}, },
methods: { methods: {
} }
} }
</script> </script>
......
...@@ -118,6 +118,7 @@ export default { ...@@ -118,6 +118,7 @@ export default {
margin: .12rem 0 .24rem; margin: .12rem 0 .24rem;
.el-carousel { .el-carousel {
height: 1.24rem; height: 1.24rem;
overflow-y: hidden;
} }
::v-deep .el-carousel__container { ::v-deep .el-carousel__container {
height: 1.24rem; height: 1.24rem;
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</div> </div>
</div> </div>
<graphChart :message="mapData" idstr="graphChart" class="heightCut44"></graphChart> <graphChart :message="mapData" idstr="graphChart" class="heightCut112"></graphChart>
<div class="open" @click="openDialog"></div> <div class="open" @click="openDialog"></div>
<knowledgeDialog v-if="knowledgeDialogShow" ref="child"></knowledgeDialog> <knowledgeDialog v-if="knowledgeDialogShow" ref="child"></knowledgeDialog>
</div> </div>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
<div class="title-container"> <div class="title-container">
<h3 class="title" style="width: 450px">内部运营大数据平台</h3> <h3 class="title" style="width: 450px">企业运营图谱</h3>
</div> </div>
<el-form-item prop="username"> <el-form-item prop="username">
...@@ -46,14 +46,14 @@ ...@@ -46,14 +46,14 @@
<svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" />
</span> </span>
</el-form-item> </el-form-item>
<div class="foundpass" style="padding-bottom: 22px; float: right;"> <!-- <div class="foundpass" style="padding-bottom: 22px; float: right;">
<el-button type="text" @click="resetVisible = true" style="color: #00ffff"><d2-icon name="question-circle"/>忘记密码</el-button> <el-button type="text" @click="resetVisible = true" style="color: #00ffff"><d2-icon name="question-circle"/>忘记密码</el-button>
</div> </div> -->
<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;background-image: linear-gradient(to right, #3a8ee6 , #30ddf4);" @click.native.prevent="handleLogin" round>登录</el-button> <el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;background-image: linear-gradient(to right, #3a8ee6 , #30ddf4);" @click.native.prevent="handleLogin" round>登录</el-button>
<div class="tips"> <!-- <div class="tips">
<span style="margin-right:20px;">账号: admin</span> <span style="margin-right:20px;">账号: admin</span>
<span> 密码: 123456</span> <span> 密码: 123456</span>
</div> </div> -->
</el-form> </el-form>
</div></el-col> </div></el-col>
</el-row> </el-row>
......
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