From 8fafe168ceb438d295f702c30d3f6f92caf8ba26 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 19 九月 2024 10:23:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
screen/package-lock.json | 23
h5_meeting/static/ic_people@2x.png | 0
h5_meeting/static/icon/right.svg | 1
h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js | 300 ++++++++
h5_meeting/index.html | 20
h5_meeting/utils/config.js | 20
h5_meeting/pages/index/index.vue | 264 +++++++
h5_meeting/static/ic_meeting@2x.png | 0
h5_meeting/static/ic_time@2x.png | 0
h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map | 7
h5_meeting/package.json | 5
screen/src/components/ChargeRate.vue | 37 +
admin/src/views/meeting/components/OperaRoomsWindow.vue | 203 ++++-
h5/manifest.json | 6
screen/src/views/EnergyConsum.vue | 614 +++++++++++++++--
admin/.env.development | 4
h5_meeting/manifest.json | 96 ++
h5_meeting/static/bg@2x.png | 0
h5_meeting/unpackage/dist/cache/.vite/deps/package.json | 3
h5_meeting/api/index.js | 12
h5_meeting/main.js | 22
h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json | 15
h5_meeting/utils/service.js | 73 ++
screen/package.json | 1
h5_meeting/App.vue | 20
screen/src/router/index.js | 8
h5_meeting/package-lock.json | 17
h5_meeting/pages.json | 24
h5_meeting/uni.promisify.adaptor.js | 10
h5_meeting/uni.scss | 76 ++
h5/pages/staff/task/vDangetAppr.vue | 24
h5_meeting/static/logo.png | 0
h5_meeting/pages/index/config.vue | 103 +++
33 files changed, 1,852 insertions(+), 156 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 81a6a8a..7ba7bdf 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,5 +2,5 @@
NODE_ENV = 'development'
VUE_APP_API_URL = 'http://localhost:10010'
-# VUE_APP_API_URL = 'http://192.168.31.42:10010'
-VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface'
+VUE_APP_API_URL = 'http://192.168.0.139:10010'
+# VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface'
diff --git a/admin/src/views/meeting/components/OperaRoomsWindow.vue b/admin/src/views/meeting/components/OperaRoomsWindow.vue
index 22561e6..15981d2 100644
--- a/admin/src/views/meeting/components/OperaRoomsWindow.vue
+++ b/admin/src/views/meeting/components/OperaRoomsWindow.vue
@@ -1,67 +1,58 @@
<template>
- <GlobalAlertWindow
- v-loading="isUploading"
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
+ <GlobalAlertWindow v-loading="isUploading" :title="title" :visible.sync="visible" :confirm-working="isWorking"
+ @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�">
<el-form-item label="浼氳瀹ゅ悕绉�" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" :maxlength="10" v-trim/>
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁鍚嶇О" :maxlength="10" v-trim />
</el-form-item>
<el-form-item label="寮�鏀炬椂闂�" prop="timeRange">
- <el-time-picker
- is-range
- value-format="HH:mm"
- format="HH:mm"
- v-model="timeRange"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- placeholder="閫夋嫨鏃堕棿鑼冨洿"
- @change="selectRange"
- ></el-time-picker>
+ <el-time-picker is-range value-format="HH:mm" format="HH:mm" v-model="timeRange" range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" @change="selectRange"></el-time-picker>
</el-form-item>
<el-form-item label="绮掑害鍒嗛挓" prop="intervalTime">
- <el-input v-model="form.intervalTime" type="number" placeholder="璇疯緭鍏ユ椂闂寸矑搴︼紙鍒嗛挓锛�" v-trim/>
+ <el-input v-model="form.intervalTime" type="number" placeholder="璇疯緭鍏ユ椂闂寸矑搴︼紙鍒嗛挓锛�" v-trim />
</el-form-item>
<el-form-item label="瀹圭撼浜烘暟" prop="limitNum">
- <el-input v-model="form.limitNum" type="number" placeholder="璇疯緭鍏ュ绾充汉鏁�" v-trim/>
+ <el-input v-model="form.limitNum" type="number" placeholder="璇疯緭鍏ュ绾充汉鏁�" v-trim />
</el-form-item>
<el-form-item label="绠$悊鍛�" prop="sysList">
- <el-select
- v-model="form.sysList"
- filterable
- multiple
- clearable
- placeholder="璇烽�夋嫨閮ㄩ棬"
- >
- <!-- :label="`${item.department.name}-${item.realname}`" -->
- <el-option
- v-for="item in userList()"
- :key="item.id"
- :value="item.id"
- :label="item.companyId?`${item.companyName}-${item.companyName}`:item.realname"
- />
+ <el-select v-model="form.sysList" filterable multiple clearable placeholder="璇烽�夋嫨閮ㄩ棬">
+ <!-- :label="`${item.department.name}-${item.realname}`" -->
+ <el-option v-for="item in userList()" :key="item.id" :value="item.id"
+ :label="item.companyId ? `${item.companyName}-${item.companyName}` : item.realname" />
</el-select>
</el-form-item>
<el-form-item 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="imgurl">
- <UploadAvatarImage
- :file="{ 'imgurlfull': form.imgFullUrl, 'imgurl': form.imgurl }"
- :uploadData="uploadData"
- @uploadSuccess="uploadAvatarSuccess"
- @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true"
- />
+ <el-form-item label="绌洪棽灞曠ず鍐呭" prop="fileType">
+ <el-radio v-model="form.fileType" @change="changeFile" :label="2">鏃�</el-radio>
+ <el-radio v-model="form.fileType" @change="changeFile" :label="0">鍥剧墖</el-radio>
+ <el-radio v-model="form.fileType" @change="changeFile" :label="1">瑙嗛</el-radio>
+ </el-form-item>
+ <el-form-item v-if="form.fileType == 0" label="灞曠ず鍥剧墖" prop="imgurl">
+ <div class="upload_wrap">
+ <el-upload class="avatar-uploader" accept=".png,.jpg,.jpeg" :action="uploadImgUrl" :data="uploadData"
+ :show-file-list="false" :on-success="handleImgSuccess">
+ <div>
+ <i class="el-icon-plus avatar-uploader-icon"></i>
+ </div>
+ </el-upload>
+ <div v-for="item, i in form.multifileList" class="img_wrap">
+ <img :src="item.fileurlFull" class="img">
+ <i class="el-icon-error del" @click="imgDel(i)"></i>
+ </div>
+ </div>
+ </el-form-item>
+ <el-form-item v-if="form.fileType == 1" label="灞曠ず瑙嗛" prop="imgurl">
+ <UploadAvatarVideo :file="{ 'videourlfull': form.videoFullUrl, 'videourl': form.videourl }" :uploadData="uploadData"
+ @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" @uploadBegin="isUploading = true" />
</el-form-item>
<el-form-item label="浣跨敤椤荤煡" prop="tips">
- <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim/>
+ <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim />
</el-form-item>
</el-form>
</GlobalAlertWindow>
@@ -70,14 +61,14 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import UploadAvatarVideo from '@/components/common/UploadAvatarVideo'
import { numRule } from '@/utils/form'
import { fetchList } from '@/api/meeting/projects'
export default {
name: 'OperaRoomsWindow',
extends: BaseOpera,
- components: { GlobalAlertWindow, UploadAvatarImage },
- data () {
+ components: { GlobalAlertWindow, UploadAvatarVideo },
+ data() {
let timeRangeRule = (rule, value, callBack) => {
if (!this.form.startTime) {
callBack(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
@@ -90,6 +81,7 @@
callBack()
}
return {
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload',
isUploading: false,
uploadData: {
folder: 'projects'
@@ -99,11 +91,13 @@
form: {
id: null,
sysList: [],
+ multifileList: [],
projectList: [],
createDate: '',
editor: '',
editDate: null,
isdeleted: 0,
+ fileType: 2,
name: '',
remark: '',
startTime: '',
@@ -132,7 +126,7 @@
}
},
inject: ['userList'],
- created () {
+ created() {
this.config({
api: '/meeting/rooms',
'field.id': 'id'
@@ -153,7 +147,7 @@
* @title 绐楀彛鏍囬
* @target 缂栬緫鐨勫璞�
*/
- open (title, target) {
+ open(title, target) {
this.title = title
this.visible = true
this.form.imgFullUrl = ''
@@ -182,20 +176,44 @@
console.log(target)
})
},
+ imgDel(i) {
+ this.form.multifileList.splice(i, 1)
+ },
+ handleImgSuccess(res) {
+ const list = [...this.form.multifileList]
+ if (res.code == 200) {
+ let { data } = res
+ list.push({
+ fileurl: data.imgaddr,
+ fileurlFull: data.url,
+ type: 0
+ })
+ this.$set(this.form, 'multifileList', list)
+
+ }
+ },
selectRange(v) {
// console.log(this.timeRange);
- console.log(v);
+ console.log(v)
this.form.startTime = v[0]
this.form.endTime = v[1]
- console.log(this.form.startTime, this.form.endTime);
+ console.log(this.form.startTime, this.form.endTime)
},
- // 涓婁紶鍥剧墖
+ changeFile() {
+ this.$set(this.form, 'multifileList', [])
+ },
uploadAvatarSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgFullUrl = file.imgurlfull;
+ console.log('file', file)
+ this.form.multifileList.push({
+ fileurl: file.imgurl,
+ fileurlFull: file.imgurlfull,
+ type: 1
+ })
+ this.$set(this.form, 'videourl', file.imgurl)
+ this.$set(this.form, 'videoFullUrl', file.imgurlfull)
},
// 纭鏂板缓
- __confirmCreate () {
+ __confirmCreate() {
this.$refs.form.validate((valid) => {
// debugger
if (!valid) {
@@ -207,11 +225,11 @@
this.isWorking = true
let sysList = [...this.form.sysList]
sysList = sysList.map(item => {
- return {userId: item}
+ return { userId: item }
})
let projectList = [...this.form.projectList]
projectList = projectList.map(item => {
- return {projectId: item}
+ return { projectId: item }
})
this.api.create({
...this.form,
@@ -232,22 +250,22 @@
})
},
// 纭淇敼
- __confirmEdit () {
+ __confirmEdit() {
this.$refs.form.validate((valid) => {
if (!valid) {
return
}
- console.log(this.form);
+ console.log(this.form)
debugger
// 璋冪敤鏂板缓鎺ュ彛
this.isWorking = true
let sysList = [...this.form.sysList]
sysList = sysList.map(item => {
- return {userId: item}
+ return { userId: item }
})
let projectList = [...this.form.projectList]
projectList = projectList.map(item => {
- return {projectId: item}
+ return { projectId: item }
})
this.api.updateById({
...this.form,
@@ -272,6 +290,63 @@
</script>
<style lang="scss" scoped>
-@import "@/assets/style/alertstyle.scss";
+$image-width: 90px;
-</style>
+.upload_wrap {
+ display: flex;
+
+ .img_wrap {
+ margin-left: 10px;
+ border: 1px dashed #d9d9d9;
+ width: $image-width;
+ height: $image-width;
+ border-radius: 6px;
+ position: relative;
+
+ .img {
+ width: $image-width;
+ height: $image-width;
+ }
+
+ .del {
+ position: absolute;
+ top: -6px;
+ right: -6px;
+ cursor: pointer;
+ color: red;
+ }
+ }
+}
+
+.avatar-uploader {
+ width: $image-width;
+ height: $image-width;
+}
+
+::v-deep .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+}
+
+.avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+ line-height: 90px;
+ font-size: 28px;
+ color: #8c939d;
+ width: $image-width;
+ height: $image-width;
+ text-align: center;
+}
+
+.avatar {
+ width: 90px;
+ max-height: 90px;
+ display: block;
+}
+</style>
\ No newline at end of file
diff --git a/h5/manifest.json b/h5/manifest.json
index cd92050..b6fb455 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -91,12 +91,12 @@
"proxy" : {
"/admin_interface" : {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
- // "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://192.168.0.139/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
// "target" : "http://192.168.31.42:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ // "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin" : true, // 鍏佽璺ㄥ煙
"pathRewrite" : {
- "^/admin_interface" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+ "^/admin_interface" : ""
}
}
},
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 3a13b23..6a3b311 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -28,7 +28,8 @@
</view>
<!-- -->
<view class="emyty"></view>
- <view v-if="info.status == 1 || info.status == 2" class="module_list">
+ <view v-if="info.status == 1 || info.status == 2" class="module_list">
+ <view class="flow_title">澶勭悊缁撴灉</view>
<view class="item">
<view class="label">澶勭悊缁撴灉</view>
<view class="value primaryColor" :class="{ red: info.status == 2 }">{{ statusMap[info.status] }}</view>
@@ -52,7 +53,7 @@
</view>
</view>
<view class="item">
- <view class="label">鏁存敼璇存槑</view>
+ <view class="label">{{info.status == '1' ? '鏁存敼璇存槑' : '閫�鍥炶鏄�'}}</view>
<view class="value">{{ info.checkInfo }}</view>
</view>
</view>
@@ -756,16 +757,14 @@
.main_app {
background-color: #fff;
padding-bottom: 0;
-
+ .flow_title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 24rpx;
+ }
.flow_wrap {
padding: 30rpx 0;
-
- .flow_title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 24rpx;
- }
.list {
.item {
@@ -921,7 +920,10 @@
}
}
- .module_list {
+ .module_list {
+ .title{
+
+ }
.item {
padding: 30rpx 0;
border-bottom: 1rpx solid #e5e5e5;
diff --git a/h5_meeting/App.vue b/h5_meeting/App.vue
new file mode 100644
index 0000000..1fa091d
--- /dev/null
+++ b/h5_meeting/App.vue
@@ -0,0 +1,20 @@
+<script>
+ export default {
+ onLaunch: function() {
+ console.log('App Launch')
+ },
+ onShow: function() {
+ console.log('App Show')
+ },
+ onHide: function() {
+ console.log('App Hide')
+ }
+ }
+</script>
+
+<style>
+ /*姣忎釜椤甸潰鍏叡css */
+ view,text,image{
+ box-sizing: border-box;
+ }
+</style>
diff --git a/h5_meeting/api/index.js b/h5_meeting/api/index.js
new file mode 100644
index 0000000..773ed18
--- /dev/null
+++ b/h5_meeting/api/index.js
@@ -0,0 +1,12 @@
+import { http } from '@/utils/service.js'
+export * from '@/utils/config.js'
+
+
+//
+export const meetScreenData = (data) => {
+ return http({
+ url: 'cloudService/web/meeting/meetScreenData',
+ method: 'get',
+ data
+ })
+}
\ No newline at end of file
diff --git a/h5_meeting/index.html b/h5_meeting/index.html
new file mode 100644
index 0000000..c3ff205
--- /dev/null
+++ b/h5_meeting/index.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <script>
+ var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+ CSS.supports('top: constant(a)'))
+ document.write(
+ '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+ (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+ </script>
+ <title></title>
+ <!--preload-links-->
+ <!--app-context-->
+ </head>
+ <body>
+ <div id="app"><!--app-html--></div>
+ <script type="module" src="/main.js"></script>
+ </body>
+</html>
diff --git a/h5_meeting/main.js b/h5_meeting/main.js
new file mode 100644
index 0000000..c1caf36
--- /dev/null
+++ b/h5_meeting/main.js
@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+ ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
+// #endif
\ No newline at end of file
diff --git a/h5_meeting/manifest.json b/h5_meeting/manifest.json
new file mode 100644
index 0000000..c4546a5
--- /dev/null
+++ b/h5_meeting/manifest.json
@@ -0,0 +1,96 @@
+{
+ "name" : "h5_meeting",
+ "appid" : "__UNI__EF8BAA7",
+ "description" : "",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ "h5": {
+ "router": {
+ "mode": "hash",
+ "base": "./"
+ },
+ // "base" : "/h5/"
+ "devServer": {
+ "port": 8090,
+ "historyApiFallback": true,
+ "disableHostCheck": true,
+ "proxy": {
+ "/meetingAdmin": {
+ // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
+ // "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target": "http://192.168.0.139:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "changeOrigin": true, // 鍏佽璺ㄥ煙
+ "pathRewrite": {
+ "^/meetingAdmin": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+ }
+ }
+ },
+ "https": false
+ }
+ },
+ /* 5+App鐗规湁鐩稿叧 */
+ "app-plus" : {
+ "usingComponents" : true,
+ "nvueStyleCompiler" : "uni-app",
+ "compilerVersion" : 3,
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : true,
+ "waiting" : true,
+ "autoclose" : true,
+ "delay" : 0
+ },
+ /* 妯″潡閰嶇疆 */
+ "modules" : {},
+ /* 搴旂敤鍙戝竷淇℃伅 */
+ "distribute" : {
+ /* android鎵撳寘閰嶇疆 */
+ "android" : {
+ "permissions" : [
+ "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+ "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+ "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+ "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+ "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+ "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+ "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+ "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+ "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+ "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+ "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+ "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+ "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+ "<uses-feature android:name=\"android.hardware.camera\"/>",
+ "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+ ]
+ },
+ /* ios鎵撳寘閰嶇疆 */
+ "ios" : {},
+ /* SDK閰嶇疆 */
+ "sdkConfigs" : {}
+ }
+ },
+ /* 蹇簲鐢ㄧ壒鏈夌浉鍏� */
+ "quickapp" : {},
+ /* 灏忕▼搴忕壒鏈夌浉鍏� */
+ "mp-weixin" : {
+ "appid" : "",
+ "setting" : {
+ "urlCheck" : false
+ },
+ "usingComponents" : true
+ },
+ "mp-alipay" : {
+ "usingComponents" : true
+ },
+ "mp-baidu" : {
+ "usingComponents" : true
+ },
+ "mp-toutiao" : {
+ "usingComponents" : true
+ },
+ "uniStatistics" : {
+ "enable" : false
+ },
+ "vueVersion" : "3"
+}
diff --git a/h5_meeting/package-lock.json b/h5_meeting/package-lock.json
new file mode 100644
index 0000000..23f7be0
--- /dev/null
+++ b/h5_meeting/package-lock.json
@@ -0,0 +1,17 @@
+{
+ "name": "h5_meeting",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "dayjs": "^1.11.13"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+ }
+ }
+}
diff --git a/h5_meeting/package.json b/h5_meeting/package.json
new file mode 100644
index 0000000..8155ec5
--- /dev/null
+++ b/h5_meeting/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "dayjs": "^1.11.13"
+ }
+}
diff --git a/h5_meeting/pages.json b/h5_meeting/pages.json
new file mode 100644
index 0000000..bce33df
--- /dev/null
+++ b/h5_meeting/pages.json
@@ -0,0 +1,24 @@
+{
+ "pages": [ //pages鏁扮粍涓涓�椤硅〃绀哄簲鐢ㄥ惎鍔ㄩ〉锛屽弬鑰冿細https://uniapp.dcloud.io/collocation/pages
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path" : "pages/index/config",
+ "style" :
+ {
+ "navigationBarTitleText" : "閰嶇疆"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "浼氳瀹�",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "uniIdRouter": {}
+}
diff --git a/h5_meeting/pages/index/config.vue b/h5_meeting/pages/index/config.vue
new file mode 100644
index 0000000..e17d074
--- /dev/null
+++ b/h5_meeting/pages/index/config.vue
@@ -0,0 +1,103 @@
+<template>
+ <view class="app">
+ <view class="list">
+ <view class="item">
+ <view class="title">浼氳瀹ょ紪鐮�</view>
+ <view class="line">
+ <input type="text" v-model="param.code" />
+ <image src="../../static/icon/right.svg" class="icon"></image>
+ </view>
+ </view>
+ <view class="item">
+ <view class="title">鎺ュ彛鍦板潃</view>
+ <view class="line">
+ <input type="text" v-model="param.addr" />
+ <image src="../../static/icon/right.svg" class="icon"></image>
+ </view>
+ </view>
+ <view class="item">
+ <view class="title">鎺ュ彛璋冪敤闂撮殧(绉�)</view>
+ <view class="line">
+ <input type="text" v-model="param.time" />
+ <image src="../../static/icon/right.svg" class="icon"></image>
+ </view>
+ </view>
+ </view>
+ <view class="save" @click="handleSave">淇濆瓨閰嶇疆</view>
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+ param: {}
+ };
+ },
+ onLoad(){
+ const param = uni.getStorageSync('param') || {}
+ this.param = { ...param }
+ },
+ methods: {
+ handleSave() {
+ const param = this.param
+ uni.setStorageSync('param', param)
+ setTimeout(()=>{
+ uni.showToast({
+ title: '鏇存柊閰嶇疆鎴愬姛',icon:'none'
+ })
+ })
+ setTimeout(()=>{
+ uni.navigateBack()
+ }, 400)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .save{
+ position: fixed;
+ width: 680upx;
+ height: 90upx;
+ line-height: 90upx;
+ background: #00B5D1;
+ border-radius: 7upx;
+ left: 35upx;
+ bottom: 36upx;
+ color: #fff;
+ text-align: center;
+ font-weight: 500;
+ font-size: 32rpx;
+
+ }
+.list{
+ .item{
+ width: 100%;
+ height: 148upx;
+ padding: 28upx 34upx 0;
+ .title{
+ font-weight: 500;
+ font-size: 28rpx;
+ color: #111111;
+ line-height: 39rpx;
+ }
+ .line{
+ height: 80upx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-bottom: 1rpx solid #CCCCCC;
+ input{
+ flex: 1;
+ font-size: 28rpx;
+ color: #666666;
+ }
+ .icon{
+ width: 28upx;
+ height: 28upx;
+ }
+ }
+ }
+}
+</style>
diff --git a/h5_meeting/pages/index/index.vue b/h5_meeting/pages/index/index.vue
new file mode 100644
index 0000000..a1878d3
--- /dev/null
+++ b/h5_meeting/pages/index/index.vue
@@ -0,0 +1,264 @@
+<template>
+ <view class="main_app">
+ <image src="@/static/bg@2x.png" class="main_bg" mode=""></image>
+ <view class="header_wrap">
+ <view class="title" @touchend="touchend">浼氳瀹�</view>
+ <view class="time_wrap">
+ <view class="time">{{time}}</view>
+ <view class="date">{{date}}</view>
+ </view>
+ </view>
+ <view class="home_status orange">浼氳涓�</view>
+ <view class="meeting_name">浼氳鍚嶇О</view>
+ <view class="meeting_con">
+ <view class="content">
+ <view class="line">
+ <image src="@/static/ic_time@2x.png"></image>
+ <text>10~12</text>
+ </view>
+ <view class="line">
+ <image src="@/static/ic_people@2x.png"></image>
+ <text>10~12</text>
+ </view>
+ </view>
+ <view class="qrcode"></view>
+ </view>
+ <view class="meeting_wrap">
+ <view class="title">浠婃棩浼氳锛�6锛�</view>
+ <view class="list">
+ <view class="item">
+ <view class="name">寮�鍙戦儴浼氳</view>
+ <view class="line">棰勭害浜猴細鏉庢��鑻�</view>
+ <view class="line">13:30锝�15:00锛堝嵆灏嗗紑濮嬶級</view>
+ <image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
+ </view>
+ <view class="item empty">
+ <view class="name">鏆傛棤浼氳</view>
+ <view class="line">棰勭害浜猴細-</view>
+ <view class="line">-</view>
+ <image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
+ </view>
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import dayjs from 'dayjs'
+ import {
+ meetScreenData
+ } from '@/api/index.js'
+ export default {
+ data() {
+ return {
+ time: '',
+ date: '',
+ timer: null,
+ touchNum: 0,
+ param: {}
+ }
+ },
+ onLoad() {
+ this.initDatetime()
+ this.param = uni.getStorageSync('param') || {}
+ if(!this.param.code){
+ return uni.navigateTo({
+ url: '/pages/index/config'
+ })
+ }
+ this.getData()
+ },
+ methods: {
+ getData() {
+ meetScreenData({
+ roomId: this.param.code
+ })
+ },
+ touchend() {
+ this.touchNum++
+ setTimeout(() => {
+ if (this.touchNum == 1) {
+ console.log('鍗曞嚮')
+ }
+ if (this.touchNum >= 2) {
+ uni.navigateTo({
+ url: '/pages/index/config'
+ })
+ }
+ this.touchNum = 0
+ }, 250)
+ },
+ initDatetime() {
+ let weeks = ['鍛ㄦ棩', '鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚']
+ this.time = dayjs().format('HH:mm')
+ this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
+ this.timer = setInterval(() => {
+ this.time = dayjs().format('HH:mm')
+ this.date = dayjs().format('YYYY-MM-DD') + ' ' + weeks[new Date().getDay()]
+ }, 1000)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .main_app {
+ width: 100%;
+ min-height: 100vh;
+ position: relative;
+ font-size: 28rpx;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ padding-bottom: 35rpx;
+ color: #fff;
+
+ .meeting_wrap {
+ margin-left: 42rpx;
+ margin-top: 85rpx;
+
+ .title {
+ font-weight: 500;
+ font-size: 42rpx;
+ color: #FFFFFF;
+ line-height: 62rpx;
+ height: 62rpx;
+ margin-bottom: 32rpx;
+ }
+
+ .list {
+ display: flex;
+ width: calc(100vw - 42rpx);
+ overflow-x: auto;
+ scrollbar-width: none;
+
+ &:-webkit-scrollbar {
+ display: none;
+ /* Chrome Safari */
+ }
+
+ .item {
+ padding: 34rpx 28rpx;
+ display: flex;
+ flex-shrink: 0;
+ flex-direction: column;
+ width: 403rpx;
+ height: 315rpx;
+ background: linear-gradient(90deg, #0095AC 0%, #00B5D1 100%);
+ border-radius: 7rpx;
+ margin-right: 28rpx;
+ position: relative;
+
+ .item_bg {
+ position: absolute;
+ width: 178rpx;
+ height: 178rpx;
+ right: 0;
+ bottom: 0;
+ // z-index: -1;
+ }
+
+ .name {
+ flex: 1;
+ font-weight: bold;
+ font-size: 39rpx;
+ }
+
+ .line {
+ font-weight: 500;
+ margin-bottom: 7rpx;
+ }
+ }
+
+ .empty {
+ background: rgba(255, 255, 255, 0.11);
+ }
+ }
+ }
+
+ .meeting_con {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 42rpx;
+
+ .content {
+ .line {
+ display: flex;
+ align-items: center;
+ font-weight: 500;
+ font-size: 32rpx;
+ margin: 24rpx 0;
+
+ image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 20rpx;
+ }
+ }
+ }
+
+ .qrcode {
+ width: 166rpx;
+ height: 166rpx;
+ border: 1px solid red;
+ }
+ }
+
+ .meeting_name {
+ margin-bottom: 12rpx;
+ font-weight: bold;
+ font-size: 49rpx;
+ padding-left: 42rpx;
+ }
+
+ .home_status {
+ font-weight: bold;
+ font-size: 125rpx;
+ margin: 70rpx 42rpx;
+ line-height: 185rpx;
+ height: 185rpx;
+ }
+
+ .orange {
+ color: #FFB100;
+ }
+
+ .header_wrap {
+ padding: 34rpx 34rpx 0 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .time_wrap {
+ text-align: right;
+
+ .time {
+ font-size: 56rpx;
+ margin-bottom: 4rpx;
+ }
+ }
+
+ .title {
+ font-size: 56rpx;
+ font-weight: bold;
+ width: 430rpx;
+ height: 125rpx;
+ line-height: 125rpx;
+ text-align: center;
+ background: #00B5D1;
+ border-radius: 0rpx 7rpx 7rpx 0rpx;
+ }
+ }
+
+ .main_bg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ object-fit: cover;
+ z-index: -1;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/h5_meeting/static/bg@2x.png b/h5_meeting/static/bg@2x.png
new file mode 100644
index 0000000..297d3ac
--- /dev/null
+++ b/h5_meeting/static/bg@2x.png
Binary files differ
diff --git a/h5_meeting/static/ic_meeting@2x.png b/h5_meeting/static/ic_meeting@2x.png
new file mode 100644
index 0000000..5b798e6
--- /dev/null
+++ b/h5_meeting/static/ic_meeting@2x.png
Binary files differ
diff --git a/h5_meeting/static/ic_people@2x.png b/h5_meeting/static/ic_people@2x.png
new file mode 100644
index 0000000..7e4142b
--- /dev/null
+++ b/h5_meeting/static/ic_people@2x.png
Binary files differ
diff --git a/h5_meeting/static/ic_time@2x.png b/h5_meeting/static/ic_time@2x.png
new file mode 100644
index 0000000..b8790f1
--- /dev/null
+++ b/h5_meeting/static/ic_time@2x.png
Binary files differ
diff --git a/h5_meeting/static/icon/right.svg b/h5_meeting/static/icon/right.svg
new file mode 100644
index 0000000..5bb326f
--- /dev/null
+++ b/h5_meeting/static/icon/right.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1726651011394" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4417" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M761.056 532.128c0.512-0.992 1.344-1.824 1.792-2.848 8.8-18.304 5.92-40.704-9.664-55.424L399.936 139.744c-19.264-18.208-49.632-17.344-67.872 1.888-18.208 19.264-17.376 49.632 1.888 67.872l316.96 299.84L335.2 813.632c-19.072 18.4-19.648 48.768-1.248 67.872 9.408 9.792 21.984 14.688 34.56 14.688 12 0 24-4.48 33.312-13.44l350.048-337.376c0.672-0.672 0.928-1.6 1.6-2.304 0.512-0.48 1.056-0.832 1.568-1.344 2.72-2.848 4.16-6.336 6.016-9.6z" p-id="4418" fill="#666666"></path></svg>
\ No newline at end of file
diff --git a/h5_meeting/static/logo.png b/h5_meeting/static/logo.png
new file mode 100644
index 0000000..5a4d778
--- /dev/null
+++ b/h5_meeting/static/logo.png
Binary files differ
diff --git a/h5_meeting/uni.promisify.adaptor.js b/h5_meeting/uni.promisify.adaptor.js
new file mode 100644
index 0000000..47fbce1
--- /dev/null
+++ b/h5_meeting/uni.promisify.adaptor.js
@@ -0,0 +1,10 @@
+uni.addInterceptor({
+ returnValue (res) {
+ if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+ return res;
+ }
+ return new Promise((resolve, reject) => {
+ res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+ });
+ },
+});
\ No newline at end of file
diff --git a/h5_meeting/uni.scss b/h5_meeting/uni.scss
new file mode 100644
index 0000000..62eb87b
--- /dev/null
+++ b/h5_meeting/uni.scss
@@ -0,0 +1,76 @@
+/**
+ * 杩欓噷鏄痷ni-app鍐呯疆鐨勫父鐢ㄦ牱寮忓彉閲�
+ *
+ * uni-app 瀹樻柟鎵╁睍鎻掍欢鍙婃彃浠跺競鍦猴紙https://ext.dcloud.net.cn锛変笂寰堝涓夋柟鎻掍欢鍧囦娇鐢ㄤ簡杩欎簺鏍峰紡鍙橀噺
+ * 濡傛灉浣犳槸鎻掍欢寮�鍙戣�咃紝寤鸿浣犱娇鐢╯css棰勫鐞嗭紝骞跺湪鎻掍欢浠g爜涓洿鎺ヤ娇鐢ㄨ繖浜涘彉閲忥紙鏃犻渶 import 杩欎釜鏂囦欢锛夛紝鏂逛究鐢ㄦ埛閫氳繃鎼Н鏈ㄧ殑鏂瑰紡寮�鍙戞暣浣撻鏍间竴鑷寸殑App
+ *
+ */
+
+/**
+ * 濡傛灉浣犳槸App寮�鍙戣�咃紙鎻掍欢浣跨敤鑰咃級锛屼綘鍙互閫氳繃淇敼杩欎簺鍙橀噺鏉ュ畾鍒惰嚜宸辩殑鎻掍欢涓婚锛屽疄鐜拌嚜瀹氫箟涓婚鍔熻兘
+ *
+ * 濡傛灉浣犵殑椤圭洰鍚屾牱浣跨敤浜唖css棰勫鐞嗭紝浣犱篃鍙互鐩存帴鍦ㄤ綘鐨� scss 浠g爜涓娇鐢ㄥ涓嬪彉閲忥紝鍚屾椂鏃犻渶 import 杩欎釜鏂囦欢
+ */
+
+/* 棰滆壊鍙橀噺 */
+
+/* 琛屼负鐩稿叧棰滆壊 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 鏂囧瓧鍩烘湰棰滆壊 */
+$uni-text-color:#333;//鍩烘湰鑹�
+$uni-text-color-inverse:#fff;//鍙嶈壊
+$uni-text-color-grey:#999;//杈呭姪鐏拌壊锛屽鍔犺浇鏇村鐨勬彁绀轰俊鎭�
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 鑳屾櫙棰滆壊 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//鐐瑰嚮鐘舵�侀鑹�
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//閬僵棰滆壊
+
+/* 杈规棰滆壊 */
+$uni-border-color:#c8c7cc;
+
+/* 灏哄鍙橀噺 */
+
+/* 鏂囧瓧灏哄 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16px;
+
+/* 鍥剧墖灏哄 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 姘村钩闂磋窛 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 鍨傜洿闂磋窛 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 閫忔槑搴� */
+$uni-opacity-disabled: 0.3; // 缁勪欢绂佺敤鎬佺殑閫忔槑搴�
+
+/* 鏂囩珷鍦烘櫙鐩稿叧 */
+$uni-color-title: #2C405A; // 鏂囩珷鏍囬棰滆壊
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 浜岀骇鏍囬棰滆壊
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 鏂囩珷娈佃惤棰滆壊
+$uni-font-size-paragraph:15px;
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json b/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json
new file mode 100644
index 0000000..e195b09
--- /dev/null
+++ b/h5_meeting/unpackage/dist/cache/.vite/deps/_metadata.json
@@ -0,0 +1,15 @@
+{
+ "hash": "7c90d9b3",
+ "configHash": "8347bd5a",
+ "lockfileHash": "102ea5b9",
+ "browserHash": "defb2146",
+ "optimized": {
+ "dayjs": {
+ "src": "../../../../../node_modules/dayjs/dayjs.min.js",
+ "file": "dayjs.js",
+ "fileHash": "84c9bd87",
+ "needsInterop": true
+ }
+ },
+ "chunks": {}
+}
\ No newline at end of file
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js
new file mode 100644
index 0000000..3241bd1
--- /dev/null
+++ b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js
@@ -0,0 +1,300 @@
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+
+// ../../../../../../Users/niannian/Desktop/working/璞嗙背绉戞妧/dmvisit/h5_meeting/node_modules/dayjs/dayjs.min.js
+var require_dayjs_min = __commonJS({
+ "../../../../../../Users/niannian/Desktop/working/璞嗙背绉戞妧/dmvisit/h5_meeting/node_modules/dayjs/dayjs.min.js"(exports, module) {
+ !function(t, e) {
+ "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e();
+ }(exports, function() {
+ "use strict";
+ var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
+ var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
+ return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
+ } }, m = function(t2, e2, n2) {
+ var r2 = String(t2);
+ return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
+ }, v = { s: m, z: function(t2) {
+ var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
+ return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
+ }, m: function t2(e2, n2) {
+ if (e2.date() < n2.date())
+ return -t2(n2, e2);
+ var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c);
+ return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
+ }, a: function(t2) {
+ return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
+ }, p: function(t2) {
+ return { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
+ }, u: function(t2) {
+ return void 0 === t2;
+ } }, g = "en", D = {};
+ D[g] = M;
+ var p = "$isDayjsObject", S = function(t2) {
+ return t2 instanceof _ || !(!t2 || !t2[p]);
+ }, w = function t2(e2, n2, r2) {
+ var i2;
+ if (!e2)
+ return g;
+ if ("string" == typeof e2) {
+ var s2 = e2.toLowerCase();
+ D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
+ var u2 = e2.split("-");
+ if (!i2 && u2.length > 1)
+ return t2(u2[0]);
+ } else {
+ var a2 = e2.name;
+ D[a2] = e2, i2 = a2;
+ }
+ return !r2 && i2 && (g = i2), i2 || !r2 && g;
+ }, O = function(t2, e2) {
+ if (S(t2))
+ return t2.clone();
+ var n2 = "object" == typeof e2 ? e2 : {};
+ return n2.date = t2, n2.args = arguments, new _(n2);
+ }, b = v;
+ b.l = w, b.i = S, b.w = function(t2, e2) {
+ return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
+ };
+ var _ = function() {
+ function M2(t2) {
+ this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
+ }
+ var m2 = M2.prototype;
+ return m2.parse = function(t2) {
+ this.$d = function(t3) {
+ var e2 = t3.date, n2 = t3.utc;
+ if (null === e2)
+ return /* @__PURE__ */ new Date(NaN);
+ if (b.u(e2))
+ return /* @__PURE__ */ new Date();
+ if (e2 instanceof Date)
+ return new Date(e2);
+ if ("string" == typeof e2 && !/Z$/i.test(e2)) {
+ var r2 = e2.match($);
+ if (r2) {
+ var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3);
+ return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2);
+ }
+ }
+ return new Date(e2);
+ }(t2), this.init();
+ }, m2.init = function() {
+ var t2 = this.$d;
+ this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds();
+ }, m2.$utils = function() {
+ return b;
+ }, m2.isValid = function() {
+ return !(this.$d.toString() === l);
+ }, m2.isSame = function(t2, e2) {
+ var n2 = O(t2);
+ return this.startOf(e2) <= n2 && n2 <= this.endOf(e2);
+ }, m2.isAfter = function(t2, e2) {
+ return O(t2) < this.startOf(e2);
+ }, m2.isBefore = function(t2, e2) {
+ return this.endOf(e2) < O(t2);
+ }, m2.$g = function(t2, e2, n2) {
+ return b.u(t2) ? this[e2] : this.set(n2, t2);
+ }, m2.unix = function() {
+ return Math.floor(this.valueOf() / 1e3);
+ }, m2.valueOf = function() {
+ return this.$d.getTime();
+ }, m2.startOf = function(t2, e2) {
+ var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) {
+ var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2);
+ return r2 ? i2 : i2.endOf(a);
+ }, $2 = function(t3, e3) {
+ return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2);
+ }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : "");
+ switch (f2) {
+ case h:
+ return r2 ? l2(1, 0) : l2(31, 11);
+ case c:
+ return r2 ? l2(1, M3) : l2(0, M3 + 1);
+ case o:
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
+ return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3);
+ case a:
+ case d:
+ return $2(v2 + "Hours", 0);
+ case u:
+ return $2(v2 + "Minutes", 1);
+ case s:
+ return $2(v2 + "Seconds", 2);
+ case i:
+ return $2(v2 + "Milliseconds", 3);
+ default:
+ return this.clone();
+ }
+ }, m2.endOf = function(t2) {
+ return this.startOf(t2, false);
+ }, m2.$set = function(t2, e2) {
+ var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2;
+ if (o2 === c || o2 === h) {
+ var y2 = this.clone().set(d, 1);
+ y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d;
+ } else
+ l2 && this.$d[l2]($2);
+ return this.init(), this;
+ }, m2.set = function(t2, e2) {
+ return this.clone().$set(t2, e2);
+ }, m2.get = function(t2) {
+ return this[b.p(t2)]();
+ }, m2.add = function(r2, f2) {
+ var d2, l2 = this;
+ r2 = Number(r2);
+ var $2 = b.p(f2), y2 = function(t2) {
+ var e2 = O(l2);
+ return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2);
+ };
+ if ($2 === c)
+ return this.set(c, this.$M + r2);
+ if ($2 === h)
+ return this.set(h, this.$y + r2);
+ if ($2 === a)
+ return y2(1);
+ if ($2 === o)
+ return y2(7);
+ var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3;
+ return b.w(m3, this);
+ }, m2.subtract = function(t2, e2) {
+ return this.add(-1 * t2, e2);
+ }, m2.format = function(t2) {
+ var e2 = this, n2 = this.$locale();
+ if (!this.isValid())
+ return n2.invalidDate || l;
+ var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h2 = function(t3, n3, i3, s3) {
+ return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3);
+ }, d2 = function(t3) {
+ return b.s(s2 % 12 || 12, t3, "0");
+ }, $2 = f2 || function(t3, e3, n3) {
+ var r3 = t3 < 12 ? "AM" : "PM";
+ return n3 ? r3.toLowerCase() : r3;
+ };
+ return r2.replace(y, function(t3, r3) {
+ return r3 || function(t4) {
+ switch (t4) {
+ case "YY":
+ return String(e2.$y).slice(-2);
+ case "YYYY":
+ return b.s(e2.$y, 4, "0");
+ case "M":
+ return a2 + 1;
+ case "MM":
+ return b.s(a2 + 1, 2, "0");
+ case "MMM":
+ return h2(n2.monthsShort, a2, c2, 3);
+ case "MMMM":
+ return h2(c2, a2);
+ case "D":
+ return e2.$D;
+ case "DD":
+ return b.s(e2.$D, 2, "0");
+ case "d":
+ return String(e2.$W);
+ case "dd":
+ return h2(n2.weekdaysMin, e2.$W, o2, 2);
+ case "ddd":
+ return h2(n2.weekdaysShort, e2.$W, o2, 3);
+ case "dddd":
+ return o2[e2.$W];
+ case "H":
+ return String(s2);
+ case "HH":
+ return b.s(s2, 2, "0");
+ case "h":
+ return d2(1);
+ case "hh":
+ return d2(2);
+ case "a":
+ return $2(s2, u2, true);
+ case "A":
+ return $2(s2, u2, false);
+ case "m":
+ return String(u2);
+ case "mm":
+ return b.s(u2, 2, "0");
+ case "s":
+ return String(e2.$s);
+ case "ss":
+ return b.s(e2.$s, 2, "0");
+ case "SSS":
+ return b.s(e2.$ms, 3, "0");
+ case "Z":
+ return i2;
+ }
+ return null;
+ }(t3) || i2.replace(":", "");
+ });
+ }, m2.utcOffset = function() {
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
+ }, m2.diff = function(r2, d2, l2) {
+ var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() {
+ return b.m(y2, m3);
+ };
+ switch (M3) {
+ case h:
+ $2 = D2() / 12;
+ break;
+ case c:
+ $2 = D2();
+ break;
+ case f:
+ $2 = D2() / 3;
+ break;
+ case o:
+ $2 = (g2 - v2) / 6048e5;
+ break;
+ case a:
+ $2 = (g2 - v2) / 864e5;
+ break;
+ case u:
+ $2 = g2 / n;
+ break;
+ case s:
+ $2 = g2 / e;
+ break;
+ case i:
+ $2 = g2 / t;
+ break;
+ default:
+ $2 = g2;
+ }
+ return l2 ? $2 : b.a($2);
+ }, m2.daysInMonth = function() {
+ return this.endOf(c).$D;
+ }, m2.$locale = function() {
+ return D[this.$L];
+ }, m2.locale = function(t2, e2) {
+ if (!t2)
+ return this.$L;
+ var n2 = this.clone(), r2 = w(t2, e2, true);
+ return r2 && (n2.$L = r2), n2;
+ }, m2.clone = function() {
+ return b.w(this.$d, this);
+ }, m2.toDate = function() {
+ return new Date(this.valueOf());
+ }, m2.toJSON = function() {
+ return this.isValid() ? this.toISOString() : null;
+ }, m2.toISOString = function() {
+ return this.$d.toISOString();
+ }, m2.toString = function() {
+ return this.$d.toUTCString();
+ }, M2;
+ }(), k = _.prototype;
+ return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t2) {
+ k[t2[1]] = function(e2) {
+ return this.$g(e2, t2[0], t2[1]);
+ };
+ }), O.extend = function(t2, e2) {
+ return t2.$i || (t2(e2, _, O), t2.$i = true), O;
+ }, O.locale = w, O.isDayjs = S, O.unix = function(t2) {
+ return O(1e3 * t2);
+ }, O.en = D[g], O.Ls = D, O.p = {}, O;
+ });
+ }
+});
+export default require_dayjs_min();
+//# sourceMappingURL=dayjs.js.map
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map
new file mode 100644
index 0000000..904b1a0
--- /dev/null
+++ b/h5_meeting/unpackage/dist/cache/.vite/deps/dayjs.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../../../../../node_modules/dayjs/dayjs.min.js"],
+ "sourcesContent": ["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));"],
+ "mappings": "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",
+ "names": ["t", "e", "n", "r", "i", "s", "u", "a", "M", "m", "f", "l", "$", "y", "v", "g", "D", "o", "d", "c", "h"]
+}
diff --git a/h5_meeting/unpackage/dist/cache/.vite/deps/package.json b/h5_meeting/unpackage/dist/cache/.vite/deps/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/h5_meeting/unpackage/dist/cache/.vite/deps/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/h5_meeting/utils/config.js b/h5_meeting/utils/config.js
new file mode 100644
index 0000000..8b7806b
--- /dev/null
+++ b/h5_meeting/utils/config.js
@@ -0,0 +1,20 @@
+
+export const baseUrl = 'meetingAdmin/'
+// export const baseUrl = 'http://192.168.0.139:10010/admin_interface/'
+export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
+export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
+
+export const statusMap = {
+ 0: '寰呯‘璁�',
+ 1: '寰呯鍒�',
+ 2: '绛夊緟鍙彿',
+ 3: '鍏ュ洯绛夊緟',
+ 4: '鏈堝彴绛夊緟', //宸插彨鍙�
+ 5: '浣滀笟涓�',
+ 6: '浣滀笟瀹屾垚',
+ 7: '杞Щ涓�',
+ 8: '寮傚父鎸傝捣',
+ 9: '宸叉巿鏉冪鍥�',
+ 10: '宸茬鍥�',
+ 11: '宸茶繃鍙�',
+}
\ No newline at end of file
diff --git a/h5_meeting/utils/service.js b/h5_meeting/utils/service.js
new file mode 100644
index 0000000..92da23d
--- /dev/null
+++ b/h5_meeting/utils/service.js
@@ -0,0 +1,73 @@
+import { baseUrl } from "./config.js"
+export const http = function (options) {
+ {
+ return new Promise((resolve, reject) => {
+ // let token = uni.getStorageSync('token') || ''
+ // 鍦ㄧ櫥褰曠殑鏃跺�欓渶瑕佸偍瀛� token uni.setStorageSync("authorization","杩欓噷鏄櫥褰曡幏鍙栫殑token鍊�")
+
+ // uni.showLoading({
+ // title:"鍔犺浇涓�..."
+ // })
+ uni.showLoading({
+ title: '鍔犺浇涓�',
+ mask: true
+ })
+ uni.request({
+ url: baseUrl + options.url,
+ data: options.data || {},
+ method: options.method || 'GET',
+ header: options.header || {
+ // 鏍规嵁瀹為檯鎺ュ彛璁捐 key 鍙� token 鎴栬�� authorization
+ // dm_user_token: token,
+ "content-type": 'application/json;charset=UTF-8'
+ },
+ success: (res) => {
+ let data = res.data
+ // 鎺у埗鍙版樉绀烘暟鎹俊鎭�
+ uni.hideLoading()
+ // 鐧诲綍杩囨湡
+ if (data.code === 5112) {
+ setTimeout(() => {
+ uni.showToast({
+ title: data.message,
+ icon: "none",
+ duration: 2000
+ })
+ })
+ uni.navigateTo({
+ url: '/pages/index/login'
+ })
+ return
+ }
+ if (data.code !== 200) {
+ setTimeout(() => {
+ uni.showToast({
+ title: data.message,
+ icon: "none",
+ duration: 2000
+ })
+ })
+ return
+ }
+ resolve(data)
+ // return response.data
+ },
+ fail: (err) => {
+ // 椤甸潰涓脊妗嗘樉绀哄け璐�
+ uni.showToast({
+ title: '璇锋眰鎺ュ彛澶辫触',
+ icon: "none",
+ })
+ console.log('err', err)
+ console.log('msg', baseUrl + options.url)
+ // 杩斿洖閿欒娑堟伅
+ reject(err)
+ uni.hideLoading()
+ },
+ catch: (e) => {
+ console.log(e)
+ }
+ })
+ })
+ }
+}
\ No newline at end of file
diff --git a/screen/package-lock.json b/screen/package-lock.json
index 2d638cc..8d805de 100644
--- a/screen/package-lock.json
+++ b/screen/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.0",
"dependencies": {
"dayjs": "^1.11.11",
+ "echarts": "^5.5.1",
"pinia": "^2.1.7",
"vue": "^3.4.21",
"vue-router": "^4.3.0"
@@ -1713,6 +1714,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/echarts": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.1.tgz",
+ "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "5.6.0"
+ }
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.805",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.805.tgz",
@@ -2632,6 +2642,11 @@
"node": ">=6"
}
},
+ "node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
@@ -2864,6 +2879,14 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
+ },
+ "node_modules/zrender": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.0.tgz",
+ "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==",
+ "dependencies": {
+ "tslib": "2.3.0"
+ }
}
}
}
diff --git a/screen/package.json b/screen/package.json
index 6e07485..3420547 100644
--- a/screen/package.json
+++ b/screen/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"dayjs": "^1.11.11",
+ "echarts": "^5.5.1",
"pinia": "^2.1.7",
"vue": "^3.4.21",
"vue-router": "^4.3.0"
diff --git a/screen/src/components/ChargeRate.vue b/screen/src/components/ChargeRate.vue
new file mode 100644
index 0000000..72377eb
--- /dev/null
+++ b/screen/src/components/ChargeRate.vue
@@ -0,0 +1,37 @@
+<template>
+ <div class="cpn_list">
+ <div class="cpn_item" v-for="ite,i in 25" :class="{
+ yellow: rate > i,
+ gre: rate > i && color == 'cyan'
+ }"></div>
+ </div>
+</template>
+
+<script setup>
+const props = defineProps({
+ rate: Number,
+ color: String
+})
+</script>
+
+<style lang="scss" scoped>
+.cpn_list{
+ display: flex;
+ align-items: center;
+ height: 100%;
+ width: 100%;
+ padding: 0 6px;
+ justify-content: space-between;
+ .cpn_item{
+ width: 2.4%;
+ height: 8px;
+ background-color: rgba(255,255,255,0.3);
+ }
+ .yellow{
+ background-color: #FEAF01;
+ }
+ .gre{
+ background-color: #01D9FE;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/screen/src/router/index.js b/screen/src/router/index.js
index 7838111..40416e7 100644
--- a/screen/src/router/index.js
+++ b/screen/src/router/index.js
@@ -1,14 +1,18 @@
import { createRouter, createWebHashHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
-import EnergyConsum from '../views/EnergyConsum.vue'
const router = createRouter({
history: createWebHashHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
+ // name: 'EnergyConsum',
+ component: () => import('../views/EnergyConsum.vue')
+ },
+ {
+ path: '/home',
name: 'home',
- component: HomeView
+ component: () => import('../views/HomeView.vue')
},
{
path: '/EnergyConsum',
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 6df09dd..475cde1 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -2,11 +2,7 @@
<div class="main_app">
<img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
<div class="main_header">
- <img
- src="@/assets/images/maintitle@2x.png"
- class="main_header_bg"
- alt=""
- />
+ <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
<div class="time">
<span class="date">{{ date }}</span>
@@ -59,6 +55,9 @@
</div>
<img src="@/assets/images/title@2x.png" class="bg" alt="" />
</div>
+ <div class="load_wrap">
+ <div class="loadRef"></div>
+ </div>
</div>
<div class="left_box_three">
<div class="com_header">
@@ -75,6 +74,9 @@
</div>
<img src="@/assets/images/title@2x.png" class="bg" alt="" />
</div>
+ <div class="energy_wrap">
+ <div class="energyRef"></div>
+ </div>
</div>
</div>
<div class="center_box">
@@ -82,11 +84,7 @@
<div class="list">
<div class="item">
<div class="header">
- <img
- class="icon"
- src="@/assets/images/ic_yongdian@2x.png"
- alt=""
- />
+ <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
<div class="content">
<div class="name">涓婃湀鐢ㄧ數(kw路h)</div>
<div class="num">450</div>
@@ -103,11 +101,7 @@
</div>
<div class="item">
<div class="header">
- <img
- class="icon"
- src="@/assets/images/ic_yongshui@2x.png"
- alt=""
- />
+ <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
<div class="content">
<div class="name">涓婃湀鐢ㄦ按(t)</div>
<div class="num">450</div>
@@ -124,11 +118,7 @@
</div>
<div class="item">
<div class="header">
- <img
- class="icon"
- src="@/assets/images/ic_yongqi@2x.png"
- alt=""
- />
+ <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
<div class="content">
<div class="name">涓婃湀鐢ㄦ皵(t)</div>
<div class="num">450</div>
@@ -195,17 +185,64 @@
</div>
</div>
<div class="right_box">
- <div class="right_box_one"></div>
- <div class="right_box_two"></div>
- <div class="right_box_three"></div>
+ <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">
+ <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
+ <div>
+ <div class="name">鏈湀绱纰虫帓鏀�</div>
+ <div><span class="num">22.22</span><span>鍚�</span></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>
+ <div class="tabs">娌硅�楋細L</div>
+ <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+ </div>
+ <div class="list">
+ <div class="line" v-for="item,i in 6">
+ <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
+ <div class="id_card">鐨朅12313</div>
+ <div class="wrap">
+ <ChargeRate :rate="15" :color />
+ </div>
+ <div class="num">1000</div>
+ </div>
+ </div>
+ </div>
+ <div class="right_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="wrap">
+ <div class="analyseRef"></div>
+ </div>
+ </div>
</div>
</div>
</div>
</template>
<script setup>
-import { ref } from 'vue'
+import { ref, onMounted } from 'vue'
import dayjs from 'dayjs'
+import ChargeRate from '@/components/ChargeRate.vue'
+import * as echarts from 'echarts'
const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
const date = ref(dayjs().format('YYYY.MM.DD'))
@@ -218,29 +255,329 @@
}, 1000)
+
+const initOperation = () => {
+ // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+ var myChart = echarts.init(document.querySelector('.analyseRef'))
+ // 缁樺埗鍥捐〃
+ 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: '16%',
+ left: '4%',
+ right: '2%',
+ bottom: '2%',
+ containLabel: true
+ },
+ series: [
+ {
+ data: [1,2,3,4,4,5].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 initLoadReal = () => {
+ // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+ var myChart = echarts.init(document.querySelector('.loadRef'))
+ // 缁樺埗鍥捐〃
+ 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: '鍗曚綅锛歬w路h',
+ nameTextStyle: {
+ padding: [0, 0, 0, -16] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ //杩欓噷杈撳叆绾挎潯鐨勬牱寮�
+ color: 'rgba(255,255,255,0.14)',
+ type: 'dashed',
+ },
+ splitNumber: 4
+ }
+ },
+ grid: {
+ top: '16%',
+ left: '4%',
+ right: '2%',
+ bottom: '2%',
+ containLabel: true
+ },
+ series: [
+ {
+ data: [1,2,3,4,4,4000].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 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()
+ })
+}
+
+onMounted(() => {
+ initOperation()
+ initLoadReal()
+ initEnergy()
+})
+
+
</script>
<style lang="scss" scoped>
.main_content {
display: flex;
padding: 20px 24px 0;
+
.left_box {
flex: 4;
+
.left_box_one {
width: 100%;
margin-bottom: 20px;
+
.content {
width: 100%;
padding: 24px 5%;
display: flex;
flex-wrap: wrap;
+
.item {
width: 33.3%;
margin-bottom: 12px;
+
.lab {
font-size: 14px;
color: #ffffff;
}
+
.val {
font-weight: 600;
font-size: 20px;
@@ -250,37 +587,64 @@
}
}
}
+
.left_box_two {
margin-bottom: 20px;
+ .load_wrap{
+ width: 100%;
+ height: 210px;
+ padding: 12px 12px;
+ .loadRef{
+ width: 100%;
+ height: 100%;
+ }
+ }
}
+
.left_box_three {
+ .energy_wrap{
+ width: 100%;
+ height: 200px;
+ .energyRef{
+ width: 100%;
+ height: 100%;
+ }
+ }
}
}
+
.center_box {
flex: 9;
padding: 0 60px;
+
.center_box_one {
padding: 30px 18px;
margin-bottom: 18px;
+
.list {
display: flex;
justify-content: space-between;
align-items: center;
+
.item {
flex: 1;
+
.header {
display: flex;
margin-bottom: 14px;
+
.icon {
width: 70px;
height: 73px;
margin-right: 20px;
}
+
.content {
.name {
font-size: 16px;
color: #d2e0ff;
}
+
.num {
font-weight: bold;
font-size: 36px;
@@ -289,17 +653,21 @@
}
}
}
+
.static {
font-size: 12px;
display: flex;
align-items: center;
+
.lab {
color: #869cc9;
}
+
.val {
color: #d2e0ff;
margin-right: 20px;
}
+
.icon {
width: 12px;
height: 12px;
@@ -309,99 +677,119 @@
}
}
}
+
.center_box_two {
position: relative;
width: 100%;
height: 544px;
+
.item {
width: 120px;
height: 112px;
position: absolute;
text-align: center;
+
.num {
font-size: 35px;
line-height: 50px;
height: 50px;
font-weight: 600;
+
.unit {
font-size: 13px;
}
}
+
.name {
font-weight: 500;
font-size: 17px;
color: #ffffff;
}
+
.bg {
width: 120px;
height: 88px;
top: 24px;
}
}
- .item1{
+
+ .item1 {
left: 50%;
top: 0;
transform: translate(-50%, 0);
}
- .item2{
+
+ .item2 {
top: 112px;
left: 106px;
}
- .item3{
+
+ .item3 {
top: 112px;
right: 106px;
}
- .item4{
+
+ .item4 {
top: 291px;
left: 56px;
}
- .item5{
+
+ .item5 {
top: 291px;
right: 56px;
}
- .bottom_wrap{
+
+ .bottom_wrap {
position: absolute;
- bottom:-110px;
+ bottom: -110px;
left: 50%;
width: 600px;
height: 100px;
transform: translate(-50%, 0);
}
- .bottom{
+
+ .bottom {
width: 140px;
height: 194px;
position: absolute;
text-align: center;
padding-top: 70px;
- .num{
+
+ .num {
font-size: 24px;
color: #D0FFFA;
line-height: 33px;
}
- .name{
+
+ .name {
font-size: 15px;
color: #D0FFFA;
line-height: 21px;
}
- .unit{
+
+ .unit {
font-size: 14px;
color: #D0FFFA;
}
}
- .bottom1{
+
+ .bottom1 {
bottom: -0px;
- left: 40px;
+ left: 40px;
}
- .bottom3{
+
+ .bottom3 {
bottom: -0px;
- right: 40px;
+ right: 40px;
}
- .bottom2{
+
+ .bottom2 {
bottom: -0px;
- left: 50%;
+ left: 50%;
transform: translate(-50%, 0);
padding-top: 50px;
- .num{
+
+ .num {
font-size: 36px;
color: #01D9FE;
line-height: 54px;
@@ -410,10 +798,83 @@
}
}
}
+
.right_box {
flex: 4;
+
+ .right_box_one {
+ margin-bottom: 20px;
+ .content {
+ height: 164px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ .co2 {
+ width: 102px;
+ margin-right: 30px;
+ }
+
+ .num {
+ margin-top: 10px;
+ color: #01D9FE;
+ font-weight: 600;
+ font-size: 36px;
+ margin-right: 2px;
+ }
+ }
+ }
+ .right_box_two{
+ margin-bottom: 20px;
+ .list{
+ padding: 20px 24px 4px;
+ .line{
+ display: flex;
+ align-items: center;
+ margin-bottom: 16px;
+ .top{
+ font-weight: 500;
+ font-size: 12px;
+ width: 33px;
+ height: 19px;
+ line-height: 19px;
+ text-align: center;
+ color: #DBEAEA;
+ box-shadow: inset 0px 0px 3px 0px #01D9FE;
+ margin-right: 10px;
+ }
+ .id_card{
+ color: #DBEAEA;
+ font-weight: 500;
+ margin-right: 14px;
+ font-size: 14px;
+ }
+ .num{
+ font-weight: 500;
+ font-size: 13px;
+ color: #DBEAEA;
+ margin-left: 15px;
+ }
+ .wrap{
+ flex: 1;
+ height: 20px;
+ border: 1px solid #686B6B;
+ }
+ }
+ }
+ }
+ .right_box_three{
+ .wrap{
+ padding: 8px;
+ .analyseRef{
+ width: 100%;
+ height: 210px;
+ }
+ }
+ }
}
}
+
.com_header {
height: 40px;
display: flex;
@@ -421,44 +882,46 @@
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%
- );
+ 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;
- .tab {
- font-size: 14px;
- color: #d2e0ff;
- }
+ font-size: 14px;
+ color: #d2e0ff;
+
.separate {
width: 1px;
height: 14px;
background-color: #d2e0ff;
margin: 0 6px;
}
+
.active {
color: #0094eb;
}
}
}
+
.bg {
position: absolute;
left: 0;
@@ -468,17 +931,17 @@
object-fit: cover;
z-index: -1;
}
+
.fs_linear {
- background-image: -webkit-linear-gradient(
- top,
- #ffffff 0%,
- #c8ddff 70%,
- #85b4ff 80%,
- #74a9ff 100%
- );
+ background-image: -webkit-linear-gradient(top,
+ #ffffff 0%,
+ #c8ddff 70%,
+ #85b4ff 80%,
+ #74a9ff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
+
.main_header {
display: flex;
justify-content: space-between;
@@ -488,31 +951,30 @@
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%
- );
+ background-image: -webkit-linear-gradient(top,
+ #ffffff 0%,
+ #c8ddff 70%,
+ #85b4ff 80%,
+ #74a9ff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
+
.time {
font-size: 26px;
font-weight: 600;
- background-image: -webkit-linear-gradient(
- top,
- #ffffff 0%,
- #c8ddff 50%,
- #85b4ff 80%,
- #74a9ff 100%
- );
+ 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: 180px;
display: flex;
@@ -520,10 +982,12 @@
padding-bottom: 10px;
font-size: 36px;
}
+
.week {
margin-left: 36px;
}
}
+
.main_header_bg {
position: absolute;
left: 0;
@@ -534,11 +998,13 @@
z-index: -1;
}
}
+
.main_app {
width: 100%;
min-height: 100vh;
color: #ffffff;
position: relative;
+
.main_bg {
position: absolute;
left: 0;
--
Gitblit v1.9.3