liupopo 1 year ago
parent
commit
6d3cb04ac1
  1. 3
      package.json
  2. 11
      src/api/gfApi/home.js
  3. 14
      src/api/gfApi/index.js
  4. 453
      src/views/index-9208.vue
  5. 255
      src/views/index.vue
  6. 249
      src/views/systemOrder/index-fromapi.vue
  7. 233
      src/views/systemOrder/index.vue

3
package.json

@ -4,7 +4,8 @@
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"scripts": {
"dev": "vue-cli-service serve",
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"serve": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",

11
src/api/gfApi/home.js

@ -55,5 +55,16 @@ export default {
'token': tokens
}
})
},
// 发电状态情况
screenindex: function() {
return request({
url: '/gf/home/screenindex',
method: 'get',
headers: {
'Content-Type': 'application/json',
'token': tokens
}
})
}
}

14
src/api/gfApi/index.js

@ -248,7 +248,7 @@ export default {
})
},
// 获取电站列表
// 获取有效电站
listPageYxdz: function(params) {
return request({
url: '/gf/powerStation/listPageYxdz',
@ -260,6 +260,18 @@ export default {
}
})
},
// 获取电站列表
listPageDzlb: function(params) {
return request({
url: '/gf/powerStation/listPageDzlb',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json',
'token': tokens
}
})
},
expExcelYxdz: function(params) {
return request({
url: '/gf/powerStation/expExcelYxdz',

453
src/views/index-9208.vue

@ -0,0 +1,453 @@
<template>
<div class="app-container">
<div class="main-content">
<el-row :gutter="40" class="panel-group">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
正式客户
</div>
<count-to :start-val="0" :end-val="pgData.zskh" :duration="2600" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="tree-table" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
有效电站数
</div>
<count-to :start-val="0" :end-val="pgData.yxdzs" :duration="3000" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="nested" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
完工规模
</div>
<count-to :start-val="0" :end-val="pgData.wggm" :duration="3200" class="card-panel-num" />MW
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('shoppings')">
<div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="list" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
在库规模
</div>
<count-to :start-val="0" :end-val="pgData.zkgm" :duration="3600" class="card-panel-num" />MW
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>有效电站量</span>
</div>
<div>
<div ref="charta" style="height:330px; width: 100%" />
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>各地区电站对比</span>
</div>
<div>
<div ref="chartb" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>节点占比</span>
</div>
<div>
<div ref="chartc" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>项目占比</span>
</div>
<div>
<div ref="chartd" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import req from '@/api/gfApi/home'
import CountTo from 'vue-count-to'
import * as echarts from 'echarts'
export default {
components: {
CountTo
},
data() {
return {
pgData: {
zskh: 0,
yxdzs: 0,
wggm: 0,
zkgm: 0
},
charta: null,
chartb: null,
chartc: null,
chartd: null
}
},
beforeDestroy() {
if (this.charta) {
this.charta.dispose()
this.charta = null
}
if (this.chartb) {
this.chartb.dispose()
this.chartb = null
}
if (this.chartc) {
this.chartc.dispose()
this.chartc = null
}
if (this.chartd) {
this.chartd.dispose()
this.chartd = null
}
},
mounted() {
this.$nextTick(() => {
this.initCharta()
this.initChartb()
this.initChartc()
this.initChartd()
})
},
created() {
this.init()
},
methods: {
init() {
req.statistichomepage().then(resp => {
this.pgData = resp.data
}).catch(e => console.log(e))
},
initCharta() {
req.statisticgroup_new_data().then(resp => {
const _dataX = resp.data.listx
const _dataY1 = resp.data.listy
this.charta = echarts.init(this.$refs.charta)
this.charta.setOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: _dataX
},
yAxis: {
type: 'value'
},
grid: {
left: 45
},
series: [{
data: _dataY1,
type: 'line'
}]
})
})
},
initChartb() {
req.statisticgroup_area().then(resp => {
const _dataX = []
const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
_dataX.push(resp.data[i].name)
_dataY1.push(resp.data[i].count)
}
this.chartb = echarts.init(this.$refs.chartb)
this.chartb.setOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
xAxis: {
type: 'category',
data: _dataX
},
yAxis: {
type: 'value'
// nameTextStyle: {
// align: 'center'
// }
},
grid: {
left: 40
},
series: [{
data: _dataY1,
type: 'bar'
}]
})
})
},
initChartc() {
req.statisticgroup_node().then(resp => {
const _dataX = []
// const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
const v = {
value: resp.data[i].count,
name: resp.data[i].name
}
_dataX.push(v)
}
this.chartc = echarts.init(this.$refs.chartc)
this.chartc.setOption({
tooltip: {
trigger: 'item'
},
legend: {
top: 'center',
left: '1%',
orient: 'vertical'
},
series: [{
name: '节点占比',
left: '30%',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
// fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: _dataX
}]
})
})
},
initChartd() {
req.statisticgroup_dataid().then(resp => {
const _dataX = []
// const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
const v = {
value: resp.data[i].count,
name: resp.data[i].name
}
_dataX.push(v)
}
this.chartd = echarts.init(this.$refs.chartd)
this.chartd.setOption({
tooltip: {
trigger: 'item'
},
legend: {
top: 'center',
left: '1%',
orient: 'vertical'
},
series: [{
name: '项目占比',
left: '30%',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
// fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: _dataX
}]
})
})
}
}
}
</script>
<style lang="scss" scoped>
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
.chart {
margin-left: 10px;
background-color: rgb(255, 255, 255);
width: 100%;
}
.panel-group {
margin-top: 18px;
.card-panel-col {
margin-bottom: 32px;
}
.card-panel {
height: 108px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
color: #666;
background: #fff;
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
border-color: rgba(0, 0, 0, .05);
&:hover {
.card-panel-icon-wrapper {
color: #fff;
}
.icon-people {
background: #40c9c6;
}
.icon-message {
background: #36a3f7;
}
.icon-money {
background: #f4516c;
}
.icon-shopping {
background: #34bfa3
}
}
.icon-people {
color: #40c9c6;
}
.icon-message {
color: #36a3f7;
}
.icon-money {
color: #f4516c;
}
.icon-shopping {
color: #34bfa3
}
.card-panel-icon-wrapper {
float: left;
margin: 14px 0 0 14px;
padding: 16px;
transition: all 0.38s ease-out;
border-radius: 6px;
}
.card-panel-icon {
float: left;
font-size: 48px;
}
.card-panel-description {
float: right;
font-weight: bold;
margin: 26px;
margin-left: 0px;
.card-panel-text {
line-height: 18px;
color: rgba(0, 0, 0, 0.45);
font-size: 16px;
margin-bottom: 12px;
}
.card-panel-num {
font-size: 20px;
}
}
}
}
@media (max-width:550px) {
.card-panel-description {
display: none;
}
.card-panel-icon-wrapper {
float: none !important;
width: 100%;
height: 100%;
margin: 0 !important;
.svg-icon {
display: block;
margin: 14px auto !important;
float: none !important;
}
}
}
</style>

