| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="50%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" width="50%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å
¥ååå ï¼" prop="reason"> |
| | | <el-input v-model="form.reason" placeholder="请è¾å
¥å
¥ååå " v-trim/> |
| | | <el-input v-model="form.reason" placeholder="请è¾å
¥å
¥ååå " v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ä½ä¸æå°ç»ï¼" prop="groupId"> |
| | | <el-select v-model="form.groupId" > |
| | | <el-option |
| | | v-for="item in groupList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-select v-model="form.groupId"> |
| | | <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ä½ä¸æ°ééå¶ï¼ä¸åª/天ï¼ï¼" prop="limitNum" > |
| | | <el-input type="number" v-model="form.limitNum" placeholder="请è¾å
¥ä½ä¸æ°ééå¶ï¼ä¸åª/天ï¼" v-trim/> |
| | | <el-form-item label="ä½ä¸æ°ééå¶ï¼ä¸æ¯/天ï¼ï¼" prop="limitNum"> |
| | | <el-input type="number" v-model="form.limitNum" placeholder="请è¾å
¥ä½ä¸æ°ééå¶ï¼ä¸æ¯/天ï¼" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æåºç (ååº)ï¼" prop="sortnum"> |
| | | <el-input type="number" v-model="form.sortnum" placeholder="请è¾å
¥æåºç (ååº)" v-trim/> |
| | | <el-input type="number" v-model="form.sortnum" placeholder="请è¾å
¥æåºç (ååº)" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="说æï¼" prop="remark"> |
| | | <el-input type="textarea" v-model="form.remark" placeholder="请è¾å
¥è¯´æ" v-trim/> |
| | | <el-input type="textarea" v-model="form.remark" placeholder="请è¾å
¥è¯´æ" v-trim /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | |
| | | name: 'OperaPlatformReasonWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | groupList: [], |
| | |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | api: '/platform/platformReason', |
| | | 'field.id': 'id' |
| | |
| | | * @title çªå£æ é¢ |
| | | * @target ç¼è¾ç对象 |
| | | */ |
| | | open (title, target) { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.loadGroupList() |
| | | this.visible = true |
| | |
| | | } |
| | | }) |
| | | }, |
| | | loadGroupList () { |
| | | loadGroupList() { |
| | | allList({}) |
| | | .then(res => { |
| | | this.groupList = res || [] |
| | |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .labelTip{ |
| | | .labelTip { |
| | | font-size: 12px; |
| | | color: #666666; |
| | | } |
| | |
| | | <el-form-item label="åæ¶ä½ä¸æ°éï¼" prop="workingNum"> |
| | | <el-input type="number" v-model="form.workingNum" placeholder="请è¾å
¥åæ¶ä½ä¸æ°é" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="æå°ä½ä¸æç(ä¸åª/å°æ¶)ï¼" prop="workRate"> |
| | | <el-input type="number" v-model="form.workRate" placeholder="请è¾å
¥æå°ä½ä¸æç(ä¸åª/å°æ¶)" v-trim /> |
| | | <el-form-item label="æå°ä½ä¸æç(䏿¯/å°æ¶)ï¼" prop="workRate"> |
| | | <el-input type="number" v-model="form.workRate" placeholder="请è¾å
¥æå°ä½ä¸æç(䏿¯/å°æ¶)" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="ä½ä¸è¶
æ¶æ¥è¦æ¶é´(åé)ï¼" prop="workTimeoutAlarmTime"> |
| | | <el-input type="number" v-model="form.workTimeoutAlarmTime" placeholder="请è¾å
¥ä½ä¸è¶
æ¶æ¥è¦æ¶é´(åé)" v-trim /> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <section> --> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | <!-- </section> --> |
| | | </el-form> |
| | | </SearchFormCollapse> |
| | |
| | | <el-table-column prop="workTimeoutAlarmTime" label="ä½ä¸è¶
æ¶æ¥è¦æ¶é´(åéï¼" min-width="180px"> |
| | | <template scope="{row}"> {{ row.workTimeoutAlarmTime ? (row.workTimeoutAlarmTime) : '-' }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="workRate" label="æå°ä½ä¸æç(ä¸åª/å°æ¶)" min-width="180px"></el-table-column> |
| | | <el-table-column prop="workRate" label="æå°ä½ä¸æç(䏿¯/å°æ¶)" min-width="180px"></el-table-column> |
| | | <!-- <el-table-column prop="platformStatus" label="æå°ç¶æ" min-width="100px"> |
| | | <template scope="{row}"> |
| | | <span v-if="row.platformStatus == 0">æ 车</span> |
| | |
| | | <SearchFormCollapse slot="search-form" :need-more="false"> |
| | | <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="" prop="reason"> |
| | | <el-input v-model="searchForm.reason" clearable placeholder="请è¾å
¥å
¥ååå " @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.reason" clearable placeholder="请è¾å
¥å
¥ååå " |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" > |
| | | <el-select v-model="searchForm.groupId" placeholder="è¯·éæ©æå°åç»" @change="search" clearable> |
| | | <el-option |
| | | v-for="item in groupList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-form-item label=""> |
| | | <el-select v-model="searchForm.groupId" placeholder="è¯·éæ©æå°åç»" @change="search" clearable> |
| | | <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </SearchFormCollapse> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:platformreason:create','business:platformreason:delete']"> |
| | | <li><el-button type="primary" @click="$refs.OperaPlatformReasonWindow.open('æ°å»ºæå°å
¥ååå ')" icon="el-icon-plus" v-permissions="['business:platformreason:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:platformreason:delete']">å é¤</el-button></li> |
| | | <ul class="toolbar" v-permissions="['business:platformreason:create', 'business:platformreason:delete']"> |
| | | <li><el-button type="primary" @click="$refs.OperaPlatformReasonWindow.open('æ°å»ºæå°å
¥ååå ')" icon="el-icon-plus" |
| | | v-permissions="['business:platformreason:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" |
| | | v-permissions="['business:platformreason:delete']">å é¤</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="reason" label="å
¥ååå " fixed min-width="100px"></el-table-column> |
| | | <el-table-column prop="groupName" label="对åºä½ä¸æå°ç»" fixed min-width="150px"></el-table-column> |
| | | <el-table-column prop="limitNum" label="ä½ä¸é(ä¸åª/天)" min-width="120px"></el-table-column> |
| | | <el-table-column prop="limitNum" label="ä½ä¸é(䏿¯/天)" min-width="120px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="æåºç " fixed min-width="80px"></el-table-column> |
| | | <el-table-column prop="remark" label="说æ" fixed min-width="100px"></el-table-column> |
| | | <el-table-column label="ç¦/å¯ç¨" min-width="120px" > |
| | | <el-table-column label="ç¦/å¯ç¨" min-width="120px"> |
| | | <template slot-scope="{row}"> |
| | | <el-switch |
| | | @change="changeStatus($event, row)" |
| | | v-model="row.status" |
| | | active-color="#13ce66" |
| | | inactive-color="#ff4949" |
| | | :active-value="0" |
| | | :inactive-value="1"> |
| | | <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" |
| | | inactive-color="#ff4949" :active-value="0" :inactive-value="1"> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="editDate" label="æè¿æä½æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:platformreason:update', 'business:platformreason:delete'])" |
| | | label="æä½" |
| | | align="center" |
| | | min-width="150" |
| | | fixed="right" |
| | | > |
| | | <el-table-column v-if="containPermissions(['business:platformreason:update', 'business:platformreason:delete'])" |
| | | label="æä½" align="center" min-width="150" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.OperaPlatformApproveTemplWindow.open('æå°å
¥ååå å®¡æ¹æµ', row)" icon="el-icon-edit" v-permissions="['business:platformreason:update']">å®¡æ¹æµ</el-button> |
| | | <el-button type="text" @click="$refs.OperaPlatformReasonWindow.open('ç¼è¾æå°å
¥ååå ', row)" icon="el-icon-edit" v-permissions="['business:platformreason:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:platformreason:delete']">å é¤</el-button> |
| | | <el-button type="text" @click="$refs.OperaPlatformApproveTemplWindow.open('æå°å
¥ååå å®¡æ¹æµ', row)" |
| | | icon="el-icon-edit" v-permissions="['business:platformreason:update']">å®¡æ¹æµ</el-button> |
| | | <el-button type="text" @click="$refs.OperaPlatformReasonWindow.open('ç¼è¾æå°å
¥ååå ', row)" icon="el-icon-edit" |
| | | v-permissions="['business:platformreason:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:platformreason:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaPlatformReasonWindow ref="OperaPlatformReasonWindow" @success="handlePageChange"/> |
| | | <OperaPlatformApproveTemplWindow ref="OperaPlatformApproveTemplWindow" @success="handlePageChange"/> |
| | | <OperaPlatformReasonWindow ref="OperaPlatformReasonWindow" @success="handlePageChange" /> |
| | | <OperaPlatformApproveTemplWindow ref="OperaPlatformApproveTemplWindow" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | name: 'Platform', |
| | | extends: BaseTable, |
| | | components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformReasonWindow, OperaPlatformApproveTemplWindow }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | groupList: [], |
| | | // æç´¢ |
| | |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: 'æå°å
¥ååå ä¿¡æ¯è¡¨', |
| | | api: '/platform/platformReason', |
| | |
| | | this.loadGroupList() |
| | | }, |
| | | methods: { |
| | | loadGroupList () { |
| | | loadGroupList() { |
| | | allList({}) |
| | | .then(res => { |
| | | this.groupList = res || [] |
| | | }) |
| | | }, |
| | | changeStatus (e, row) { |
| | | changeStatus(e, row) { |
| | | this.api.updateStatusById({ |
| | | id: row.id, |
| | | status: e |
| | |
| | | <view class="transform_list">
|
| | | <view class="line" @click="transformPlatClick(item)" v-for="item in TransferList"
|
| | | :key="item.id">
|
| | | <view class="name">{{ item.name }}</view>
|
| | | <view class="name">{{ item.name || item.platformName}}</view>
|
| | | <view class="status" :class="{ green: item.workStatus == 1 }">({{ item.workStatus == 0 ? "空é²" : "ä½ä¸ä¸" }})
|
| | | </view>
|
| | | <image v-if="transformPlatId == item.id" src="@/static/ic_select@2x.png" class="checked" />
|
| | |
| | | },
|
| | | methods: { |
| | | getTransferList() { |
| | | getPlatformWorkData({ |
| | | platformId: this.activePlatform.id |
| | | getPlatformGroupList({ |
| | | queryData: 1, |
| | | queryType: 1 |
| | | }).then(res => { |
| | | console.log('res.data', res.data); |
| | | if(res.data && res.data.platformJobList){ |
| | | this.TransferList = res.data.platformJobList |
| | | const platformGroupList = res.data || [] |
| | | if (platformGroupList.length > 0) { |
| | | const { activePlatformGroup } = this |
| | | const temp = platformGroupList.find(i => i.id === activePlatformGroup.id) |
| | | this.TransferList = temp.platformList || [] |
| | | } |
| | | }) |
| | | },
|
| | |
| | | }
|
| | | })
|
| | | },
|
| | | getPlatformTask() { |
| | | uni.showLoading({title:"å è½½ä¸..."})
|
| | | getPlatformTask() {
|
| | | getPlatformWorkData({
|
| | | platformId: this.activePlatform.id
|
| | | }).then(res => { |
| | | uni.hideLoading()
|
| | | }).then(res => {
|
| | | this.platformTaskInfo = res.data
|
| | | this.circulInitTaskList()
|
| | | setInterval(() => {
|
| | | this.circulInitTaskList()
|
| | | }, 1000)
|
| | | }, () => { |
| | | uni.hideLoading() |
| | | })
|
| | | },
|
| | | circulInitTaskList() {
|
| | |
| | | let token = uni.getStorageSync('token') || null |
| | | // å¨ç»å½çæ¶åéè¦å¨å token uni.setStorageSync("authorization","è¿éæ¯ç»å½è·åçtokenå¼") |
| | | |
| | | // uni.showLoading({ |
| | | // title:"å è½½ä¸..." |
| | | // }) |
| | | if(!options.hideLoading){ |
| | | uni.showLoading({ |
| | | title: 'å è½½ä¸', |
| | | mask: true |
| | | }) |
| | | } |
| | | uni.showLoading({ |
| | | title: 'å è½½ä¸', |
| | | mask: true |
| | | }) |
| | | uni.request({ |
| | | url: baseUrl + options.url, |
| | | data: options.data || {}, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <div class="plan_wrap"> |
| | | <div class="plan" :style="{ |
| | | width: `${rate}%`, |
| | | backgroundColor: color |
| | | }"></div> |
| | | <div class="icon" :style="{ backgroundColor: color }"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | const props = defineProps({ |
| | | rate: Number, |
| | | color: String |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .main { |
| | | width: 100%; |
| | | padding: 4px; |
| | | height: 13px; |
| | | |
| | | .plan_wrap { |
| | | height: 6px; |
| | | width: 100%; |
| | | background-color: #3a474e; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .plan { |
| | | height: 6px; |
| | | } |
| | | .icon{ |
| | | width: 13px; |
| | | height: 13px; |
| | | border-radius: 50%; |
| | | border: 3px solid #fff; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | component: () => import('../views/TaskEfficiency.vue') |
| | | component: () => import('../views/LogisticsCenter.vue') |
| | | }, |
| | | { |
| | | path: '/PlatformCall', // æå°å«å·å¤§å± |
| | |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="police_wrap"> |
| | | <div class="echart1" id="echart1"></div> |
| | | <div class="item" v-for="(ind, i) in 4"> |
| | | <div class="head"> |
| | | <div class="name">ç宿¥è¦æ°</div> |
| | | <div class="name">{{ i }}次</div> |
| | | </div> |
| | | <FirePercent :color="policeColors[i]" :rate="40" /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="left_box_three"> |
| | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue' |
| | | import VScaleScreen from 'v-scale-screen' |
| | | import Percent from '@/components/percent.vue' |
| | | import FirePercent from '@/components/FirePercent.vue' |
| | | import dayjs from 'dayjs' |
| | | |
| | | import * as echarts from 'echarts' |
| | |
| | | }, 1000) |
| | | |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | const initEnergy = () => { |
| | | var myChart = echarts.init(document.querySelector('.energyRef')) |
| | | // ç»å¶å¾è¡¨ |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | myChart.setOption({ |
| | | const initEchart2 = () => { |
| | | var myChart = echarts.init(document.querySelector('.echart2')) |
| | | // çææ°æ®åæ¥æ |
| | | function getLastSevenDays() { |
| | | const days = [] |
| | | const today = new Date() |
| | | for (let i = 10; i >= 0; i--) { |
| | | days.push(`${i + 1}æ`) // æ ¼å¼åæ¥æä¸º "XæXæ¥" |
| | | } |
| | | return days |
| | | } |
| | | |
| | | // ç¤ºä¾æ°æ® |
| | | const data1 = [13, 14, 14, 14, 14, 12, 11, 23, 12, 1] // åæ¶ |
| | | const data2 = [1, 1, 2, 1, 1, 2, 2, 3, 2, 1, 5] // è¿å° |
| | | const data3 = [1, 0, 0, 0, 0, 0, 2, 2, 3, 1, 2] // 请å |
| | | const data4 = [8, 5, 4, 7, 4, 5, 7, 4, 2, 1, 3] // å ç |
| | | const option = { |
| | | legend: { |
| | | x: "center", |
| | | textStyle: { |
| | | color: "#FFFFFF", // å¾ä¾æå设为ç½è² |
| | | fontSize: 12 |
| | | }, |
| | | icon: 'circle', |
| | | top: '6%', |
| | | itemWidth: 8, |
| | | itemHeight: 8, |
| | | itemGap: 20, |
| | | data: ['åè¦æ°', 'è¿è¡ä¸', 'å·²å¤ç', 'è¯¯æ¥æ°'] // æ´æ°å¾ä¾åç§° |
| | | }, |
| | | grid: { |
| | | top: '20%', |
| | | left: '2%', |
| | | right: '2%', |
| | | bottom: '4%', |
| | | containLabel: true |
| | | right: '0%', |
| | | top: '18%', |
| | | bottom: '10%', |
| | | containLabel: true, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: 'line' |
| | | type: "shadow" |
| | | }, |
| | | textStyle: { |
| | | color: "rgba(255, 255, 255, 1)" |
| | | }, |
| | | backgroundColor: "rgba(0,0,0,0.8)", |
| | | borderColor: "rgba(219, 230, 255, 0.8)", |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: [1, 2, 3, 4, 4, 5] |
| | | data: getLastSevenDays(), // 使ç¨è¿ä¸å¤©æ¥æ |
| | | axisLabel: { |
| | | color: "#FFFFFF", // X è½´æå设为ç½è² |
| | | fontSize: 14, |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#1E294C' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | } |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'kw·h', |
| | | nameTextStyle: { |
| | | padding: [0, 0, 4, -30] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | show: true, |
| | | axisLabel: { |
| | | color: "#FFFFFF", // Y è½´æå设为ç½è² |
| | | fontSize: 12, |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#A9AEB2' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | lineStyle: { |
| | | color: '#A9AEB2' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | //è¿éè¾å
¥çº¿æ¡çæ ·å¼ |
| | | color: 'rgba(255,255,255,0.14)', |
| | | } |
| | | } |
| | | color: ["#0f1d27"], |
| | | width: 1 |
| | | }, |
| | | }, |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1, 2, 3, 4, 5], |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | name: "åè¦æ°", |
| | | type: "bar", |
| | | stack: "attendance", |
| | | data: data1, |
| | | itemStyle: { |
| | | normal: { |
| | | color: new echarts.graphic.LinearGradient( |
| | | 0, 0, 0, 1, |
| | | [ |
| | | { offset: 0, color: arr[1] }, |
| | | { offset: 1, color: '#080807' } |
| | | ] |
| | | ), |
| | | barBorderRadius: [10, 10, 0, 0] |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | color: '#FEAF01', |
| | | }, |
| | | label: { |
| | | show: false, |
| | | color: "#FFFFFF", |
| | | }, |
| | | emphasis: { |
| | | focus: "series", |
| | | }, |
| | | barWidth: 6, |
| | | }, |
| | | { |
| | | name: "è¿è¡ä¸", // è¿å°æ°æ® |
| | | type: "bar", |
| | | stack: "attendance", |
| | | data: data2, |
| | | itemStyle: { |
| | | color: '#28F0C4', // è¿å°çé¢è² |
| | | }, |
| | | label: { |
| | | show: false, |
| | | color: "#FFFFFF", |
| | | }, |
| | | emphasis: { |
| | | focus: "series", |
| | | }, |
| | | }, |
| | | { |
| | | name: "å·²å¤ç", // è¯·åæ°æ® |
| | | type: "bar", |
| | | stack: "attendance", |
| | | data: data3, |
| | | itemStyle: { |
| | | color: '#0193FE', // 请åçé¢è² |
| | | }, |
| | | label: { |
| | | show: false, |
| | | color: "#FFFFFF", |
| | | }, |
| | | emphasis: { |
| | | focus: "series", |
| | | }, |
| | | }, |
| | | { |
| | | name: "è¯¯æ¥æ°", // åç¬çå çæ±å |
| | | type: "bar", |
| | | data: data4, |
| | | barWidth: 6, |
| | | itemStyle: { |
| | | color: '#FEED01', // é«äº®çç´«è² |
| | | }, |
| | | emphasis: { |
| | | focus: "series", |
| | | }, |
| | | }, |
| | | ], |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () {//æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart1 = () => { |
| | | const myChart = echarts.init(document.getElementById('echart1')) |
| | | const option = { |
| | | series: [ |
| | | |
| | | { |
| | | type: 'pie', |
| | | radius: ['86%', '100%'], |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | }, |
| | | padAngle: 5, |
| | | itemStyle: { |
| | | borderRadius: 10 |
| | | }, |
| | | color: colors, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | { value: 1048, name: 'Search Engine' }, |
| | | { value: 735, name: 'Direct' }, |
| | | { value: 580, name: 'Email' } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const policeColors = ['#01D9FE', '#FE5501', '#0193FE', '#28F0C4'] |
| | | const initWatergage = () => { |
| | | const myChart = echarts.init(document.getElementById('watergage')) |
| | | var data_value = 2 |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | // initEnergy() |
| | | // initEchart1() |
| | | initEchart2() |
| | | initWatergage() |
| | | initLiquidlevel() |
| | | }) |
| | |
| | | margin-bottom: 20px; |
| | | |
| | | .police_wrap { |
| | | padding: 15px 20px 0; |
| | | height: 225px; |
| | | |
| | | border: 1px solid; |
| | | |
| | | .echart1 { |
| | | width: 100%; |
| | | height: 100%; |
| | | .item { |
| | | margin-bottom: 5px; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | font-size: 16px; |
| | | color: #FFFFFF; |
| | | margin-bottom: 8px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | #dd4c26 50%, |
| | | #e43724 100%); |
| | | } |
| | | |
| | | .num3 { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #e9bf43 50%, |
| | | #eb8131 100%); |
| | | } |
| | | |
| | | .num4 { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | |
| | | text-align: center; |
| | | position: relative; |
| | | left: 30px; |
| | | |
| | | .watergage { |
| | | width: 130px; |
| | | height: 112px; |
| | |
| | | <div class="num">1</div> |
| | | </div> |
| | | </div> |
| | | <div class="echart_wrap"> |
| | | <div class="echart3" id="echart3"></div> |
| | | </div> |
| | | <div class="list"> |
| | | <div class="line" v-for=" i in 7"> |
| | | <div class="time_wrap"> |
| | | <div class="time">12.40</div> |
| | | <div class="sp"></div> |
| | | <div class="dian"></div> |
| | | </div> |
| | | <div class="id_card">çA12313</div> |
| | | <div class="status">å¼å§ä½ä¸</div> |
| | | <div class="desc">æéçå¾
å«å·</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_two"> |
| | | <div class="com_header"> |
| | |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart2 = () => { |
| | | const myChart = echarts.init(document.getElementById('echart2')) |
| | | const option = { |
| | | grid: { |
| | | top: '32%', |
| | | left: '0%', |
| | | right: '7%', |
| | | bottom: '0%', |
| | | containLabel: true, |
| | | }, |
| | | legend: { |
| | | itemGap: 24, |
| | | data: ['åæ¶ä½ä¸é', '累计ä½ä¸é'], |
| | | icon: 'circle', |
| | | itemWidth: 10, |
| | | itemHeight: 10, |
| | | top: '6%', |
| | | textStyle: { |
| | | color: '#fff', |
| | | borderColor: '#fff' |
| | | }, |
| | | }, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "line", |
| | | }, |
| | | backgroundColor: "rgba(9, 24, 48, 0.5)", |
| | | borderColor: "rgba(75, 253, 238, 0.4)", |
| | | textStyle: { |
| | | color: "#FFF", |
| | | }, |
| | | }, |
| | | xAxis: [{ |
| | | nameGap: 5, |
| | | type: 'category', |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#999' |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: '#9eaaba', |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | data: ['2017', '2018', '2019', '2020', '2021', '2022', '2023',], |
| | | }], |
| | | yAxis: [ |
| | | { |
| | | nameTextStyle: { |
| | | color: '#9eaaba', |
| | | }, |
| | | offset: 0, |
| | | name: '䏿¯', |
| | | type: 'value', |
| | | axisLabel: { |
| | | show: true, |
| | | color: "#9eaaba", |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: "rgba(49,105,129,0.4)", |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | }, |
| | | // { |
| | | // nameTextStyle: { |
| | | // color: '#9eaaba', |
| | | // }, |
| | | // offset: 0, |
| | | // name: '䏿¯', |
| | | // type: 'value', |
| | | // axisLabel: { |
| | | // show: true, |
| | | // color: "#9eaaba", |
| | | // }, |
| | | // axisLine: { |
| | | // show: true, |
| | | // }, |
| | | // splitLine: { |
| | | // show: true, |
| | | // lineStyle: { |
| | | // width: 1, |
| | | // color: "rgba(49,105,129,0.4)", |
| | | // type: 'dashed' |
| | | // } |
| | | // }, |
| | | // } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'åæ¶ä½ä¸é', |
| | | type: 'line', |
| | | smooth: true, |
| | | showAllSymbol: true, |
| | | symbol: 'circle', |
| | | symbolSize: 0, |
| | | lineStyle: { |
| | | color: '#2355f5', |
| | | borderColor: '#2355f5' |
| | | }, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | itemStyle: { |
| | | color: "#2355f5", |
| | | lineStyle: { |
| | | width: 0, |
| | | type: 'solid' |
| | | } |
| | | }, |
| | | areaStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#2355f5' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: 'rgba(14, 31, 65,0.1)' |
| | | } |
| | | ], false), |
| | | shadowColor: 'rgba(124,248,255, 0)', |
| | | shadowBlur: 20 |
| | | }, |
| | | data: [393, 438, 485, 631, 389, 224, 287] |
| | | }, |
| | | { |
| | | name: '累计ä½ä¸é', |
| | | type: 'bar', |
| | | barWidth: 6, |
| | | label: { |
| | | show: false, |
| | | position: 'top', |
| | | color: '#fff', |
| | | }, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: '#63d6fa' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#32718d' |
| | | } |
| | | ], false), |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'solid' |
| | | }, |
| | | barBorderRadius: [30, 30, 0, 0], |
| | | }, |
| | | data: [393, 438, 485, 631, 689, 524, 687] |
| | | }, |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart3 = () => { |
| | | const myChart = echarts.init(document.getElementById('echart3')) |
| | | var colors = [ |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#7fe3fc' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#9ce9fc' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#64d7fa' |
| | | }, { |
| | | offset: 1, |
| | | color: '#7de3fc' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4679f6' |
| | | }, { |
| | | offset: 1, |
| | | color: '#4674f6' |
| | | }]), |
| | | new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ |
| | | offset: 0, |
| | | color: '#4370f2' |
| | | }, { |
| | | offset: 1, |
| | | color: '#61d3f9' |
| | | }])] |
| | | const option = { |
| | | color: colors, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "cross", |
| | | label: { |
| | | backgroundColor: "red" |
| | | }, |
| | | lineStyle: { |
| | | color: "#9eb2cb" |
| | | } |
| | | } |
| | | }, |
| | | |
| | | legend: { |
| | | show: false, |
| | | top: "top", |
| | | left: "2%", |
| | | textStyle: { |
| | | color: "#000" |
| | | }, |
| | | itemHeight: 2, |
| | | data: ['é¢çº¦æ°', 'å·²è¿åº', 'å·²ä½ä¸', '已离åº'] |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'funnel', |
| | | left: '15%', |
| | | right: '45%', |
| | | top: '10%', |
| | | bottom: '10%', |
| | | minSize: '20%', |
| | | maxSize: '80%', |
| | | gap: 4, |
| | | label: { |
| | | show: true, |
| | | position: 'outside', |
| | | formatter: '{a|{b}} {a|{c}%}', |
| | | rich: { |
| | | a: { |
| | | color: '#869CC9', |
| | | fontSize: 13 |
| | | }, |
| | | } |
| | | }, |
| | | labelLine: { |
| | | length: 80, |
| | | lineStyle: { |
| | | width: 1, |
| | | type: 'dashed' |
| | | } |
| | | }, |
| | | itemStyle: { //廿é»è®¤ç½è²è¾¹æ¡çº¿ |
| | | borderWidth: 0, |
| | | borderColor: '#fff' |
| | | }, |
| | | data: [ |
| | | { value: 100, name: 'é¢çº¦æ°', }, |
| | | { value: 50, name: 'å·²è¿åº' }, |
| | | { value: 20, name: 'å·²ä½ä¸' }, |
| | | { value: 30, name: '已离åº' }, |
| | | |
| | | ] |
| | | }, |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | onMounted(() => { |
| | | // initEnergy() |
| | | initEchart1() |
| | | initEchart2() |
| | | initEchart3() |
| | | }) |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .echart_wrap { |
| | | width: 100%; |
| | | |
| | | .echart3 { |
| | | width: 100%; |
| | | height: 160px; |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | margin: 0 20px 0; |
| | | width: 100%; |
| | | height: 222px; |
| | | .line { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 12px; |
| | | height: 33px; |
| | | color: #D2E0FF; |
| | | width: 100%; |
| | | .time_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | width: 52px; |
| | | color: #FFFFFF; |
| | | .time { |
| | | width: 40px; |
| | | height: 18px; |
| | | line-height: 18px; |
| | | text-align: center; |
| | | background: #00A68E; |
| | | border-radius: 2px; |
| | | } |
| | | |
| | | .sp { |
| | | width: 10px; |
| | | height: 1px; |
| | | background: #00A68E; |
| | | } |
| | | |
| | | .dian { |
| | | width: 4px; |
| | | height: 4px; |
| | | border-radius: 50%; |
| | | background: #00A68E; |
| | | } |
| | | } |
| | | |
| | | .id_card { |
| | | flex: 6; |
| | | margin-left: 12px; |
| | | } |
| | | |
| | | .status { |
| | | flex: 5; |
| | | } |
| | | |
| | | .desc { |
| | | flex: 9; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .right_box_two { |
| | |
| | | margin-bottom: 4px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .xf { |
| | | width: 14px; |
| | | height: 14px; |