1、设备管理台账页面新增打印铭牌功能(二维码还未调试完)
2、mdc模块新增四个利用率相关图表页面
| | |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="å
³é®è®¾å¤æ è¯"> |
| | | <j-dict-select-tag dict-code="yn" placeholder="è¯·éæ©å
³é®è®¾å¤æ è¯" v-model="queryParam.equipmentImportance"></j-dict-select-tag> |
| | | <j-dict-select-tag dict-code="yn" placeholder="è¯·éæ©å
³é®è®¾å¤æ è¯" |
| | | v-model="queryParam.equipmentImportance"></j-dict-select-tag> |
| | | </a-form-item> |
| | | </a-col> |
| | | <template v-if="toggleSearchStatus"> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="èµäº§ç¶æ"> |
| | | <j-dict-select-tag dict-code="asset_status" placeholder="è¯·éæ©èµäº§ç¶æ" v-model="queryParam.assetStatus"></j-dict-select-tag> |
| | | <j-dict-select-tag dict-code="asset_status" placeholder="è¯·éæ©èµäº§ç¶æ" |
| | | v-model="queryParam.assetStatus"></j-dict-select-tag> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="ææ¯ç¶æ"> |
| | | <j-dict-select-tag dict-code="technology_status" placeholder="è¯·éæ©ææ¯ç¶æ" v-model="queryParam.technologyStatus"></j-dict-select-tag> |
| | | <j-dict-select-tag dict-code="technology_status" placeholder="è¯·éæ©ææ¯ç¶æ" |
| | | v-model="queryParam.technologyStatus"></j-dict-select-tag> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | |
| | | </a-col> |
| | | <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
| | | <a-form-item label="设å¤åç±»"> |
| | | <j-dict-select-tag dict-code="equipment_category" placeholder="è¯·éæ©è®¾å¤åç±»" v-model="queryParam.equipmentCategory"></j-dict-select-tag> |
| | | <j-dict-select-tag dict-code="equipment_category" placeholder="è¯·éæ©è®¾å¤åç±»" |
| | | v-model="queryParam.equipmentCategory"></j-dict-select-tag> |
| | | </a-form-item> |
| | | </a-col> |
| | | </template> |
| | |
| | | <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> |
| | | <a @click="handleToggleSearch" style="margin-left: 8px"> |
| | | {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> |
| | | <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item key="1" @click="batchDel"> |
| | | <a-icon type="delete" /> |
| | | <a-icon type="delete"/> |
| | | å é¤ |
| | | </a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> æ¹éæä½ |
| | | <a-icon type="down" /> |
| | | <a-icon type="down"/> |
| | | </a-button> |
| | | </a-dropdown> |
| | | </div> |
| | |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | @change="handleTableChange"> |
| | | <span slot="equipmentImportance" slot-scope="text"> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦" /> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦"/> |
| | | </span> |
| | | <span slot="mdcFlag" slot-scope="text"> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦" /> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦"/> |
| | | </span> |
| | | <span slot="processParametersFlag" slot-scope="text"> |
| | | <lx-switch v-model="text" disabled checked-children="æ" un-checked-children="æ " /> |
| | | <lx-switch v-model="text" disabled checked-children="æ" un-checked-children="æ "/> |
| | | </span> |
| | | <span slot="precisionParametersFlag" slot-scope="text"> |
| | | <lx-switch v-model="text" disabled checked-children="æ" un-checked-children="æ " /> |
| | | <lx-switch v-model="text" disabled checked-children="æ" un-checked-children="æ "/> |
| | | </span> |
| | | <span slot="specialEquipment" slot-scope="text"> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦" /> |
| | | <lx-switch v-model="text" disabled checked-children="æ¯" un-checked-children="å¦"/> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | <a-divider type="vertical"/> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down"/></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a href="javascript:;" @click="handleOpenNameplateModal(record)">éç</a> |
| | | </a-menu-item> |
| | | <a-menu-item> |
| | | <a href="javascript:;" @click="handleDetail(record)">详æ
</a> |
| | | </a-menu-item> |
| | |
| | | |
| | | <!-- 表ååºå --> |
| | | <eamEquipment-modal ref="modalForm" @ok="modalFormOk"></eamEquipment-modal> |
| | | <!--éçå¼¹çª--> |
| | | <nameplate-modal ref="nameplateModalRef"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import EamEquipmentModal from './modules/EamEquipmentModal' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import { getAction } from '@api/manage' |
| | | import NameplateModal from '@views/eam/equipment/modules/NameplateModal.vue' |
| | | |
| | | export default { |
| | | name: 'EamEquipmentList', |
| | | mixins: [JeecgListMixin], |
| | | components: { |
| | | NameplateModal, |
| | | EamEquipmentModal |
| | | }, |
| | | data() { |
| | |
| | | dataIndex: 'equipmentCode', |
| | | ellipsis: true, |
| | | fixed: 'left', |
| | | sorter: true, |
| | | sorter: true |
| | | }, |
| | | { |
| | | title: '设å¤åç§°', |
| | |
| | | deleteBatch: '/eam/equipment/deleteBatch', |
| | | exportXlsUrl: 'eam/equipment/exportXls', |
| | | importExcelUrl: 'eam/equipment/importExcel', |
| | | loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions' |
| | | loadProductionOptions: '/mdc/mdcProduction/loadProductionTreeOptions' |
| | | }, |
| | | treeData: [], |
| | | treeData: [] |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.loadAllProductionTree(); |
| | | this.loadAllProductionTree() |
| | | }, |
| | | methods: { |
| | | loadAllProductionTree() { |
| | |
| | | getAction(this.url.loadProductionOptions).then(res => { |
| | | if (res.success) { |
| | | this.treeData = [...res.result] |
| | | }else { |
| | | } else { |
| | | that.$message.warning(res.message) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * å¼å¯éçå¼¹çª |
| | | * @param record |
| | | */ |
| | | handleOpenNameplateModal(record) { |
| | | this.$refs.nameplateModalRef.model = Object.assign({}, record) |
| | | this.$refs.nameplateModalRef.visible = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | title="éç" |
| | | :width="750" |
| | | :visible="visible" |
| | | @ok="handleOk" |
| | | @cancel="visible=false" |
| | | :maskClosable="false" |
| | | > |
| | | <table id="nameplateTable" border="1" cellpadding="12" cellspacing="0" align="center" width="80%"> |
| | | <thead> |
| | | <tr> |
| | | <th colspan="3">设å¤ç®¡çç</th> |
| | | </tr> |
| | | </thead> |
| | | |
| | | <tbody> |
| | | <tr> |
| | | <td rowspan="3"> |
| | | |
| | | </td> |
| | | <td>设å¤ç¼å·</td> |
| | | <td>{{ model.equipmentCode }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>设å¤åç§°</td> |
| | | <td>{{ model.equipmentName }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>设å¤åå·</td> |
| | | <td>{{ model.equipmentModel }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>设å¤ç®¡ç</td> |
| | | <td>使ç¨é¨é¨</td> |
| | | <td>{{ model.orgId_dictText }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td rowspan="3">123123123123</td> |
| | | <td>åºåç¼å·</td> |
| | | <td>{{ model.factoryNumber }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>设å¤ç®¡çå</td> |
| | | <td>{{ model.equipmentManager_dictText }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>å®è£
ä½ç½®</td> |
| | | <td>{{ model.installationPosition }}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td>MES</td> |
| | | <td colspan="2" style="color: #f00;font-weight: bold;letter-spacing: 1px">é管çåå¿å¨æ¤éç</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | |
| | | <template slot="footer"> |
| | | <a-button>å
³é</a-button> |
| | | <a-button type="primary" v-print="'#nameplateTable'">æå°</a-button> |
| | | </template> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'NameplateModal', |
| | | components: { }, |
| | | data() { |
| | | return { |
| | | title: 'éç', |
| | | visible: false, |
| | | disableSubmit: false, |
| | | model: {}, |
| | | url: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | handleOk() { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | table { |
| | | font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软é
é»", Arial, sans-serif; |
| | | color: #000; |
| | | text-align: center; |
| | | |
| | | th { |
| | | font-size: 28px; |
| | | letter-spacing: 3px; |
| | | padding: 20px; |
| | | } |
| | | |
| | | td { |
| | | font-size: 18px; |
| | | width: 33%; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="width: 100%; height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="5"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane v-if="isDepartType == 0" key="2" tab="é¨é¨å±çº§">, |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd"></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="19"> |
| | | <ChartComponent :nodePeople='selectPeople' :nodeTree='selectEquipment' :Type="selectTypeTree"/> |
| | | </a-col> |
| | | </a-row> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTree from '../common/BaseTree' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | import { mapActions } from 'vuex' |
| | | import ChartComponent from '@views/mdc/base/modules/DeliveryGroupUtilizationRateChart/ChartComponent.vue' |
| | | |
| | | export default { |
| | | name: 'DeliveryGroupUtilizationRateChart', |
| | | components: { |
| | | ChartComponent, |
| | | BaseTree, |
| | | DepartTree, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | selectEquipment: {}, |
| | | selectPeople: {}, |
| | | selectTypeTree: '', |
| | | isDepartType: '' |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryTreeData() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | }) |
| | | }, |
| | | |
| | | tabChange(val) { |
| | | this.activeKey = val |
| | | this.selectTypeTree = val |
| | | }, |
| | | |
| | | changeSelectionNode(val) { |
| | | this.selectEquipment = val |
| | | this.selectTypeTree = '1' |
| | | }, |
| | | |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.selectTypeTree = '2' |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="width: 100%; height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="5"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane v-if="isDepartType == 0" key="2" tab="é¨é¨å±çº§">, |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd"></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="19"> |
| | | <ChartComponent :nodePeople='selectPeople' :nodeTree='selectEquipment' :Type="selectTypeTree"/> |
| | | </a-col> |
| | | </a-row> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTree from '../common/BaseTree' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | import { mapActions } from 'vuex' |
| | | import ChartComponent from '@views/mdc/base/modules/GroupEquipmentUtilizationRateChart/ChartComponent.vue' |
| | | |
| | | export default { |
| | | name: 'GroupEquipmentUtilizationRateChart', |
| | | components: { |
| | | ChartComponent, |
| | | BaseTree, |
| | | DepartTree, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | selectEquipment: {}, |
| | | selectPeople: {}, |
| | | selectTypeTree: '', |
| | | isDepartType: '' |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryTreeData() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | }) |
| | | }, |
| | | |
| | | tabChange(val) { |
| | | this.activeKey = val |
| | | this.selectTypeTree = val |
| | | }, |
| | | |
| | | changeSelectionNode(val) { |
| | | this.selectEquipment = val |
| | | this.selectTypeTree = '1' |
| | | }, |
| | | |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.selectTypeTree = '2' |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="width: 100%; height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="5"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane v-if="isDepartType == 0" key="2" tab="é¨é¨å±çº§">, |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd"></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="19"> |
| | | <ChartComponent :nodePeople='selectPeople' :nodeTree='selectEquipment' :Type="selectTypeTree"/> |
| | | </a-col> |
| | | </a-row> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTree from '../common/BaseTree' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | import { mapActions } from 'vuex' |
| | | import ChartComponent from '@views/mdc/base/modules/GroupUtilizationRateChart/ChartComponent.vue' |
| | | |
| | | export default { |
| | | name: 'GroupUtilizationRateChart', |
| | | components: { |
| | | ChartComponent, |
| | | BaseTree, |
| | | DepartTree, |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | selectEquipment: {}, |
| | | selectPeople: {}, |
| | | selectTypeTree: '', |
| | | isDepartType: '' |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryTreeData() |
| | | }, |
| | | methods: { |
| | | ...mapActions(['QueryDepartTree']), |
| | | |
| | | queryTreeData() { |
| | | this.QueryDepartTree().then(res => { |
| | | if (res.success) { |
| | | this.isDepartType = res.result[0].value |
| | | } else { |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }).finally(() => { |
| | | }) |
| | | }, |
| | | |
| | | tabChange(val) { |
| | | this.activeKey = val |
| | | this.selectTypeTree = val |
| | | }, |
| | | |
| | | changeSelectionNode(val) { |
| | | this.selectEquipment = val |
| | | this.selectTypeTree = '1' |
| | | }, |
| | | |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.selectTypeTree = '2' |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <div id="chart-container-left" style="height: 700px;width: 48%"></div> |
| | | <div id="chart-container-right" style="height: 700px;width: 48%"></div> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import api from '@api/mdc' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'GroupUtilizationRateCompareChart', |
| | | components: {}, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | typeTree: '', |
| | | queryParam: {}, |
| | | driveTypeList: [], |
| | | leftChartContainer: null, |
| | | rightChartContainer: null, |
| | | url: {} |
| | | } |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | created() { |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.getDriveTypeByApi() |
| | | this.loadData() |
| | | this.handleWindowResize() |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.dataList = [] |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | nodeTree(val) { //çå¬currSelected ååï¼å°åååçæ°å¼ä¼ éç» getCurrSelected äºä»¶ |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamEquip.parentId = '' |
| | | this.queryParamEquip.equipmentId = val.equipmentId |
| | | } else { |
| | | this.queryParamEquip.parentId = val.key |
| | | this.queryParamEquip.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | }, |
| | | nodePeople(val) { |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamPeople.parentId = val.equipmentId |
| | | this.queryParamPeople.equipmentId = '' |
| | | } else { |
| | | this.queryParamPeople.parentId = val.key |
| | | this.queryParamPeople.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | this.initChart('left') |
| | | this.initChart('right') |
| | | }, |
| | | |
| | | initChart(position) { |
| | | this[position + 'ChartContainer'] = this.$echarts.init(document.getElementById(`chart-container-${position}`)) |
| | | const option = { |
| | | title: { |
| | | text: position === 'left' ? 'åçç»24å°æ¶ç»¼åæç对æ¯' : 'åçç»24å°æ¶ç»¼åæç对æ¯ï¼å»é¤æ
éè®¾å¤æ¶é´ï¼', |
| | | left: 'center', |
| | | top: 0, |
| | | textStyle: { |
| | | fontSize: 22 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '10%', |
| | | left: '1%', |
| | | right: '1%', |
| | | bottom: '5%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | bottom: 0, |
| | | right: 'center', |
| | | itemGap: 20, |
| | | data: ['æ°é£ä¸ç', 'æ°é£äºç', 'æ°é£ä¸ç', 'æ°è½¦ç'] |
| | | }, |
| | | tooltip: { |
| | | show: true, |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'å©ç¨ç(%)', |
| | | axisLine: { |
| | | show: true |
| | | }, |
| | | axisLabel: { |
| | | formatter: '{value}%' |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | type: 'line', |
| | | name: 'æ°é£ä¸ç', |
| | | yAxisIndex: 0, |
| | | data: [85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24] |
| | | }, |
| | | { |
| | | type: 'line', |
| | | name: 'æ°é£äºç', |
| | | yAxisIndex: 0, |
| | | data: [23, 42, 76, 54, 87, 34, 53, 76, 54, 87, 34, 53] |
| | | }, |
| | | { |
| | | type: 'line', |
| | | name: 'æ°é£ä¸ç', |
| | | yAxisIndex: 0, |
| | | data: [10, 84, 21, 42, 53, 57, 32, 21, 42, 53, 57, 32] |
| | | }, |
| | | { |
| | | type: 'line', |
| | | name: 'æ°è½¦ç', |
| | | yAxisIndex: 0, |
| | | data: [23, 32, 42, 35, 64, 53, 16, 42, 35, 64, 53, 16] |
| | | } |
| | | ] |
| | | } |
| | | this[position + 'ChartContainer'].setOption(option, true) |
| | | }, |
| | | |
| | | // è°ç¨æ¥å£è·åæ§å¶ç³»ç»ç±»å |
| | | getDriveTypeByApi() { |
| | | api.getDriveTypeApi().then((res) => { |
| | | this.driveTypeList = res.result.map(item => item.value) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * èæ³è¾å
¥æ¡çéåè½ |
| | | * @param input è¾å
¥çå
容 |
| | | * @param option é
ç½® |
| | | * @returns {boolean} 夿æ¯å¦çé |
| | | */ |
| | | filterOption(input, option) { |
| | | return ( |
| | | option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 |
| | | ) |
| | | }, |
| | | |
| | | handleWindowResize() { |
| | | if (this.leftChartContainer) this.leftChartContainer.resize() |
| | | if (this.rightChartContainer) this.rightChartContainer.resize() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="设å¤">--> |
| | | <!-- <a-input-search :readOnly="true" v-model="queryParam.equipmentId" @search="deviceSearch"--> |
| | | <!-- placeholder='è¯·éæ©è®¾å¤'/>--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="驱å¨ç±»å">--> |
| | | <!-- <a-auto-complete--> |
| | | <!-- v-model="queryParam.driveType"--> |
| | | <!-- :data-source="driveTypeList"--> |
| | | <!-- placeholder="驱å¨ç±»å"--> |
| | | <!-- :filter-option="filterOption"--> |
| | | <!-- :allowClear="true"--> |
| | | <!-- />--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <!-- <a-col>--> |
| | | <!-- <a-space>--> |
| | | <!-- <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button>--> |
| | | <!-- <a-button type="primary" @click="searchReset" icon="reload">éç½®</a-button>--> |
| | | <!-- </a-space>--> |
| | | <!-- </a-col>--> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | <div id="chart-container" style="height: 700px"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import api from '@api/mdc' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'ChartComponent', |
| | | components: {}, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | typeTree: '', |
| | | queryParam: {}, |
| | | driveTypeList: [], |
| | | url: {}, |
| | | spinning: false |
| | | } |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | created() { |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.getDriveTypeByApi() |
| | | this.loadData() |
| | | this.handleWindowResize() |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.dataList = [] |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | nodeTree(val) { //çå¬currSelected ååï¼å°åååçæ°å¼ä¼ éç» getCurrSelected äºä»¶ |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamEquip.parentId = '' |
| | | this.queryParamEquip.equipmentId = val.equipmentId |
| | | } else { |
| | | this.queryParamEquip.parentId = val.key |
| | | this.queryParamEquip.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | }, |
| | | nodePeople(val) { |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamPeople.parentId = val.equipmentId |
| | | this.queryParamPeople.equipmentId = '' |
| | | } else { |
| | | this.queryParamPeople.parentId = val.key |
| | | this.queryParamPeople.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | this.chartContainer = this.$echarts.init(document.getElementById('chart-container')) |
| | | const option = { |
| | | title: { |
| | | text: 'æ°é£æ°è½¦é
éå°ç»å¹³å设å¤ç»¼åæç', |
| | | left: 'center', |
| | | top: 0, |
| | | textStyle: { |
| | | fontSize: 22 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '10%', |
| | | left: '1%', |
| | | right: '1%', |
| | | bottom: '1%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | top: 0, |
| | | right: 0, |
| | | itemGap: 20, |
| | | data: ['综åæçï¼å
¨é¨è®¾å¤æ¶é´ï¼', '综åæçï¼å»é¤æ
éè®¾å¤æ¶é´ï¼'] |
| | | }, |
| | | tooltip: { |
| | | show: true, |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['ææä¸ºç»', 'ä¸çº¢çç»', 'åä¸ç»', 'æ±å°ç£ç»', 'å¼ å¥ç»', 'å®å®å¤ç»', 'ç½åç»', 'å¼ åè¿ç»', '常æ¯åç»', 'èåºé¾ç»', '赵广æ¶ç»', 'äºåäºç»', 'éå³»ç»', 'çç»§å³°ç»', 'çææç»', 'éæç»', 'å´åå¹³ç»'] |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'å©ç¨ç(%)', |
| | | axisLine: { |
| | | show: true |
| | | }, |
| | | axisLabel: { |
| | | formatter: '{value}%' |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | type: 'bar', |
| | | name: '综åæçï¼å
¨é¨è®¾å¤æ¶é´ï¼', |
| | | // barWidth: '40%', |
| | | data: [85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 63, 74, 11, 58] |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | name: '综åæçï¼å»é¤æ
éè®¾å¤æ¶é´ï¼', |
| | | // barWidth: '40%', |
| | | data: [24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 54] |
| | | } |
| | | ] |
| | | } |
| | | this.chartContainer.setOption(option, true) |
| | | }, |
| | | |
| | | // è°ç¨æ¥å£è·åæ§å¶ç³»ç»ç±»å |
| | | getDriveTypeByApi() { |
| | | api.getDriveTypeApi().then((res) => { |
| | | this.driveTypeList = res.result.map(item => item.value) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * èæ³è¾å
¥æ¡çéåè½ |
| | | * @param input è¾å
¥çå
容 |
| | | * @param option é
ç½® |
| | | * @returns {boolean} 夿æ¯å¦çé |
| | | */ |
| | | filterOption(input, option) { |
| | | return ( |
| | | option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 |
| | | ) |
| | | }, |
| | | |
| | | handleWindowResize() { |
| | | if (this.chartContainer) this.chartContainer.resize() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="设å¤">--> |
| | | <!-- <a-input-search :readOnly="true" v-model="queryParam.equipmentId" @search="deviceSearch"--> |
| | | <!-- placeholder='è¯·éæ©è®¾å¤'/>--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="驱å¨ç±»å">--> |
| | | <!-- <a-auto-complete--> |
| | | <!-- v-model="queryParam.driveType"--> |
| | | <!-- :data-source="driveTypeList"--> |
| | | <!-- placeholder="驱å¨ç±»å"--> |
| | | <!-- :filter-option="filterOption"--> |
| | | <!-- :allowClear="true"--> |
| | | <!-- />--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <a-col :md="5" :sm="5"> |
| | | <a-form-item label="æä»½"> |
| | | <a-month-picker v-model="queryParam.month" style="width: 100%" value-format="YYYY-MM" :allowClear="false" |
| | | placeholder="è¯·éæ©æä»½"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="5" :sm="5"> |
| | | <a-space> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | <a-button type="primary" @click="searchReset" icon="reload">éç½®</a-button> |
| | | </a-space> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | <div id="chart-container" style="height: 700px"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import api from '@api/mdc' |
| | | import moment from 'moment' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'ChartComponent', |
| | | components: {}, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | typeTree: '', |
| | | driveTypeList: [], |
| | | url: {}, |
| | | queryParam: { |
| | | month: moment().subtract('1', 'month') |
| | | }, |
| | | spinning: false |
| | | } |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | created() { |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.getDriveTypeByApi() |
| | | this.loadData() |
| | | this.handleWindowResize() |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.dataList = [] |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | nodeTree(val) { //çå¬currSelected ååï¼å°åååçæ°å¼ä¼ éç» getCurrSelected äºä»¶ |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamEquip.parentId = '' |
| | | this.queryParamEquip.equipmentId = val.equipmentId |
| | | } else { |
| | | this.queryParamEquip.parentId = val.key |
| | | this.queryParamEquip.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | }, |
| | | nodePeople(val) { |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamPeople.parentId = val.equipmentId |
| | | this.queryParamPeople.equipmentId = '' |
| | | } else { |
| | | this.queryParamPeople.parentId = val.key |
| | | this.queryParamPeople.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | this.chartContainer = this.$echarts.init(document.getElementById('chart-container')) |
| | | const option = { |
| | | title: { |
| | | text: 'æ°è½¦ç设å¤ç»¼åå©ç¨ç', |
| | | left: 'center', |
| | | top: 0, |
| | | textStyle: { |
| | | fontSize: 22 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '12%', |
| | | left: '1%', |
| | | right: '1%', |
| | | bottom: '8%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | top: '6%', |
| | | right: 'center', |
| | | itemGap: 20, |
| | | data: ['设å¤ç»¼åå©ç¨ç24h', '设å¤ç»¼åå©ç¨ç16h'] |
| | | }, |
| | | tooltip: { |
| | | show: true, |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['ç«å u1000-3', 'äºè½´125P', 'äºåæ å å·¥ä¸å¿GS1000', 'Aè½´1000PLUS', '梧å·80P_2', 'é廿º800TE', 'ååæ ç«å 104V', 'ç«å u1000-4', 'ç«å GX710_1', 'ä¸åæ ç«å 1350', 'å§å H5000-1', 'ç«å u1000-2', 'ç«å 1000HS_1', 'ç«å 1160_1', 'ç«å GX710_2', 'ç«å u1000-3', 'äºè½´125P', 'äºåæ å å·¥ä¸å¿GS1000', 'Aè½´1000PLUS', '梧å·80P_2', 'é廿º800TE', 'ååæ ç«å 104V', 'ç«å u1000-4', 'ç«å GX710_1', 'ä¸åæ ç«å 1350', 'å§å H5000-1', 'ç«å u1000-2', 'ç«å 1000HS_1', 'ç«å 1160_1', 'ç«å GX710_2', 'ç«å u1000-3', 'äºè½´125P', 'äºåæ å å·¥ä¸å¿GS1000', 'Aè½´1000PLUS', '梧å·80P_2', 'é廿º800TE', 'ååæ ç«å 104V'], |
| | | axisLabel: { |
| | | interval: 0, // åæ è½´å»åº¦æ ç¾çæ¾ç¤ºé´éï¼å¨ç±»ç®è½´ä¸ææï¼é»è®¤ä¼éç¨æ ç¾ä¸éå ççç¥é´éæ¾ç¤ºæ ç¾ï¼å¯ä»¥è®¾ç½®æ0å¼ºå¶æ¾ç¤ºæææ ç¾ï¼å¦æè®¾ç½®ä¸º1ï¼è¡¨ç¤ºãéä¸ä¸ªæ ç¾æ¾ç¤ºä¸ä¸ªæ ç¾ãï¼å¦æå¼ä¸º2ï¼è¡¨ç¤ºé两个æ ç¾æ¾ç¤ºä¸ä¸ªæ ç¾ï¼ä»¥æ¤ç±»æ¨ã |
| | | rotate: 45, // å»åº¦æ ç¾æè½¬çè§åº¦ï¼å¨ç±»ç®è½´çç±»ç®æ ç¾æ¾ç¤ºä¸ä¸çæ¶åå¯ä»¥éè¿æè½¬é²æ¢æ ç¾ä¹é´éå ï¼æè½¬çè§åº¦ä»-90度å°90度 |
| | | inside: false, // å»åº¦æ ç¾æ¯å¦æå
ï¼é»è®¤æå¤ |
| | | margin: 15, // å»åº¦æ ç¾ä¸è½´çº¿ä¹é´çè·ç¦» |
| | | fontSize: 14, |
| | | color: '#000' |
| | | } |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'å©ç¨ç(%)', |
| | | axisLine: { |
| | | show: true |
| | | }, |
| | | axisLabel: { |
| | | formatter: '{value}%' |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | type: 'bar', |
| | | name: '设å¤ç»¼åå©ç¨ç24h', |
| | | data: [53.28, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32], |
| | | label: { |
| | | show: true, |
| | | position: 'top', |
| | | formatter: '{c}%', |
| | | avoidLabelOverlap: true |
| | | } |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | name: '设å¤ç»¼åå©ç¨ç16h', |
| | | data: [63.25, 32.22, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24, 85, 32, 23, 56, 24, 85, 32, 85, 32, 23, 56, 24, 85, 32] |
| | | } |
| | | ], |
| | | dataZoom: [ |
| | | { |
| | | type: 'slider', |
| | | show: true, |
| | | xAxisIndex: 0, |
| | | startValue: 0, |
| | | endValue: 19, |
| | | // æ¯å¦æ¾ç¤ºdetailï¼å³ææ½æ¶åæ¾ç¤ºè¯¦ç»æ°å¼ä¿¡æ¯ |
| | | showDetail: false, |
| | | // emptyï¼å½åæ°æ®çªå£å¤çæ°æ®ï¼è¢«è®¾ç½®ä¸ºç©ºã |
| | | // å³ä¸ä¼å½±åå
¶ä»è½´çæ°æ®èå´ |
| | | filterMode: 'empty', |
| | | // æ§å¶ææç尺寸 |
| | | // handleSize: 0, |
| | | // æ¯å¦éå®éæ©åºåï¼æå«åæ°æ®çªå£ï¼çå¤§å° |
| | | zoomLock: true, |
| | | brushSelect: false |
| | | }, |
| | | { |
| | | // 没æä¸é¢è¿åçè¯ï¼åªè½æå¨æ»å¨æ¡ï¼ |
| | | // é¼ æ æ»è½®å¨åºåå
ä¸è½æ§å¶å¤é¨æ»å¨æ¡ |
| | | type: 'inside', |
| | | show: true, |
| | | // æ§å¶åªä¸ªè½´ï¼å¦ææ¯number表示æ§å¶ä¸ä¸ªè½´ï¼ |
| | | xAxisIndex: 0, |
| | | // æ»è½®æ¯å¦è§¦åç¼©æ¾ |
| | | zoomOnMouseWheel: false, |
| | | // é¼ æ ç§»å¨è½å¦è§¦å平移 |
| | | moveOnMouseMove: true, |
| | | // é¼ æ æ»è½®è½å¦è§¦å平移 |
| | | moveOnMouseWheel: true |
| | | } |
| | | ] |
| | | } |
| | | this.chartContainer.setOption(option, true) |
| | | }, |
| | | |
| | | // è°ç¨æ¥å£è·åæ§å¶ç³»ç»ç±»å |
| | | getDriveTypeByApi() { |
| | | api.getDriveTypeApi().then((res) => { |
| | | this.driveTypeList = res.result.map(item => item.value) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * èæ³è¾å
¥æ¡çéåè½ |
| | | * @param input è¾å
¥çå
容 |
| | | * @param option é
ç½® |
| | | * @returns {boolean} 夿æ¯å¦çé |
| | | */ |
| | | filterOption(input, option) { |
| | | return ( |
| | | option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 |
| | | ) |
| | | }, |
| | | |
| | | handleWindowResize() { |
| | | if (this.chartContainer) this.chartContainer.resize() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="设å¤">--> |
| | | <!-- <a-input-search :readOnly="true" v-model="queryParam.equipmentId" @search="deviceSearch"--> |
| | | <!-- placeholder='è¯·éæ©è®¾å¤'/>--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <!-- <a-col :md="5" :sm="5">--> |
| | | <!-- <a-form-item label="驱å¨ç±»å">--> |
| | | <!-- <a-auto-complete--> |
| | | <!-- v-model="queryParam.driveType"--> |
| | | <!-- :data-source="driveTypeList"--> |
| | | <!-- placeholder="驱å¨ç±»å"--> |
| | | <!-- :filter-option="filterOption"--> |
| | | <!-- :allowClear="true"--> |
| | | <!-- />--> |
| | | <!-- </a-form-item>--> |
| | | <!-- </a-col>--> |
| | | |
| | | <!-- <a-col>--> |
| | | <!-- <a-space>--> |
| | | <!-- <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button>--> |
| | | <!-- <a-button type="primary" @click="searchReset" icon="reload">éç½®</a-button>--> |
| | | <!-- </a-space>--> |
| | | <!-- </a-col>--> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | |
| | | <div id="chart-container" style="height: 700px"></div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import api from '@api/mdc' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | |
| | | export default { |
| | | name: 'ChartComponent', |
| | | components: {}, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | typeTree: '', |
| | | queryParam: {}, |
| | | driveTypeList: [], |
| | | url: {}, |
| | | spinning: false |
| | | } |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | created() { |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.getDriveTypeByApi() |
| | | this.loadData() |
| | | this.handleWindowResize() |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.dataList = [] |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | nodeTree(val) { //çå¬currSelected ååï¼å°åååçæ°å¼ä¼ éç» getCurrSelected äºä»¶ |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamEquip.parentId = '' |
| | | this.queryParamEquip.equipmentId = val.equipmentId |
| | | } else { |
| | | this.queryParamEquip.parentId = val.key |
| | | this.queryParamEquip.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | }, |
| | | nodePeople(val) { |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamPeople.parentId = val.equipmentId |
| | | this.queryParamPeople.equipmentId = '' |
| | | } else { |
| | | this.queryParamPeople.parentId = val.key |
| | | this.queryParamPeople.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | loadData() { |
| | | this.chartContainer = this.$echarts.init(document.getElementById('chart-container')) |
| | | const option = { |
| | | // color:'#ccc', |
| | | title: { |
| | | text: 'æ°è½¦ç设å¤ç»¼åå©ç¨ç', |
| | | left: 'center', |
| | | top: 0, |
| | | textStyle: { |
| | | fontSize: 22 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '10%', |
| | | left: '1%', |
| | | right: '15%', |
| | | bottom: '1%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | top: 'center', |
| | | right: 0, |
| | | itemGap: 20, |
| | | data: ['24å°æ¶', '24å°æ¶ï¼å»é¤æ
é设å¤ï¼', 'ç½ç', 'æç', '16å°æ¶', '累计è¿è¡æ¶é´(h)'] |
| | | }, |
| | | tooltip: { |
| | | show: true, |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'å©ç¨ç(%)', |
| | | axisLine: { |
| | | show: true |
| | | }, |
| | | axisLabel: { |
| | | formatter: '{value}%' |
| | | } |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: 'è¿è¡æ¶é´(h)', |
| | | axisLine: { |
| | | show: true |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | type: 'line', |
| | | name: '24å°æ¶', |
| | | symbol: 'diamond', |
| | | yAxisIndex: 0, |
| | | symbolSize: 10, |
| | | data: [85, 32, 23, 56, 24, 64, 34, 85, 32, 23, 56, 24] |
| | | }, |
| | | { |
| | | type: 'line', |
| | | name: '24å°æ¶ï¼å»é¤æ
é设å¤ï¼', |
| | | symbol: 'rect', |
| | | symbolSize: 10, |
| | | yAxisIndex: 0, |
| | | data: [23, 42, 76, 54, 87, 34, 53, 76, 54, 87, 34, 53] |
| | | }, |
| | | { |
| | | type: 'line', |
| | | name: '16å°æ¶', |
| | | symbol: 'triangle', |
| | | yAxisIndex: 0, |
| | | symbolSize: 10, |
| | | data: [54, 34, 12, 56, 64, 32, 90, 12, 56, 64, 32, 90] |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | name: '累计è¿è¡æ¶é´(h)', |
| | | yAxisIndex: 1, |
| | | symbolSize: 10, |
| | | barWidth: '40%', |
| | | data: [600, 900, 350, 366, 435, 648, 345, 350, 366, 435, 648, 345] |
| | | } |
| | | ] |
| | | } |
| | | this.chartContainer.setOption(option, true) |
| | | }, |
| | | |
| | | // è°ç¨æ¥å£è·åæ§å¶ç³»ç»ç±»å |
| | | getDriveTypeByApi() { |
| | | api.getDriveTypeApi().then((res) => { |
| | | this.driveTypeList = res.result.map(item => item.value) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * èæ³è¾å
¥æ¡çéåè½ |
| | | * @param input è¾å
¥çå
容 |
| | | * @param option é
ç½® |
| | | * @returns {boolean} 夿æ¯å¦çé |
| | | */ |
| | | filterOption(input, option) { |
| | | return ( |
| | | option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 |
| | | ) |
| | | }, |
| | | |
| | | handleWindowResize() { |
| | | if (this.chartContainer) this.chartContainer.resize() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | </style> |