diff --git a/hb_client/package.json b/hb_client/package.json index 2162f0b..6c22a7f 100644 --- a/hb_client/package.json +++ b/hb_client/package.json @@ -16,6 +16,7 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { + "@jiaminghi/data-view": "^2.10.0", "@riophae/vue-treeselect": "^0.4.0", "axios": "^0.21.1", "cache-loader": "^4.1.0", diff --git a/hb_client/src/assets/pageBg.jpg b/hb_client/src/assets/pageBg.jpg new file mode 100644 index 0000000..a1764a0 Binary files /dev/null and b/hb_client/src/assets/pageBg.jpg differ diff --git a/hb_client/src/assets/scss/_variables.scss b/hb_client/src/assets/scss/_variables.scss new file mode 100644 index 0000000..80edb92 --- /dev/null +++ b/hb_client/src/assets/scss/_variables.scss @@ -0,0 +1,98 @@ +// 颜色 +$colors: ( + "primary": #1A5CD7, + "info-1": #4394e4, + "info": #4b67af, + "white": #ffffff, + "light": #f9f9f9, + "grey-1": #999999, + "grey": #666666, + "dark-1": #5f5f5f, + "dark": #222222, + "black-1": #171823, + "black": #000000, + "icon": #5cd9e8 +); + +// 字体大小 +$base-font-size: 0.2rem; +$font-sizes: ( + xxs: 0.1, + //8px + xs: 0.125, + //10px + sm: 0.2875, + //12px + md: 0.1625, + //13px + lg: 0.175, + //14px + xl: 0.2, + //16px + xxl: 0.225, + //18px + xxxl: 0.25 //20px,,,, +); + +// 宽高 +.w-100 { + width: 100%; +} +.h-100 { + height: 100%; +} + +//flex +.d-flex { + display: flex; +} +.flex-column { + flex-direction: column; +} +.flex-wrap { + flex-wrap: wrap; +} +.flex-nowrap { + flex-wrap: nowrap; +} +$flex-jc: ( + start: flex-start, + end: flex-end, + center: center, + between: space-between, + around: space-around, + evenly: space-evenly, +); + +$flex-ai: ( + start: flex-start, + end: flex-end, + center: center, + stretch: stretch, +); + +.flex-1 { + flex: 1; +} + +//.mt-1 => margin top +//spacing +$spacing-types: ( + m: margin, + p: padding, +); +$spacing-directions: ( + t: top, + r: right, + b: bottom, + l: left, +); +$spacing-base-size: 0.5rem; +$spacing-sizes: ( + 0: 0, + 1: 0.5, + 2: 1, + 3: 1.5, + 4: 2, + 5: 2.5, +); diff --git a/hb_client/src/assets/scss/index.scss b/hb_client/src/assets/scss/index.scss new file mode 100644 index 0000000..3630421 --- /dev/null +++ b/hb_client/src/assets/scss/index.scss @@ -0,0 +1,144 @@ +#index { + color: #d3d6dd; + width: 1920px; + height: 1080px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transform-origin: left top; + overflow: hidden; + + .bg { + width: 100%; + height: 100%; + padding: 16px 16px 0 16px; + background-image: url("../../assets/pageBg.jpg"); + background-size: cover; + background-position: center center; + } + + .host-body { + .dv-dec-10, + .dv-dec-10-s { + width: 33.3%; + height: 5px; + } + .dv-dec-10-s { + transform: rotateY(180deg); + } + .dv-dec-8 { + width: 200px; + height: 50px; + } + .title { + position: relative; + width: 500px; + text-align: center; + background-size: cover; + background-repeat: no-repeat; + + .title-text { + font-size: 24px; + position: absolute; + bottom: 0; + left: 50%; + transform: translate(-50%); + } + + .dv-dec-6 { + position: absolute; + bottom: -30px; + left: 50%; + width: 250px; + height: 8px; + transform: translate(-50%); + } + } + + // 第二行 + .aside-width { + width: 40%; + } + .react-r-s, + .react-l-s { + background-color: #0f1325; + } + + // 平行四边形 + .react-right { + &.react-l-s { + text-align: right; + width: 500px; + } + font-size: 18px; + width: 300px; + line-height: 50px; + text-align: center; + transform: skewX(-45deg); + + .react-after { + position: absolute; + right: -25px; + top: 0; + height: 50px; + width: 50px; + background-color: #0f1325; + transform: skewX(45deg); + } + + .text { + display: inline-block; + transform: skewX(45deg); + } + } + + .react-left { + &.react-l-s { + width: 500px; + text-align: left; + } + font-size: 18px; + width: 300px; + height: 50px; + line-height: 50px; + text-align: center; + transform: skewX(45deg); + background-color: #0f1325; + + .react-before { + position: absolute; + left: -25px; + top: 0; + height: 50px; + width: 50px; + background-color: #0f1325; + transform: skewX(-45deg); + } + + .text { + display: inline-block; + transform: skewX(-45deg); + } + } + + .body-box { + margin-top: 16px; + display: flex; + flex-direction: column; + + //下方区域的布局 + .content-box { + display: grid; + grid-template-columns: 2fr 3fr 5fr 3fr 2fr; + } + + // 底部数据 + .bototm-box { + margin-top: 10px; + display: grid; + grid-template-columns: repeat(2, 50%); + } + } + } +} diff --git a/hb_client/src/assets/scss/style.scss b/hb_client/src/assets/scss/style.scss new file mode 100644 index 0000000..143bdb3 --- /dev/null +++ b/hb_client/src/assets/scss/style.scss @@ -0,0 +1,154 @@ +@import "./variables"; + +// 全局样式 +* { + margin: 0; + padding: 0; + list-style-type: none; + outline: none; + box-sizing: border-box; +} + +html { + margin: 0; + padding: 0; +} +body { + font-family: Arial, Helvetica, sans-serif; + //line-height: 1.2em; + background-color: #f1f1f1; + margin: 0; + padding: 0; +} +a { + color: #343440; + text-decoration: none; +} +.clearfix { + &::after { + content: ""; + display: table; + height: 0; + line-height: 0; + visibility: hidden; + clear: both; + } +} +//浮动 +.float-r { + float: right; +} +//浮动 +.float-l { + float: left; +} +// 字体加粗 +.fw-b { + font-weight: bold; +} +//文章一行显示,多余省略号显示 +.title-item { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.bg-color-black { + background-color: rgba(19, 25, 47, 0.6); +} +.bg-color-blue { + background-color: #1a5cd7; +} +.colorBlack { + color: #272727 !important; + &:hover { + color: #272727 !important; + } +} +.colorGrass { + color: #33cea0; + &:hover { + color: #33cea0 !important; + } +} +.colorRed { + color: #ff5722; + &:hover { + color: #ff5722 !important; + } +} +.colorText { + color: #d3d6dd !important; + &:hover { + color: #d3d6dd !important; + } +} +.colorBlue { + color: #257dff !important; + &:hover { + color: #257dff !important; + } +} +//颜色 +@each $colorkey, $color in $colors { + .text-#{$colorkey} { + color: $color; + } + .bg-#{$colorkey} { + background-color: $color; + } +} +//对齐 +@each $var in (left, center, right) { + .text-#{$var} { + text-align: $var !important; + } +} +//flex +@each $key, $value in $flex-jc { + .jc-#{$key} { + justify-content: $value; + } +} +@each $key, $value in $flex-ai { + .ai-#{$key} { + align-items: $value; + } +} +//字体 +@each $fontkey, $fontvalue in $font-sizes { + .fs-#{$fontkey} { + font-size: $fontvalue * $base-font-size; + } +} +//.mt-1 => margin top +//spacing +@each $typekey, $type in $spacing-types { + //.m-1 + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}-#{$sizekey} { + #{$type}: $size * $spacing-base-size; + } + } + //.mx-1 + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}x-#{$sizekey} { + #{$type}-left: $size * $spacing-base-size; + #{$type}-right: $size * $spacing-base-size; + } + .#{$typekey}y-#{$sizekey} { + #{$type}-top: $size * $spacing-base-size; + #{$type}-bottom: $size * $spacing-base-size; + } + } + //.mt-1 + @each $directionkey, $direction in $spacing-directions { + @each $sizekey, $size in $spacing-sizes { + .#{$typekey}#{$directionkey}-#{$sizekey} { + #{$type}-#{$direction}: $size * $spacing-base-size; + } + } + } + .#{$typekey} { + #{$type}: 0; + } +} diff --git a/hb_client/src/components/echart/chartRate.vue b/hb_client/src/components/echart/chartRate.vue new file mode 100644 index 0000000..58b6fd7 --- /dev/null +++ b/hb_client/src/components/echart/chartRate.vue @@ -0,0 +1,104 @@ + + + + + + + + + + diff --git a/hb_client/src/components/echart/index.vue b/hb_client/src/components/echart/index.vue new file mode 100644 index 0000000..db61b5e --- /dev/null +++ b/hb_client/src/components/echart/index.vue @@ -0,0 +1,65 @@ + + + + + + + diff --git a/hb_client/src/components/echart/theme.json b/hb_client/src/components/echart/theme.json new file mode 100644 index 0000000..ce81aba --- /dev/null +++ b/hb_client/src/components/echart/theme.json @@ -0,0 +1,490 @@ +{ + "color": [ + "#2d8cf0", + "#19be6b", + "#ff9900", + "#E46CBB", + "#9A66E4", + "#ed3f14" + ], + "backgroundColor": "rgba(0,0,0,0)", + "textStyle": {}, + "title": { + "textStyle": { + "color": "#516b91" + }, + "subtextStyle": { + "color": "#93b7e3" + } + }, + "line": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "radar": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "bar": { + "itemStyle": { + "normal": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + }, + "emphasis": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + } + } + }, + "pie": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "scatter": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "boxplot": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "parallel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "sankey": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "funnel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "gauge": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "candlestick": { + "itemStyle": { + "normal": { + "color": "#edafda", + "color0": "transparent", + "borderColor": "#d680bc", + "borderColor0": "#8fd3e8", + "borderWidth": "2" + } + } + }, + "graph": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "lineStyle": { + "normal": { + "width": 1, + "color": "#aaa" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true, + "color": [ + "#2d8cf0", + "#19be6b", + "#f5ae4a", + "#9189d5", + "#56cae2", + "#cbb0e3" + ], + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + } + } + }, + "map": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "geo": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "categoryAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#fff" + } + }, + "splitLine": { + "show": false, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "valueAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#fff" + } + }, + "splitLine": { + "show": false, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "logAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "timeAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "toolbox": { + "iconStyle": { + "normal": { + "borderColor": "#999" + }, + "emphasis": { + "borderColor": "#666" + } + } + }, + "legend": { + "textStyle": { + "color": "#fff" + } + }, + "tooltip": { + "axisPointer": { + "lineStyle": { + "color": "#ccc", + "width": 1 + }, + "crossStyle": { + "color": "#ccc", + "width": 1 + } + } + }, + "timeline": { + "lineStyle": { + "color": "#8fd3e8", + "width": 1 + }, + "itemStyle": { + "normal": { + "color": "#8fd3e8", + "borderWidth": 1 + }, + "emphasis": { + "color": "#8fd3e8" + } + }, + "controlStyle": { + "normal": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + }, + "emphasis": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + } + }, + "checkpointStyle": { + "color": "#8fd3e8", + "borderColor": "rgba(138,124,168,0.37)" + }, + "label": { + "normal": { + "textStyle": { + "color": "#8fd3e8" + } + }, + "emphasis": { + "textStyle": { + "color": "#8fd3e8" + } + } + } + }, + "visualMap": { + "color": [ + "#516b91", + "#59c4e6", + "#a5e7f0" + ] + }, + "dataZoom": { + "backgroundColor": "rgba(0,0,0,0)", + "dataBackgroundColor": "rgba(255,255,255,0.3)", + "fillerColor": "rgba(167,183,204,0.4)", + "handleColor": "#a7b7cc", + "handleSize": "100%", + "textStyle": { + "color": "#333" + } + }, + "markPoint": { + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + }, + "emphasis": { + "textStyle": { + "color": "#eee" + } + } + } + } +} diff --git a/hb_client/src/main.js b/hb_client/src/main.js index d9d4487..368bb23 100644 --- a/hb_client/src/main.js +++ b/hb_client/src/main.js @@ -16,10 +16,15 @@ import router from './router' import { plugin } from "vue-function-api"; import '@/icons' // icon import '@/permission' // permission control -import tableHeight from '@/directive/el-table/index' +import tableHeight from '@/directive/el-table/index'; +import echarts from 'echarts'; +import dataV from '@jiaminghi/data-view'; +// 引入全局css +import './assets/scss/style.scss'; Vue.component(CollapseTransition.name, CollapseTransition); Vue.use(tableHeight).use(plugin); - +Vue.prototype.$echarts = echarts; +Vue.use(dataV); /** * If you don't want to use mock-server * you want to use MockJs for mock api diff --git a/hb_client/src/router/index.js b/hb_client/src/router/index.js index 126f360..37a5d1c 100644 --- a/hb_client/src/router/index.js +++ b/hb_client/src/router/index.js @@ -36,7 +36,6 @@ export const constantRoutes = [ component: () => import('@/views/login/index'), hidden: true }, - { path: '/404', component: () => import('@/views/404'), @@ -53,6 +52,11 @@ export const constantRoutes = [ meta: { title: '首页', icon: 'dashboard', affix: true,keepAlive: false } }] }, + { + path: '/index', + component: () => import('@/views/bigScreen/index'), + meta: { title: '大屏', icon: 'dashboard', affix: true,keepAlive: false } + }, { path: '/changepassword', component: Layout, diff --git a/hb_client/src/utils/drawMixin.js b/hb_client/src/utils/drawMixin.js new file mode 100644 index 0000000..93e1236 --- /dev/null +++ b/hb_client/src/utils/drawMixin.js @@ -0,0 +1,57 @@ +// 屏幕适配 mixin 函数 + +// * 默认缩放值 +const scale = { + width: '1', + height: '1', +} + +// * 设计稿尺寸(px) +const baseWidth = 1920 +const baseHeight = 1080 + +// * 需保持的比例(默认1.77778) +const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5)) + +export default { + data() { + return { + // * 定时函数 + drawTiming: null + } + }, + mounted () { + this.calcRate() + window.addEventListener('resize', this.resize) + }, + beforeDestroy () { + window.removeEventListener('resize', this.resize) + }, + methods: { + calcRate () { + const appRef = this.$refs["appRef"] + if (!appRef) return + // 当前宽高比 + const currentRate = parseFloat((window.innerWidth / window.innerHeight).toFixed(5)) + if (appRef) { + if (currentRate > baseProportion) { + // 表示更宽 + scale.width = ((window.innerHeight * baseProportion) / baseWidth).toFixed(5) + scale.height = (window.innerHeight / baseHeight).toFixed(5) + appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)` + } else { + // 表示更高 + scale.height = ((window.innerWidth / baseProportion) / baseHeight).toFixed(5) + scale.width = (window.innerWidth / baseWidth).toFixed(5) + appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)` + } + } + }, + resize () { + clearTimeout(this.drawTiming) + this.drawTiming = setTimeout(() => { + this.calcRate() + }, 200) + } + }, +} \ No newline at end of file diff --git a/hb_client/src/utils/index.js b/hb_client/src/utils/index.js index 722c202..706a269 100644 --- a/hb_client/src/utils/index.js +++ b/hb_client/src/utils/index.js @@ -382,3 +382,56 @@ const arrChange = arr => arr.map(item => { } return res }) + +/** + * @param {Function} fn 防抖函数 + * @param {Number} delay 延迟时间 + */ +/*export function debounce(fn, delay) { + let timer; + return function () { + const context = this; + const args = arguments; + clearTimeout(timer); + timer = setTimeout(function () { + fn.apply(context, args); + }, delay); + }; +}*/ + +/** + * @param {date} time 需要转换的时间 + * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss + */ +export function formatTimeBigScreen(time, fmt) { + if (!time) return ''; + else { + const date = new Date(time); + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + 'q+': Math.floor((date.getMonth() + 3) / 3), + S: date.getMilliseconds(), + }; + if (/(y+)/.test(fmt)) + fmt = fmt.replace( + RegExp.$1, + (date.getFullYear() + '').substr(4 - RegExp.$1.length) + ); + for (const k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length === 1 + ? o[k] + : ('00' + o[k]).substr(('' + o[k]).length) + ); + } + } + return fmt; + } +} + diff --git a/hb_client/src/utils/resizeMixin.js b/hb_client/src/utils/resizeMixin.js new file mode 100644 index 0000000..a4d25bc --- /dev/null +++ b/hb_client/src/utils/resizeMixin.js @@ -0,0 +1,32 @@ +// 混入代码 resize-mixins.js +import { debounce } from '@/utils'; +const resizeChartMethod = '$__resizeChartMethod'; + +export default { + data() { + // 在组件内部将图表 init 的引用映射到 chart 属性上 + return { + chart: null, + }; + }, + created() { + window.addEventListener('resize', this[resizeChartMethod], false); + }, + activated() { + // 防止 keep-alive 之后图表变形 + if (this.chart) { + this.chart.resize() + } + }, + beforeDestroy() { + window.removeEventListener('reisze', this[resizeChartMethod]); + }, + methods: { + // 防抖函数来控制 resize 的频率 + [resizeChartMethod]: debounce(function() { + if (this.chart) { + this.chart.resize(); + } + }, 300), + }, +}; diff --git a/hb_client/src/views/bigScreen/bottomLeft.vue b/hb_client/src/views/bigScreen/bottomLeft.vue new file mode 100644 index 0000000..45131d4 --- /dev/null +++ b/hb_client/src/views/bigScreen/bottomLeft.vue @@ -0,0 +1,308 @@ + + + + + + + + + 数据统计图 + + + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/bottomRight.vue b/hb_client/src/views/bigScreen/bottomRight.vue new file mode 100644 index 0000000..e163bb4 --- /dev/null +++ b/hb_client/src/views/bigScreen/bottomRight.vue @@ -0,0 +1,466 @@ + + + + + + + + + 工单修复以及满意度统计图 + + + + + + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/center.vue b/hb_client/src/views/bigScreen/center.vue new file mode 100644 index 0000000..a8f52ce --- /dev/null +++ b/hb_client/src/views/bigScreen/center.vue @@ -0,0 +1,271 @@ + + + + + {{ item.title }} + + + + + + + + + + + 年度负责人组件达标榜 + + + + + 今日任务通过率 + + + + 今日任务达标率 + + + + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/centerLeft1.vue b/hb_client/src/views/bigScreen/centerLeft1.vue new file mode 100644 index 0000000..6f35776 --- /dev/null +++ b/hb_client/src/views/bigScreen/centerLeft1.vue @@ -0,0 +1,242 @@ + + + + + + + + + 任务通过率 + + + + + + + + + + + + + + + {{ item.text }} + (件) + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/centerRight1.vue b/hb_client/src/views/bigScreen/centerRight1.vue new file mode 100644 index 0000000..466fd3d --- /dev/null +++ b/hb_client/src/views/bigScreen/centerRight1.vue @@ -0,0 +1,75 @@ + + + + + + + + + 人员到岗情况 + + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/centerRight2.vue b/hb_client/src/views/bigScreen/centerRight2.vue new file mode 100644 index 0000000..5827186 --- /dev/null +++ b/hb_client/src/views/bigScreen/centerRight2.vue @@ -0,0 +1,88 @@ + + + + + + + + 产品销售渠道分析 + + + + + + + + + + + diff --git a/hb_client/src/views/bigScreen/index.vue b/hb_client/src/views/bigScreen/index.vue new file mode 100644 index 0000000..128b0ce --- /dev/null +++ b/hb_client/src/views/bigScreen/index.vue @@ -0,0 +1,148 @@ + + + + Loading... + + + + + + + 航玻车间可视化平台 + + + + + + + + + + + + 数据分析1 + + + 数据分析2 + + + + + 车间详情展示 + + + + {{ dateYear }} {{ dateWeek }} {{ dateDay }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ item.title }}
+ {{ item.text }} + (件) +