This commit is contained in:
zmj 2024-01-07 22:19:35 +08:00
parent 56544d7a5e
commit d7013e1d36
16 changed files with 272 additions and 70 deletions

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue</title> <title>数据之眼可视化大屏</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

30
package-lock.json generated
View File

@ -12,7 +12,7 @@
"@jiaminghi/data-view": "^2.10.0", "@jiaminghi/data-view": "^2.10.0",
"@vuepic/vue-datepicker": "^7.4.0", "@vuepic/vue-datepicker": "^7.4.0",
"amfe-flexible": "^2.2.1", "amfe-flexible": "^2.2.1",
"axios": "^1.6.2", "axios": "^1.6.5",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"element-plus": "^2.4.4", "element-plus": "^2.4.4",
"mitt": "^3.0.1", "mitt": "^3.0.1",
@ -1731,11 +1731,11 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.6.2", "version": "1.6.5",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.5.tgz",
"integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.4",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
@ -2175,9 +2175,9 @@
} }
}, },
"node_modules/follow-redirects": { "node_modules/follow-redirects": {
"version": "1.15.3", "version": "1.15.4",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.4.tgz",
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
"engines": { "engines": {
"node": ">=4.0" "node": ">=4.0"
}, },
@ -4312,11 +4312,11 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
}, },
"axios": { "axios": {
"version": "1.6.2", "version": "1.6.5",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.5.tgz",
"integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
"requires": { "requires": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.4",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"proxy-from-env": "^1.1.0" "proxy-from-env": "^1.1.0"
} }
@ -4672,9 +4672,9 @@
} }
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.15.3", "version": "1.15.4",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.4.tgz",
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw=="
}, },
"form-data": { "form-data": {
"version": "4.0.0", "version": "4.0.0",

View File

@ -13,7 +13,7 @@
"@jiaminghi/data-view": "^2.10.0", "@jiaminghi/data-view": "^2.10.0",
"@vuepic/vue-datepicker": "^7.4.0", "@vuepic/vue-datepicker": "^7.4.0",
"amfe-flexible": "^2.2.1", "amfe-flexible": "^2.2.1",
"axios": "^1.6.2", "axios": "^1.6.5",
"echarts": "^5.4.3", "echarts": "^5.4.3",
"element-plus": "^2.4.4", "element-plus": "^2.4.4",
"mitt": "^3.0.1", "mitt": "^3.0.1",

View File

@ -2,28 +2,59 @@
import { areaObj } from "@/store/index.js" import { areaObj } from "@/store/index.js"
import { globalEventBus } from '@/common/eventBus' import { globalEventBus } from '@/common/eventBus'
import { Push } from '@/common/push' import { Push } from '@/common/push'
var connection = new Push({
url: 'ws://192.168.1.22:3131/', // websocket
app_key: 'aaea61749929eb53a4bd75a1474c1d27',
});
// uid1
var uid = 2;
// user-2uid1
var user_channel = connection.subscribe('user-' + uid);
// user-2message
user_channel.on('message', function(data) {
if(data.content.event=='header2'){ var ws = new WebSocket("ws://192.168.106.167:8080");
globalEventBus.emit('newTask', "data")
//WebSocketonopen
ws.onopen = function () {
console.log("open");
}
//onmessagee.dataserver
ws.onmessage = function (e) {
let data =JSON.parse(e.data)
globalEventBus.emit(data.event, data.data ||'')
} }
});
// 线
user_channel.on('close', function() {
});
// var connection = new Push({
// url: 'ws://192.168.1.22:3131/', // websocket
// app_key: 'aaea61749929eb53a4bd75a1474c1d27',
// });
// // uid1
// var uid = 2;
// // user-2uid1
// var user_channel = connection.subscribe('user-' + uid);
// // user-2message
// user_channel.on('message', function (data) {
// if (data.content.event == 'header2') {
// globalEventBus.emit('newTask', "data")
// }
// });
// // 线
// user_channel.on('close', function () {
// });
const areaStroe = areaObj() const areaStroe = areaObj()
let res={ let res = {
"status": 200, "status": 200,
"message": "success", "message": "success",
"data": { "data": {
@ -37,7 +68,7 @@ let res={
}, },
"token": "0f040d372e39938f1a4d2964506a87c5", "token": "0f040d372e39938f1a4d2964506a87c5",
"expire": 999999999999999999999999999999999, "expire": 999999999999999999999999999999999,
role:2 role: 2
} }
} }
res.data.role = 2 res.data.role = 2

View File

@ -8,7 +8,7 @@ let expire = localStorage.getItem("TRADE_USER") ? JSON.parse(localStorage.getIte
// 创建axios 实例 // 创建axios 实例
const instacne = axios.create({ const instacne = axios.create({
baseURL: "https://shop.lihaink.cn/", baseURL: "https://crmeb-test.shop.lihaink.cn/",
timeout: 30000, timeout: 30000,
}); });

View File

@ -16,7 +16,8 @@ import { defineProps, defineEmits, onMounted, reactive, watch } from "vue"
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import { areaObj } from '@/store/index.js' import { areaObj } from '@/store/index.js'
import axios from "axios" import axios from "axios"
const route = useRoute import { globalEventBus } from '@/common/eventBus'
let areaStore = areaObj() let areaStore = areaObj()
@ -77,6 +78,16 @@ onMounted(() => {
}) })
globalEventBus.on('header6', data => {
choseAreaFn()
})
globalEventBus.on('header7', data => {
choseTownFn(data.id,data.name)
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -96,11 +96,6 @@ import { globalEventBus } from '@/common/eventBus'
globalEventBus.on('newTask1', data => {
showFn(1, '/commodity')
})
@ -234,6 +229,30 @@ onMounted(() => {
}) })
globalEventBus.on('compheader1', data => {
showFn(0, '/')
})
globalEventBus.on('compheader2', data => {
showFn(1, '/commodity')
})
globalEventBus.on('compheader3', data => {
showFn(2, '/Businesses')
})
globalEventBus.on('compheader4', data => {
showFn(3, '/order')
})
globalEventBus.on('compheader5', data => {
showFn(4, '/finance')
})
</script> </script>

