From 75cb11ae5c1e9b96deb2abaad3a360d8ff2e5bca Mon Sep 17 00:00:00 2001 From: zmj <1493694146@qq.com> Date: Fri, 23 Feb 2024 17:18:22 +0800 Subject: [PATCH] add --- src/api.js | 6 +- src/view/components/areaChose.vue | 70 +++++++++++------------ src/view/tradeScreen/index.vue | 88 ++++++++--------------------- src/view/tradeScreen/storeLogin.vue | 52 ++++++++++++----- 4 files changed, 103 insertions(+), 113 deletions(-) diff --git a/src/api.js b/src/api.js index 73a97f8..77c1f09 100644 --- a/src/api.js +++ b/src/api.js @@ -20,7 +20,7 @@ const instacnePlant = axios.create({ const instacneTrade = axios.create({ - baseURL: "http://192.168.1.24:8686/index", + baseURL: "https://shop.lihaink.cn", timeout: 30000, }); @@ -98,6 +98,10 @@ export function breedFarmCount(params) { return instacneBreed.get('/api/dataview.farm/farmCount', { params }) } +// 交易数据大屏获取商户列表 +export function merchant_listApi(params) { + return instacneTrade.get('/api/dataview/merchant_list', { params }) +} // //api/dataview/merchant?mer_id=36&areaCode=510524&streetCode=510524100 // } diff --git a/src/view/components/areaChose.vue b/src/view/components/areaChose.vue index c86fea5..88c3f35 100644 --- a/src/view/components/areaChose.vue +++ b/src/view/components/areaChose.vue @@ -1,11 +1,13 @@ <template> <div class="areacontent"> <div class="area-list"> - <div v-for="(item, index) in options" :key="index" :class="{ act: actIndex == index }" @click="handChose(index)"> {{ - item.label }} </div> + <div v-for="(item, index) in options" :key="index" :class="{ act: actIndex == index }" + @click="handChose(index)"> {{ + item.label }} </div> </div> <div class="town-list"> - <div class="town-list-li" v-for="(item,index) in townLists" :key="index" @click="handTown(index)">{{ item.name }}</div> + <div class="town-list-li" v-for="(item, index) in townLists" :key="index" @click="handTown(index)">{{ item.name + }}</div> </div> </div> </template> @@ -15,6 +17,10 @@ import { apigetTownLists } from "@/api.js" import { sendMsg } from "@/api.js" // 镇列表 const options = reactive([ + { + value: '510521', + label: '泸县', + }, { value: '510502', label: '江阳区', @@ -27,10 +33,6 @@ const options = reactive([ value: '510504', label: '龙马潭区', }, - { - value: '510521', - label: '泸县', - }, { value: '510522', label: '合江县 ', @@ -52,15 +54,11 @@ const emit = defineEmits(['handTown', 'handArea']) const handChose = (index) => { actIndex.value = index; getTownListsFn(options[index].value); - options.forEach(item => { - if (item.value == options[index].value) { - sendFn('choserArea', { name: item.label, code: item.value }) - emit('handArea', options[actIndex.value].value,) - } - }) + sendFn('choserArea', { name: options[index].label, code: options[index].value }) + emit('handArea', options[actIndex.value].value,) } -const handTown = (index)=>{ +const handTown = (index) => { console.log(townLists.value[index]); // townLists.value.forEach(item => { // if (item.value == townLists[index].value) { @@ -68,10 +66,10 @@ const handTown = (index)=>{ // } // }) townLists.value.forEach(item => { - if (item.code == townLists.value[index].code) { - sendFn('choseTown', { name: item.name }) - emit('handTown', options[actIndex.value].value, item.code) - } + if (item.code == townLists.value[index].code) { + sendFn('choseTown', { name: item.name, code: item.code }) + emit('handTown', options[actIndex.value].value, item.code) + } }) } @@ -85,14 +83,14 @@ getTownListsFn() const props = defineProps({ channel: { type: String, - default: ()=>'user-3' + default: () => 'user-3' } }) // 发送消息 const page = ref(1) const sendFn = (event, data = '') => { - if (data.page) page.value = data.page; - sendMsg({ channel: props.channel, event, data }) + if (data.page) page.value = data.page; + sendMsg({ channel: props.channel, event, data }) } </script> @@ -119,7 +117,7 @@ const sendFn = (event, data = '') => { color: #9AADC4; font-family: FZCYJ; cursor: pointer; - padding:0 80px; + padding: 0 80px; } @@ -138,7 +136,8 @@ const sendFn = (event, data = '') => { justify-content: space-between; margin-top: 40px; padding: 0 50px; - .town-list-li{ + + .town-list-li { font-size: 18px; color: #E4EFF5; background-image: url('/static/img/area/townbg.png'); @@ -152,18 +151,19 @@ const sendFn = (event, data = '') => { } } - -.town-list::-webkit-scrollbar { - width: 10px; - background-color: #153041; -} -.town-list::-webkit-scrollbar-track { - background-color: #153041; -} + .town-list::-webkit-scrollbar { + width: 10px; + background-color: #153041; + } -::-webkit-scrollbar-thumb { - background-color: #084D89; - border-radius: 5px; + .town-list::-webkit-scrollbar-track { + background-color: #153041; + } + + ::-webkit-scrollbar-thumb { + background-color: #084D89; + border-radius: 5px; + } } -}</style> \ No newline at end of file +</style> \ No newline at end of file diff --git a/src/view/tradeScreen/index.vue b/src/view/tradeScreen/index.vue index 322a545..5ddd4c3 100644 --- a/src/view/tradeScreen/index.vue +++ b/src/view/tradeScreen/index.vue @@ -1,78 +1,37 @@ <template> <img src="/static/img/tradeScreen/FH.png" @click="router.go(-1)" class="back-btn" alt=""> <div style="height: 100vh;"> - <div class="tradmenu" v-if="flag"> - <div class="tradmenu-li sy"></div> - <div class="tradmenu-li sc"></div> - <div class="tradmenu-li sh" @click="router.push('/storeLogin')"></div> - <div class="tradmenu-li dd"></div> - <div class="tradmenu-li cw"></div> - </div> - <div v-else> - <areaChose></areaChose> - </div> + <div class="tradmenu" v-if="flag"> + <div class="tradmenu-li sy" @click="sendFn('header1')"></div> + <div class="tradmenu-li sc" @click="sendFn('header2')"></div> + <div class="tradmenu-li sh" @click="sendFn('header3', '', `router.push('/storeLogin')`)"></div> + <div class="tradmenu-li dd" @click="sendFn('header4')"></div> + <div class="tradmenu-li cw" @click="sendFn('header5')"></div> </div> - <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 v-else> + <areaChose channel="user-trad"></areaChose> </div> - <!-- <div style="text-align: center;">数据之眼可视化大屏</div> - <div> - <button @click="sendFn('header1', { page: 1 })">首页</button> - <button @click="sendFn('header2', { page: 2 })">商品</button> - <button @click="sendFn('header3', { page: 3 })">商户</button> - <button @click="sendFn('header4', { page: 4 })">订单</button> - <button @click="sendFn('header5', { page: 5 })">财务</button> - <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-select> - - <el-select v-model="townCode" class="m-2" @change="changeTown" placeholder="Select" size="large"> - <el-option v-for="item in townOptions" :key="item.value" :label="item.label" :value="item.value" /> - </el-select> - </div> - <div v-if="page == 1"> - </div> --> + </div> + <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> <script setup scoped> import { ref, reactive } from "vue" import { sendMsg } from "@/api.js" import areaChose from "@/view/components/areaChose.vue" -import {useRouter} from "vue-router" -const router =useRouter() -const flag=ref(true) +import { useRouter } from "vue-router" +const router = useRouter() +const flag = ref(true) - -// const changeArea = (e) => { -// getTownList() -// options.forEach(item => { -// if (item.value == e) { -// sendFn('choserArea', { name: item.label, code: item.value }) -// } -// }) -// } - -// const changeTown = (e) => { -// townOptions.forEach(item => { -// if (item.value == e) { -// sendFn('header7', { id: item.value, name: item.label }) -// // sendFn('choseTown', { name: item.label }) -// } -// }) - -// } - -const page = ref(1) - - - -const sendFn = (event, data = '') => { - if (data.page) page.value = data.page; - sendMsg({ channel: 'user-2', event, data }) +const sendFn = (event, data = '', fn) => { + sendMsg({ channel: 'user-trad', event, data }) + if (fn) eval(fn) } </script> @@ -100,14 +59,17 @@ const sendFn = (event, data = '') => { 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'); diff --git a/src/view/tradeScreen/storeLogin.vue b/src/view/tradeScreen/storeLogin.vue index 83f748c..f58f475 100644 --- a/src/view/tradeScreen/storeLogin.vue +++ b/src/view/tradeScreen/storeLogin.vue @@ -1,21 +1,21 @@ <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" v-for="item in merchant_list" :key="item.id"> <div class="card-tit"> - 究极公司 - <span style="font-size: 14px;color: white;">2024-01-21</span> + {{ item.mer_name }} + <span style="font-size: 14px;color: white;">{{ item.create_time.substring(0,10) }}</span> </div> <div class="card-cotnet"> - <div>商户姓名: 为对方</div> - <div style="margin: 20px 0;">商户属地: 为对方</div> - <div>商户分类: 为对方</div> - <div class="login">登录</div> + <div>商户姓名: {{ item.real_name }}</div> + <div style="margin: 20px 0;">商户属地: {{ item.mer_address }}</div> + <div>商户分类: {{ item.merchantCategory?.category_name }}</div> + <div class="login" @click="sendFn('header3-3',{id:item.mer_id})">登录</div> </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="town">江陽區</div> <div class="town">江陽區</div> @@ -54,9 +54,11 @@ align-items: center; margin-top: 10px; } - .card-cotnet{ + + .card-cotnet { margin-top: 25px; - .login{ + + .login { margin: 0 auto; width: 170px; height: 34px; @@ -132,11 +134,33 @@ } </style> <script setup > -import {useRouter} from "vue-router" -import {ref,reactive} from "vue" +import { useRouter } from "vue-router" +import { ref, reactive } from "vue" import areaChose from "../components/areaChose.vue"; +import { merchant_listApi } from "@/api.js" +import { sendMsg } from "@/api.js" -const router=useRouter() -const flag=ref(true) +const router = useRouter() +const flag = ref(true) +const merchant_list =ref([]) +const getmerchant_list = async () => { + let res = await merchant_listApi({ + areaCode: 510521, + status: 1, + limit: 50 + }) + merchant_list.value=res.data.list + console.log(merchant_list.value) +} + +const sendFn = (event, data = '') => { + sendMsg({ channel: 'user-trad', event, data }) +} + +const handLogin=(id)=>{ + +} + +getmerchant_list() </script> \ No newline at end of file