This commit is contained in:
weipengfei 2024-02-04 18:55:20 +08:00
parent 43489b48c2
commit c63226cdd8
10 changed files with 173 additions and 24 deletions

View File

@ -1 +1 @@
VITE_BASE_URL = 'https://crmeb-test.shop.lihaink.cn/api' VITE_BASE_URL = 'https://ceshi-suyuan-breed.lihaink.cn'

View File

@ -1 +1 @@
VITE_BASE_URL = '/' VITE_BASE_URL = 'https://ceshi-suyuan-breed.lihaink.cn'

BIN
dist.zip Normal file

Binary file not shown.

17
src/api/api.js Normal file
View File

@ -0,0 +1,17 @@
import axios from "@/utils/axios.js";
// 登录
export const login = (data) => {
return axios.post('dataview/login', data);
}
// 养殖基地
export const getfarmCount = (data) => {
return axios.get('dataview.farm/farmCount', { params: data });
}
// 养殖产品溯源
export const getBreedTypeCount = (data) => {
return axios.get('dataview.farm/breedTypeCount', { params: data });
}

19
src/api/dict.js Normal file
View File

@ -0,0 +1,19 @@
import axios from "@/utils/axios.js";
//养殖基地类型
export const farmTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'farm_type');
//养殖种类
export const breedTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'breed_type');
//栏舍类型
export const fenceHouseTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'fence_house_type');
//动物类型
export const animalTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'animal_type');
//饲料类型
export const feedingTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'feeding_type');
//离栏类型
export const leaveFenceHouseTypeLists = () => axios.get('common/dict_data_lists_by_type_value?type_value='+'leave_fence_house_type');

View File

@ -1,21 +1,64 @@
import axios from "@/utils/axios.js"; import axios from "axios";
// 创建axios 实例
const instacne = axios.create({
baseURL: "https://crmeb-test.shop.lihaink.cn/api",
timeout: 30000,
});
const configInstacne=(ins)=>{
ins.interceptors.request.use(
(config) => {
// 在发送请求之前做什么
return config;
},
(err) => {
return Promise.reject(err);
}
);
// 响应拦截
ins.interceptors.response.use(
(res) => {
// if (res.data.status != 200) {
// ElMessage({
// message: res.data.message,
// type: 'warning',
// })
// return Promise.reject(res.data.message);
// }
// 对响应的数据做什么
return res.data;
},
(err) => {
return Promise.reject(err);
}
);
}
configInstacne(instacne)
// 登录 // 登录
export const login = (data) => { export const login = (data) => {
return axios.post('dataview/login', data); return instacne.post('dataview/login', data);
} }
// 区县 // 区县
export const getArea = (data) => { export const getArea = (data) => {
return axios.get('city/get_area', { params: data }); return instacne.get('city/get_area', { params: data });
} }
// 乡镇 // 乡镇
export const getStreet = (data) => { export const getStreet = (data) => {
return axios.get('city/get_street', { params: data }); return instacne.get('city/get_street', { params: data });
} }
// 养殖基地
export const getfarmCount = (data) => {
return axios.get('dataview.farm/farmCount ', { params: data });
}

View File