View File

@ -20,6 +20,7 @@
import { ref, reactive, onMounted, defineProps } from "vue" import { ref, reactive, onMounted, defineProps } from "vue"
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { getUserTradeCountApi } from "@/api.js" import { getUserTradeCountApi } from "@/api.js"
import { globalEventBus } from '@/common/eventBus'
const props = defineProps({ const props = defineProps({
areaCodes: Object, areaCodes: Object,
@ -236,7 +237,9 @@ const option = reactive({
onMounted(() => { onMounted(() => {
init() init()
}) })
globalEventBus.on('indexbottomcenter', data => {
hdClick(data.code)
})
</script> </script>
<style lang="scss"> <style lang="scss">
.towns { .towns {

View File

@ -23,6 +23,7 @@
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { ref, reactive, defineProps } from "vue" import { ref, reactive, defineProps } from "vue"
import { getUserNumApi } from "@/api.js" import { getUserNumApi } from "@/api.js"
import { globalEventBus } from '@/common/eventBus'
@ -322,7 +323,9 @@ const pageFN = (Num) => {
} }
globalEventBus.on('indextopleft', data => {
pageFN(data.num)
})
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@ -9,7 +9,9 @@
<dv-scroll-board v-show="showGoods" :config="config3" style="height: 17vh;margin-left: 1%;" /> <dv-scroll-board v-show="showGoods" :config="config3" style="height: 17vh;margin-left: 1%;" />
<dv-scroll-board v-show="!showGoods" :config="config" style="height: 17vh;margin-left: 1%;" /> <dv-scroll-board v-show="!showGoods" :config="config" style="height: 17vh;margin-left: 1%;" />
</div> </div>
<div class="user" style="width: 98%; height: 25vh;" v-else>
</div>
<div class="storeNum"> <div class="storeNum">
<div class="tit"> <div class="tit">
</div> </div>
@ -31,6 +33,7 @@
import { ref, reactive, defineProps } from "vue" import { ref, reactive, defineProps } from "vue"
import { getSalesRankApi } from "@/api.js" import { getSalesRankApi } from "@/api.js"
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { globalEventBus } from '@/common/eventBus'
const props = defineProps({ const props = defineProps({
@ -253,6 +256,22 @@ const pageFN = (Num) => {
} }
} }
globalEventBus.on('indextopright', data => {
pageFN(data.num)
})
globalEventBus.on('indextopright-1', data => {
showGoods.value=true
})
globalEventBus.on('indextopright-2', data => {
showGoods.value=false
})
</script> </script>
<style lang="scss"> <style lang="scss">
.user { .user {

View File

@ -29,6 +29,13 @@ import { useRouter } from 'vue-router'
import { merchant_listApi, merchantApi } from "@/api.js" import { merchant_listApi, merchantApi } from "@/api.js"
import { areaObj } from '@/store/index.js' import { areaObj } from '@/store/index.js'
import router from "../router"; import router from "../router";
import { globalEventBus } from '@/common/eventBus'
const showLogin = ref(false) const showLogin = ref(false)
const areaStore = areaObj() const areaStore = areaObj()
@ -75,7 +82,6 @@ const hdClick = (e) => {
router.push('/storeLogin') router.push('/storeLogin')
console.log(areaStore.userInfo)
}) })
} }
@ -149,6 +155,31 @@ const configs = reactive({
onMounted(() => { onMounted(() => {
changeTable(1) changeTable(1)
}) })
globalEventBus.on('header3-1' , data => {
changeTable(1)
})
globalEventBus.on('header3-2' , data => {
changeTable(0)
})
globalEventBus.on('header3-3' , data => {
merchantApi(
{
mer_id: data.id,
...areaStore.area
}
).then(res => {
areaStore.storeLogin(res.data)
router.push('/storeLogin')
})
})
</script> </script>
@ -185,7 +216,7 @@ onMounted(() => {
.btn { .btn {
color: white; color: white;
// border: 1px solid #BF6D5D; // border: 1px solid #BF6D5D;
background-image: url('static/index/btn.png'); background-image: url('/static/index/btn.png');
background-size: 100% 100%; background-size: 100% 100%;
padding: 1vh 1vw; padding: 1vh 1vw;
border-radius: 20px; border-radius: 20px;

View File

@ -34,6 +34,7 @@ import { ref, reactive, onMounted } from "vue"
import { getProductCategoryListApi, getProductListApi, product_status_filterApi } from "@/api.js" import { getProductCategoryListApi, getProductListApi, product_status_filterApi } from "@/api.js"
import { areaObj } from "../store"; import { areaObj } from "../store";
import scrollTable from "@/components/scrollTable.vue" // import scrollTable from "@/components/scrollTable.vue" //
import { globalEventBus } from '@/common/eventBus'
const areaStore = areaObj() const areaStore = areaObj()
@ -246,6 +247,34 @@ onMounted(() => {
initProduct(1) initProduct(1)
}) })
globalEventBus.on('header2-1', data => {
ShwostoreType.value = true
})
globalEventBus.on('header2-2', data => {
ShwostoreType.value = false
})
globalEventBus.on('header2-2-1', data => {
initProduct(data.type)
})
globalEventBus.on('header2-2-2', data => {
initProduct(data.type)
})
globalEventBus.on('header2-2-3', data => {
initProduct(data.type)
})
globalEventBus.on('header2-2-4', data => {
initProduct(data.type)
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -284,7 +313,7 @@ onMounted(() => {
.btn { .btn {
color: white; color: white;
// border: 1px solid #BF6D5D; // border: 1px solid #BF6D5D;
background-image: url('static/index/btn.png'); background-image: url('/static/index/btn.png');
background-size: 100% 100%; background-size: 100% 100%;
padding: 1vh 1vw; padding: 1vh 1vw;
border-radius: 20px; border-radius: 20px;

View File

@ -131,6 +131,10 @@ import { useRouter } from 'vue-router'
import Bill from "@/components/Bill.vue" import Bill from "@/components/Bill.vue"
import { financial_record_titleApi, financial_recordApi, financial_record_detailApi, financial_record_detailApi2, bill_listApi, withdraw_listApi } from "@/api.js" import { financial_record_titleApi, financial_recordApi, financial_record_detailApi, financial_record_detailApi2, bill_listApi, withdraw_listApi } from "@/api.js"
import { areaObj } from '@/store/index.js' import { areaObj } from '@/store/index.js'
import { globalEventBus } from '@/common/eventBus'
const areaStore = areaObj() const areaStore = areaObj()
@ -525,6 +529,24 @@ onMounted(() => {
addDta(res.data.list) addDta(res.data.list)
}) })
}) })
globalEventBus.on('header5-1', data => {
changeTable(0)
})
globalEventBus.on('header5-2', data => {
changeTable(1)
})
globalEventBus.on('header5-3', data => {
changeTable(2)
})
globalEventBus.on('header5-3-1', data => {
changeBill(1)
})
globalEventBus.on('header5-3-2', data => {
changeBill(2)
})
globalEventBus.on('header5-3-3', data => {
hdClick(2)
})
</script> </script>

View File

@ -8,12 +8,22 @@
import Header from "@/components/Header.vue" import Header from "@/components/Header.vue"
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
const route =useRoute() const route = useRoute()
import { globalEventBus } from '@/common/eventBus' import { globalEventBus } from '@/common/eventBus'
globalEventBus.on('newTask', data => {
globalEventBus.emit('newTask1', "data")
})
//
for (let i = 1; i < 6; i++) {
globalEventBus.on('header' + i, data => {
globalEventBus.emit('compheader' + i, data)
console.log(i)
})
}
console.log("wcnm")
</script> </script>

View File

@ -33,6 +33,8 @@ import { ref, reactive, onMounted } from "vue"
import Bill from "@/components/Bill.vue" import Bill from "@/components/Bill.vue"
import { order_listApi, order_list_count_titleApi, refund_order_listApi, take_order_listApi, take_order_count_titleApi } from "@/api.js" import { order_listApi, order_list_count_titleApi, refund_order_listApi, take_order_listApi, take_order_count_titleApi } from "@/api.js"
import { areaObj } from "../store"; import { areaObj } from "../store";
import { globalEventBus } from '@/common/eventBus'
const areaStore = areaObj() const areaStore = areaObj()
const billList = reactive([ const billList = reactive([
{ {
@ -131,6 +133,9 @@ const refundStatusFn = (item) => {
} }
const btnFlag = reactive([true, false, false]) const btnFlag = reactive([true, false, false])
const hdClick = (i) => { const hdClick = (i) => {
btnFlag.forEach((item, index) => { btnFlag.forEach((item, index) => {
btnFlag[index] = false btnFlag[index] = false
}) })
@ -208,9 +213,11 @@ const tableHdClick = (e) => {
// console.log(e.rowIndex) // console.log(e.rowIndex)
let tag = document.getElementById(`order${e.rowIndex}`) let tag = document.getElementById(`order${e.rowIndex}`)
let tag2 = document.getElementById(`card${e.rowIndex}`) let tag2 = document.getElementById(`card${e.rowIndex}`)
tag.style.display = 'none' // tag.style.display = 'none'
tag2.style.display = 'block' // tag2.style.display = 'block'
console.log(e.rowIndex)
console.log(tag)
console.log(tag2)
} else { } else {
let tag = document.getElementsByClassName(`order`) let tag = document.getElementsByClassName(`order`)
@ -834,6 +841,23 @@ const configs3 = reactive({
onMounted(() => { onMounted(() => {
hdClick(0) hdClick(0)
}) })
globalEventBus.on('header4-1', data => {
hdClick(0)
})
globalEventBus.on('header4-2', data => {
hdClick(1)
})
globalEventBus.on('header4-3', data => {
hdClick(2)
})
globalEventBus.on('header4-1-1', data => {
// console.log(e.rowIndex)
let tag = document.getElementById(`order${data.index}`)
let tag2 = document.getElementById(`card${data.index}`)
tag.style.display = 'none'
tag2.style.display = 'block'
})
</script> </script>

View File

@ -164,7 +164,7 @@ let userInfo = JSON.parse(localStorage.getItem('TRADE_USER'))
if (areaStore.userInfo.user?.merchant) { if (areaStore.userInfo.user?.merchant) {
let { area_id, mer_id, street_id } = areaStore.userInfo.user?.merchant let { area_id, mer_id, street_id } = areaStore.userInfo.user?.merchant
console.log(area_id, 5645545)
query = { query = {
areaCode: area_id, areaCode: area_id,
streetCode: street_id, streetCode: street_id,