diff --git a/src/api/home.js b/src/api/home.js index 992d56c..8f23405 100644 --- a/src/api/home.js +++ b/src/api/home.js @@ -16,3 +16,12 @@ export function getVideoListApi(data) { params: data }) } + +// 刷新播放地址 +export function postRefreshApi(data) { + return request({ + url: '/api/video/refresh', + method: 'POST', + data: data + }) +} diff --git a/src/api/request.js b/src/api/request.js index 9d69b2e..4f96b6b 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -96,6 +96,8 @@ const instance = axios.create({ baseURL: 'http://36.138.38.16:8001/fjtcc-api', timeout: 100000, headers: { + Authorization: + 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImE1OWFmNWYwLTU3OWItNDJkNy1hZDJhLTY0Y2JlODA5ZWI1NiJ9.BTxvu6jUWbN0qONWf5K6VzXopE8T8qXzKuX-mij21VJT4U0LdgnqToyqeNDQ2OyJ6cvpdJBzQ9mEEb-dnwrTpQ', 'Content-Type': 'application/json;charset=UTF-8' } }) @@ -106,7 +108,7 @@ const instance = axios.create({ instance.interceptors.request.use( (config) => { if (config.data && config.headers['Content-Type'] === 'application/json";charset=UTF-8') - config.data = qs.stringify(config.data) + config.data = config.data return config }, (error) => { diff --git a/src/api/workOrder.js b/src/api/workOrder.js new file mode 100644 index 0000000..8af8ace --- /dev/null +++ b/src/api/workOrder.js @@ -0,0 +1,49 @@ +import request from './request' + +// 最新工单 +export function getListApi() { + return request({ + url: '/api/largeScreen/workorder/list', + method: 'get' + }) +} + +// 统计 +export function getTotalApi() { + return request({ + url: '/api/largeScreen/workorder/total', + method: 'get' + }) +} + +// 工单总数(折线图) +export function getLineChartApi() { + return request({ + url: '/api/largeScreen/workorder/lineChart', + method: 'get' + }) +} + +// 工单完成比例 +export function getCompleteRateApi() { + return request({ + url: '/api/largeScreen/workorder/completeRate', + method: 'get' + }) +} + +// 工单景区占比 +export function getSpotRateApi() { + return request({ + url: '/api/largeScreen/workorder/spotRate', + method: 'get' + }) +} + +// 工单类型占比 +export function getTypeRateApi() { + return request({ + url: '/api/largeScreen/workorder/typeRate', + method: 'get' + }) +} diff --git a/src/assets/fonts/MicrosoftYaHei.ttf b/src/assets/fonts/MicrosoftYaHei.ttf new file mode 100644 index 0000000..b4456b2 Binary files /dev/null and b/src/assets/fonts/MicrosoftYaHei.ttf differ diff --git a/src/assets/fonts/MicrosoftYaHeiBold.ttf b/src/assets/fonts/MicrosoftYaHeiBold.ttf new file mode 100644 index 0000000..4de1c96 Binary files /dev/null and b/src/assets/fonts/MicrosoftYaHeiBold.ttf differ diff --git a/src/assets/fonts/index.css b/src/assets/fonts/index.css new file mode 100644 index 0000000..2f4502b --- /dev/null +++ b/src/assets/fonts/index.css @@ -0,0 +1,13 @@ +@font-face { + font-family: "MicrosoftYaHei"; + src: url("./MicrosoftYaHei.ttf"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "MicrosoftYaHeiBold"; + src: url("./MicrosoftYaHeiBold.ttf"); + font-weight: normal; + font-style: normal; +} diff --git a/src/assets/fonts/微软正黑体.ttf b/src/assets/fonts/微软正黑体.ttf new file mode 100644 index 0000000..8997148 Binary files /dev/null and b/src/assets/fonts/微软正黑体.ttf differ diff --git a/src/assets/fonts/微软雅黑粗体.ttf b/src/assets/fonts/微软雅黑粗体.ttf new file mode 100644 index 0000000..0d2e971 Binary files /dev/null and b/src/assets/fonts/微软雅黑粗体.ttf differ diff --git a/src/components/CoreVideo/index.vue b/src/components/CoreVideo/index.vue index ac0e884..701e0de 100644 --- a/src/components/CoreVideo/index.vue +++ b/src/components/CoreVideo/index.vue @@ -33,15 +33,15 @@ diff --git a/src/views/home/components/ticket.vue b/src/views/home/components/ticket.vue index 6f47b51..19c07df 100644 --- a/src/views/home/components/ticket.vue +++ b/src/views/home/components/ticket.vue @@ -41,30 +41,32 @@ } }, color: ['#F15A25', '#01FEFE', '#12B5FD'], - series: homeData.value?.userPortrait?.channel.map((item, index) => { - return { - name: item.name, - type: 'pie', - clockwise: false, //顺时加载 - radius: [`${x * (index + 1)}%`, `${y + index * 15}%`], - center: ['50%', '40%'], - label: { show: false }, - labelLine: { show: false }, - emphasis: { show: false }, - data: [ - { - value: parseFloat(item.value), - name: item.name - }, - { - value: 100, - itemStyle: { - color: '#07439C' + series: + homeData.value?.userPortrait?.channel || + [].map((item, index) => { + return { + name: item.name, + type: 'pie', + clockwise: false, //顺时加载 + radius: [`${x * (index + 1)}%`, `${y + index * 15}%`], + center: ['50%', '40%'], + label: { show: false }, + labelLine: { show: false }, + emphasis: { show: false }, + data: [ + { + value: parseFloat(item.value), + name: item.name + }, + { + value: 100, + itemStyle: { + color: '#07439C' + } } - } - ] - } - }) + ] + } + }) }) } ) diff --git a/src/views/workOrder/components/box-1.vue b/src/views/workOrder/components/box-1.vue index 36f1c2b..1ed8dae 100644 --- a/src/views/workOrder/components/box-1.vue +++ b/src/views/workOrder/components/box-1.vue @@ -1,132 +1,142 @@ - \ No newline at end of file + .work-box-1 { + width: vw(815); + height: vh(950); + margin-top: vh(120); + background: linear-gradient(321deg, #0b2f64 0%, #062b57 100%); + position: relative; + z-index: 99; + padding: 0 vw(20); + .list { + /* 滚动条整体样式 */ + &::-webkit-scrollbar { + width: vw(4); /* 滚动条的宽度 */ + } + /* 滚动条轨道 */ + &::-webkit-scrollbar-track { + background: 'transparent'; /* 轨道的背景色 */ + } + /* 滚动条滑块 */ + &::-webkit-scrollbar-thumb { + background: rgba(0, 150, 255, 0.63); /* 滑块的背景色 */ + border-radius: 5px; /* 滑块的圆角 */ + } + height: vh(895); + overflow: auto; + .li:nth-child(odd) { + background: rgba(3, 78, 153, 0.3); + } + .li:nth-child(even) { + background-color: transparent; + } + .li { + display: flex; + align-items: center; + justify-content: flex-start; + padding: vh(8) vh(10); + .label { + width: vw(60); + height: vh(24); + line-height: vh(24); + color: #fff; + border-radius: vw(2); + font-size: vw(14); + text-align: center; + display: inline-block; + margin-right: vw(10); + } + .normal { + @extend .label; + background: #2380fb; + } + .warn { + @extend .label; + background: #feae00; + } + .important { + @extend .label; + background: #d9011b; + } + .time { + font-weight: 400; + font-size: vw(12); + color: rgba(255, 255, 255, 0.6); + line-height: 14px; + text-align: left; + font-style: normal; + text-transform: none; + margin-left: vw(30); + } + p { + font-weight: 400; + font-size: vw(15); + color: #ffffff; + text-align: left; + font-style: normal; + text-transform: none; + flex: 1; + /*1. 先强制一行内显示文本*/ + white-space: nowrap; + /*2. 超出的部分隐藏*/ + overflow: hidden; + /*3. 文字用省略号替代超出的部分*/ + text-overflow: ellipsis; + } + } + } + .header { + position: relative; + margin: vh(20); + .title { + margin: vh(5) auto; + width: vw(468); + height: vh(32); + font-weight: 800; + font-size: vw(16); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + background-image: url('@/assets/images/title-4.png'); + background-size: 100% 100%; + span { + font-weight: 800; + color: transparent; + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + background-image: linear-gradient(to bottom, #ffffff 0%, #87c9ff 100%); + } + } + } + } + diff --git a/src/views/workOrder/components/box-2.vue b/src/views/workOrder/components/box-2.vue index fff2ace..cddb013 100644 --- a/src/views/workOrder/components/box-2.vue +++ b/src/views/workOrder/components/box-2.vue @@ -1,110 +1,119 @@