@ -3,6 +3,17 @@ import headView from "@/components/headView.vue";
import Businesses from "@/components/Businesses.vue"; import Businesses from "@/components/Businesses.vue";
import { ref, nextTick, provide, onMounted, onUnmounted } from "vue"; import { ref, nextTick, provide, onMounted, onUnmounted } from "vue";
import mitt from "@/utils/mitt"; import mitt from "@/utils/mitt";
import { breedTypeLists } from "@/api/dict.js";
import { useDictStore } from "@/store/dict.js";
const dictStore = useDictStore();
const initbreedTypeLists = ()=>{
breedTypeLists().then(res=>{
dictStore.setBreedTypeList(res.data);
})
}
initbreedTypeLists();
const show = ref(true); const show = ref(true);
const reload = () => { const reload = () => {

17
src/store/dict.js Normal file
View File

@ -0,0 +1,17 @@
import { defineStore } from "pinia"
import { ref } from "vue"
export const useDictStore = defineStore('dict', () => {
const breedTypeList = ref([]);
const setBreedTypeList = (data) => {
breedTypeList.value = data;
}
return {
breedTypeList,
setBreedTypeList
}
})

View File

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
const request = axios.create({ const request = axios.create({
baseURL: import.meta.env.VITE_BASE_URL, baseURL: import.meta.env.VITE_BASE_URL + '/api',
timeout: 5000 timeout: 5000
}) })

View File

@ -1,17 +1,58 @@
<script setup> <script setup>
import { ref, reactive, onMounted } from "vue" import { ref, reactive, onMounted, nextTick } from "vue"
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import videoFlv from "@/components/videoFlv.vue"; import videoFlv from "@/components/videoFlv.vue";
import { getfarmCount, getBreedTypeCount } from "@/api/api.js";
import { useAppStore } from "@/store/app.js";
import { useDictStore } from "@/store/dict.js";
const initData = (data) => { const appStore = useAppStore();
const dictStore = useDictStore();
const farmInfo = ref({
farmCount: 0,
totalScale: 0
});
const farmList = ref([]);
const initFarmCount = ()=>{
getfarmCount({
areaCode: appStore.address.areaCode,
streetCode: appStore.address.streetCode
}).then((res)=>{
farmInfo.value.farmCount = res.data.farmCount;
farmInfo.value.totalScale = res.data.totalScale;
farmList.value = res.data.farmList;
initData();
})
}
const breedTypeRows = ref([]);
const animalList = ref([]);
const initBreedTypeCount = ()=>{
getBreedTypeCount({
areaCode: appStore.address.areaCode,
streetCode: appStore.address.streetCode
}).then((res)=>{
breedTypeRows.value = res.data.breedTypeRows;
animalList.value = res.data.animalList;
})
}
const initData = async (data) => {
let arr = []; let arr = [];
for (let i = 0; i < 10; i++) { if(dictStore.breedTypeList.length==0) await nextTick();
for (let i = 0; i < farmList.value.length; i++) {
let type = dictStore.breedTypeList.find(item=>item.value==farmList.value[i].farm_type);
arr.push( arr.push(
[ [
`${i + 1}`, `${i + 1}`,
`-`, `${farmList.value[i].farm_name}`,
`-`, `${type?.name||'-'}`,
`-`, `${farmList.value[i].animal_count||'-'}`,
] ]
) )
} }
@ -191,7 +232,8 @@ const initMap = () => {
const show = ref(false); const show = ref(false);
onMounted(() => { onMounted(() => {
initData(); initFarmCount();
initBreedTypeCount();
initMap(); initMap();
}) })
</script> </script>
@ -207,12 +249,12 @@ onMounted(() => {
<div class="tab-item"> <div class="tab-item">
<img src="/src/assets/index_img/icon1.png" /> <img src="/src/assets/index_img/icon1.png" />
<div>基地总数</div> <div>基地总数</div>
<div class="count">{{ 50 }}</div> <div class="count">{{ farmInfo.farmCount }}</div>
</div> </div>
<div class="tab-item"> <div class="tab-item">
<img src="/src/assets/index_img/icon1.png" /> <img src="/src/assets/index_img/icon1.png" />
<div>基地总数</div> <div>占地规模</div>
<div class="count">{{ 200 }}</div> <div class="count">{{ farmInfo.totalScale }}</div>
</div> </div>
</div> </div>
<dv-scroll-board <dv-scroll-board
@ -266,10 +308,10 @@ onMounted(() => {
<div ref="echarts2Ref"></div> <div ref="echarts2Ref"></div>
</div> </div>
<div class="qr"> <div class="qr">
<div class="qr_card" v-for="(item, index) in 6" :key="index"> <div class="qr_card" v-for="(item, index) in animalList" :key="index">
<div class="name"> <div class="name">
<div>品类名称: 黑山羊</div> <div>品类名称: {{ item.brand }}</div>
<div>溯源编码: 02457487544</div> <div>溯源编码: {{ item.sn }}</div>
</div> </div>
<img src="/src/assets/index_img/icon1.png" /> <img src="/src/assets/index_img/icon1.png" />
</div> </div>