255
src/views/index.vue

@ -2,7 +2,7 @@
<div class="app-container">
<div class="main-content">
<el-row :gutter="40" class="panel-group">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
@ -11,11 +11,11 @@
<div class="card-panel-text">
正式客户
</div>
<count-to :start-val="0" :end-val="pgData.zskh" :duration="2600" class="card-panel-num" />
<count-to :start-val="0" :end-val="pgData.group_vo.zskh" :duration="2600" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<!-- <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="tree-table" class-name="card-panel-icon" />
@ -24,11 +24,11 @@
<div class="card-panel-text">
有效电站数
</div>
<count-to :start-val="0" :end-val="pgData.yxdzs" :duration="3000" class="card-panel-num" />
<count-to :start-val="0" :end-val="pgData.group_vo.yxdzs" :duration="3000" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
</el-col> -->
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon icon-class="nested" class-name="card-panel-icon" />
@ -37,11 +37,11 @@
<div class="card-panel-text">
完工规模
</div>
<count-to :start-val="0" :end-val="pgData.wggm" :duration="3200" class="card-panel-num" />MW
<count-to :start-val="0" :end-val="pgData.group_vo.wggm" :duration="3200" class="card-panel-num" />MW
</div>
</div>
</el-col>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<el-col :xs="12" :sm="12" :lg="8" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('shoppings')">
<div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="list" class-name="card-panel-icon" />
@ -50,13 +50,13 @@
<div class="card-panel-text">
在库规模
</div>
<count-to :start-val="0" :end-val="pgData.zkgm" :duration="3600" class="card-panel-num" />MW
<count-to :start-val="0" :end-val="pgData.group_vo.zkgm" :duration="3600" class="card-panel-num" />MW
</div>
</div>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="6">
<el-col :span="8">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>有效电站量</span>
@ -66,36 +66,16 @@
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-col :span="16">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>各地区电站对比</span>
<span><i class="el-icon-s-data" /> 地区数据统计</span>
</div>
<div>
<div ref="chartb" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>节点占比</span>
</div>
<div>
<div ref="chartc" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
<el-col :span="6">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span>项目占比</span>
</div>
<div>
<div ref="chartd" style="height:330px; width: 100%;" />
</div>
</el-card>
</el-col>
</el-row>
</div>
</div>
@ -112,15 +92,16 @@
data() {
return {
pgData: {
zskh: 0,
yxdzs: 0,
wggm: 0,
zkgm: 0
group_vo: {
zskh: 0,
yxdzs: 0,
wggm: 0,
zkgm: 0
},
order_area: []
},
charta: null,
chartb: null,
chartc: null,
chartd: null
chartb: null
}
},
beforeDestroy() {
@ -132,21 +113,11 @@
this.chartb.dispose()
this.chartb = null
}
if (this.chartc) {
this.chartc.dispose()
this.chartc = null
}
if (this.chartd) {
this.chartd.dispose()
this.chartd = null
}
},
mounted() {
this.$nextTick(() => {
this.initCharta()
this.initChartb()
this.initChartc()
this.initChartd()
})
},
created() {
@ -159,50 +130,82 @@
}).catch(e => console.log(e))
},
initCharta() {
req.statisticgroup_new_data().then(resp => {
const _dataX = resp.data.listx
const _dataY1 = resp.data.listy
req.screenindex().then(resp => {
const _dataX = [{
name: '正常(户用)',
value: resp.data.line_count
},
{
name: '离线(户用)',
value: resp.data.wait_count
},
{
name: '故障(户用)',
value: resp.data.warning_count
}
]
this.charta = echarts.init(this.$refs.charta)
this.charta.setOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
title: {
show: true,
text: '电站总数',
left: 'center',
top: '40%'
},
xAxis: {
type: 'category',
data: _dataX
},
yAxis: {
type: 'value'
graphic: [{
type: 'text',
left: 'center',
top: '50%',
style: {
text: resp.data.all_count,
textAlign: 'center',
fill: '#FF0000',
fontSize: 30,
fontWeight: 'bold'
}
}],
tooltip: {
// trigger: 'axis',
// axisPointer: {
// type: 'shadow'
// }
},
legend: {},
grid: {
left: 45
},
series: [{
data: _dataY1,
type: 'line'
name: '电站状态',
type: 'pie',
radius: ['40%', '70%'],
data: _dataX
}]
})
})
},
initChartb() {
req.statisticgroup_area().then(resp => {
req.statistichomepage().then(resp => {
const areadata = resp.data.order_area
const _dataX = []
const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
_dataX.push(resp.data[i].name)
_dataY1.push(resp.data[i].count)
const _dataY2 = []
for (var i = 0; i < areadata.length; i++) {
_dataX.push(areadata[i].name)
_dataY1.push(Number(areadata[i].all_power) / 1000)
_dataY2.push(areadata[i].count)
}
this.chartb = echarts.init(this.$refs.chartb)
this.chartb.setOption({
tooltip: {
// show: false,
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
// valueFormatter: (value) => '$' + value.toFixed(2)
formatter: '{b}<br />{a0}: {c0}<br />{a1}: {c1}kw'
},
legend: {},
xAxis: {
type: 'category',
data: _dataX
@ -214,113 +217,18 @@
// }
},
grid: {
left: 40
left: 50
},
series: [{
name: '电站数',
data: _dataY2,
type: 'bar'
// label: { show: true }
}, {
name: '装机容量',
data: _dataY1,
type: 'bar'
}]
})
})
},
initChartc() {
req.statisticgroup_node().then(resp => {
const _dataX = []
// const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
const v = {
value: resp.data[i].count,
name: resp.data[i].name
}
_dataX.push(v)
}
this.chartc = echarts.init(this.$refs.chartc)
this.chartc.setOption({
tooltip: {
trigger: 'item'
},
legend: {
top: 'center',
left: '1%',
orient: 'vertical'
},
series: [{
name: '节点占比',
left: '30%',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
// fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: _dataX
}]
})
})
},
initChartd() {
req.statisticgroup_dataid().then(resp => {
const _dataX = []
// const _dataY1 = []
for (var i = 0; i < resp.data.length; i++) {
const v = {
value: resp.data[i].count,
name: resp.data[i].name
}
_dataX.push(v)
}
this.chartd = echarts.init(this.$refs.chartd)
this.chartd.setOption({
tooltip: {
trigger: 'item'
},
legend: {
top: 'center',
left: '1%',
orient: 'vertical'
},
series: [{
name: '项目占比',
left: '30%',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 10,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
// fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: _dataX
// label: { show: true }
}]
})
})
@ -450,4 +358,3 @@
}
}
</style>

249
src/views/systemOrder/index-fromapi.vue

@ -0,0 +1,249 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="电站列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :model="listQuery" :inline="true" class="tab-header">
<el-form-item label="录单日期"><el-date-picker
v-model="listQuery.search_time"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions"
/>
</el-form-item>
<el-form-item label="代理商">
<el-select v-model="listQuery.agent_id" placeholder="请选择代理商" clearable class="addinputw">
<el-option v-for="item in agentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="区域项目">
<el-select v-model="listQuery.witch_data" placeholder="数据分组" clearable class="addinputw">
<el-option v-for="item in groupList" :key="item.data_id" :label="item.name" :value="item.data_id" />
</el-select>
</el-form-item>
<el-form-item label="流程状态">
<el-select v-model="listQuery.workflow" placeholder="请选择流程状态" clearable class="addinputw">
<el-option v-for="item in workflowList" :key="item.unique_name" :label="item.name" :value="item.unique_name" />
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<el-table v-loading="tableloading" :data="logList" style="width: 100%" border>
<el-table-column align="center" prop="id" label="电站id" width="90" />
<el-table-column align="center" prop="order_no" label="电站编码" width="150" />
<el-table-column align="center" prop="all_power" label="电站功率" width="100" />
<el-table-column align="center" prop="agent_name" label="代理商名称" />
<el-table-column align="center" prop="address" label="电站地址" width="160" />
<el-table-column align="center" prop="company_name" label="所属公司名称" width="200" />
<el-table-column align="center" prop="user_name" label="客户姓名" width="90" />
<el-table-column align="center" prop="user_phone" label="用户电话" width="90" />
<el-table-column align="center" prop="data_id" label="分组" width="90" />
<el-table-column align="center" prop="product_name" label="产品" width="100" />
<el-table-column align="center" prop="workflow_name" label="目前状态" width="100" />
<el-table-column align="center" prop="sign" label="是否签署合同" width="100">
<template slot-scope="scope"><div>{{ scope.row.sign==1?'已经签署':'未签署' }}</div></template>
</el-table-column>
</el-table>
<div class="pages">
<div class="tit" />
<pagination v-show="logList.length > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" class="pagination" @pagination="loadLogList" />
</div>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/gfApi'
import Pagination from '@/components/pagination'
import ButtonBar from '@/components/ButtonBar'
export default {
components: {
ButtonBar,
Pagination
},
data() {
return {
tableloading: false,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
},
viewState: 1,
tabActiveName: 'uplog',
index: '0',
isSearchShow: false,
editDialog: false,
searchxianshitit: '显示查询条件',
btndisabled: false,
btnList: [{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}],
logList: [],
tempList: [],
listQuery: {
page: 1,
limit: 10,
agent_id: '',
search_time: [],
witch_data: '',
workflow: ''
},
queryInfo: {
page: 1,
limit: 10,
ident_id: ''
},
total: 0,
count: 0,
jmdListQuery: {
contractNumber: '',
date: ''
},
agentList: [],
groupList: [],
workflowList: []
}
},
mounted() {
//
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
//
this.init()
this.loadLogList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
dosearch() {
this.loadLogList()
},
resetQuery() {
this.listQuery = {
page: 1,
limit: 10,
supplier_name: ''
}
this.total = 0
this.loadLogList()
},
//
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose': //
this.doClose()
break
default:
break
}
},
init() {
req.getAgentList().then((res) => {
this.agentList = res.data.data
})
req.groupDataidList().then((res) => {
this.groupList = res.data.data
})
req.workflowList().then((res) => {
this.workflowList = res.data.data
})
},
loadLogList() {
this.tableloading = true
req.listPagePowerStation(this.listQuery).then((res) => {
this.tableloading = false
if (res.code == 200) {
console.log('======', res)
this.total = res.data.total
this.logList = res.data.records
}
}).catch(e => { this.tableloading = false })
},
LookStorehousedialog(row) {
this.queryInfo.ident_id = row.id
req.getContract(this.queryInfo).then((res) => {
if (res.code == 200) {
this.editDialog = true
this.tempList = res.data.data.list
this.count = res.data.data.count
}
})
},
LookStoreDialog() {
req.getContract(this.queryInfo).then((res) => {
if (res.code == 200) {
this.tempList = res.data.data.list
this.count = res.data.data.count
}
})
},
//
indexMethod(index) {
var pagestart = (this.listQuery.page - 1) * this.listQuery.limit
var pageindex = index + 1 + pagestart
return pageindex
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

233
src/views/systemOrder/index.vue

@ -1,66 +1,77 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="电站列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :model="listQuery" :inline="true" class="tab-header">
<el-form-item label="录单日期"><el-date-picker
v-model="listQuery.search_time"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions"
/>
</el-form-item>
<el-form-item label="代理商">
<el-select v-model="listQuery.agent_id" placeholder="请选择代理商" clearable class="addinputw">
<el-option v-for="item in agentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="区域项目">
<el-select v-model="listQuery.witch_data" placeholder="数据分组" clearable class="addinputw">
<el-option v-for="item in groupList" :key="item.data_id" :label="item.name" :value="item.data_id" />
</el-select>
</el-form-item>
<el-form-item label="流程状态">
<el-select v-model="listQuery.workflow" placeholder="请选择流程状态" clearable class="addinputw">
<el-option v-for="item in workflowList" :key="item.unique_name" :label="item.name" :value="item.unique_name" />
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
<button-bar ref="btnbar" view-title="电站列表" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<div class="search" style="margin-top: 5px;">
<el-form ref="sform" :model="queryParams" :inline="true" class="tab-header">
<el-form-item label="录单日期"><el-date-picker
v-model="queryParams.params.search_time"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
:picker-options="pickerOptions"
/>
</el-form-item>
<el-form-item label="电站流程阶段">
<el-select v-model="queryParams.params.phase" placeholder="电站流程阶段" clearable class="addinputw">
<el-option v-for="item in phaseList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="区域项目">
<el-select v-model="queryParams.params.witch_data" multiple placeholder="数据分组" clearable class="addinputw">
<el-option v-for="item in groupList" :key="item.data_id" :label="item.name" :value="item.data_id" />
</el-select>
</el-form-item>
<el-form-item label="代理商">
<el-select v-model="queryParams.params.agent_id" placeholder="请选择代理商" clearable class="addinputw">
<el-option v-for="item in agentList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<el-table v-loading="tableloading" :data="logList" style="width: 100%" border>
<el-table-column align="center" prop="id" label="电站id" width="90" />
<el-table-column align="center" prop="order_no" label="电站编码" width="150" />
<el-table-column align="center" prop="agent_name" label="代理商名称" />
<el-table-column align="center" prop="address" label="地址" width="160" />
<el-table-column align="center" prop="company_name" label="所属公司名称" width="200" />
<el-table-column align="center" prop="data_id" label="分组" width="90" />
<el-table-column align="center" prop="product_name" label="产品" width="100" />
<el-table-column align="center" prop="workflow_name" label="目前状态" width="100" />
<el-table-column align="center" prop="sign" label="是否签署合同" width="100">
<template slot-scope="scope"><div>{{ scope.row.sign==1?'已经签署':'未签署' }}</div></template>
</el-table-column>
</el-table>
<div class="pages">
<div class="tit" />
<pagination v-show="logList.length > 0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" class="pagination" @pagination="loadLogList" />
</div>
<div class="listtop">
<div class="tit">电站列表</div>
<div style="margin-right: 50px;">电站数量{{ queryParams.total }}</div>
</div>
<el-table v-loading="tableloading" :data="logList" style="width: 100%" border>
<el-table-column align="center" prop="id" label="电站id" width="90" />
<el-table-column align="center" prop="order_no" label="电站编码" width="150" />
<el-table-column align="center" prop="all_power" label="电站功率" width="100" />
<el-table-column align="center" prop="agent_name" label="代理商名称" />
<el-table-column align="center" prop="address" label="电站地址" width="160" />
<el-table-column align="center" prop="company_name" label="所属公司名称" width="200" />
<el-table-column align="center" prop="user_name" label="客户姓名" width="90" />
<el-table-column align="center" prop="user_phone" label="用户电话" width="90" />
<el-table-column align="center" prop="data_id" label="分组" width="90" />
<el-table-column align="center" prop="product_name" label="产品" width="100" />
<el-table-column align="center" prop="workflow_name" label="目前状态" width="100" />
<el-table-column align="center" prop="sign" label="是否签署合同" width="100">
<template slot-scope="scope">
<div>{{ scope.row.sign==1?'已经签署':'未签署' }}</div>
</template>
</el-table-column>
</el-table>
<div class="pages">
<div class="tit" />
<pagination
v-show="logList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadLogList"
/>
</div>
</div>
</div>
@ -77,7 +88,7 @@
},
data() {
return {
tableloading: false,
tableloading: false,
pickerOptions: {
shortcuts: [{
text: '最近一周',
@ -105,12 +116,6 @@
}
}]
},
viewState: 1,
tabActiveName: 'uplog',
index: '0',
isSearchShow: false,
editDialog: false,
searchxianshitit: '显示查询条件',
btndisabled: false,
btnList: [{
type: 'info',
@ -120,29 +125,28 @@
btnLabel: '关闭'
}],
logList: [],
tempList: [],
listQuery: {
page: 1,
limit: 10,
agent_id: '',
search_time: [],
witch_data: '',
workflow: ''
},
queryInfo: {
page: 1,
limit: 10,
ident_id: ''
},
total: 0,
count: 0,
jmdListQuery: {
contractNumber: '',
date: ''
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
agent_id: '',
search_time: [],
witch_data: '',
workflow: '',
phase: ''
}
},
agentList: [],
groupList: [],
workflowList: []
workflowList: [],
phaseList: [
{ value: '1', label: '进件' },
{ value: '2', label: '签约' },
{ value: '3', label: '交货' },
{ value: '4', label: '完工' },
{ value: '5', label: '并网' }
]
}
},
mounted() {
@ -155,25 +159,21 @@
this.loadLogList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
dosearch() {
this.loadLogList()
},
resetQuery() {
this.listQuery = {
page: 1,
limit: 10,
supplier_name: ''
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
agent_id: '',
search_time: [],
witch_data: '',
workflow: ''
}
}
this.total = 0
this.loadLogList()
},
//
@ -199,42 +199,17 @@
},
loadLogList() {
this.tableloading = true
req.listPagePowerStation(this.listQuery).then((res) => {
this.tableloading = false
req.listPageDzlb(this.queryParams).then((res) => {
this.tableloading = false
if (res.code == 200) {
console.log('======', res)
this.total = res.data.total
this.queryParams.total = res.data.total
this.logList = res.data.records
}
}).catch(e => { this.tableloading = false })
},
LookStorehousedialog(row) {
this.queryInfo.ident_id = row.id
req.getContract(this.queryInfo).then((res) => {
if (res.code == 200) {
this.editDialog = true
this.tempList = res.data.data.list
this.count = res.data.data.count
}
}).catch(e => {
this.tableloading = false
})
},
LookStoreDialog() {
req.getContract(this.queryInfo).then((res) => {
if (res.code == 200) {
this.tempList = res.data.data.list
this.count = res.data.data.count
}
})
},
//
indexMethod(index) {
var pagestart = (this.listQuery.page - 1) * this.listQuery.limit
var pageindex = index + 1 + pagestart
return pageindex
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)

Loading…
Cancel
Save