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