Compare commits

...

3 Commits

Author SHA1 Message Date
zmj 01b962d963 add 2024-02-23 14:30:30 +08:00
zmj 0ec3177837 Merge branch 'main' of https://gitea.lihaink.cn/zmj/screenControl 2024-02-23 11:51:18 +08:00
zmj 9a2b66380c add 2024-02-23 11:51:14 +08:00
51 changed files with 382 additions and 159 deletions

View File

@ -17,6 +17,11 @@ const routes = [
name: 'tradeScreen', name: 'tradeScreen',
component: () => import('@/view/tradeScreen/index.vue'), component: () => import('@/view/tradeScreen/index.vue'),
}, },
{
path: '/storeLogin',
name: 'storeLogin',
component: () => import('@/view/tradeScreen/storeLogin.vue'),
},
{ {
path: '/plantScreen', path: '/plantScreen',
name: 'plantScreen', name: 'plantScreen',

View File

@ -1,6 +1,6 @@
<template> <template>
<div style="text-align: center;" class="head-title">养殖溯源可视化大屏</div> <!-- <div style="text-align: center;" class="head-title">养殖溯源可视化大屏</div> -->
<!-- <el-select v-model="areaCode" class="m-2" @change="changeArea" placeholder="Select" size="large"> <!-- <el-select v-model="areaCode" class="m-2" @change="changeArea" placeholder="Select" size="large">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
<el-select v-model="townCode" class="m-2" @change="changeTown" placeholder="Select" size="large"> <el-select v-model="townCode" class="m-2" @change="changeTown" placeholder="Select" size="large">
@ -15,28 +15,27 @@
<button @click="sendFn('back', { name: '泸县' }), townCode = ''">返回首页</button> <button @click="sendFn('back', { name: '泸县' }), townCode = ''">返回首页</button>
<button @click="sendFn('more_order')">更多订单</button> <button @click="sendFn('more_order')">更多订单</button>
</div> --> </div> -->
<div style="height: 100vh;"> <img src="/static/img/tradeScreen/FH.png" @click="router.go(-1)" class="back-btn" alt="">
<div class="menu" v-if="flag"> <div class="cont" v-if="flag">
<div class="menu-li sy"></div> <div class="card" v-for="item in 9">
<div class="menu-li sc"></div> <div class="card-tit">
<div class="menu-li sc"></div> 究极公司
<div class="menu-li sc"></div>
<div class="menu-li sc"></div>
</div> </div>
<div v-if="!flag"> <div class="card-cotnet">
<areaChose channel="user-breed-datav"></areaChose> <div>商户姓名: 为对方</div>
<div class="login">查看详情</div>
</div> </div>
</div> </div>
<div class="area" @click="flag=!flag"> </div>
<div class="area-top"> <areaChose v-else></areaChose>
<div class="town">江陽區</div> <div class="area" @click="flag = !flag">
<div class="town">江陽區</div> <div class="area-top">
</div> <div class="town">江陽區</div>
<div class="area-bottom"></div> <div class="town">江陽區</div>
</div> </div>
<div class="area-bottom"></div>
</div>
</template> </template>
<script setup scoped> <script setup scoped>
import { ref, reactive } from "vue" import { ref, reactive } from "vue"
@ -46,38 +45,38 @@ import { vehicleListApi } from "@/api.js"
import areaChose from "@/view/components/areaChose.vue" import areaChose from "@/view/components/areaChose.vue"
const nowPages = ref('index'); const nowPages = ref('index');
const flag=ref(true) const flag = ref(true)
// //
const options = [ const options = [
{ {
value: '510502', value: '510502',
label: '江阳区', label: '江阳区',
}, },
{ {
value: '510503', value: '510503',
label: '纳溪区', label: '纳溪区',
}, },
{ {
value: '510504', value: '510504',
label: '龙马潭区', label: '龙马潭区',
}, },
{ {
value: '510521', value: '510521',
label: '泸县', label: '泸县',
}, },
{ {
value: '510522', value: '510522',
label: '合江县 ', label: '合江县 ',
}, },
{ {
value: '510524', value: '510524',
label: '叙永县 ', label: '叙永县 ',
}, },
{ {
value: '510525', value: '510525',
label: '古蔺县 ', label: '古蔺县 ',
}, },
] ]
// //
const townOptions = [] const townOptions = []
@ -87,71 +86,141 @@ const areaCode = ref('510521')
const townCode = ref("") const townCode = ref("")
const changeArea = (e) => { const changeArea = (e) => {
townCode.value = '' townCode.value = ''
getTownList() getTownList()
options.forEach(item => { options.forEach(item => {
if (item.value == e) { if (item.value == e) {
sendFn('choserArea', { name: item.label, code: item.value }) sendFn('choserArea', { name: item.label, code: item.value })
} }
}) })
} }
const changeTown = (e) => { const changeTown = (e) => {
console.log(e) console.log(e)
townOptions.forEach(item => { townOptions.forEach(item => {
if (item.value == e) { if (item.value == e) {
sendFn('choseTown', { name: item.label }) sendFn('choseTown', { name: item.label })
} }
}) })
} }
const getTownList = () => { const getTownList = () => {
townOptions.splice(0, 99999999) townOptions.splice(0, 99999999)
axios.get(`https://crmeb-test.shop.lihaink.cn/api/city/get_street?area_code=${areaCode.value}`) axios.get(`https://crmeb-test.shop.lihaink.cn/api/city/get_street?area_code=${areaCode.value}`)
.then(function (res) { .then(function (res) {
res.data.data.forEach(item => { res.data.data.forEach(item => {
townOptions.push({ townOptions.push({
value: item.code, value: item.code,
label: item.name label: item.name
}) })
}) })
}) })
} }
const vehicleList=ref([]) const vehicleList = ref([])
const getLandList = async () => { const getLandList = async () => {
let res = await vehicleListApi({ let res = await vehicleListApi({
areaCode: areaCode.value, areaCode: areaCode.value,
streetCode: townCode.value streetCode: townCode.value
}) })
vehicleList.value=res.data.list vehicleList.value = res.data.list
} }
getTownList() getTownList()
getLandList() getLandList()
// //
const page = ref(1) const page = ref(1)
const sendFn = (event, data = '') => { const sendFn = (event, data = '') => {
if (data.page) page.value = data.page; if (data.page) page.value = data.page;
sendMsg({ channel: 'user-breed-datav', event, data }) sendMsg({ channel: 'user-breed-datav', event, data })
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss">
button { .cont {
padding: 10px; height: 500px;
margin: 10px; width: 90vw;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
overflow-y: auto;
.card {
width: 378px;
height: 223px;
margin-bottom: 10px;
background-image: url('/static/img/breedScreen/bg.png');
background-size: 100% 100%;
font-size: 16px;
padding: 10px;
color: white;
position: relative;
.card-tit {
color: #00D6DD;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10px;
}
.card-cotnet {
margin-top: 50px;
.login {
width: 170px;
height: 34px;
text-align: center;
line-height: 34px;
background-image: url('/static/img/tradeScreen/DL.png');
background-size: 100% 100%;
margin-top: 20px;
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
}
}
}
// background-color: red;
} }
.head-title{
color: #fff; .cont::-webkit-scrollbar {
font-size: 20px; width: 10px;
padding-top: 5vh; background-color: #153041;
} }
.cont::-webkit-scrollbar-track {
background-color: #153041;
}
::-webkit-scrollbar-thumb {
background-color: #084D89;
border-radius: 5px;
}
.back-btn {
width: 86.21px;
height: 31px;
position: absolute;
top: 70px;
left: 60.96px;
z-index: 9;
}
.area { .area {
position: absolute; position: absolute;
font-size: 20px; font-size: 20px;

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="content"> <div class="areacontent">
<div class="area-list"> <div class="area-list">
<div v-for="(item, index) in options" :key="index" :class="{ act: actIndex == index }" @click="handChose(index)"> {{ <div v-for="(item, index) in options" :key="index" :class="{ act: actIndex == index }" @click="handChose(index)"> {{
item.label }} </div> item.label }} </div>
@ -95,7 +95,7 @@ const sendFn = (event, data = '') => {
<style lang="scss" scoped> <style lang="scss" scoped>
.content { .areacontent {
width: 998.3px; width: 998.3px;
height: 445.74px; height: 445.74px;
background-image: url('/static/img/area/bg.png'); background-image: url('/static/img/area/bg.png');

View File

@ -1,7 +1,6 @@
<template> <template>
<div class="main-box"> <div class="main-box">
<router-view :key="route.path"></router-view> <router-view :key="route.path"></router-view>
</div> </div>
</template> </template>
<script setup> <script setup>
@ -13,22 +12,22 @@ import { globalEventBus } from '@/common/eventBus'
for (let i = 1; i < 6; i++) { for (let i = 1; i < 6; i++) {
globalEventBus.on('header' + i, data => { globalEventBus.on('header' + i, data => {
globalEventBus.emit('compheader' + i, data) globalEventBus.emit('compheader' + i, data)
console.log(i)
}) })
} }
</script> </script>
<style> <style>
.main-box {
.main-box{ width: 1280px;
width: 100vw; height: 720px;
height: 100vh;
overflow: hidden; overflow: hidden;
background-image: url('/static/img/index/index_bg.png'); background-image: url('/static/img/index/index_bg.png');
background-size: 100% 100%; background-size: 100% 100%;
} }
div{
box-sizing: border-box;
font-size: 16px;
background-size: 100% 100%;
}
</style> </style>

View File

@ -6,7 +6,7 @@
</div> </div>
<div class="menu-li ylsq" @click="navgo('plantScreen')"> <div class="menu-li ylsq" @click="navgo('plantScreen')">
</div> </div>
<div class="menu-li ylyz" @click="navgo('plantScreen')"> <div class="menu-li ylyz" @click="navgo('breedScreen')">
</div> </div>
</div> </div>
</template> </template>

View File

@ -11,15 +11,14 @@
<button @click="sendFn('choseLand', { landName: item.title,id:item.id })" v-for="item in landList"> {{ item.title }}</button> <button @click="sendFn('choseLand', { landName: item.title,id:item.id })" v-for="item in landList"> {{ item.title }}</button>
<button @click="sendFn('backHome', { name: '泸县' }), townCode = ''">返回首页</button> <button @click="sendFn('backHome', { name: '泸县' }), townCode = ''">返回首页</button>
<button @click="sendFn('detail', { name: item.title,id:item.id })" v-for="item in landList"> {{ item.title }}</button> <button @click="sendFn('detail', { name: item.title,id:item.id })" v-for="item in landList"> {{ item.title }}</button>
<p>地块</p> --> <p>地块</p> -->
<div class="content"> <div class="content" v-if="flag">
<div class="hexagon"></div> <div class="plant-li" v-for="item in 10">
究极地块
</div>
</div> </div>
<areaChose v-else></areaChose>
<div class="area" @click="flag = !flag"> <div class="area" @click="flag = !flag">
<div class="area-top"> <div class="area-top">
<div class="town">江陽區</div> <div class="town">江陽區</div>
@ -33,7 +32,9 @@ import { ref, reactive } from "vue"
import { sendMsg } from "@/api.js" import { sendMsg } from "@/api.js"
import axios from "axios" import axios from "axios"
import { landListApi } from "@/api.js" import { landListApi } from "@/api.js"
import areaChose from "../components/areaChose.vue"
const flag = ref(true)
// //
const options = [ const options = [
@ -127,41 +128,28 @@ const sendFn = (event, data = '') => {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content{ .content {
width: 100vw; height: 500px;
height: 100vh; width: 90vw;
// background-color: white; position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
justify-content: center;
overflow-y: auto;
.plant-li {
width: 165.9px;
height: 190.48px;
background-image: url('/static/img/plantScreen/A.png');
text-align: center;
line-height: 190.48px;
color: white;
}
} }
.hexagon {
width: 100px;
height: 55px;
background-color: #f00;
position: relative;
margin: 50px;
transform: rotate(60deg);
}
.hexagon:before,
.hexagon:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: inherit;
height: inherit;
background-color: inherit;
}
.hexagon:before {
transform: rotate(-60deg);
}
.hexagon:after {
transform: rotate(120deg);
}
.area { .area {
position: absolute; position: absolute;
font-size: 20px; font-size: 20px;
@ -193,4 +181,5 @@ const sendFn = (event, data = '') => {
background-size: 100% 100%; background-size: 100% 100%;
transform: translateY(-20px); transform: translateY(-20px);
} }
</style> </style>

View File

@ -1,13 +1,15 @@
<template> <template>
<img src="/static/img/tradeScreen/FH.png" @click="router.go(-1)" class="back-btn" alt="">
<div style="height: 100vh;"> <div style="height: 100vh;">
<div class="menu" v-if="flag"> <div class="tradmenu" v-if="flag">
<div class="menu-li sy"></div> <div class="tradmenu-li sy"></div>
<div class="menu-li sc"></div> <div class="tradmenu-li sc"></div>
<div class="menu-li sc"></div> <div class="tradmenu-li sh" @click="router.push('/storeLogin')"></div>
<div class="menu-li sc"></div> <div class="tradmenu-li dd"></div>
<div class="menu-li sc"></div> <div class="tradmenu-li cw"></div>
</div> </div>
<div v-if="!flag"> <div v-else>
<areaChose></areaChose> <areaChose></areaChose>
</div> </div>
</div> </div>
@ -46,7 +48,10 @@ import { ref, reactive } from "vue"
import { sendMsg } from "@/api.js" import { sendMsg } from "@/api.js"
import axios from "axios" import axios from "axios"
import areaChose from "@/view/components/areaChose.vue" import areaChose from "@/view/components/areaChose.vue"
import {useRouter} from "vue-router"
const router =useRouter()
const flag=ref(true)
const options = [ const options = [
{ {
value: '510502', value: '510502',
@ -77,16 +82,10 @@ const options = [
}, },
] ]
const toArea=()=>{
}
const townOptions = [] const townOptions = []
const areaCode = ref('510521') const areaCode = ref('510521')
const townCode = ref("") const townCode = ref("")
const flag=ref(true)
const changeArea = (e) => { const changeArea = (e) => {
@ -135,7 +134,7 @@ const sendFn = (event, data = '') => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.menu { .tradmenu {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -143,7 +142,7 @@ const sendFn = (event, data = '') => {
} }
.menu-li { .tradmenu-li {
width: 185.56px; width: 185.56px;
height: 213.05px; height: 213.05px;
background-size: 100% 100%; background-size: 100% 100%;
@ -151,12 +150,24 @@ const sendFn = (event, data = '') => {
} }
.sy { .sy {
background-image: url('/static/img/tradeScreen/SC.png'); background-image: url('/static/img/tradeScreen/SY.png');
} }
.sc { .sc {
background-image: url('/static/img/tradeScreen/SC.png'); background-image: url('/static/img/tradeScreen/SC.png');
}
.sh {
background-image: url('/static/img/tradeScreen/SH.png');
}
.dd {
background-image: url('/static/img/tradeScreen/DD.png');
}
.cw {
background-image: url('/static/img/tradeScreen/CW.png');
} }
.area { .area {
@ -193,5 +204,13 @@ const sendFn = (event, data = '') => {
transform: translateY(-20px); transform: translateY(-20px);
} }
.back-btn {
width: 86.21px;
height: 31px;
position: absolute;
top: 70px;
left: 60.96px;
z-index: 9;
}
</style> </style>

View File

@ -0,0 +1,142 @@
<template>
<img src="/static/img/tradeScreen/FH.png" @click="router.go(-1)" class="back-btn" alt="">
<div class="cont" v-if="flag">
<div class="card" v-for="item in 9">
<div class="card-tit">
究极公司
<span style="font-size: 16px;color: white;">2024-01-21</span>
</div>
<div class="card-cotnet">
<div>商户姓名: 为对方</div>
<div style="margin: 20px 0;">商户属地: 为对方</div>
<div>商户分类: 为对方</div>
<div class="login">登录</div>
</div>
</div>
</div>
<areaChose v-else></areaChose>
<div class="area" @click="flag=!flag">
<div class="area-top">
<div class="town">江陽區</div>
<div class="town">江陽區</div>
</div>
<div class="area-bottom"></div>
</div>
</template>
<style lang="scss">
.cont {
height: 500px;
width: 90vw;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
overflow-y: auto;
.card {
width: 378px;
height: 223px;
margin-bottom: 10px;
background-image: url('/static/img/tradeScreen/SHBG.png');
background-size: 100% 100%;
font-size: 16px;
padding: 10px;
color: white;
.card-tit {
color: #00D6DD;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10px;
}
.card-cotnet{
margin-top: 25px;
.login{
margin: 0 auto;
width: 170px;
height: 34px;
text-align: center;
line-height: 34px;
background-image: url('/static/img/tradeScreen/DL.png');
background-size: 100% 100%;
margin-top: 20px;
}
}
}
// background-color: red;
}
.cont::-webkit-scrollbar {
width: 10px;
background-color: #153041;
}
.cont::-webkit-scrollbar-track {
background-color: #153041;
}
::-webkit-scrollbar-thumb {
background-color: #084D89;
border-radius: 5px;
}
.back-btn {
width: 86.21px;
height: 31px;
position: absolute;
top: 70px;
left: 60.96px;
z-index: 9;
}
.area {
position: absolute;
font-size: 20px;
color: white;
bottom: 0px;
left: 50%;
transform: translateX(-50%);
width: 558px;
.area-top {
display: flex;
justify-content: space-around;
.town {
background-image: url('/static/img/tradeScreen/areaA.png');
background-size: 100% 100%;
width: 160.12px;
height: 30.94px;
text-align: center;
line-height: 10px;
}
}
}
.area-bottom {
background-image: url('/static/img/tradeScreen/areaB.png');
width: 558px;
height: 57px;
background-size: 100% 100%;
transform: translateY(-20px);
}
</style>
<script setup >
import {useRouter} from "vue-router"
import {ref,reactive} from "vue"
import areaChose from "../components/areaChose.vue";
const router=useRouter()
const flag=ref(true)
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB