From 4afea30fa20c6d689ce0f37e6777663535c0934f Mon Sep 17 00:00:00 2001
From: shishuaikang <280848880@qq.com>
Date: 星期五, 01 十二月 2023 09:12:10 +0800
Subject: [PATCH] h5拌合站屏提交
---
web/src/views/MixingInfo/mixRatio.vue | 243 ++++++++++++++++
web/src/assets/mixing/header.png | 0
web/src/views/GoodManage/MixingScreen.vue | 202 +++++++++++++
web/src/router/index.js | 16 +
web/src/api/modules/mixing.js | 5
web/src/assets/mixing/container_90.png | 0
web/src/assets/mixing/name_bg.png | 0
web/src/views/MixingInfo/mixing.vue | 310 ++++++++++++++++++++
web/src/assets/mixing/container_40.png | 0
web/src/assets/mixing/container_60.png | 0
web/src/assets/mixing/container_10.png | 0
web/src/assets/mixing/list_r_bg.png | 0
web/src/assets/mixing/list_l_bg.png | 0
web/src/assets/mixing/container_20.png | 0
web/src/assets/mixing/container_80.png | 0
web/src/assets/mixing/list_bg.png | 0
web/src/assets/mixing/container_100.png | 0
web/src/views/GoodManage/MixRatioScreen.vue | 11
web/src/views/MixingInfo/components/List.vue | 91 ++++++
19 files changed, 877 insertions(+), 1 deletions(-)
diff --git a/web/src/api/modules/mixing.js b/web/src/api/modules/mixing.js
index c017b66..d91fa20 100644
--- a/web/src/api/modules/mixing.js
+++ b/web/src/api/modules/mixing.js
@@ -6,5 +6,8 @@
// H5搅拌站大屏展示数据信息
showHmixings: params =>
axios.get('/materials/suMaterialWarehouse/selectNewOneByTableNum', {params}),
-
+ getMixing: params =>
+ axios.get('/materials/materialRelease/siloList', {params}),
+ getMixRatio: params =>
+ axios.post('/materials/materialRelease/mixingConsumeList', params),
}
\ No newline at end of file
diff --git a/web/src/assets/mixing/container_10.png b/web/src/assets/mixing/container_10.png
new file mode 100644
index 0000000..15291b0
--- /dev/null
+++ b/web/src/assets/mixing/container_10.png
Binary files differ
diff --git a/web/src/assets/mixing/container_100.png b/web/src/assets/mixing/container_100.png
new file mode 100644
index 0000000..5b73dda
--- /dev/null
+++ b/web/src/assets/mixing/container_100.png
Binary files differ
diff --git a/web/src/assets/mixing/container_20.png b/web/src/assets/mixing/container_20.png
new file mode 100644
index 0000000..2bbe0dc
--- /dev/null
+++ b/web/src/assets/mixing/container_20.png
Binary files differ
diff --git a/web/src/assets/mixing/container_40.png b/web/src/assets/mixing/container_40.png
new file mode 100644
index 0000000..d2f52d3
--- /dev/null
+++ b/web/src/assets/mixing/container_40.png
Binary files differ
diff --git a/web/src/assets/mixing/container_60.png b/web/src/assets/mixing/container_60.png
new file mode 100644
index 0000000..5ced4a7
--- /dev/null
+++ b/web/src/assets/mixing/container_60.png
Binary files differ
diff --git a/web/src/assets/mixing/container_80.png b/web/src/assets/mixing/container_80.png
new file mode 100644
index 0000000..38348d1
--- /dev/null
+++ b/web/src/assets/mixing/container_80.png
Binary files differ
diff --git a/web/src/assets/mixing/container_90.png b/web/src/assets/mixing/container_90.png
new file mode 100644
index 0000000..47ee2ac
--- /dev/null
+++ b/web/src/assets/mixing/container_90.png
Binary files differ
diff --git a/web/src/assets/mixing/header.png b/web/src/assets/mixing/header.png
new file mode 100644
index 0000000..be0a727
--- /dev/null
+++ b/web/src/assets/mixing/header.png
Binary files differ
diff --git a/web/src/assets/mixing/list_bg.png b/web/src/assets/mixing/list_bg.png
new file mode 100644
index 0000000..462f5e3
--- /dev/null
+++ b/web/src/assets/mixing/list_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/list_l_bg.png b/web/src/assets/mixing/list_l_bg.png
new file mode 100644
index 0000000..d8c7dc5
--- /dev/null
+++ b/web/src/assets/mixing/list_l_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/list_r_bg.png b/web/src/assets/mixing/list_r_bg.png
new file mode 100644
index 0000000..63add79
--- /dev/null
+++ b/web/src/assets/mixing/list_r_bg.png
Binary files differ
diff --git a/web/src/assets/mixing/name_bg.png b/web/src/assets/mixing/name_bg.png
new file mode 100644
index 0000000..cf1da41
--- /dev/null
+++ b/web/src/assets/mixing/name_bg.png
Binary files differ
diff --git a/web/src/router/index.js b/web/src/router/index.js
index 2d80873..fe7eda0 100644
--- a/web/src/router/index.js
+++ b/web/src/router/index.js
@@ -15,6 +15,22 @@
}
},
{
+ path: '/mixing/*',
+ name: 'mixing',
+ meta: {
+ title: '管片场拌合站'
+ },
+ component: () => import('../views/MixingInfo/mixing.vue'),
+ },
+ {
+ path: '/mixratio/*',
+ name: 'mixratio',
+ meta: {
+ title: '管片场拌合站表格'
+ },
+ component: () => import('../views/MixingInfo/mixRatio.vue'),
+ },
+ {
path: `/mixingInfo/num=1`,
name: 'mixingInfo',
meta: {
diff --git a/web/src/views/GoodManage/MixRatioScreen.vue b/web/src/views/GoodManage/MixRatioScreen.vue
new file mode 100644
index 0000000..74753ca
--- /dev/null
+++ b/web/src/views/GoodManage/MixRatioScreen.vue
@@ -0,0 +1,11 @@
+<template>
+ <div>222222222222222</div>
+</template>
+
+<script>
+
+</script>
+
+<style lang="sass" scoped>
+@import '../../style/layout-main.scss';
+</style>
\ No newline at end of file
diff --git a/web/src/views/GoodManage/MixingScreen.vue b/web/src/views/GoodManage/MixingScreen.vue
new file mode 100644
index 0000000..5e6d786
--- /dev/null
+++ b/web/src/views/GoodManage/MixingScreen.vue
@@ -0,0 +1,202 @@
+<!-- 设备管理 ==> 拌合站屏管理-->
+<template>
+ <div class="main">
+ <div class="main_header">
+ <div class="header_item">
+ <span class="header_label">拌合站屏:</span>
+ <el-select size="mini" v-model="queryInfo.screen" placeholder="请选择拌合站屏">
+ <el-option v-for="item in queryInfoScreens" :key="item.value" :label="item.label"
+ :value="item.value"></el-option>
+ </el-select>
+ </div>
+ <div class="header_item">
+ <span class="header_label">录入方式:</span>
+ <el-select size="mini" v-model="queryInfo.inmode" placeholder="请选择录入方式">
+ <el-option v-for="item in queryInfoInmodes" :key="item.value" :label="item.label"
+ :value="item.value"></el-option>
+ </el-select>
+ </div>
+ <div class="header_item">
+ <span class="header_label">创建时间:</span>
+ <el-date-picker type="daterange" v-model="times" value-format="yyyy-MM-dd" start-placeholder="起始时间"
+ end-placeholder="结束时间" @change="changeTime" clear></el-date-picker>
+ </div>
+ <div class="header_item">
+ <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button>
+ <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button>
+ </div>
+ </div>
+ <div class="main_content">
+ <div class="main_content_item" v-for="(item, index) in ['', '', '', '', '',]" :key="index">
+
+ </div>
+ </div>
+
+ <!-- 详情dialog -->
+ <el-dialog width="400px" class="prop_dialog" v-if="isRenderDialog" title="详情" :visible.sync="asyncVisible">
+
+ <el-form class="rule_form" label-width="auto">
+
+ <div class="divider"></div>
+
+ <el-form-item label="巡检任务:">{{ info.task }}</el-form-item>
+
+ <el-form-item label="巡检标准:">{{ info.standard }}</el-form-item>
+
+ <el-form-item label="巡检人员:">{{ info.name }}</el-form-item>
+
+ <div class="divider"><span>巡检路线</span></div>
+
+ <div class="regions">
+ <div class="region" v-for=" item in info.regions " :key="item.regionId">{{
+ item.region }}
+ </div>
+ </div>
+ </el-form>
+ </el-dialog>
+
+ </div>
+</template>
+<script>
+export default {
+ data() {
+ return {
+ loading: false,
+ isRenderDialog: false,
+ asyncVisible: false,
+
+ info: { // 详情信息
+ task: '',
+ standard: '',
+ name: '',
+ regions: [],
+ },
+ userId: '', // 存储点击后的用户id
+ taskId: '', // 存储点击后的巡检任务id
+ times: [], // 时间范围
+ queryInfo: {
+ pageNum: 1,
+ pageSize: 10,
+ inmode: '', // 录入方式
+ screen: '', // 拌合站屏
+ startTime: '',
+ endTime: '',
+ },
+ regionInfos: { // 巡检路线详情
+ isRenderDialog: false,
+ asyncVisible: false,
+ time: '', // 巡检时间
+ region: '', // 巡检区域
+ res: '', // 巡检结果
+ img: '', // 上传的图片
+ location: '', // 位置
+ }
+ }
+ },
+ beforeCreate() {
+ this.queryInfoInmodes = [
+ {value: '0', label: '手动'},
+ {value: '1', label: '自动'},
+ ]
+ this.queryInfoScreens = [
+ {value: '0', label: '1-1'},
+ {value: '1', label: '1-2'},
+ ]
+ this.$http = this.$api.Safety.RiskGrad.polling
+ },
+ created() {
+ this.setTableColumn()
+ this.getLists()
+ },
+ methods: {
+ // 获取table列表数据
+ getLists() {
+ let params = this.queryInfo
+ this.loading = true
+ this.$http.taskcardGetlists(params).then(res => {
+ if (res.statusMsg === 'ok') {
+ console.log(res)
+ }
+ this.loading = false
+ })
+ },
+ // 初始化 table 配置
+ setTableColumn() {
+ },
+ addRow() { },
+ // 查询按钮列表信息
+ queryReset() {
+ this.queryInfo.pageNum = 1
+ this.queryInfo.pageSize = 10
+ this.getLists()
+ },
+ changeTime(times) {
+ times = times || ['', '']
+ this.queryInfo.startTime = times[0]
+ this.queryInfo.endTime = times[1]
+ },
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/style/layout-main.scss';
+
+.rule_form {
+ color: #fff;
+
+ ::v-deep .el-form-item__content {
+ display: block;
+ }
+
+ .image {
+ flex: none;
+ width: 91px;
+ height: 120px;
+ margin-right: 15px;
+ border-radius: 5px;
+ border: 1px solid #0c5983;
+
+ img {
+ width: 100%;
+ }
+ }
+}
+
+.regions {
+ text-align: center;
+
+ .region {
+ line-height: 34px;
+ margin-bottom: 16px;
+ background: rgba(56, 175, 247, .25);
+ cursor: pointer;
+ }
+}
+
+.divider {
+ position: relative;
+ margin-bottom: 30px;
+ text-indent: 10px;
+ color: #fff;
+ border-left: 3px solid #18F6F8;
+
+ &::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: -8px;
+ width: 100%;
+ padding: 20px 0;
+ border-bottom: 1px solid #0C4D6F;
+ }
+}
+
+.main_content .main_content_item {
+ float: left;
+ width: 48%;
+ height: 200px;
+ margin: 1%;
+ border: 1px solid red;
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/MixingInfo/components/List.vue b/web/src/views/MixingInfo/components/List.vue
new file mode 100644
index 0000000..4642226
--- /dev/null
+++ b/web/src/views/MixingInfo/components/List.vue
@@ -0,0 +1,91 @@
+<template>
+ <div class="list">
+ <div class="item" v-for="item in fieldMap" :key="item.name">
+ <span class="name">{{ item.name }}:</span>
+ <template v-if="item.formatter">
+ <span class="value" :class="item.class(data)">{{ item.formatter(data) }}</span>
+ </template>
+ <template v-else>
+ <span class="value">{{ data && data[item.type] || '' }}</span>
+ </template>
+
+ </div>
+ </div>
+</template>
+<script>
+export default {
+ data() {
+ return {}
+ },
+ props: {
+ data: {
+ type: Object,
+ default: () => { }
+ }
+ },
+ beforeCreate() {
+ // 字段映射表
+ this.fieldMap = [
+ {name: '规格型号', type: 'spec'},
+ {name: '产地名称', type: 'producer'},
+ {name: '炉(批)号', type: 'stove'},
+ {name: '进场数量', type: 'inNum'},
+ {name: '进场日期', type: 'inDate'},
+ {name: '检验日期', type: 'inspectDate'},
+ {
+ name: '检验状态', class(row) {
+ let state = row && row.inspectState
+ return {1: 'style1', 2: 'style2', 3: 'style3'}[state] || ''
+ }, formatter(row) {
+ let state = row && row.inspectState || ''
+ return {1: '合格', 2: '不合格', 3: '待检测'}[state] || ''
+ }
+ },
+ {name: '报告编号', type: 'reportNumber'},
+ ]
+ },
+}
+</script>
+
+<style scoped>
+.list {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+
+ .item {
+ display: flex;
+ flex: 1;
+ margin-top: 4px;
+
+ .name {
+ margin-right: 4px;
+ text-indent: 6px;
+ white-space: nowrap;
+ }
+
+ .value {
+ color: #03F1FF;
+
+ &.style1 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: #16F849;
+ }
+
+ &.style2 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: red;
+ }
+
+ &.style3 {
+ font-size: 1.5rem;
+ line-height: 1.2rem;
+ color: #FF6600;
+ }
+ }
+
+ }
+}
+</style>
diff --git a/web/src/views/MixingInfo/mixRatio.vue b/web/src/views/MixingInfo/mixRatio.vue
new file mode 100644
index 0000000..0662aa1
--- /dev/null
+++ b/web/src/views/MixingInfo/mixRatio.vue
@@ -0,0 +1,243 @@
+<template>
+ <div class="wrap">
+ <div class="header">
+ <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div>
+ </div>
+ <div class="table">
+ <div class="row title">{{ info.signboardName }}</div>
+
+ <div class="row">
+ <div class="name">工程名称</div>
+ <div class="value">{{ info.proName }}</div>
+ </div>
+
+ <div class="row">
+ <div class="name">施工单位</div>
+ <div class="value">{{ info.constructionUnit }}</div>
+ </div>
+
+ <div class="row line">
+ <div>
+ <div class="name">施工日期</div>
+ <div class="value">{{ info.saveStamp }}</div>
+ </div>
+ <div>
+ <div class="name">施工部位</div>
+ <div class="value">{{ info.construction }}</div>
+ </div>
+ </div>
+
+ <div class="row" v-for="item in dataLists" :key="item.name">
+ <div class="name">{{ item.name }}</div>
+ <div class="column">
+ <div class="column-item" v-for="(sub, index) in item.value" :key="index">{{ sub }}</div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</template>
+
+<script>
+const interval = function (fn, Vue) {
+ let timer = setInterval(
+ (() => {
+ fn()
+ return fn
+ })(),
+ 1000 * 60 * 5
+ )
+ if (Vue) {
+ Vue.$once('hook:beforeDestroy', function () {
+ timer && clearInterval(timer)
+ })
+ }
+}
+export default {
+ name: 'Page2',
+ data() {
+ return {
+ info: {
+ signboardName: '', // 标识排
+ proName: '', // 工程名称
+ constructionUnit: '', // 施工单位
+ saveStamp: '', // 施工日期
+ construction: '', // 施工部位
+ },
+ dataLists: [
+ {name: '材料名称', type: 'dictName', value: []}, // 材料名称
+ {name: '规格型号', type: 'spec', value: []}, // 规格型号
+ {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家
+ {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率
+ {name: '理论用量(kg/m³)', type: 'planAmnt', value: []}, // 理论用量
+ {name: '实际用量(kg/m³)', type: 'factAmnt', value: []}, // 实际用量
+ ]
+ }
+ },
+ beforeCreate() {
+ this.$http = this.$api.Infos
+ },
+ beforeRouteEnter(to, form, next) {
+ const {path} = to
+
+ const type = path.slice(-1)
+
+ next(vm => {
+ vm.type = type
+ interval(vm.getLists, vm)
+ })
+ },
+ mounted() {
+ let width = document.getElementsByClassName('wrap')[0].clientWidth
+ let $html = document.getElementsByTagName('html')[0]
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ window.onresize = () => {
+ let width = document.getElementById('app').clientWidth
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ }
+ },
+ methods: {
+ async getLists() {
+ const params = {
+ pageNum: --this.type, // 传 0 1对应两个页面
+ pageSize: 1,
+ }
+ this.$api.Infos.getMixRatio(params).then(res => {
+ if (res.statusMsg === 'ok' && res.data) {
+ const {list} = res.data
+ if (list && list.length) {
+ const item = list[0]
+ const {tmixingConsumes} = item
+
+ this.info.signboardName = item.signboardName
+ this.info.proName = item.proName
+ this.info.constructionUnit = item.constructionUnit
+
+ if (tmixingConsumes && tmixingConsumes.length) {
+ this.info.saveStamp = tmixingConsumes[0].saveStamp
+ this.info.construction = tmixingConsumes[0].construction
+
+ tmixingConsumes.forEach(item => {
+ this.dataLists.forEach(val => {
+ item[val.type] && val.value.push(item[val.type])
+ })
+ })
+ }
+ }
+ } else {
+ this.$message.warning('请检查网络或联系管理员!!!')
+ }
+ })
+
+ },
+ }
+}
+</script>
+<style scoped>
+.wrap {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: 1rem;
+ background: #040A3F;
+ overflow: hidden;
+}
+
+.header {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ height: 3rem;
+ text-align: center;
+ color: #fff;
+ background: url('../../assets/mixing/header.png') no-repeat center center;
+ background-size: 100% auto;
+
+ .header_name {
+ font-size: 1.6rem;
+ font-weight: bold;
+ line-height: 3.2rem;
+ letter-spacing: 2px;
+ text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05);
+ background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+.table {
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ top: 4rem;
+ bottom: 2rem;
+ left: 2rem;
+ right: 2rem;
+ font-size: 0.8rem;
+ color: #fff;
+
+ .title {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #BEE2F0;
+ background: rgba(1, 142, 196, .35);
+ }
+
+ .row {
+ flex: 1;
+ width: 100%;
+ height: 2rem;
+ margin: 0 -1px -1px 0;
+ text-align: center;
+ line-height: 2rem;
+ border: 1px solid #01B3EF;
+
+ .name {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ float: left;
+ width: 8rem;
+ height: 100%;
+ margin: -1px -1px -1px 0;
+ color: #BEE2F0;
+ border: 1px solid #01B3EF;
+ background: rgba(1, 142, 196, .75);
+ box-sizing: unset;
+ }
+
+ .value {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ overflow: hidden;
+ }
+
+ .column {
+ display: flex;
+ height: 100%;
+
+ .column-item {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex: 1;
+ margin: -1px -1px -1px 0;
+ border: 1px solid #01B3EF;
+ }
+ }
+ }
+
+ .row.line {
+ display: flex;
+
+ >div {
+ flex: 1;
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/web/src/views/MixingInfo/mixing.vue b/web/src/views/MixingInfo/mixing.vue
new file mode 100644
index 0000000..ce3481b
--- /dev/null
+++ b/web/src/views/MixingInfo/mixing.vue
@@ -0,0 +1,310 @@
+<template>
+ <div class="wrap">
+ <div class="header">
+ <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div>
+ </div>
+ <div class="container">
+ <div class="con_name">
+ <div class="line left"></div>
+ <div class="name">
+ <p class="p">{{ infoL.siloName }}</p>
+ <p class="p">{{ infoR.siloName }}</p>
+ </div>
+ <div class="line right"></div>
+ </div>
+ <div class="con_main">
+ <div class="con_main_item con_main_l">
+ <div class="placeholder"></div>
+ <div class="list_wrap">
+ <list :data="infoL.mixing"></list>
+ </div>
+ </div>
+ <div class="con_main_item con_main_c">
+ <div :class="`image ${infoL.percentImgName || ''}`">
+ <p>{{ infoL.siloName }}</p>
+ </div>
+ <div :class="`image ${infoR.percentImgName || ''}`">
+ <p>{{ infoR.siloName }}</p>
+ </div>
+ </div>
+ <div class="con_main_item con_main_r">
+ <div class="placeholder"></div>
+ <div class="list_wrap">
+ <list :data="infoR.mixing"></list>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import List from './components/List'
+const interval = function (fn, Vue) {
+ let timer = setInterval(
+ (() => {
+ fn()
+ return fn
+ })(),
+ 1000 * 60 * 5
+ )
+ if (Vue) {
+ Vue.$once('hook:beforeDestroy', function () {
+ timer && clearInterval(timer)
+ })
+ }
+}
+export default {
+ name: 'mixing',
+ data() {
+ return {
+ type: '',
+ infoL: {},
+ infoR: {},
+ percents: {
+ 0: 'container_10',
+ 10: 'container_10',
+ 20: 'container_20',
+ 40: 'container_40',
+ 60: 'container_60',
+ 80: 'container_80',
+ 90: 'container_90',
+ 100: 'container_100',
+ }
+ };
+ },
+ components: {
+ List
+ },
+ beforeCreate() {
+ this.$http = this.$api.Infos
+ },
+ beforeRouteEnter(to, form, next) {
+ const {path} = to
+
+ const type = path.slice(-1)
+
+ next(vm => {
+ vm.type = type
+ interval(vm.getLists, vm)
+ })
+ },
+ mounted() {
+ let width = document.getElementsByClassName('wrap')[0].clientWidth
+ let $html = document.getElementsByTagName('html')[0]
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ window.onresize = () => {
+ let width = document.getElementById('app').clientWidth
+ let fontsize = width / 1920 * 35.2
+ $html.style.fontSize = `${fontsize}px`
+ }
+ },
+ methods: {
+ getLists() {
+ const percentArr = Object.keys(this.percents)
+ this.$api.Infos.getMixing({types: this.type}).then(res => {
+ if (res.statusMsg === 'ok' && res.data && res.data.length) {
+ res.data.forEach((item, index) => {
+ if (item && item.mixing && item.mixing.percentage) {
+ let targetVal = +item.mixing.percentage
+ for (let index = 0; index < percentArr.length - 1; index++) {
+ const val = percentArr[index]
+ const valNext = percentArr[index + 1]
+ if (val <= targetVal && targetVal <= valNext) {
+ item.percentImgName = this.percents[val]
+ break
+ }
+ }
+ } else {
+ item.percentImgName = this.percents[0]
+ }
+ index === 0 && (this.infoL = item)
+ index === 1 && (this.infoR = item)
+ })
+ } else {
+ this.$message.warning('请检查网络或联系管理员!!!')
+ }
+ })
+
+
+
+ },
+ }
+}
+</script>
+<style scoped>
+li {
+ list-style: none;
+}
+
+.wrap {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ font-size: 1rem;
+ background: #040A3F;
+ overflow: hidden;
+}
+
+.header {
+ position: absolute;
+ width: 100%;
+ height: 3rem;
+ text-align: center;
+ font-family: 'Microsoft YaHei';
+ color: #fff;
+ background: url('../../assets/mixing/header.png') no-repeat center center;
+ background-size: 100% auto;
+
+ .header_name {
+ font-size: 1.6rem;
+ font-weight: bold;
+ line-height: 3.2rem;
+ letter-spacing: 2px;
+ text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05);
+ background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ }
+}
+
+.container {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ position: absolute;
+ left: 20px;
+ right: 20px;
+ top: 3.6rem;
+ bottom: 20px;
+ color: #fff;
+
+ .con_name {
+ display: flex;
+ align-items: center;
+ height: 2.2rem;
+
+ .name {
+ width: 20rem;
+ display: flex;
+ justify-content: space-evenly;
+
+ .p {
+ height: 2rem;
+ padding: 0 2rem;
+ line-height: 2rem;
+ font-size: 1.2rem;
+ font-weight: bold;
+ white-space: nowrap;
+ background: url(../../assets/mixing/name_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+ }
+
+ .line {
+ flex: 1;
+ height: 14px;
+
+ &.left {
+ background: -webkit-linear-gradient(right, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%);
+ }
+
+ &.right {
+ background: -webkit-linear-gradient(left, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%);
+ }
+ }
+ }
+
+ .con_main {
+ margin-top: 10px;
+ flex: 1;
+ display: flex;
+
+ .con_main_item {
+ padding: 15px 15px 0 15px;
+ position: relative;
+ flex: 1;
+
+ &.con_main_l,
+ &.con_main_r {
+ background: url(../../assets/mixing/list_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_l .placeholder {
+ width: 100%;
+ height: 8%;
+ background: url(../../assets/mixing/list_l_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_r .placeholder {
+ width: 100%;
+ height: 8%;
+ background: url(../../assets/mixing/list_r_bg.png) no-repeat;
+ background-size: 100% 100%;
+ }
+
+ &.con_main_c .image {
+ position: relative;
+ float: left;
+ width: 50%;
+ height: 100%;
+ min-height: 480px;
+ text-align: center;
+
+ >p {
+ position: absolute;
+ left: 50%;
+ top: 21%;
+ white-space: nowrap;
+ transform: translate(-50%, -50%);
+ }
+
+ &.container_10 {
+ background: url(../../assets/mixing/container_10.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_20 {
+ background: url(../../assets/mixing/container_20.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_40 {
+ background: url(../../assets/mixing/container_40.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_60 {
+ background: url(../../assets/mixing/container_60.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_80 {
+ background: url(../../assets/mixing/container_80.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_90 {
+ background: url(../../assets/mixing/container_90.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+
+ &.container_100 {
+ background: url(../../assets/mixing/container_100.png) center 30% no-repeat;
+ background-size: auto 70%;
+ }
+ }
+
+ .list_wrap {
+ position: absolute;
+ top: 12%;
+ bottom: 0;
+ }
+
+ }
+ }
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3