|
@@ -2,27 +2,32 @@
|
|
|
<div class="demandAnalysis">
|
|
|
<div class="demContent1">
|
|
|
<div style="display: flex">
|
|
|
- <el-select
|
|
|
- v-model="siteValue"
|
|
|
+ <el-select
|
|
|
+ v-model="store.state.siteId"
|
|
|
+ @change="siteChange"
|
|
|
placeholder="选择站点"
|
|
|
- @change="siteOption()"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in options"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ v-for="item in store.state.siteList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.siteName"
|
|
|
+ :value="item.id"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
|
|
|
<div class="demSwitch">
|
|
|
<el-tree
|
|
|
- :data="data"
|
|
|
+ ref="tree"
|
|
|
+ :data="deviceBoxData"
|
|
|
show-checkbox
|
|
|
node-key="id"
|
|
|
- :default-expanded-keys="[2, 3]"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ accordion
|
|
|
+ :check-strictly="true"
|
|
|
:props="defaultProps"
|
|
|
+ @check="currentChecked"
|
|
|
+ highlight-current="showTree"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -32,24 +37,25 @@
|
|
|
<div class="block">
|
|
|
<span class="demonstration" style="color: black">日期:</span>
|
|
|
<el-date-picker
|
|
|
- v-model="value1"
|
|
|
- type="month"
|
|
|
+ v-model="dateTime"
|
|
|
+ type="day"
|
|
|
placeholder="请选择日期"
|
|
|
></el-date-picker>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<el-radio-group
|
|
|
- v-model="listTabPosition"
|
|
|
- @change="listTabsChange(listTabPosition)"
|
|
|
- style="display: flex"
|
|
|
- >
|
|
|
- <el-radio label="1" style="line-height: 2.5">电费计算周期</el-radio>
|
|
|
- <el-radio label="2" style="line-height: 2.5">自然月</el-radio>
|
|
|
+ v-model="listTabPosition"
|
|
|
+ @change="listTabsChange(listTabPosition)"
|
|
|
+ style="display: flex"
|
|
|
+ >
|
|
|
+ <el-radio-button label="cycleValue">电费结算周期</el-radio-button>
|
|
|
+ <el-radio-button label="monthValue">自然月</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
|
|
|
- <div style="margin-left: 10px">
|
|
|
- <el-button icon="el-icon-search" type="primary">查询</el-button>
|
|
|
+ <div style="margin-left: 10px">
|
|
|
+ <el-button icon="el-icon-search" type="primary" @click="searchData()">查询</el-button>
|
|
|
</div>
|
|
|
- </el-radio-group>
|
|
|
</div>
|
|
|
<div class="demEcharTable">
|
|
|
<div class="Echarts">
|
|
@@ -106,8 +112,13 @@
|
|
|
</template>
|
|
|
<script>
|
|
|
import { useStore } from 'vuex'
|
|
|
-import { defineComponent, ref, reactive, toRefs } from 'vue'
|
|
|
+import { defineComponent, ref, reactive, toRefs,onMounted } from 'vue'
|
|
|
import echarts from './ehcarts/index.vue'
|
|
|
+import { parseTime2 } from '@/utils'
|
|
|
+
|
|
|
+import * as api from '@/api/dataManage/demandAnalysis.js'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+import { ElNotification } from 'element-plus'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'demandAnalysis',
|
|
@@ -116,13 +127,29 @@ export default defineComponent({
|
|
|
setup() {
|
|
|
const store = useStore()
|
|
|
|
|
|
+ const deviceBoxData = ref([])
|
|
|
+ const deviceChecked = ref([])
|
|
|
+ const dateTime = ref(new Date())
|
|
|
+ const typeSrarch = ref(1)
|
|
|
+ const flag = ref(false)
|
|
|
+ const echartsData = ref({})
|
|
|
+
|
|
|
const siteOption = () => {
|
|
|
console.log(store.state)
|
|
|
}
|
|
|
|
|
|
const listTabsChange = (value) => {
|
|
|
+ value == 'monthValue'
|
|
|
+ ? (typeSrarch.value = 2)
|
|
|
+
|
|
|
+ : (typeSrarch.value = 1)
|
|
|
console.log(value)
|
|
|
}
|
|
|
+ const handleNodeClick = (data, obj, node) => {
|
|
|
+ data, node
|
|
|
+ console.log(obj.data.deviceCode)
|
|
|
+ deviceChecked.value = obj.data.deviceCode
|
|
|
+ }
|
|
|
|
|
|
const state = reactive({
|
|
|
value1: '2021-5',
|
|
@@ -133,6 +160,67 @@ export default defineComponent({
|
|
|
window.onresize = function () {
|
|
|
Height.value = window.innerHeight - 250 + 'px'
|
|
|
}
|
|
|
+ //通过站点切换下拉框 change事件改变 tree树中的数据
|
|
|
+ const siteChange = () => {
|
|
|
+ store.commit('publicDeviceList')
|
|
|
+ deviceBoxList()
|
|
|
+ }
|
|
|
+ function deviceBoxList() {
|
|
|
+ api
|
|
|
+ .deviceBoxList({
|
|
|
+ siteId: store.state.siteId,
|
|
|
+ })
|
|
|
+ .then((requset) => {
|
|
|
+ if (requset.status === 'SUCCESS') {
|
|
|
+ deviceBoxData.value = requset.data
|
|
|
+ deviceBoxData.value.forEach(function (i, index) {
|
|
|
+ i.id = index
|
|
|
+ i.children = []
|
|
|
+ })
|
|
|
+ console.log(deviceBoxData.value)
|
|
|
+ } else {
|
|
|
+ ElMessage.error(requset.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function searchData() {
|
|
|
+ if (deviceChecked.value.length>0) {
|
|
|
+ // alert(1)
|
|
|
+ // store.commit('TimeAll_function', dateTime.value)
|
|
|
+ // const time = store.state.Time_Data
|
|
|
+
|
|
|
+ dateTime.value
|
|
|
+ ? (dateTime.value = parseTime2(
|
|
|
+ dateTime.value
|
|
|
+ ))
|
|
|
+ : ''
|
|
|
+ api
|
|
|
+ .demandAnalysis({
|
|
|
+ cycle: typeSrarch.value,
|
|
|
+ monthDate:dateTime.value,
|
|
|
+ deviceCode:deviceChecked.value
|
|
|
+
|
|
|
+ })
|
|
|
+ .then((requset) => {
|
|
|
+ if (requset.status === 'SUCCESS') {
|
|
|
+ flag.value = true
|
|
|
+ echartsData.value = requset.data[0]
|
|
|
+ } else {
|
|
|
+ ElMessage.error(requset.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ console.log('', 1)
|
|
|
+ ElNotification({
|
|
|
+ title: '提示',
|
|
|
+ message: '请选择设备',
|
|
|
+ type: 'warning',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ onMounted(() => {
|
|
|
+ deviceBoxList()
|
|
|
+ })
|
|
|
|
|
|
return {
|
|
|
Height,
|
|
@@ -140,7 +228,14 @@ export default defineComponent({
|
|
|
siteValue: ref(1), //select站点选择
|
|
|
listTabsChange, //单选change事件
|
|
|
siteOption, //站点下拉change事件
|
|
|
- listTabPosition: ref('1'), //单选按钮
|
|
|
+ siteChange,
|
|
|
+ searchData,
|
|
|
+ handleNodeClick,
|
|
|
+ store,
|
|
|
+ listTabPosition: ref('cycleValue'), //单选按钮
|
|
|
+ deviceBoxData,
|
|
|
+ deviceChecked,
|
|
|
+ dateTime,typeSrarch,flag,echartsData,
|
|
|
data: [
|
|
|
{
|
|
|
id: 1,
|
|
@@ -180,8 +275,10 @@ export default defineComponent({
|
|
|
},
|
|
|
]),
|
|
|
defaultProps: {
|
|
|
- children: 'children',
|
|
|
- label: 'label',
|
|
|
+ children: 'children',
|
|
|
+ label: 'deviceName',
|
|
|
+ deviceCode: 'deviceCode',
|
|
|
+ id: 'id',
|
|
|
},
|
|
|
tableData: [
|
|
|
{
|
|
@@ -417,4 +514,17 @@ export default defineComponent({
|
|
|
.el-table--scrollable-y .el-table__body-wrapper::-webkit-scrollbar{
|
|
|
overflow-y: hidden;
|
|
|
}
|
|
|
+</style>
|
|
|
+<style lang="less">
|
|
|
+.demSwitch {
|
|
|
+ .el-tree-node__content .el-checkbox__input {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .el-tree-node
|
|
|
+ .el-tree-node__children
|
|
|
+ .el-tree-node__content
|
|
|
+ .el-checkbox__input {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|