已添加32个文件
已删除2个文件
已修改23个文件
| | |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "dev": "vue-cli-service serve", |
| | | "pro": "vue-cli-service serve --mode production", |
| | | "test": "vue-cli-service serve --mode test", |
| | | "build": "vue-cli-service build --mode production", |
| | |
| | | mounted() { |
| | | // console.log('userInfo',this.userInfo); |
| | | if (!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0') { |
| | | this.visible.changePwd = true |
| | | // this.visible.changePwd = true |
| | | } |
| | | |
| | | }, |
| | |
| | | <template> |
| | | <div> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | accept=".png,.jpg,.jpeg" |
| | | :style="customStyle" |
| | | :action="uploadImgUrl" |
| | | :data="uploadData" |
| | | :show-file-list="false" |
| | | :on-success="handleAvatarSuccess" |
| | | :on-error="uploadError" |
| | | <el-upload class="avatar-uploader" accept=".png,.jpg,.jpeg" :style="customStyle" :action="uploadImgUrl" |
| | | :data="uploadData" :show-file-list="false" :on-success="handleAvatarSuccess" :on-error="uploadError" |
| | | :before-upload="beforeAvatarUpload"> |
| | | <img v-if=" file.imgurlfull" style="width: 100%;" :src="file.imgurlfull" :style="customStyle" class="avatar"> |
| | | <div v-else :style="customStyle"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { Loading } from 'element-ui' |
| | | export default { |
| | | props: { |
| | | file: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: null, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload' |
| | | } |
| | | }, |
| | |
| | | methods: { |
| | | // ä¸ä¼ å¾ç |
| | | handleAvatarSuccess(res, file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | this.loading.close() |
| | | }) |
| | | if (res.code == 200) { |
| | | let { data } = res |
| | | this.file.imgurl = data.imgaddr; |
| | | this.file.imgurlfull = data.url; |
| | | this.file.imgurl = data.imgaddr |
| | | this.file.imgurlfull = data.url |
| | | this.$message.success('ä¸ä¼ æå') |
| | | this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname }) |
| | | } else { |
| | |
| | | }, |
| | | uploadError() { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | this.loading.close() |
| | | }) |
| | | this.$emit('uploadEnd') |
| | | }, |
| | | // // æ¦æª |
| | | beforeAvatarUpload(file) { |
| | | this.loading = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | this.$emit('uploadBegin') |
| | | return true |
| | | } |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | $image-width: 90px; |
| | | |
| | | .avatar-uploader { |
| | | width: $image-width; |
| | | height: $image-width; |
| | | } |
| | | |
| | | ::v-deep .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | |
| | | .avatar-uploader-icon { |
| | | line-height: 90px; |
| | | font-size: 28px; |
| | |
| | | height: $image-width; |
| | | text-align: center; |
| | | } |
| | | |
| | | .avatar { |
| | | width: 90px; |
| | | max-height: 90px; |
| | | display: block; |
| | | } |
| | | |
| | | .tips-style { |
| | | height: 13px; |
| | | font-size: 13px; |
| | |
| | | width: 90px !important; |
| | | height: 90px !important; |
| | | } |
| | | |
| | | ::v-deep .el-upload-list__item { |
| | | width: 90px !important; |
| | | height: 90px !important; |
| | | } |
| | | |
| | | .icon { |
| | | -webkit-transform: translate(-50%,-50%); |
| | | -ms-transform: translate(-50%,-50%); |
| | | transform: translate(0%, -85%); |
| | | } |
| | | |
| | | ::v-deep .el-upload-list__item { |
| | | width: 90px !important; |
| | | height: 90px !important; |
| | | } |
| | | </style> |
| | | |
| | |
| | | :action="uploadImgUrl" |
| | | :show-file-list="false" |
| | | :on-success="uploadAvatarSuccess" |
| | | :on-error="uploadError" |
| | | :before-upload="beforeUpload" |
| | | > |
| | | <div class="upload_wrap"> |
| | |
| | | import dayjs from 'dayjs' |
| | | import { allList, memberList } from '@/api/business/hiddenDangerParam' |
| | | import { create } from '@/api/business/hiddenDanger' |
| | | import { Loading } from 'element-ui' |
| | | export default { |
| | | extends: BaseOpera, |
| | | components: { |
| | |
| | | data () { |
| | | return { |
| | | isShowModal: false, |
| | | loadingInstance: false, |
| | | param: {}, |
| | | userInfo: this.$store.state.userInfo, |
| | | uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', |
| | |
| | | this.memberList = arr |
| | | }, |
| | | beforeUpload (file) { |
| | | if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg','image/jpg', 'image/png', 'image/gif'].indexOf(file.type) == -1) { |
| | | this.$message.error('请ä¸ä¼ æ£ç¡®çè§é¢/å¾çæ ¼å¼') |
| | | return false |
| | | } |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | }, |
| | | uploadAvatarSuccess (file) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | console.log('file', file) |
| | | const item = file.data[0] |
| | | if (['.mp4', '.avi', '.flv', '.wmv'].some(char => item.imgaddr.includes(char))) { |
| | |
| | | <template> |
| | | <GlobalAlertWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | width="840px" |
| | | > |
| | | <GlobalAlertWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" |
| | | width="840px"> |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼"> |
| | | <el-form-item label="å
³èä¼è®®å®¤" prop="roomId"> |
| | | <el-select |
| | | v-model="form.roomId" |
| | | filterable |
| | | clearable |
| | | :disabled="isEdit" |
| | | placeholder="è¯·éæ©å
³èä¼è®®å®¤" |
| | | @change="selectRoom" |
| | | > |
| | | <el-select v-model="form.roomId" filterable clearable :disabled="isEdit" placeholder="è¯·éæ©å
³èä¼è®®å®¤" |
| | | @change="selectRoom"> |
| | | <el-option v-for="item in rooms()" :key="item.id" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="é¢å®æ¥æ" prop="date"> |
| | | <el-date-picker |
| | | :disabled="isEdit" |
| | | v-model="form.date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©é¢å®æ¥æ" |
| | | @change="selectDate" |
| | | ></el-date-picker> |
| | | <el-date-picker :disabled="isEdit" v-model="form.date" value-format="yyyy-MM-dd" placeholder="è¯·éæ©é¢å®æ¥æ" |
| | | @change="selectDate"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="é¢å®æ¶é´" prop="times"> |
| | | <div class="time-style"> |
| | | <div |
| | | class="time-item" |
| | | v-for="(item, index) in timelist" |
| | | :key="item.id" |
| | | :class="{ |
| | | <div class="time-item" v-for="(item, index) in timelist" :key="item.id" :class="{ |
| | | 'time-item-sel': form.times.indexOf(index)!=-1, |
| | | 'time-item-disable': item.isUse, |
| | | 'disable': item.bookingTimeId |
| | | }" |
| | | @click="selectTimes(index, item)" |
| | | >{{ `${item.startTime}-${item.endTime}` }}</div> |
| | | }" @click="selectTimes(index, item)">{{ `${item.startTime}-${item.endTime}` }}</div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼è®®ä¸»é¢" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥ä¼è®®ä¸»é¢" :maxlength="30" v-trim/> |
| | | </el-form-item> |
| | | |
| | | <div class="df_ac"> |
| | | <el-form-item label="åä¼äººå"> |
| | | <!-- <el-input style="width:40%" disabled v-model="sysList" placeholder="éæ©åä¼äººå" v-trim/> --> |
| | | <el-select |
| | | v-model="form.sysList" |
| | | filterable |
| | | clearable |
| | | multiple |
| | | placeholder="éæ©é¨é¨æå" |
| | | > |
| | | <el-option |
| | | v-for="item in sysList" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.department?`${item.department.name}-${item.realname}`:item.realname" |
| | | ></el-option> |
| | | <el-select v-model="form.sysList" filterable clearable multiple placeholder="éæ©é¨é¨æå"> |
| | | <el-option v-for="item in sysList" :key="item.id" :value="item.id" |
| | | :label="item.department ? `${item.department.name}-${item.realname}` : item.realname"></el-option> |
| | | <!-- <el-option :key="1" :value="1" label="ç¦ç¨" /> --> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="ml10" label-width="140px" label="æ¯å¦éç¥åä¼äººå"> |
| | | <el-radio v-model="form.joinNotice" :label="1">ä¸éç¥</el-radio> |
| | | <el-radio v-model="form.joinNotice" :label="0">éç¥</el-radio> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="ä¼è®®å
容" prop="content"> |
| | | <el-input |
| | | type="textarea" |
| | | v-model="form.content" |
| | | :maxlength="300" |
| | | show-word-limit |
| | | :autosize="{ minRows: 4, maxRows: 12}" |
| | | placeholder="请è¾å
¥ä¼è®®å
容" |
| | | v-trim |
| | | /> |
| | | <el-input type="textarea" v-model="form.content" :maxlength="300" show-word-limit |
| | | :autosize="{ minRows: 4, maxRows: 12 }" placeholder="请è¾å
¥ä¼è®®å
容" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item v-if="projectList.length" label="éæ©æå¡é¡¹ç®" prop="projectList"> |
| | | <el-checkbox-group v-model="form.projectList"> |
| | | <el-checkbox |
| | | v-for="project in projectList" |
| | | :label="project.id" |
| | | :key="project.id" |
| | | >{{project.name}}</el-checkbox> |
| | | <el-checkbox v-for="project in projectList" :label="project.id" |
| | | :key="project.id">{{ project.name }}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼è®®éä»¶" prop="fileList"> |
| | |
| | | <el-button type="primary" icon="el-icon-upload" @click="$refs.upFile.click()">ä¼è®®éä»¶</el-button> |
| | | </div> |
| | | <div class="data-list"> |
| | | <FileLink |
| | | :links="form.fileList" |
| | | linkName="fileFullUrl" |
| | | /> |
| | | <FileLink :links="form.fileList" linkName="fileFullUrl" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼è®®å¤æ³¨" prop="remark"> |
| | |
| | | <input type="file" @change="upFiles" ref="upFile" style="display: none;" /> |
| | | </el-form> |
| | | |
| | | <el-dialog |
| | | title="ä¼è®®å®¤é¢çº¦æ
åµ" |
| | | :visible.sync="isShowDetail" |
| | | append-to-body |
| | | width="600px" |
| | | > |
| | | <el-dialog title="ä¼è®®å®¤é¢çº¦æ
åµ" :visible.sync="isShowDetail" append-to-body width="600px"> |
| | | <div class="detail_modal"> |
| | | <div class="h1">{{ activeInfo.meetingName }}</div> |
| | | <div class="line"> |
| | |
| | | startTime: '', |
| | | endTime: '', |
| | | times: [], |
| | | joinNotice: 1, |
| | | content: '', |
| | | sysList: [], |
| | | fileList: [] |
| | |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | cursor: pointer; |
| | | |
| | | .time-item { |
| | | margin-right: 8px; |
| | | margin-bottom: 8px; |
| | |
| | | border: #cccccc solid 1px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .time-item-sel { |
| | | border-color: $primary-color; |
| | | background-color: #f6f9fe; |
| | | color: $primary-color; |
| | | } |
| | | |
| | | .time-item-disable { |
| | | color: #fff; |
| | | border-color: #cccccc; |
| | | background-color: #cccccc; |
| | | } |
| | | |
| | | .disable{ |
| | | border-color: #bed6f9; |
| | | background-color: #bed6f9; |
| | | color: #fff; |
| | | } |
| | | } |
| | | |
| | | .detail_modal { |
| | | padding: 20px 16px; |
| | | |
| | | .title { |
| | | text-align: center; |
| | | font-weight: 600; |
| | | font-size: 16px; |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .h1 { |
| | | font-weight: 600; |
| | | font-size: 16px; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .line { |
| | | display: flex; |
| | | margin-bottom: 10px; |
| | | |
| | | .label { |
| | | width: 70px; |
| | | color: #888888; |
| | | } |
| | | |
| | | .value { |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | }, |
| | | uploadAvatarSuccess(file) { |
| | | console.log('file', file) |
| | | this.form.multifileList.push({ |
| | | let temp = [] |
| | | temp.push({ |
| | | fileurl: file.imgurl, |
| | | fileurlFull: file.imgurlfull, |
| | | type: 1 |
| | | }) |
| | | this.form.multifileList = temp |
| | | this.$set(this.form, 'videourl', file.imgurl) |
| | | this.$set(this.form, 'videoFullUrl', file.imgurlfull) |
| | | }, |
| | |
| | | const param = this.param |
| | | param.inReason = this.reasonList.find(item => param.reasonId == item.id).reason |
| | | if (valid) { |
| | | this.subLoading = true |
| | | platformBooksApply({ ...param }).then(res => { |
| | | this.getList() |
| | | this.subLoading = false |
| | | this.isShowEdit = false |
| | | }, () => { |
| | | this.subLoading = false |
| | | }) |
| | | } |
| | | }) |
| | |
| | | if (item.newStartDate) { |
| | | const timeNum = time.getTime() - new Date(item.newStartDate).getTime() |
| | | if (timeNum > 3600000) { |
| | | item.startDateTemp = dayjs.duration(timeNum).format('Hå°æ¶måssç§') |
| | | item.startDateTemp = dayjs.duration(timeNum).format('Hå°æ¶måsç§') |
| | | } else { |
| | | item.startDateTemp = dayjs.duration(timeNum).format('måsç§') |
| | | } |
| | |
| | | class="avatar-uploader" |
| | | :action="uploadUrl" |
| | | :show-file-list="false" |
| | | :on-error="uploadError" |
| | | :on-success="handleAvatarSuccess" |
| | | :before-upload="beforeAvatarUpload" |
| | | > |
| | |
| | | :action="uploadUrl" |
| | | :show-file-list="false" |
| | | :on-success="handleAfterSuccess" |
| | | :on-error="uploadError" |
| | | :before-upload="beforeAvatarUpload" |
| | | > |
| | | <img v-if="param.url" :src="param.url" class="avatar" /> |
| | |
| | | :action="uploadUrl" |
| | | :show-file-list="false" |
| | | :on-success="handleBackSuccess" |
| | | :on-error="uploadError" |
| | | :before-upload="beforeAvatarUpload" |
| | | > |
| | | <div class="upload_box"> |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { memberList } from '@/api/business/hiddenDangerParam' |
| | | import { Loading } from 'element-ui' |
| | | import { |
| | | uploadFile, |
| | | hiddenDangerDetail, |
| | |
| | | id: '', |
| | | type: '', |
| | | uploadUrl: uploadFile, |
| | | |
| | | loadingInstance: false, |
| | | title: '访客é¢çº¦è¯¦æ
', |
| | | isShowModal: false, |
| | | info: {}, |
| | |
| | | }, |
| | | reject () { }, |
| | | handleAvatarSuccess (res) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | if (res.code === 200) { |
| | | const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 |
| | | const arr = this.handleParam.dealBeforeFileList || [] |
| | |
| | | } |
| | | }, |
| | | handleAfterSuccess (res) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | if (res.code === 200) { |
| | | const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 |
| | | const arr = this.handleParam.dealAfterFileList || [] |
| | |
| | | } |
| | | }, |
| | | handleBackSuccess (res) { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | if(this.loadingInstance){ |
| | | this.loadingInstance.close() |
| | | } |
| | | }) |
| | | if (res.code === 200) { |
| | | const str = res.data.url.indexOf('png') > 0 || res.data.url.indexOf('jpg') > 0 |
| | | const arr = this.backForm.dealBeforeFileList || [] |
| | |
| | | this.$set(this.backForm, 'dealBeforeFileList', arr) |
| | | } |
| | | }, |
| | | beforeAvatarUpload () { } |
| | | beforeAvatarUpload () { |
| | | this.loadingInstance = Loading.service({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }) |
| | | }, |
| | | uploadError() { |
| | | this.$nextTick(() => { // 以æå¡çæ¹å¼è°ç¨ç Loading éè¦å¼æ¥å
³é |
| | | this.loadingInstance.close() |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | uview-ui |
| | | |
| | | /dist |
| | | /unpackage |
| | | |
| | | |
| | | # local env files |
| | |
| | | "historyApiFallback" : true, |
| | | "disableHostCheck" : true, |
| | | "proxy" : { |
| | | "/admin_interface" : { |
| | | "/gateway_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | // "target" : "http://172.20.10.7:10010", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | | "pathRewrite" : { |
| | | "^/admin_interface" : "" |
| | | "^/gateway_interface" : "" |
| | | } |
| | | } |
| | | }, |
| | |
| | | <text v-if="activePlatform.signJobList">{{ |
| | | activePlatform.workJobList.length |
| | | }}</text> |
| | | <text v-else>0</text> |
| | | <text class="unit">è¾</text> |
| | | </view> |
| | | <image |
| | |
| | | <text v-if="activePlatform.workJobList">{{ |
| | | activePlatform.signJobList.length |
| | | }}</text> |
| | | <text v-else>0</text> |
| | | <text class="unit">è¾</text> |
| | | </view> |
| | | <image |
| | |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_list"> |
| | | <view class="item" :class="{ active: item.driverId == driverInfo.memberId }" v-for="item in dataList" :key="item.id"> |
| | | <view class="item" :class="{ active: item.drivierPhone == driverInfo.mobile }" v-for="item in dataList" :key="item.id"> |
| | | <view class="status padding" v-if="item.status == 2">æéä¸</view> |
| | | <view class="status" v-else :class="{ padding: item.status != 5 }">{{ statusMap[item.status] }}</view> |
| | | <view v-if="item.driverId == driverInfo.memberId" class="me">æ</view> |
| | | <image v-if="item.driverId == driverInfo.memberId" class="avatar" src="@/static/driver/ic_truck_mine@2x.png" mode=""></image> |
| | | <view v-if="item.drivierPhone == driverInfo.mobile" class="me">æ</view> |
| | | <image v-if="item.drivierPhone == driverInfo.mobile" class="avatar" src="@/static/driver/ic_truck_mine@2x.png" mode=""></image> |
| | | <image v-else class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image> |
| | | <view class="content"> |
| | | <view class="id_card" v-if="item.carCodeFront">{{ item.carCodeFront.slice(0, 4) }}**{{ item.carCodeFront.slice(6) }}</view> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | <text class="star">*</text> |
| | | </view> |
| | | <view class="line"> |
| | | <input |
| | | type="text" |
| | | v-model="param.name" |
| | | placeholder="请è¾å
¥ä¼è®®ä¸»é¢" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | <input type="text" v-model="param.name" placeholder="请è¾å
¥ä¼è®®ä¸»é¢" placeholder-class="placeholder9"
|
| | | class="label" />
|
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | |
| | | <text>ä¼è®®å
容</text> |
| | | </view> |
| | | <view class="line"> |
| | | <u-textarea |
| | | border="none" |
| | | v-model="param.content" |
| | | count |
| | | :maxlength="300" |
| | | placeholder="请è¾å
¥ä¼è®®å
容" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | <u-textarea border="none" v-model="param.content" count :maxlength="300" placeholder="请è¾å
¥ä¼è®®å
容"
|
| | | placeholder-class="placeholder9" class="label" />
|
| | | </view> |
| | | </view> |
| | | <view class="empty"></view> |
| | |
| | | <text v-if="param.sysList && param.sysList.length > 0"> |
| | | {{ param.sysList.map((i) => i.realname).join(",") }} |
| | | </text> |
| | | <text |
| | | v-else |
| | | class="placeholder9" |
| | | >è¯·éæ©</text |
| | | > |
| | | <text v-else class="placeholder9">è¯·éæ©</text>
|
| | | </view> |
| | | <u-icon |
| | | name="arrow-right" |
| | | color="#999999" |
| | | size="14" |
| | | /> |
| | | <u-icon name="arrow-right" color="#999999" size="14" />
|
| | | </view>
|
| | | </view>
|
| | | <view class="item">
|
| | | <view class="name">æ¯å¦éç¥åä¼äººå</view>
|
| | | <view class="line">
|
| | | <view class="label"> |
| | | <u-switch v-model="param.joinNotice" activeColor="#4d99a8" :activeValue="0" :inactiveValue="1"></u-switch>
|
| | | <!-- <u-radio-group v-model="param.joinNotice">
|
| | | <u-radio label="ä¸éç¥" :name="1" activeColor="#4d99a8" class="mr24" /> |
| | | <u-radio label="éç¥" :name="0" activeColor="#4d99a8" />
|
| | | </u-radio-group> -->
|
| | | </view>
|
| | | </view> |
| | | </view> |
| | | <view class="item" v-if="info.projectList && info.projectList.length > 0"> |
| | | <view class="name">éæ©æå¡é¡¹</view> |
| | | <view class="line"> |
| | | <view class="label"> |
| | | <view |
| | | class="service_item" |
| | | :class="{ active: item.checked }" |
| | | v-for="(item, index) in info.projectList" |
| | | :key="index" |
| | | @click="serviceClick(item)" |
| | | > |
| | | <view class="service_item" :class="{ active: item.checked }" v-for="(item, index) in info.projectList"
|
| | | :key="index" @click="serviceClick(item)">
|
| | | {{ item.projectName }} |
| | | </view> |
| | | </view> |
| | |
| | | <text>夿³¨</text> |
| | | </view> |
| | | <view class="line"> |
| | | <textarea |
| | | v-model="param.remark" |
| | | :maxlength="-1" |
| | | placeholder="请è¾å
¥" |
| | | placeholder-class="placeholder9" |
| | | class="label" |
| | | /> |
| | | <textarea v-model="param.remark" :maxlength="-1" placeholder="请è¾å
¥" placeholder-class="placeholder9"
|
| | | class="label" />
|
| | | </view> |
| | | </view> |
| | | |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | param: {}, |
| | | param: { |
| | | joinNotice: 1 |
| | | },
|
| | | userInfo: uni.getStorageSync('userInfo'), |
| | | info: {}, |
| | | } |
| | |
| | | // this.$set(this.param, 'memberNames', res.map(i => i.name).join(',')) |
| | | }) |
| | | this.$eventBus.$on('meetingSub', (res) => { |
| | | this.param = { ...res } |
| | | this.param = {
|
| | | ...res
|
| | | }
|
| | | this.$set(this.param, 'activeDate', dayjs(res.yudingDate).format('YYYYå¹´MæDæ¥')) |
| | | const bookingTimeList = res.bookingTimeList.split(',').map(i => { |
| | | return { |
| | |
| | | }, |
| | | methods: { |
| | | getDetail(id) { |
| | | meetingDetail({ id }).then(res => { |
| | | this.param = { ...res.data,name: res.data.meetingName, content: res.data.meetingContent, sysList: res.data.userResponseList } |
| | | meetingDetail({
|
| | | id
|
| | | }).then(res => {
|
| | | this.param = {
|
| | | ...res.data,
|
| | | name: res.data.meetingName,
|
| | | content: res.data.meetingContent,
|
| | | sysList: res.data.userResponseList
|
| | | }
|
| | | // this.param = { ...res.data } |
| | | if(this.param.sysList && this.param.sysList.length > 0){ |
| | | this.param.sysList.forEach(i => { |
| | | i.userId = i.id |
| | | }) |
| | | } |
| | | getRoomDetail({ roomId: res.data.roomId }).then(ress => { |
| | | getRoomDetail({
|
| | | roomId: res.data.roomId
|
| | | }).then(ress => {
|
| | | this.info = ress.data |
| | | if (this.info && this.info.projectList) { |
| | | this.info.projectList.forEach(i => { |
| | |
| | | }) |
| | | }, |
| | | onUpdate() { |
| | | const { param, info } = this |
| | | const {
|
| | | param,
|
| | | info
|
| | | } = this
|
| | | if (!param.name) return uni.showToast({ |
| | | title: '请è¾å
¥ä¼è®®ä¸»é¢', |
| | | icon: 'none' |
| | |
| | | uni.navigateBack( ) |
| | | }, |
| | | onSubmit() { |
| | | const { param, info } = this |
| | | const {
|
| | | param,
|
| | | info
|
| | | } = this
|
| | | if (!param.name) return uni.showToast({ |
| | | title: '请è¾å
¥ä¼è®®ä¸»é¢', |
| | | icon: 'none' |
| | |
| | | }) |
| | | }, |
| | | selPeople() { |
| | | const { param } = this |
| | | const {
|
| | | param
|
| | | } = this
|
| | | let startTime = new Date(param.yudingDate + ' ' + param.startTime).getTime() |
| | | let endTime = new Date(param.yudingDate + ' ' + param.endTime).getTime() |
| | | if(this.param.sysList && this.param.sysList.length > 0){ |
| | |
| | | }) |
| | | }, |
| | | serviceClick(item) { |
| | | const { info } = this |
| | | const {
|
| | | info
|
| | | } = this
|
| | | info.projectList.forEach(ite => { |
| | | if (ite.projectId === item.projectId) { |
| | | ite.checked = !ite.checked |
| | |
| | | }, |
| | | initOption() { |
| | | const roomId = Number(this.param.roomId) |
| | | getRoomDetail({ roomId }).then(res => { |
| | | getRoomDetail({
|
| | | roomId
|
| | | }).then(res => {
|
| | | this.info = res.data |
| | | if (this.info && this.info.projectList) { |
| | | this.info.projectList.forEach(i => { |
| | |
| | | .item { |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | padding: 30rpx 0; |
| | |
|
| | | .name { |
| | | color: #666666; |
| | | margin-bottom: 30rpx; |
| | | } |
| | |
|
| | | .line { |
| | | display: flex; |
| | |
|
| | | .label { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | |
|
| | | .service_item { |
| | | height: 64rpx; |
| | | line-height: 64rpx; |
| | |
| | | margin-right: 20rpx; |
| | | margin-bottom: 12rpx; |
| | | } |
| | |
|
| | | .active { |
| | | background-color: #4d99a8; |
| | | color: #fff; |
| | |
| | | } |
| | | } |
| | | } |
| | |
|
| | | padding-bottom: 100rpx; |
| | | } |
| | |
|
| | | .empty { |
| | | width: 750rpx; |
| | | height: 20rpx; |
| | | background-color: #f7f7f7; |
| | | margin: 0 -30rpx; |
| | | } |
| | |
|
| | | .sub_btn { |
| | | width: 690rpx; |
| | | height: 72rpx; |
| | |
| | | color: #ffffff; |
| | | margin-top: 20rpx; |
| | | } |
| | |
|
| | | .star { |
| | | margin-left: 4rpx; |
| | | color: #e42d2d; |
| | |
| | | |
| | | export const baseUrl = 'admin_interface/' |
| | | export const baseUrl = 'gateway_interface/' |
| | | // export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | |
| | | export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do` |
| | |
| | | "disableHostCheck": true, |
| | | "proxy": { |
| | | "/gateway_interface": { |
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin": true, // å
许跨å |
| | | "pathRewrite": { |
| | | "^/gateway_interface": "" |
| | |
| | | "uniStatistics" : { |
| | | "enable" : false |
| | | }, |
| | | "vueVersion" : "3" |
| | | "vueVersion" : "2" |
| | | } |
| | |
| | | } else {
|
| | | this.showQrbg = false
|
| | | this.meetingInfo = {}
|
| | | this.$forceUpdate()
|
| | | }
|
| | | })
|
| | | },
|
| | |
| | | |
| | | // export const baseUrl = 'gateway_interface/' |
| | | // export const baseUrl = 'gateway_interface/'/ |
| | | export const baseUrl = 'http://192.168.5.13/gateway_interface/' |
| | | // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' |
| | | // export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | |
| | | export const statusMap = { |
| | | 0: 'å¾
确认', |
| | |
| | | if (item.newStartDate) {
|
| | | let timeNum = time.getTime() - new Date(item.newStartDate).getTime()
|
| | | if (timeNum > 3600000) {
|
| | | item.startDateTemp = dayjs.duration(timeNum).format('Hå°æ¶måssç§')
|
| | | item.startDateTemp = dayjs.duration(timeNum).format('Hå°æ¶måsç§')
|
| | | } else {
|
| | | item.startDateTemp = dayjs.duration(timeNum).format('måsç§')
|
| | | }
|
| | |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | component: () => import('../views/SecurityControl.vue') |
| | | component: () => import('../views/FireFighting.vue') |
| | | }, |
| | | { |
| | | path: '/PlatformCall', |
| | | path: '/PlatformCall', // æå°å«å·å¤§å± |
| | | name: 'PlatformCall', |
| | | component: () => import('../views/PlatformCall.vue') |
| | | }, |
| | | { |
| | | path: '/EnergyConsum', |
| | | path: '/EnergyConsum', // è½èçæ¿ - 绿è²ä½ç¢³è¿è¥ |
| | | name: 'EnergyConsum', |
| | | component: () => import('../views/EnergyConsum.vue') |
| | | }, |
| | | { |
| | | path: '/LogisticsControl', |
| | | name: 'LogisticsControl', |
| | | path: '/LogisticsEfficiency', // ç©æµè¿è¡è°åº¦çæ¿- è°åº¦è½æ |
| | | name: 'LogisticsEfficiency', |
| | | component: () => import('../views/LogisticsEfficiency.vue') |
| | | }, |
| | | { |
| | | path: '/SecurityControl', |
| | | path: '/SecurityControl', // å®é²ç®¡æ§å¤§å± - |
| | | name: 'SecurityControl', |
| | | component: () => import('../views/SecurityControl.vue') |
| | | }, |
| | | { |
| | | path: '/LogisticsCenter', //åºå¶ç®¡ççæ¿-ç©æµä¸å¿ |
| | | name: 'LogisticsCenter', |
| | | component: () => import('../views/LogisticsCenter.vue') |
| | | }, |
| | | { |
| | | path: '/FireFighting', //æ¶é²çæ§ |
| | | name: 'FireFighting', |
| | | component: () => import('../views/FireFighting.vue') |
| | | }, |
| | | ] |
| | | }) |
| | | |
| | |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 92px; |
| | | height: 90px; |
| | | position: relative; |
| | | padding: 0px 40px 16px; |
| | | font-weight: 600; |
| | |
| | | align-items: center; |
| | | |
| | | .time { |
| | | width: 180px; |
| | | width: 130px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding-bottom: 10px; |
| | | font-size: 36px; |
| | | font-size: 30px; |
| | | } |
| | | |
| | | .week { |
| | | margin-left: 36px; |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <v-scale-screen width="1920" height="960"> |
| | | <div class="main_app"> |
| | | <img src="@/assets/images/FireFighting/bg@2x.png" class="main_bg" alt="" /> |
| | | <div class="main_header"> |
| | | <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> |
| | | <div class="title">宿³°æºæ
§ç©æµååº-æ¶é²æå¿çæ§</div> |
| | | <div class="time_wrap"> |
| | | <span class="date">{{ date }}</span> |
| | | <span class="week">{{ week }}</span> |
| | | <span class="time">{{ time }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="left_box"> |
| | | <div class="left_box_one"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>仿¥åç³»ç»è®¾å¤ç¶æååè¦æ°</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="list_wrap"> |
| | | <div class="list"> |
| | | <div class="header line"> |
| | | <span class="item name">设å¤ç±»å</span> |
| | | <span class="item">æ»æ°</span> |
| | | <span class="item">æ¥è¦</span> |
| | | <span class="item">å±è½</span> |
| | | <span class="item">æ
é</span> |
| | | <span class="item">离线</span> |
| | | </div> |
| | | <template v-for="i in 5"> |
| | | <div class="line"> |
| | | <span class="item name">ç«ç¶æ¥è¦ç³»ç»</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | </div> |
| | | <div class="separate"></div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="left_box_two"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>æ¥è¦ä¿¡æ¯</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="police_wrap"> |
| | | <div class="echart1" id="echart1"></div> |
| | | </div> |
| | | </div> |
| | | <div class="left_box_three"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>åè¦å¤çåæ</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="dispose_wrap"> |
| | | <div class="echart2" id="echart2"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="center_box"> |
| | | <div class="center_box_one"> |
| | | <div class="static_wrap"> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_zaixian@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">å¨çº¿</div> |
| | | <div class="num">1000</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_baojing@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">æ¥è¦</div> |
| | | <div class="num">12</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_guzhang@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">æ
é</div> |
| | | <div class="num">12</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_lixian@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">离线</div> |
| | | <div class="num">12</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/xiaofang_ic_pingbi@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">å±è½</div> |
| | | <div class="num">12</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="center_box_two"> |
| | | <div class="content_wrap"> |
| | | <div class="header"> |
| | | <div class="left"> |
| | | <img class="icon" src="@/assets/images/FireFighting/468@2x.png" alt=""> |
| | | <span>温度/æ¹¿åº¦ä¼ æå¨</span> |
| | | </div> |
| | | <div class="right"> |
| | | <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt=""> |
| | | <div class="num">1/5</div> |
| | | <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="list_wrap"> |
| | | <div class="title"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt=""> |
| | | <span>å¸è´§åº1</span> |
| | | </div> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="num">23<span>°C</span></div> |
| | | <div class="la">éå¼ 0ï½100°C</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="num">23<span>%</span></div> |
| | | <div class="la">éå¼ 0ï½100%</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="header"> |
| | | <div class="left"> |
| | | <img class="icon" src="@/assets/images/FireFighting/468@2x.png" alt=""> |
| | | <span>宿¶ä¼ æå¨æ£æµ</span> |
| | | </div> |
| | | <div class="right"> |
| | | <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_left@2x.png" alt=""> |
| | | <div class="num">1/5</div> |
| | | <img class="icon" src="@/assets/images/FireFighting/xiaofang_ar_right@2x.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="list_wrap"> |
| | | <div class="title_wrap"> |
| | | <div class="title"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt=""> |
| | | <span>1è·¯/æ°´å</span> |
| | | </div> |
| | | <div class="title"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_location@2x.png" alt=""> |
| | | <span>2è·¯/æ¶²ä½</span> |
| | | </div> |
| | | </div> |
| | | <div class="list"> |
| | | <div class="watergage_wrap"> |
| | | <div class="watergage" id="watergage"></div> |
| | | <div class="unit">2.50 <span>Mpa</span></div> |
| | | <div class="place">éå¼ 0ï½2.5Mpa</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="liquidlevel_wrap"> |
| | | <div class="liquidlevel" id="liquidlevel"></div> |
| | | <div class="unit">3.45 <span>M</span></div> |
| | | <div class="place">éå¼ 0ï½4.50M</div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box"> |
| | | <div class="right_box_one"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>æ¬å¹´æ¶é²è®¾å¤/设æ½ç»´ä¿æ
åµ</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="list"> |
| | | <template v-for="i in 3"> |
| | | <div class="item"> |
| | | <div>已维ä¿</div> |
| | | <div class="num active">500</div> |
| | | </div> |
| | | <div v-if="i < 3" class="separate"></div> |
| | | </template> |
| | | |
| | | </div> |
| | | <div class="footer"> |
| | | <img src="@/assets/images/FireFighting/ic_weixiu@2x.png" class="icon" alt=""> |
| | | <div class="content"> |
| | | <div>æ¬ææ°å¢ç»´ä¿</div> |
| | | <div class="num">40 <span>个</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_two"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>仿¥éæ£/åè¦</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="su_title"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_title_green@2x.png" alt=""> |
| | | <div class="name">鿣鿿</div> |
| | | </div> |
| | | <div class="static_wrap"> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/ic_tibao@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">ææ¥éæ£æ°</div> |
| | | <div class="num"><span>10</span>个</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/FireFighting/ic_chuli@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">å¤ç鿣æ°</div> |
| | | <div class="num"><span class="today">3</span>个</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="su_title"> |
| | | <img class="icon" src="@/assets/images/FireFighting/ic_title_green@2x.png" alt=""> |
| | | <div class="name">åè¦ä¿¡æ¯</div> |
| | | </div> |
| | | <div class="list"> |
| | | <div class="item" v-for="i in 5"> |
| | | <div class="icon"> |
| | | <div class="circle"></div> |
| | | <div class="line"></div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="header"> |
| | | <div class="time"> |
| | | <span>123</span> |
| | | <span class="status">å¤çä¸</span> |
| | | </div> |
| | | <div class="have_time">å·²ç»åç<span>1</span>åé</div> |
| | | </div> |
| | | <div class="wrap"> |
| | | <div class="title"> |
| | | <img class="xf" src="@/assets/images/FireFighting/ic_gaojing_red@2x.png" alt=""> |
| | | <span>æ¶é²è¦å</span> |
| | | </div> |
| | | <div class="title"> |
| | | <img class="addr" src="@/assets/images/FireFighting/xiaofang_ic_weizhi@2x.png" alt=""> |
| | | <span>address</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </v-scale-screen> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue' |
| | | import VScaleScreen from 'v-scale-screen' |
| | | import Percent from '@/components/percent.vue' |
| | | import dayjs from 'dayjs' |
| | | |
| | | import * as echarts from 'echarts' |
| | | const colors = ['#FEAF01', '#01ABFE', '#51F9E4'] |
| | | const weekMap = ['æææ¥', 'ææä¸', 'ææäº', 'ææä¸', 'ææå', 'ææäº', 'ææå
',] |
| | | const date = ref(dayjs().format('YYYY.MM.DD')) |
| | | const week = ref(weekMap[new Date().getDay()]) |
| | | const time = ref(dayjs().format('HH:mm:ss')) |
| | | setInterval(() => { |
| | | date.value = dayjs().format('YYYY-MM-DD') |
| | | week.value = weekMap[new Date().getDay()] |
| | | time.value = dayjs().format('HH:mm:ss') |
| | | |
| | | }, 1000) |
| | | |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | const initEnergy = () => { |
| | | var myChart = echarts.init(document.querySelector('.energyRef')) |
| | | // ç»å¶å¾è¡¨ |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | myChart.setOption({ |
| | | grid: { |
| | | top: '20%', |
| | | left: '2%', |
| | | right: '2%', |
| | | bottom: '4%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'line' |
| | | }, |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: [1, 2, 3, 4, 4, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'kw·h', |
| | | nameTextStyle: { |
| | | padding: [0, 0, 4, -30] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | //è¿éè¾å
¥çº¿æ¡çæ ·å¼ |
| | | color: 'rgba(255,255,255,0.14)', |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1, 2, 3, 4, 5], |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | 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] |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | 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 initWatergage = () => { |
| | | const myChart = echarts.init(document.getElementById('watergage')) |
| | | var data_value = 2 |
| | | const option = { |
| | | barMaxWidth: 3, |
| | | polar: { |
| | | radius: '80%' |
| | | }, |
| | | grid: { |
| | | top: '0%', |
| | | left: '0%', |
| | | right: '%', |
| | | bottom: '0%', |
| | | containLabel: true |
| | | }, |
| | | angleAxis: { |
| | | show: false, |
| | | max: (360 * 100) / 270, |
| | | type: 'value', |
| | | startAngle: 225, |
| | | }, |
| | | radiusAxis: { |
| | | show: false, |
| | | type: 'category', |
| | | z: 10 |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'gauge', |
| | | min: 0, |
| | | max: 2.50, |
| | | splitNumber: 5, |
| | | radius: '100%', |
| | | center: ['50%', '50%'], |
| | | data: [data_value], |
| | | detail: { |
| | | formatter: (v) => v + '%', |
| | | color: '#152435', |
| | | fontSize: 1, |
| | | |
| | | }, |
| | | itemStyle: { |
| | | color: '#3DE6FF' |
| | | }, |
| | | pointer: { |
| | | width: 2, |
| | | length: '90%', |
| | | offsetCenter: [0, '3%'], |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | width: 0, |
| | | color: [ |
| | | [0.05, '#1b6dff'], |
| | | [0.10, '#2084ff'], |
| | | [0.15, '#2596ff'], |
| | | [0.20, '#2db0ff'], |
| | | [0.25, '#31c0ff'], |
| | | [0.30, '#36d3ff'], |
| | | [0.35, '#4fe6ec'], |
| | | [0.40, '#6ae7d2'], |
| | | [0.45, '#84e8b9'], |
| | | [0.50, '#a5e999'], |
| | | [0.55, '#ccea75'], |
| | | [0.60, '#f8eb4a'], |
| | | [0.65, '#ffdd4f'], |
| | | [0.70, '#ffcb5a'], |
| | | [0.75, '#ffae6e'], |
| | | [0.80, '#ff9c7b'], |
| | | [0.85, '#ff8d87'], |
| | | [0.90, '#ff7d91'], |
| | | [0.95, '#ff6f9b'], |
| | | [1, '#ff5ca9'] |
| | | ] |
| | | |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: true, |
| | | length: 3, |
| | | splitNumber: 12, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: 'auto', |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | distance: 12, |
| | | fontSize: 8, |
| | | color: 'auto', |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | length: -5, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: 'auto', |
| | | } |
| | | }, |
| | | z: 9, |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | barGap: '-100%', |
| | | coordinateSystem: 'polar', |
| | | roundCap: true, |
| | | data: [ |
| | | { |
| | | value: 100, |
| | | itemStyle: { |
| | | color: new echarts.graphic.LinearGradient(0, 0, 1, 1, [ |
| | | { offset: 0, color: '#0A5EFF' }, |
| | | { offset: 0.45, color: '#20DDFF' }, |
| | | { offset: 1, color: '#FC10CB' } |
| | | ]) |
| | | } |
| | | } |
| | | ], |
| | | z: 3, |
| | | }, |
| | | { |
| | | type: 'pie', |
| | | radius: ['2%', '6%'], |
| | | center: ['50%', '50%'], |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | { |
| | | value: 100, |
| | | itemStyle: { |
| | | color: '#3DE6FF', |
| | | opacity: 0.5 |
| | | } |
| | | } |
| | | ], |
| | | z: 2, |
| | | }, |
| | | { |
| | | type: 'pie', |
| | | radius: 4, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | { |
| | | value: 20, |
| | | itemStyle: { |
| | | color: '#3DE6FF' |
| | | } |
| | | } |
| | | ], |
| | | z: 1, |
| | | }, |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initLiquidlevel = () => { |
| | | const myChart = echarts.init(document.getElementById('liquidlevel')) |
| | | var data = 65 |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'none', |
| | | }, |
| | | xAxis: { |
| | | data: ['ç¾åæ¯'], |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLine: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | show: false, |
| | | textStyle: { |
| | | color: '#e54035', |
| | | }, |
| | | }, |
| | | }, |
| | | yAxis: { |
| | | splitLine: { |
| | | show: false, |
| | | }, |
| | | axisTick: { |
| | | show: false, |
| | | }, |
| | | axisLine: { |
| | | show: false, |
| | | }, |
| | | axisLabel: { |
| | | show: false, |
| | | }, |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'æä¸å±ç«ä½å', |
| | | type: 'pictorialBar', |
| | | symbolSize: [260, 40], |
| | | symbolOffset: [0, -20], |
| | | z: 12, |
| | | itemStyle: { |
| | | normal: { |
| | | color: 'rgba(8,44,110, 1)', |
| | | }, |
| | | }, |
| | | data: [ |
| | | { |
| | | value: 100, |
| | | symbolPosition: 'end', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | name: 'ä¸é´ç«ä½å', |
| | | type: 'pictorialBar', |
| | | symbolSize: [260, 40], |
| | | symbolOffset: [0, -20], |
| | | z: 12, |
| | | itemStyle: { |
| | | normal: { |
| | | color: () => |
| | | new echarts.graphic.LinearGradient(1, 1, 0, 0, [ |
| | | { |
| | | offset: 0, |
| | | color: '#03C7F9', |
| | | }, |
| | | { |
| | | offset: 1, |
| | | // color: '#03C7F922', |
| | | color: 'rgb(8,44,110)', |
| | | }, |
| | | ]), |
| | | shadowColor: '#03C7F9', |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowOffsetY: 4, |
| | | }, |
| | | }, |
| | | data: [ |
| | | { |
| | | value: data, |
| | | symbolPosition: 'end', |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | name: 'æåºé¨ç«ä½å', |
| | | type: 'pictorialBar', |
| | | symbolSize: [260, 40], |
| | | symbolOffset: [0, 20], |
| | | z: 12, |
| | | itemStyle: { |
| | | normal: { |
| | | color: () => |
| | | new echarts.graphic.LinearGradient(0, 1, 1, 0, [ |
| | | { |
| | | offset: 0, |
| | | color: '#03C7F9', |
| | | }, |
| | | { |
| | | offset: 0.9, |
| | | // color: '#03C7F922', |
| | | color: 'rgba(8,44,110, 0.85)', |
| | | }, |
| | | ]), |
| | | // shadowColor: '#03C7F9', |
| | | // shadowBlur: 30, |
| | | // shadowOffsetX: 0, |
| | | // shadowOffsetY: -10, |
| | | }, |
| | | }, |
| | | data: [100 - data], |
| | | }, |
| | | { |
| | | //åºé¨ç«ä½æ± |
| | | stack: '1', |
| | | type: 'bar', |
| | | itemStyle: { |
| | | normal: { |
| | | // color: 'rgba(8,44,110, 0.94)', |
| | | color: () => |
| | | new echarts.graphic.LinearGradient(0, 0, 1, 0, [ |
| | | { |
| | | offset: 0, |
| | | color: 'rgba(18,85,213,0.77)', |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: 'rgba(8,44,110, 0.77)', |
| | | }, |
| | | ]), |
| | | opacity: 0.77, |
| | | }, |
| | | }, |
| | | label: { |
| | | distance: 15, |
| | | show: true, |
| | | position: data > 58 ? 'inside' : 'top', |
| | | formatter: '{c}' + '%', |
| | | fontSize: 80, |
| | | color: '#1AFCFF', |
| | | textShadowColor: '#03C7F9', |
| | | textShadowBlur: 30, |
| | | textShadowOffsetX: 5, |
| | | textShadowOffsetY: 10, |
| | | }, |
| | | |
| | | silent: true, |
| | | barWidth: 250, |
| | | barGap: '-100%', // Make series be overlap |
| | | data: [data], |
| | | }, |
| | | { |
| | | //ä¸é¨ç«ä½æ± |
| | | stack: '1', |
| | | type: 'bar', |
| | | itemStyle: { |
| | | normal: { |
| | | color: () => |
| | | new echarts.graphic.LinearGradient(1, 0, 0, 0, [ |
| | | { |
| | | offset: 0, |
| | | color: '#47C8FF77', |
| | | }, |
| | | { |
| | | offset: 0.05, |
| | | color: '#47C8FF44', |
| | | }, |
| | | { |
| | | offset: 0.15, |
| | | color: '#47C8FF00', |
| | | }, |
| | | { |
| | | offset: 0.85, |
| | | color: '#47C8FF00', |
| | | }, |
| | | { |
| | | offset: 0.95, |
| | | color: '#47C8FF44', |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: '#47C8FF77', |
| | | }, |
| | | ]), |
| | | }, |
| | | }, |
| | | silent: true, |
| | | barWidth: 300, |
| | | barGap: '-100%', // Make series be overlap |
| | | data: [100 - data], |
| | | }, |
| | | ], |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | // initEnergy() |
| | | // initEchart1() |
| | | initWatergage() |
| | | initLiquidlevel() |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | div { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .main_content { |
| | | display: flex; |
| | | padding: 20px 25px 0; |
| | | |
| | | .left_box { |
| | | width: 450px; |
| | | |
| | | .left_box_one { |
| | | width: 100%; |
| | | margin-bottom: 20px; |
| | | border: 1px solid; |
| | | |
| | | .list_wrap { |
| | | padding: 10px 0; |
| | | height: 227px; |
| | | overflow: auto; |
| | | |
| | | .list { |
| | | .line { |
| | | display: flex; |
| | | height: 32px; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | |
| | | .item { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | |
| | | .name { |
| | | flex: 2; |
| | | } |
| | | |
| | | .warnning { |
| | | color: #FEAF01; |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | background: rgba(134, 156, 201, 0.1); |
| | | font-weight: 500; |
| | | |
| | | .item { |
| | | border-right: 1px solid rgba(255, 255, 255, 0.2); |
| | | |
| | | &:nth-last-child(1) { |
| | | border: none; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .separate { |
| | | width: 100%; |
| | | height: 2px; |
| | | background-color: rgba(255, 255, 255, 0.2); |
| | | /* background-color: red; */ |
| | | border-right: 4px solid #00F2F3; |
| | | border-left: 4px solid #00F2F3; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .left_box_two { |
| | | margin-bottom: 20px; |
| | | |
| | | .police_wrap { |
| | | height: 225px; |
| | | |
| | | border: 1px solid; |
| | | |
| | | .echart1 { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .left_box_three { |
| | | .dispose_wrap { |
| | | border: 1px solid; |
| | | height: 210px; |
| | | width: 100%; |
| | | |
| | | .echart2 { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .center_box { |
| | | flex: 1; |
| | | padding: 16px 60px 0; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | |
| | | .center_box_one { |
| | | .static_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin: 30px 0 54px; |
| | | |
| | | .item { |
| | | display: flex; |
| | | |
| | | img { |
| | | width: 61px; |
| | | height: 63px; |
| | | margin-right: 15px; |
| | | } |
| | | |
| | | .content { |
| | | font-size: 15px; |
| | | |
| | | .num { |
| | | font-size: 12px; |
| | | color: #D2E0FF; |
| | | |
| | | span { |
| | | font-weight: bold; |
| | | font-size: 30px; |
| | | margin-right: 5px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #01D9FE 0%, |
| | | #01D9FE 60%, |
| | | #fff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .today { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #20FFC5 50%, |
| | | #20FFC5 100%); |
| | | } |
| | | |
| | | .finish { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #FFB120 50%, |
| | | #FFB120 100%); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .center_box_two { |
| | | width: 100%; |
| | | display: flex; |
| | | |
| | | .content_wrap { |
| | | flex: 1; |
| | | margin-right: 20px; |
| | | |
| | | .title_wrap { |
| | | display: flex; |
| | | |
| | | .title { |
| | | flex: 1; |
| | | } |
| | | } |
| | | |
| | | &:nth-last-child(1) { |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | font-weight: bold; |
| | | font-size: 16px; |
| | | text-shadow: 0px 2px 8px #01ABFE; |
| | | margin-bottom: 20px; |
| | | |
| | | .left { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .icon { |
| | | width: 14px; |
| | | height: 28px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | |
| | | .right { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .num { |
| | | margin: 0 40px; |
| | | } |
| | | |
| | | .icon { |
| | | width: 13px; |
| | | height: 16px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .list_wrap { |
| | | height: 206px; |
| | | background-image: url('@/assets/images/FireFighting/bg_wendu@2x.png'); |
| | | background-size: cover; |
| | | |
| | | .title { |
| | | height: 46px; |
| | | display: flex; |
| | | align-items: center; |
| | | color: #D2E0FF; |
| | | padding-left: 20px; |
| | | |
| | | .icon { |
| | | width: 16px; |
| | | margin-right: 8px; |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | height: 160px; |
| | | display: flex; |
| | | justify-content: space-evenly; |
| | | |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .icon { |
| | | width: 70px; |
| | | height: 70px; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .content { |
| | | .num { |
| | | font-size: 28px; |
| | | font-weight: 500; |
| | | |
| | | span { |
| | | font-style: 14px; |
| | | font-weight: 400; |
| | | } |
| | | } |
| | | |
| | | .la { |
| | | font-size: 13px; |
| | | color: #869CC9; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .watergage_wrap { |
| | | text-align: center; |
| | | |
| | | .watergage { |
| | | width: 130px; |
| | | height: 112px; |
| | | } |
| | | |
| | | .unit { |
| | | font-weight: 500; |
| | | font-size: 18px; |
| | | position: relative; |
| | | bottom: 16px; |
| | | left: 4px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | | } |
| | | } |
| | | |
| | | .place { |
| | | position: relative; |
| | | bottom: 16px; |
| | | left: 4px; |
| | | font-size: 13px; |
| | | color: #869CC9; |
| | | } |
| | | } |
| | | |
| | | .liquidlevel_wrap { |
| | | transform: scale(0.24); |
| | | color: #fff; |
| | | text-align: center; |
| | | position: relative; |
| | | left: 20px; |
| | | bottom: 10px; |
| | | .unit { |
| | | font-weight: 500; |
| | | font-size: 80px; |
| | | position: relative; |
| | | bottom: 24px; |
| | | left: 4px; |
| | | |
| | | span { |
| | | font-size: 52px; |
| | | font-weight: 400; |
| | | } |
| | | } |
| | | |
| | | .place { |
| | | position: relative; |
| | | bottom: 10px; |
| | | left: 4px; |
| | | font-size:44px; |
| | | color: #869CC9; |
| | | } |
| | | |
| | | .liquidlevel { |
| | | width: 320px; |
| | | height: 420px; |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .right_box { |
| | | width: 450px; |
| | | |
| | | .right_box_one { |
| | | .content_wrap { |
| | | height: 176px; |
| | | |
| | | .list { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .item { |
| | | height: 116px; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | |
| | | .num { |
| | | margin-top: 12px; |
| | | font-weight: bold; |
| | | font-size: 32px; |
| | | } |
| | | |
| | | .active { |
| | | color: #00F2F3; |
| | | } |
| | | } |
| | | |
| | | .separate { |
| | | width: 1px; |
| | | height: 50px; |
| | | background-color: rgba(255, 255, 255, 0.21); |
| | | } |
| | | } |
| | | |
| | | .footer { |
| | | display: flex; |
| | | |
| | | .icon { |
| | | width: 40px; |
| | | height: 41px; |
| | | margin-right: 2px; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | font-size: 16px; |
| | | height: 40px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | background: linear-gradient(270deg, rgba(1, 217, 254, 0) 0%, rgba(1, 217, 254, 0.19) 100%); |
| | | border: 1px solid; |
| | | border-image: linear-gradient(270deg, rgba(1, 217, 254, 0), rgba(1, 217, 254, 0.6)) 1 1; |
| | | |
| | | .num { |
| | | font-size: 20px; |
| | | font-weight: bold; |
| | | |
| | | span { |
| | | font-size: 13px; |
| | | color: #869CC9; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .right_box_two { |
| | | .su_title { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | margin: 20px; |
| | | |
| | | .icon { |
| | | width: 17px; |
| | | height: 17px; |
| | | margin-right: 7px; |
| | | } |
| | | } |
| | | |
| | | .static_wrap { |
| | | display: flex; |
| | | justify-content: space-evenly; |
| | | align-items: center; |
| | | height: 110px; |
| | | |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | img { |
| | | width: 80px; |
| | | height: 80px; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .content { |
| | | font-size: 14px; |
| | | |
| | | .num { |
| | | font-size: 12px; |
| | | color: #D2E0FF; |
| | | margin-top: 8px; |
| | | |
| | | span { |
| | | font-weight: bold; |
| | | font-size: 24px; |
| | | margin-right: 4px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #01D9FE 0%, |
| | | #01D9FE 60%, |
| | | #fff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .today { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #FFB120 50%, |
| | | #FFB120 100%); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .list { |
| | | height: 330px; |
| | | overflow: auto; |
| | | margin-top: 15px; |
| | | scrollbar-width: none; |
| | | |
| | | .item { |
| | | display: flex; |
| | | font-size: 13px; |
| | | color: #D2E0FF; |
| | | |
| | | .icon { |
| | | width: 40px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | padding-top: 10px; |
| | | |
| | | .circle { |
| | | width: 7px; |
| | | height: 7px; |
| | | border-radius: 50%; |
| | | background: #01D9FE; |
| | | box-shadow: 0px 0px 1px 4px #34788f; |
| | | /* opacity: 0.52; */ |
| | | } |
| | | |
| | | .line { |
| | | margin-top: 3px; |
| | | width: 1px; |
| | | flex: 1; |
| | | background-color: #153947; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .time { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .status { |
| | | height: 18px; |
| | | line-height: 18px; |
| | | border-radius: 2px; |
| | | padding: 2px 4px; |
| | | border: 1px solid #869CC9; |
| | | font-size: 12px; |
| | | margin-left: 8px; |
| | | } |
| | | } |
| | | |
| | | .have_time { |
| | | font-size: 12px; |
| | | color: #D2E0FF; |
| | | |
| | | span { |
| | | color: #FEAF01; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .wrap { |
| | | height: 40px; |
| | | background: linear-gradient(270deg, rgba(254, 85, 1, 0) 0%, rgba(254, 85, 1, 0.19) 100%); |
| | | border-radius: 2px 0px 0px 2px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid; |
| | | margin-bottom: 20px; |
| | | margin-top: 8px; |
| | | padding: 0 10px; |
| | | border-image: linear-gradient(270deg, rgba(254, 85, 1, 0), rgba(254, 85, 1, 0.6)) 1 1; |
| | | |
| | | .title { |
| | | flex: 4; |
| | | font-weight: bold; |
| | | font-size: 15px; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | margin-left: 4px; |
| | | } |
| | | |
| | | .xf { |
| | | width: 14px; |
| | | height: 14px; |
| | | } |
| | | |
| | | .addr { |
| | | width: 12px; |
| | | height: 12px; |
| | | } |
| | | } |
| | | |
| | | .address { |
| | | flex: 6; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 90px; |
| | | position: relative; |
| | | padding: 0px 40px 16px; |
| | | font-weight: 600; |
| | | font-size: 36px; |
| | | |
| | | .title { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 70%, |
| | | #85b4ff 80%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .time_wrap { |
| | | font-size: 26px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 50%, |
| | | #85b4ff 80%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .time { |
| | | width: 130px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | font-size: 30px; |
| | | } |
| | | |
| | | .week { |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | |
| | | .main_header_bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | |
| | | .com_header { |
| | | height: 40px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 15px 0 13px; |
| | | position: relative; |
| | | |
| | | .title { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: bold; |
| | | font-size: 16px; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 66%, |
| | | #85b4ff 72%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | |
| | | .icon { |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 14px; |
| | | } |
| | | } |
| | | |
| | | .tabs { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #d2e0ff; |
| | | |
| | | .separate { |
| | | width: 1px; |
| | | height: 14px; |
| | | background-color: #d2e0ff; |
| | | margin: 0 6px; |
| | | } |
| | | |
| | | .active { |
| | | color: #0094eb; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_app { |
| | | width: 1920px; |
| | | height: 960px; |
| | | /* width: 100%; |
| | | height: 100vh; */ |
| | | background: #0b2539; |
| | | color: #FFFFFF; |
| | | position: relative; |
| | | z-index: -2; |
| | | font-size: 14px; |
| | | |
| | | .main_bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | |
| | | .bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <v-scale-screen width="1920" height="960"> |
| | | <div class="main_app"> |
| | | <img src="@/assets/images/LogisticsCenter/bg@2x.png" class="main_bg" alt="" /> |
| | | <div class="main_header"> |
| | | <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" /> |
| | | <div class="title">å®å¾½ä¸çç©æµä¸å¿è¿è¡å¤§å±</div> |
| | | <div class="time_wrap"> |
| | | <span class="date">{{ date }}</span> |
| | | <span class="week">{{ week }}</span> |
| | | <span class="time">{{ time }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="left_box"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>订åå¨éè·è¸ª</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="left_box_one"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>æ¬å¹´ç´¯è®¡åºåºé</div> |
| | | </div> |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="num_wrap"> |
| | | <div class="num_list"> |
| | | <div class="num" v-for="i in '200000'"> |
| | | {{ i }} |
| | | <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="unit_wrap"> |
| | | <span class="la">忝</span> |
| | | <img src="@/assets/images/ic_up.png" class="icon" alt=""> |
| | | <span>10.2%</span> |
| | | <span class="la" style="margin-left: 30px;margin-right: 10px;">累计åºåºè½¦æ¬¡</span> |
| | | <span>3900</span> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="echart_wrap"> |
| | | <div class="echart1" id="echart1"></div> |
| | | <div class="list"> |
| | | <div class="item" v-for="item, i in StockOutData" :key="i"> |
| | | <div :style="{ background: colors[i] }" class="icon"></div> |
| | | <div class="text">{{ item.name }}</div> |
| | | <div class="num">{{ item.value }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="left_box_two"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>è¿7æ¥å°è´§æ
åµ</div> |
| | | </div> |
| | | </div> |
| | | <div class="energy_wrap"> |
| | | <div class="energyRef"></div> |
| | | </div> |
| | | </div> |
| | | <div class="left_box_three"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>å½åè¿è¾ä»»å¡</div> |
| | | </div> |
| | | <div class="search_wrap"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_search@2x.png" alt=""> |
| | | <span>è®¢åæ¥è¯¢</span> |
| | | </div> |
| | | </div> |
| | | <div class="list_wrap"> |
| | | <div class="header line"> |
| | | <span class="item">è¿è¾è½¦è¾</span> |
| | | <span class="item">ç¶æ</span> |
| | | <span class="item">ä½ç½®</span> |
| | | <span class="item">ä»»å¡ä¸è¾¾æ¶é´</span> |
| | | </div> |
| | | <div class="line" v-for="i in 5"> |
| | | <span class="item">çA23bbb</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | <span class="item">11</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="center_box"> |
| | | <div class="center_box_one"> |
| | | <div class="header_wrap"> |
| | | <div class="left"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <span>åºåºè½å</span> |
| | | </div> |
| | | <div class="right"> |
| | | <img src="@/assets/images/LogisticsCenter/position.png" class="posi" alt=""> |
| | | <span>å
¨ç</span> |
| | | <img src="@/assets/images/LogisticsCenter/bottom.png" class="icon" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="static_wrap"> |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinrijihua@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">仿¥è®¡åé</div> |
| | | <div class="num"><span>1000</span>䏿¯</div> |
| | | <div class="unit">车次ï¼10</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinrichuku@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">仿¥åºåºé</div> |
| | | <div class="num"><span class="today">1000</span>䏿¯</div> |
| | | <div class="unit">车次ï¼10</div> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_jinriweichu@2x.png" alt=""> |
| | | <div class="content"> |
| | | <div class="name">仿¥æªåºåºé</div> |
| | | <div class="num"><span class="finish">1000</span>䏿¯</div> |
| | | <div class="unit">车次ï¼10</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="footer"> |
| | | <span>å åºåºè½å</span> |
| | | <span class="num">80%</span> |
| | | </div> |
| | | </div> |
| | | <div class="center_box_two"></div> |
| | | </div> |
| | | <div class="right_box"> |
| | | <div class="com_header"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>ä»å¨ä¸åºå¶</div> |
| | | </div> |
| | | <img src="@/assets/images/title@2x.png" class="bg" alt="" /> |
| | | </div> |
| | | <div class="right_box_one"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>æ¬å¹´ç´¯è®¡å
¥åºé</div> |
| | | </div> |
| | | </div> |
| | | <div class="content_wrap"> |
| | | <div class="num_wrap"> |
| | | <div class="num_list"> |
| | | <div class="num" v-for="i in '200000'"> |
| | | {{ i }} |
| | | <img class="bg" src="@/assets/images/LogisticsCenter/bg_number@2x.png" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="content"> |
| | | <div class="unit_wrap"> |
| | | <span class="la">忝</span> |
| | | <img src="@/assets/images/ic_up.png" class="icon" alt=""> |
| | | <span>10.2%</span> |
| | | <span class="la" style="margin-left: 30px;margin-right: 10px;">累计åºåºè½¦æ¬¡</span> |
| | | <span>3900</span> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="static_wrap"> |
| | | <div class="echart_wrap"> |
| | | <div class="echart3" id="echart3"></div> |
| | | <div class="pie_text"> |
| | | <div class="fs30">30%</div> |
| | | </div> |
| | | </div> |
| | | <div class="text">计å宿é</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_two"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>è¿éåè¿è¥</div> |
| | | </div> |
| | | <div class="tabs"> |
| | | <div class="tab active">7天</div> |
| | | <div class="separate"></div> |
| | | <div class="tab">30天</div> |
| | | <div class="separate"></div> |
| | | <div class="tab">1å¹´</div> |
| | | </div> |
| | | </div> |
| | | <div class="echart4_wrap"> |
| | | <div class="echart4" id="echart4"></div> |
| | | </div> |
| | | </div> |
| | | <div class="right_box_three"> |
| | | <div class="second_title"> |
| | | <div class="title"> |
| | | <img src="@/assets/images/LogisticsCenter/ic_title@2x.png" class="icon" alt="" /> |
| | | <div>åºåå©ç¨ç</div> |
| | | </div> |
| | | </div> |
| | | <div class="echart5_wrap"> |
| | | <div class="echart5" id="echart5"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </v-scale-screen> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue' |
| | | import VScaleScreen from 'v-scale-screen' |
| | | import Percent from '@/components/percent.vue' |
| | | import dayjs from 'dayjs' |
| | | |
| | | import * as echarts from 'echarts' |
| | | const weekMap = ['æææ¥', 'ææä¸', 'ææäº', 'ææä¸', 'ææå', 'ææäº', 'ææå
',] |
| | | const date = ref(dayjs().format('YYYY.MM.DD')) |
| | | const week = ref(weekMap[new Date().getDay()]) |
| | | const time = ref(dayjs().format('HH:mm:ss')) |
| | | setInterval(() => { |
| | | date.value = dayjs().format('YYYY-MM-DD') |
| | | week.value = weekMap[new Date().getDay()] |
| | | time.value = dayjs().format('HH:mm:ss') |
| | | |
| | | }, 1000) |
| | | |
| | | const colors = ['#0193FE', '#FFB642', '#5fc6d5'] |
| | | const StockOutData = ref([]) |
| | | const getStockOut = () => { |
| | | let arr = [] |
| | | arr.push({ name: '访客', value: 20 }) |
| | | arr.push({ name: 'å
³æ¹', value: 30 }) |
| | | arr.sort((a, b) => b.value - a.value) |
| | | StockOutData.value = arr |
| | | initEchart1() |
| | | } |
| | | const initEchart1 = () => { |
| | | const myChart = echarts.init(document.getElementById('echart1')) |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: ['72%', '96%'], |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | }, |
| | | color: colors, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: StockOutData.value |
| | | } |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart3 = () => { |
| | | const myChart = echarts.init(document.getElementById('echart3')) |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: ['80%', '96%'], |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | }, |
| | | color: ['#72ecc5', '#19373a'], |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: StockOutData.value |
| | | } |
| | | ] |
| | | } |
| | | myChart.setOption(option) |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart4 = () => { |
| | | // åºäºåå¤å¥½çdomï¼åå§åechartså®ä¾ |
| | | const myChart = echarts.init(document.getElementById('echart4')) |
| | | // ç»å¶å¾è¡¨ |
| | | myChart.setOption({ |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'line' |
| | | }, |
| | | formatter: function (params) { |
| | | setTimeout(() => { |
| | | console.log('params', params) |
| | | }) |
| | | return ` |
| | | <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;"> |
| | | <div>${params[0].name}æ»éå®é¢(ä¸å
)</div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div> |
| | | <div style="margin: 0 4px 0 6px;">æ»éå®</div> |
| | | <span style="color: #ebbf40;">${params[0].value}</span> |
| | | </div> |
| | | </div> |
| | | ` |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: [1, 2, 3, 4, 5, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: '䏿¯', |
| | | nameTextStyle: { |
| | | padding: [0, 0, 0, -16] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | //è¿éè¾å
¥çº¿æ¡çæ ·å¼ |
| | | color: 'rgba(255,255,255,0.14)', |
| | | type: 'dashed', |
| | | }, |
| | | splitNumber: 4 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '18%', |
| | | left: '0%', |
| | | right: '2%', |
| | | bottom: '2%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | data: ['æ»å
¥åºé', 'æ»åºåºé'] |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'æ»å
¥åºé', |
| | | data: [10, 2, 30, 4, 4, 30].map(i => { |
| | | return { |
| | | name: i, |
| | | value: i, |
| | | } |
| | | }), |
| | | type: 'line', |
| | | areaStyle: { |
| | | normal: { |
| | | color: { |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [ |
| | | { |
| | | offset: 0, |
| | | color: "#4191f6" // 0% å¤çé¢è² |
| | | }, |
| | | { |
| | | offset: .4, |
| | | color: "#203d79" // 0% å¤çé¢è² |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: "#1b1b12" // 100% å¤çé¢è² |
| | | }], |
| | | globalCoord: false // 缺ç为 false |
| | | } |
| | | } |
| | | }, |
| | | lineStyle: { // çº¿æ¡æ ·å¼ |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, color: '#4191f6' // 0% å¤çé¢è² |
| | | }, { |
| | | offset: 1, color: '#4191f6' // 100% å¤çé¢è² |
| | | }], |
| | | }, |
| | | width: 1.5, // 线æ¡ç²ç» |
| | | }, |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#4191f6', //æçº¿ç¹çé¢è² |
| | | }, |
| | | }, |
| | | smooth: true |
| | | }, |
| | | { |
| | | name: 'æ»åºåºé', |
| | | data: [30, 2, 10, 4, 4, 20].map(i => { |
| | | return { |
| | | name: i, |
| | | value: i, |
| | | } |
| | | }), |
| | | type: 'line', |
| | | areaStyle: { |
| | | normal: { |
| | | color: { |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, |
| | | color: "rgba(192, 156, 53,.7)" // 0% å¤çé¢è² |
| | | }, { |
| | | offset: 1, |
| | | color: "#1b1b12" // 100% å¤çé¢è² |
| | | }], |
| | | globalCoord: false // 缺ç为 false |
| | | } |
| | | } |
| | | }, |
| | | lineStyle: { // çº¿æ¡æ ·å¼ |
| | | color: { |
| | | type: 'linear', |
| | | x: 0, |
| | | y: 0, |
| | | x2: 0, |
| | | y2: 1, |
| | | colorStops: [{ |
| | | offset: 0, color: '#F3BD00' // 0% å¤çé¢è² |
| | | }, { |
| | | offset: 1, color: '#F3BD00' // 100% å¤çé¢è² |
| | | }], |
| | | }, |
| | | width: 2, // 线æ¡ç²ç» |
| | | }, |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#F3BD00', //æçº¿ç¹çé¢è² |
| | | }, |
| | | }, |
| | | smooth: true |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | window.addEventListener('resize', function () {//æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart5 = () => { |
| | | // åºäºåå¤å¥½çdomï¼åå§åechartså®ä¾ |
| | | const myChart = echarts.init(document.getElementById('echart5')) |
| | | // ç»å¶å¾è¡¨ |
| | | myChart.setOption({ |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'cross', |
| | | crossStyle: { |
| | | color: '#999' |
| | | } |
| | | } |
| | | }, |
| | | toolbox: { |
| | | feature: { |
| | | dataView: { show: true, readOnly: false }, |
| | | magicType: { show: true, type: ['line', 'bar'] }, |
| | | restore: { show: true }, |
| | | saveAsImage: { show: true } |
| | | } |
| | | }, |
| | | legend: { |
| | | data: ['Evaporation', 'Precipitation', 'Temperature'] |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | name: 'Precipitation', |
| | | min: 0, |
| | | max: 250, |
| | | interval: 50, |
| | | axisLabel: { |
| | | formatter: '{value} ml' |
| | | } |
| | | }, |
| | | { |
| | | type: 'value', |
| | | name: 'Temperature', |
| | | min: 0, |
| | | max: 25, |
| | | interval: 5, |
| | | axisLabel: { |
| | | formatter: '{value} °C' |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'Evaporation', |
| | | type: 'bar', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + ' ml' |
| | | } |
| | | }, |
| | | data: [ |
| | | 2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3 |
| | | ] |
| | | }, |
| | | { |
| | | name: 'Precipitation', |
| | | type: 'bar', |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + ' ml' |
| | | } |
| | | }, |
| | | data: [ |
| | | 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3 |
| | | ] |
| | | }, |
| | | { |
| | | name: 'Temperature', |
| | | type: 'line', |
| | | yAxisIndex: 1, |
| | | tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + ' °C' |
| | | } |
| | | }, |
| | | data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | window.addEventListener('resize', function () {//æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | const initEnergy = () => { |
| | | var myChart = echarts.init(document.querySelector('.energyRef')) |
| | | // ç»å¶å¾è¡¨ |
| | | const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a'] |
| | | myChart.setOption({ |
| | | grid: { |
| | | top: '20%', |
| | | left: '2%', |
| | | right: '2%', |
| | | bottom: '4%', |
| | | containLabel: true |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'line' |
| | | }, |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: [1, 2, 3, 4, 4, 5] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | name: 'kw·h', |
| | | nameTextStyle: { |
| | | padding: [0, 0, 4, -30] // å个æ°ååå«ä¸ºä¸å³ä¸å·¦ä¸åä½ç½®è·ç¦» |
| | | }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | //è¿éè¾å
¥çº¿æ¡çæ ·å¼ |
| | | color: 'rgba(255,255,255,0.14)', |
| | | } |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [1, 2, 3, 4, 5], |
| | | type: 'bar', |
| | | barWidth: 10, |
| | | 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] |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | window.addEventListener('resize', function () {//æ§è¡ |
| | | myChart.resize() |
| | | }) |
| | | } |
| | | const initEchart2 = () => { |
| | | 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() |
| | | }) |
| | | } |
| | | |
| | | onMounted(() => { |
| | | initEnergy() |
| | | getStockOut() |
| | | initEchart2() |
| | | initEchart3() |
| | | initEchart4() |
| | | initEchart5() |
| | | }) |
| | | |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | div { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .main_content { |
| | | display: flex; |
| | | padding: 20px 25px 0; |
| | | |
| | | .left_box { |
| | | width: 440px; |
| | | |
| | | .left_box_one { |
| | | margin-top: 20px; |
| | | padding: 0px 10px 30px 20px; |
| | | border: 1px solid; |
| | | |
| | | .content_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .num_wrap { |
| | | width: 272px; |
| | | |
| | | .num_list { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | |
| | | .num { |
| | | width: 30px; |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | position: relative; |
| | | font-weight: 600; |
| | | font-size: 32px; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | display: flex; |
| | | color: #D2E0FF; |
| | | |
| | | .la { |
| | | color: #869CC9; |
| | | } |
| | | |
| | | .unit_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .icon { |
| | | width: 10px; |
| | | height: 12px; |
| | | margin-right: 6px; |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .echart_wrap { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | height: 48px; |
| | | |
| | | .echart1 { |
| | | width: 46px; |
| | | height: 46px; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .list { |
| | | flex: 1; |
| | | font-size: 13px; |
| | | |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 8px 0; |
| | | |
| | | .icon { |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 50%; |
| | | margin-right: 4px; |
| | | background: linear-gradient(270deg, #29aeff 0%, #207ff7 100%); |
| | | } |
| | | |
| | | .text { |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .left_box_two { |
| | | margin-bottom: 20px; |
| | | border: 1px solid; |
| | | |
| | | .energy_wrap { |
| | | width: 100%; |
| | | height: 250px; |
| | | |
| | | .energyRef { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .left_box_three { |
| | | width: 440px; |
| | | padding: 0 15px; |
| | | border: 1px solid; |
| | | |
| | | .second_title { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .list_wrap { |
| | | .line { |
| | | display: flex; |
| | | height: 40px; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #D2E0FF; |
| | | |
| | | &:nth-of-type(2n) { |
| | | background: rgba(134, 156, 201, 0.05); |
| | | } |
| | | |
| | | .item { |
| | | flex: 1; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | } |
| | | |
| | | .header { |
| | | font-weight: 500; |
| | | color: #01D9FE; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .center_box { |
| | | flex: 1; |
| | | padding: 0 20px; |
| | | margin: 0 40px; |
| | | |
| | | .center_box_one { |
| | | background: rgba(255, 255, 255, 0.02); |
| | | height: 230px; |
| | | border-top: 2px solid #306ba1; |
| | | padding-top: 20px; |
| | | |
| | | .header_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 28px; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 66%, |
| | | #85b4ff 72%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | |
| | | .left { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | img { |
| | | width: 16px; |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | |
| | | .right { |
| | | display: flex; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | |
| | | .posi { |
| | | width: 16px; |
| | | margin-right: 8px; |
| | | } |
| | | |
| | | .icon { |
| | | width: 14px; |
| | | margin-left: 2px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .static_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin: 30px 0 14px; |
| | | |
| | | .item { |
| | | display: flex; |
| | | |
| | | img { |
| | | width: 68px; |
| | | height: 71px; |
| | | margin-right: 15px; |
| | | } |
| | | |
| | | .content { |
| | | font-size: 15px; |
| | | |
| | | .num { |
| | | font-size: 12px; |
| | | color: #D2E0FF; |
| | | |
| | | span { |
| | | font-weight: bold; |
| | | font-size: 30px; |
| | | margin-right: 5px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #01D9FE 0%, |
| | | #01D9FE 60%, |
| | | #fff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .today { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #20FFC5 50%, |
| | | #20FFC5 100%); |
| | | } |
| | | |
| | | .finish { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #fff 0%, |
| | | #FFB120 50%, |
| | | #FFB120 100%); |
| | | } |
| | | } |
| | | |
| | | .unit { |
| | | font-size: 13px; |
| | | color: #D2E0FF; |
| | | margin-top: 2px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .footer { |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .num { |
| | | font-weight: bold; |
| | | font-size: 24px; |
| | | color: #01D9FE; |
| | | margin-left: 8px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .center_box_two { |
| | | width: 100%; |
| | | border: 1px solid; |
| | | } |
| | | } |
| | | |
| | | .right_box { |
| | | width: 440px; |
| | | |
| | | .right_box_one { |
| | | margin-top: 20px; |
| | | padding: 0px 10px 30px 20px; |
| | | border: 1px solid; |
| | | |
| | | .content_wrap { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .num_wrap { |
| | | width: 280px; |
| | | |
| | | .num_list { |
| | | display: flex; |
| | | margin-bottom: 20px; |
| | | |
| | | .num { |
| | | width: 30px; |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | position: relative; |
| | | font-weight: 600; |
| | | font-size: 32px; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | display: flex; |
| | | color: #D2E0FF; |
| | | |
| | | .la { |
| | | color: #869CC9; |
| | | } |
| | | |
| | | .unit_wrap { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .icon { |
| | | width: 10px; |
| | | height: 12px; |
| | | margin-right: 6px; |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .static_wrap { |
| | | flex: 1; |
| | | |
| | | .echart_wrap { |
| | | width: 54px; |
| | | height: 54px; |
| | | position: relative; |
| | | margin-bottom: 12px; |
| | | |
| | | .echart3 { |
| | | width: 54px; |
| | | height: 54px; |
| | | } |
| | | |
| | | .pie_text { |
| | | width: 38px; |
| | | height: 38px; |
| | | border: 1px dashed rgba(210, 224, 255, 0.48); |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | |
| | | left: 50%; |
| | | top: 50%; |
| | | transform: translate(-50%, -50%); |
| | | z-index: 999; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 12px; |
| | | |
| | | .fs30 { |
| | | font-weight: 600; |
| | | font-size: 14px; |
| | | color: #28F0C4; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .text { |
| | | font-size: 13px; |
| | | color: #869CC9; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .right_box_two { |
| | | border: 1px solid; |
| | | padding: 10px 15px; |
| | | |
| | | .echart4_wrap { |
| | | width: 410px; |
| | | height: 216px; |
| | | |
| | | .echart4 { |
| | | width: 410px; |
| | | height: 216px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .right_box_three { |
| | | border: 1px solid; |
| | | |
| | | .echart5_wrap { |
| | | height: 240px; |
| | | width: 410px; |
| | | |
| | | .echart5 { |
| | | height: 240px; |
| | | width: 410px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | height: 90px; |
| | | position: relative; |
| | | padding: 0px 40px 16px; |
| | | font-weight: 600; |
| | | font-size: 36px; |
| | | |
| | | .title { |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 70%, |
| | | #85b4ff 80%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .time_wrap { |
| | | font-size: 26px; |
| | | font-weight: 600; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 50%, |
| | | #85b4ff 80%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .time { |
| | | width: 130px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | font-size: 30px; |
| | | } |
| | | |
| | | .week { |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | |
| | | .main_header_bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | |
| | | .com_header { |
| | | height: 40px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 15px 0 13px; |
| | | position: relative; |
| | | |
| | | .title { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | background-image: -webkit-linear-gradient(top, |
| | | #ffffff 0%, |
| | | #c8ddff 66%, |
| | | #85b4ff 72%, |
| | | #74a9ff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | |
| | | .icon { |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 14px; |
| | | } |
| | | } |
| | | |
| | | .tabs { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #d2e0ff; |
| | | |
| | | .separate { |
| | | width: 1px; |
| | | height: 14px; |
| | | background-color: #d2e0ff; |
| | | margin: 0 6px; |
| | | } |
| | | |
| | | .active { |
| | | color: #0094eb; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .second_title { |
| | | height: 24px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | position: relative; |
| | | font-size: 16px; |
| | | margin-bottom: 20px; |
| | | |
| | | .title { |
| | | display: flex; |
| | | align-items: center; |
| | | font-weight: 500; |
| | | font-size: 16px; |
| | | color: #FFFFFF; |
| | | |
| | | .icon { |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | |
| | | .num_wrap { |
| | | font-weight: 400; |
| | | font-size: 14px; |
| | | color: #D2E0FF; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .val { |
| | | font-weight: bold; |
| | | font-size: 16px; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | |
| | | .search_wrap { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #869CC9; |
| | | width: 96px; |
| | | height: 28px; |
| | | border-radius: 14px; |
| | | border: 1px solid #869CC9; |
| | | |
| | | img { |
| | | width: 14px; |
| | | height: 14px; |
| | | margin-right: 3px; |
| | | } |
| | | } |
| | | |
| | | .tabs { |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | color: #d2e0ff; |
| | | |
| | | .separate { |
| | | width: 1px; |
| | | height: 14px; |
| | | background-color: #d2e0ff; |
| | | margin: 0 6px; |
| | | } |
| | | |
| | | .active { |
| | | color: #0094eb; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main_app { |
| | | width: 1920px; |
| | | height: 960px; |
| | | /* width: 100%; |
| | | height: 100vh; */ |
| | | background: #0b2539; |
| | | color: #FFFFFF; |
| | | position: relative; |
| | | z-index: -2; |
| | | font-size: 14px; |
| | | |
| | | .main_bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | |
| | | .bg { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | object-fit: cover; |
| | | z-index: -1; |
| | | } |
| | | </style> |
| | |
| | | align-items: center; |
| | | |
| | | .time { |
| | | width: 180px; |
| | | width: 130px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding-bottom: 10px; |
| | | font-size: 36px; |
| | | font-size: 30px; |
| | | } |
| | | |
| | | .week { |
| | | margin-left: 36px; |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | |
| | |
| | | align-items: center; |
| | | |
| | | .time { |
| | | width: 180px; |
| | | width: 130px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding-bottom: 10px; |
| | | font-size: 36px; |
| | | font-size: 30px; |
| | | } |
| | | |
| | | .week { |
| | | margin-left: 36px; |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | |