提交 ca190da0 作者: guolinhua

feat(api): 对接首页和农场数据接口

上级 bc9ae4d8
...@@ -4,7 +4,7 @@ import { CodeGenerator, Property } from 'pont-engine' ...@@ -4,7 +4,7 @@ import { CodeGenerator, Property } from 'pont-engine'
// 接口 API 前缀 // 接口 API 前缀
// 通常与项目的 env 配置中的 VITE_GLOB_API_URL_PREFIX 相同 // 通常与项目的 env 配置中的 VITE_GLOB_API_URL_PREFIX 相同
const API_URL_PREFIX = '/api' const API_URL_PREFIX = '/jeecgboot'
export default class BasicGenerator extends CodeGenerator { export default class BasicGenerator extends CodeGenerator {
checkJsonParam(inter: Interface, paramsCode: string): boolean { checkJsonParam(inter: Interface, paramsCode: string): boolean {
...@@ -60,8 +60,8 @@ export default class BasicGenerator extends CodeGenerator { ...@@ -60,8 +60,8 @@ export default class BasicGenerator extends CodeGenerator {
sourceResponseType === 'File' sourceResponseType === 'File'
? 'void' ? 'void'
: sourceResponseType === 'defs.ResultString' : sourceResponseType === 'defs.ResultString'
? 'string' ? 'string'
: sourceResponseType.replace(/defs.Result(.*)/, 'defs.$1') : sourceResponseType.replace(/defs.Result(.*)/, 'defs.$1')
return ` return `
export ${paramsCode} export ${paramsCode}
...@@ -127,8 +127,8 @@ export default class BasicGenerator extends CodeGenerator { ...@@ -127,8 +127,8 @@ export default class BasicGenerator extends CodeGenerator {
requestParams.includes('form') requestParams.includes('form')
? `headers: { 'Content-Type': 'multipart/form-data;charset=UTF-8' },` ? `headers: { 'Content-Type': 'multipart/form-data;charset=UTF-8' },`
: isBody : isBody
? `headers: { 'Content-Type': 'application/json' },` ? `headers: { 'Content-Type': 'application/json' },`
: '' : ''
} }
...config, ...config,
......
...@@ -2,6 +2,9 @@ import { otherHttp } from '/@/utils/http/axios' ...@@ -2,6 +2,9 @@ import { otherHttp } from '/@/utils/http/axios'
enum Api { enum Api {
zoneList = '/online/cgform/api/getData/01fd687ecb164aea914e92047e144d66', // 金刚区菜单数据 zoneList = '/online/cgform/api/getData/01fd687ecb164aea914e92047e144d66', // 金刚区菜单数据
productMarketList = '/online/cgform/api/getData/5b71e11020d44366b2d130e200c7a640', // 热门产地行情
serviceStatsList = '/online/cgform/api/getData/491863dde351404da63a1a6e8c699c4c', // 服务展示窗
agricultureClassList = '/online/cgform/api/getData/311c300e05694ba69a063d04c8572e9e', // 农技课堂
} }
/** /**
...@@ -14,3 +17,36 @@ export function zoneList(params = {}) { ...@@ -14,3 +17,36 @@ export function zoneList(params = {}) {
params, params,
}) })
} }
/**
* @param params 请求参数
* @description: 热门产地行情数据
*/
export function productMarketList(params = {}) {
return otherHttp.get({
url: Api.productMarketList,
params,
})
}
/**
* @param params 请求参数
* @description: 服务展示窗数据
*/
export function serviceStatsList(params = {}) {
return otherHttp.get({
url: Api.serviceStatsList,
params,
})
}
/**
* @param params 请求参数
* @description: 农技课堂数据
*/
export function agricultureClassList(params = {}) {
return otherHttp.get({
url: Api.agricultureClassList,
params,
})
}
import { otherHttp } from '/@/utils/http/axios'
enum Api {
zoneList = '/online/cgform/api/getData/01fd687ecb164aea914e92047e144d66', // 功能菜单数据
agricultureModelsList = '/online/cgform/api/getData/7b2983df6ddf416aba68db8b0ab234ab', // 农业模型数据
baseManagementList = '/online/cgform/api/getData/3a7fbb877f304b7d83935caa454859c4', // 基地管理数据
commonToolsList = '/online/cgform/api/getData/e4e4e6c901254b60b1e7a005097999ec', // 常用工具数据
}
/**
* @param params 请求参数
* @description: 金刚区菜单数据
*/
export function zoneList(params = {}) {
return otherHttp.get({
url: Api.zoneList,
params,
})
}
/**
* @param params 请求参数
* @description: 农业模型数据
*/
export function agricultureModelsList(params = {}) {
return otherHttp.get({
url: Api.agricultureModelsList,
params,
})
}
/**
* @param params 请求参数
* @description: 基地管理数据
*/
export function baseManagementList(params = {}) {
return otherHttp.get({
url: Api.baseManagementList,
params,
})
}
/**
* @param params 请求参数
* @description: 常用工具数据
*/
export function commonToolsList(params = {}) {
return otherHttp.get({
url: Api.commonToolsList,
params,
})
}
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue' import { reactive } from 'vue'
import { onPullDownRefresh } from '@dcloudio/uni-app' import { onPullDownRefresh, onShow } from '@dcloudio/uni-app'
import * as NongChangAPI from '@/api/model/nongchang'
onShow(() => {
// 获取金刚区菜单数据
getZoomList()
// 获取农业模型数据
getAgricultureModelsList()
// 获取基地管理数据
getBaseManagementList()
// 获取常用工具数据
getCommonToolsList()
})
// 下拉刷新 // 下拉刷新
onPullDownRefresh(() => { onPullDownRefresh(() => {
...@@ -20,11 +33,11 @@ ...@@ -20,11 +33,11 @@
// 功能菜单 // 功能菜单
menuItems: [ menuItems: [
{ id: 1, name: '监测预警', icon: '/static/images/codefun/e683f9d10dc21da45abffbfa4c56fffb.png' }, // { id: 1, name: '监测预警', icon: '/static/images/codefun/e683f9d10dc21da45abffbfa4c56fffb.png' },
{ id: 2, name: '农业模型', icon: '/static/images/codefun/afdf5cf91bb1832ec12b89ba1f8a4a22.png' }, // { id: 2, name: '农业模型', icon: '/static/images/codefun/afdf5cf91bb1832ec12b89ba1f8a4a22.png' },
{ id: 3, name: '基地管理', icon: '/static/images/codefun/8ce0f7de048a5d10fd901fa4caee40fd.png' }, // { id: 3, name: '基地管理', icon: '/static/images/codefun/8ce0f7de048a5d10fd901fa4caee40fd.png' },
{ id: 4, name: '信用中心', icon: '/static/images/codefun/bc6853d7f464c445f1d6cc5f3b37103d.png' }, // { id: 4, name: '信用中心', icon: '/static/images/codefun/bc6853d7f464c445f1d6cc5f3b37103d.png' },
{ id: 5, name: '灵活用工', icon: '/static/images/codefun/104cbc5dca418b07e6933d2e953db1d8.png' }, // { id: 5, name: '灵活用工', icon: '/static/images/codefun/104cbc5dca418b07e6933d2e953db1d8.png' },
], ],
// 农场信息 // 农场信息
...@@ -195,6 +208,40 @@ ...@@ -195,6 +208,40 @@
}, },
}) })
function getZoomList() {
NongChangAPI.zoneList({
pageNo: 1,
pageSize: 5,
status: 1,
type: 2,
}).then((res) => {
const { records } = res
pageData.menuItems = []
pageData.menuItems = records
})
}
function getAgricultureModelsList() {
NongChangAPI.agricultureModelsList().then((res) => {
const { records } = res
pageData.agricultureModels = []
pageData.agricultureModels = records
})
}
function getBaseManagementList() {
NongChangAPI.baseManagementList().then((res) => {
const { records } = res
pageData.baseManagement = []
pageData.baseManagement = records
})
}
function getCommonToolsList() {
NongChangAPI.commonToolsList().then((res) => {
const { records } = res
pageData.commonTools = []
pageData.commonTools = records
})
}
// 菜单点击事件 // 菜单点击事件
function onMenuItemClick(item: any) { function onMenuItemClick(item: any) {
console.log('点击菜单项:', item) console.log('点击菜单项:', item)
...@@ -266,15 +313,9 @@ ...@@ -266,15 +313,9 @@
v-for="item in pageData.menuItems" v-for="item in pageData.menuItems"
:key="item.id" :key="item.id"
class="codefun-flex-col codefun-items-center" class="codefun-flex-col codefun-items-center"
:class="{
'equal-division-item': item.id === 1,
'group_3 equal-division-item': item.id === 2 || item.id === 3,
'group_4 equal-division-item_2': item.id === 4,
'equal-division-item_3 group_5': item.id === 5,
}"
@click="onMenuItemClick(item)" @click="onMenuItemClick(item)"
> >
<image class="image_6" :src="item.icon" /> <image class="image_6" :src="item.icon_url" />
<text class="font_3 mt-13" :class="`text_${item.id + 2}`">{{ item.name }}</text> <text class="font_3 mt-13" :class="`text_${item.id + 2}`">{{ item.name }}</text>
</view> </view>
</view> </view>
...@@ -742,7 +783,10 @@ ...@@ -742,7 +783,10 @@
} }
} }
.section_3 { .section_3 {
padding: 16rpx 12rpx 16rpx; display: flex;
justify-content: space-between;
align-items: center;
padding: 16rpx 24rpx 16rpx;
background-color: #ffffff; background-color: #ffffff;
border-radius: 16rpx; border-radius: 16rpx;
mix-blend-mode: NOTTHROUGH; mix-blend-mode: NOTTHROUGH;
...@@ -878,6 +922,7 @@ ...@@ -878,6 +922,7 @@
margin-top: 16rpx; margin-top: 16rpx;
text-align: center; text-align: center;
width: 160rpx; width: 160rpx;
height: 60rpx;
} }
.text-wrapper_3 { .text-wrapper_3 {
margin-top: 36rpx; margin-top: 36rpx;
......
...@@ -37,9 +37,14 @@ ...@@ -37,9 +37,14 @@
}) })
// 查询金刚区数据 // 查询金刚区数据
HomeAPI.zoneList().then((res) => { getServiceItems()
console.log('HomeAPI.zoneList', res) getMenuItems()
}) // 查询热门产地行情
getProductMarketList()
// 服务展示窗
getServiceStatsList()
// 农技课堂
getAgricultureClassList()
}) })
// 下拉刷新 // 下拉刷新
...@@ -108,20 +113,10 @@ ...@@ -108,20 +113,10 @@
}, },
// 功能菜单 // 功能菜单
menuItems: [ menuItems: [],
{ id: 1, name: '农业政策', icon: '/static/images/codefun/4d9a15cf0dce9c5b1f274f99eb3e4718.png' },
{ id: 2, name: '灵活用工', icon: '/static/images/codefun/24864cd4c6f680714e327688c6ee9977.png' },
{ id: 3, name: '可信农资', icon: '/static/images/codefun/0c9b2418502708fc8414e7b2c04dc8e2.png' },
{ id: 4, name: '农机租购', icon: '/static/images/codefun/15059d8b705006d875ca9460b696a316.png' },
],
// 其他服务 // 其他服务
serviceItems: [ serviceItems: [],
{ id: 1, name: '惠农金融', icon: '/static/images/codefun/9f300d453071240f6f56ff6f83e223db.png' },
{ id: 2, name: '助农保险', icon: '/static/images/codefun/f422ac97718981ce225a7f595779f2be.png' },
{ id: 3, name: '品牌策划', icon: '/static/images/codefun/c0669727e6384083a7493979154183a9.png' },
{ id: 4, name: '农知农技', icon: '/static/images/codefun/182a345a5e2d417c944035b240ba2e64.png' },
],
// 新闻资讯 // 新闻资讯
newsItems: [ newsItems: [
...@@ -132,68 +127,125 @@ ...@@ -132,68 +127,125 @@
// 农产品行情 // 农产品行情
productMarket: { productMarket: {
title: '热门产地行情', title: '热门产地行情',
updateTime: '08-30日更新', // updateTime: '08-30日更新',
products: [ products: [
{ id: 1, name: '晚稻13号', price: '¥4120', change: '+1.2%', isUp: true }, // { id: 1, name: '晚稻13号', price: '¥4120', change: '+1.2%', isUp: true },
{ id: 2, name: '晚稻9号', price: '¥3211', change: '+1.2%', isUp: true }, // { id: 2, name: '晚稻9号', price: '¥3211', change: '+1.2%', isUp: true },
{ id: 3, name: '晚稻11号', price: '¥2120', change: '-1.2%', isUp: false }, // { id: 3, name: '晚稻11号', price: '¥2120', change: '-1.2%', isUp: false },
], ],
}, },
// 服务展示窗 // 服务展示窗
serviceStats: [ serviceStats: [
{ // {
id: 1, // id: 1,
name: '农场入驻', // name: '农场入驻',
value: '2,360', // value: '2,360',
unit: '个', // unit: '个',
icon: '/static/images/codefun/15911306636a361a8dc16ce0283f3830.png', // icon: '/static/images/codefun/15911306636a361a8dc16ce0283f3830.png',
}, // },
{ // {
id: 2, // id: 2,
name: '空闲农机', // name: '空闲农机',
value: '126', // value: '126',
unit: '台', // unit: '台',
icon: '/static/images/codefun/1d0cd168eeffbaf37a90aa949c6ad806.png', // icon: '/static/images/codefun/1d0cd168eeffbaf37a90aa949c6ad806.png',
}, // },
{ // {
id: 3, // id: 3,
name: '产销对接', // name: '产销对接',
value: '156', // value: '156',
unit: '笔', // unit: '笔',
icon: '/static/images/codefun/24dd00386672f240ef00394b746c2ff0.png', // icon: '/static/images/codefun/24dd00386672f240ef00394b746c2ff0.png',
}, // },
{ // {
id: 4, // id: 4,
name: '服务农户', // name: '服务农户',
value: '12,580', // value: '12,580',
unit: '人', // unit: '人',
icon: '/static/images/codefun/3fd6a50eaf22431687a6151df0581156.png', // icon: '/static/images/codefun/3fd6a50eaf22431687a6151df0581156.png',
}, // },
{ // {
id: 5, // id: 5,
name: '覆盖面积', // name: '覆盖面积',
value: '268', // value: '268',
unit: 'km', // unit: 'km',
icon: '/static/images/codefun/87773a17a1b64dc686bf935708262002.png', // icon: '/static/images/codefun/87773a17a1b64dc686bf935708262002.png',
}, // },
{ // {
id: 6, // id: 6,
name: '覆盖区县', // name: '覆盖区县',
value: '21', // value: '21',
unit: '个', // unit: '个',
icon: '/static/images/codefun/329a4404092545f2924ad095c531cc66.png', // icon: '/static/images/codefun/329a4404092545f2924ad095c531cc66.png',
}, // },
], ],
// 农技课堂 // 农技课堂
agricultureClass: { agricultureClass: {
title: '专家实录—鸡饲养技术', title: '专家实录—鸡饲养技术',
expert: '张教授', // expert: '张教授',
info: '23:15|2.3万次播放', time: '',
videoList: [],
}, },
current: 0,
}) })
function getServiceItems() {
HomeAPI.zoneList({
pageNo: 1,
pageSize: 4,
status: 1,
type: 1,
}).then((res) => {
const { records } = res
pageData.serviceItems = []
pageData.serviceItems = records
})
}
function getMenuItems() {
HomeAPI.zoneList({
pageNo: 1,
pageSize: 4,
status: 1,
type: 2,
}).then((res) => {
const { records } = res
pageData.menuItems = []
pageData.menuItems = records
})
}
function getProductMarketList() {
HomeAPI.productMarketList().then((res) => {
const { records } = res
console.log(res)
pageData.productMarket.products = records
pageData.productMarket.products.forEach((item: any) => {
switch (item.tendency) {
case 1:
item.isUp = true
break
case 2:
item.isUp = false
break
}
})
})
}
function getServiceStatsList() {
HomeAPI.serviceStatsList().then((res) => {
const { records } = res
pageData.serviceStats = records
})
}
function getAgricultureClassList() {
HomeAPI.agricultureClassList().then((res) => {
const { records } = res
pageData.agricultureClass.videoList = records
pageData.agricultureClass.title = records[0]?.title
})
}
// 菜单点击事件 // 菜单点击事件
function onMenuItemClick(item: any) { function onMenuItemClick(item: any) {
console.log('点击菜单项:', item) console.log('点击菜单项:', item)
...@@ -211,6 +263,18 @@ ...@@ -211,6 +263,18 @@
console.log('查看全部农技课堂') console.log('查看全部农技课堂')
// 在这里添加具体的查看逻辑 // 在这里添加具体的查看逻辑
} }
// 轮播视频切换的时候触发
function handleChangeVideo(e: any) {
// console.log('切换视频', e.detail.current)
pageData.current = e.detail.current
pageData.agricultureClass.title = pageData.agricultureClass.videoList[pageData.current]?.title
}
// 获取视频时长
function handleMetadataLoaded(e: any) {
pageData.agricultureClass.time = e.target.duration
}
</script> </script>
<template> <template>
...@@ -322,29 +386,32 @@ ...@@ -322,29 +386,32 @@
<view class="codefun-flex-col codefun-relative section_5"> <view class="codefun-flex-col codefun-relative section_5">
<view class="codefun-flex-row"> <view class="codefun-flex-row">
<view <view
v-show="item.status"
v-for="item in pageData.menuItems" v-for="item in pageData.menuItems"
:key="item.id" :key="item.id"
class="codefun-flex-col codefun-items-center group_10" class="codefun-flex-col codefun-items-center group_10"
@click="onMenuItemClick(item)" @click="onMenuItemClick(item)"
> >
<image class="image_11" :src="item.icon" /> <image class="image_11" :src="item.icon_url" />
<text class="font_2 mt-11">{{ item.name }}</text> <text class="font_2 mt-11">{{ item.name }}</text>
</view> </view>
</view> </view>
<view class="codefun-flex-col group_11 codefun-mt-20"> <view class="codefun-flex-col group_11 codefun-mt-20">
<view class="codefun-flex-row group_38"> <view class="codefun-flex-row group_38">
<image <image
v-show="service.status"
v-for="service in pageData.serviceItems" v-for="service in pageData.serviceItems"
:key="service.id" :key="service.id"
class="image_12" class="image_12"
:class="{ :class="{
'ml-43': service.id > 1, 'ml-43': service.id > 1,
}" }"
:src="service.icon" :src="service.icon_url"
/> />
</view> </view>
<view class="codefun-flex-row codefun-justify-between mt-13"> <view class="codefun-flex-row codefun-justify-between mt-13">
<text <text
v-show="service.status"
v-for="service in pageData.serviceItems" v-for="service in pageData.serviceItems"
:key="service.id" :key="service.id"
class="font_2" class="font_2"
...@@ -377,7 +444,7 @@ ...@@ -377,7 +444,7 @@
</view> </view>
<view class="codefun-flex-row codefun-justify-between codefun-items-baseline group_12"> <view class="codefun-flex-row codefun-justify-between codefun-items-baseline group_12">
<text class="font_6">{{ pageData.productMarket.title }}</text> <text class="font_6">{{ pageData.productMarket.title }}</text>
<text class="font_7 text_22">{{ pageData.productMarket.updateTime }}</text> <!-- <text class="font_7 text_22">{{ pageData.productMarket.updateTime }}</text> -->
</view> </view>
<view class="codefun-flex-row equal-division section_8"> <view class="codefun-flex-row equal-division section_8">
<view <view
...@@ -399,8 +466,8 @@ ...@@ -399,8 +466,8 @@
}" }"
> >
<text class="font_8 text_23">{{ product.name }}</text> <text class="font_8 text_23">{{ product.name }}</text>
<text class="font_9" :class="`pos${index > 0 ? `_${index + 1}` : ''}`">{{ <text class="font_9 text_23" :class="`pos${index > 0 ? `_${index + 1}` : ''}`">{{
product.price product.current_price
}}</text> }}</text>
</view> </view>
<view <view
...@@ -426,7 +493,7 @@ ...@@ -426,7 +493,7 @@
text_26: !product.isUp, text_26: !product.isUp,
}" }"
> >
{{ product.change }} {{ `${product.percent}%` }}
</text> </text>
</view> </view>
<view <view
...@@ -445,20 +512,10 @@ ...@@ -445,20 +512,10 @@
<view <view
v-for="stat in pageData.serviceStats" v-for="stat in pageData.serviceStats"
:key="stat.id" :key="stat.id"
class="codefun-flex-col section_12" class="codefun-flex-col section_12 section_19"
:class="{
section_18: stat.id === 1,
section_1: stat.id === 2,
section_19: stat.id > 2,
}"
> >
<view <view
class="codefun-flex-row codefun-justify-center codefun-items-center codefun-self-stretch codefun-relative" class="codefun-flex-row codefun-justify-center codefun-items-center codefun-self-stretch codefun-relative group_27"
:class="{
group_25: stat.id === 1,
group_26: stat.id === 2,
group_27: stat.id > 2,
}"
> >
<image class="image_5 mr-1" :class="`pos_${stat.id}`" :src="stat.icon" /> <image class="image_5 mr-1" :class="`pos_${stat.id}`" :src="stat.icon" />
<text <text
...@@ -467,22 +524,9 @@ ...@@ -467,22 +524,9 @@
>{{ stat.name }}</text >{{ stat.name }}</text
> >
</view> </view>
<view <view class="codefun-flex-row codefun-justify-center codefun-items-baseline mt-11 group_30">
class="codefun-flex-row codefun-justify-center codefun-items-baseline mt-11" <text class="font_12 text_37">{{ stat.num }}</text>
:class="{ <text class="font_7 text_31">{{ stat.unit }}</text>
group_28: stat.id === 1,
group_18: stat.id === 2,
group_30: stat.id > 2,
}"
>
<text class="font_12" :class="`text_${stat.id === 1 ? 47 : stat.id === 2 ? 48 : 37}`">{{
stat.value
}}</text>
<text
class="font_7"
:class="`text_${stat.id === 1 ? 49 : stat.id === 2 ? '' : stat.id > 4 ? 31 : 31}`"
>{{ stat.unit }}</text
>
</view> </view>
</view> </view>
</view> </view>
...@@ -491,31 +535,50 @@ ...@@ -491,31 +535,50 @@
<text class="font_7 text_33" @click="onViewMoreClass">查看全部</text> <text class="font_7 text_33" @click="onViewMoreClass">查看全部</text>
</view> </view>
<view class="codefun-flex-col section_13"> <view class="codefun-flex-col section_13">
<text class="codefun-self-start font text_34">{{ pageData.agricultureClass.title }}</text> <fui-swiper-dot
<view :items="pageData.agricultureClass.videoList"
class="codefun-flex-row codefun-justify-between codefun-items-center codefun-self-stretch mt-13" :current="pageData.current"
:styles="{
height: 10,
activeWidth: 40,
background: '#dff0e2',
activeBackground: '#5db66f',
bottom: 10,
}"
> >
<view class="codefun-flex-row codefun-items-center"> <swiper
<image class="fui-banner__wrap"
class="codefun-shrink-0 image_15" circular
src="/static/images/codefun/893f216142f5ca20cf9f2496d9b793c8.png" :indicator-dots="false"
/> autoplay
<text class="font_14 text_35 ml-5">{{ pageData.agricultureClass.expert }}</text> :interval="4000"
</view> :duration="150"
<text class="font_14 text_36">{{ pageData.agricultureClass.info }}</text> @change="handleChangeVideo"
</view>
<view class="codefun-flex-row codefun-justify-center codefun-self-stretch mt-13">
<view class="section_14" />
<view
class="codefun-flex-col codefun-justify-start codefun-items-center image-wrapper codefun-ml-8"
> >
<image class="image_16" src="/static/images/codefun/d2f4116cc0ab402e57bdbd7aa4dead94.png" /> <swiper-item v-for="(video, index) in pageData.agricultureClass.videoList" :key="index">
</view> <video
<view class="section_15 codefun-ml-8" /> :src="video.media_video"
:poster="video.cover_image"
:controls="false"
style="width: 654rpx; height: 358rpx"
@loadedmetadata="handleMetadataLoaded"
></video>
</swiper-item>
</swiper>
</fui-swiper-dot>
<view class="describe">
<text class="codefun-self-start font text_34">{{ pageData.agricultureClass.title }}</text>
<view <view
class="codefun-flex-col codefun-justify-start codefun-items-center image-wrapper codefun-ml-8" class="codefun-flex-row codefun-justify-between codefun-items-center codefun-self-stretch mt-13"
> >
<image class="image_16" src="/static/images/codefun/d2f4116cc0ab402e57bdbd7aa4dead94.png" /> <!-- <view class="codefun-flex-row codefun-items-center">
<image
class="codefun-shrink-0 image_15"
src="/static/images/codefun/893f216142f5ca20cf9f2496d9b793c8.png"
/>
<text class="font_14 text_35 ml-5">{{ pageData.agricultureClass.expert }}</text>
</view> -->
<text class="font_14 text_36">{{ pageData.agricultureClass.time }}</text>
</view> </view>
</view> </view>
</view> </view>
...@@ -881,7 +944,8 @@ ...@@ -881,7 +944,8 @@
margin-right: 28rpx; margin-right: 28rpx;
margin-top: 32.72rpx; margin-top: 32.72rpx;
.group_13 { .group_13 {
flex: 1 1 231.34rpx; flex: 0 0 33.33%;
text-align: center;
.group_41 { .group_41 {
padding: 10rpx 0 4.92rpx; padding: 10rpx 0 4.92rpx;
width: 106rpx; width: 106rpx;
...@@ -915,7 +979,7 @@ ...@@ -915,7 +979,7 @@
color: #333333; color: #333333;
} }
.text_23 { .text_23 {
width: 124rpx; width: 100%;
} }
.font_9 { .font_9 {
font-size: 36rpx; font-size: 36rpx;
...@@ -998,7 +1062,7 @@ ...@@ -998,7 +1062,7 @@
.equal-division_2 { .equal-division_2 {
margin-top: 32.9rpx; margin-top: 32.9rpx;
.section_12 { .section_12 {
flex: 1 1 216rpx; flex: 0 0 calc(33.33% - 14rpx);
.group_25 { .group_25 {
padding: 5.24rpx 0 4.8rpx; padding: 5.24rpx 0 4.8rpx;
.pos_4 { .pos_4 {
...@@ -1086,7 +1150,7 @@ ...@@ -1086,7 +1150,7 @@
} }
.group_16 { .group_16 {
flex-wrap: wrap; flex-wrap: wrap;
gap: 10px; gap: 20rpx;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-right: 10px; margin-right: 10px;
...@@ -1113,17 +1177,44 @@ ...@@ -1113,17 +1177,44 @@
color: #333333; color: #333333;
} }
.section_13 { .section_13 {
position: relative;
margin-right: 28rpx; margin-right: 28rpx;
margin-top: 32.86rpx; margin-top: 32.86rpx;
padding: 271.06rpx 36.64rpx 22rpx 48rpx; height: 418rpx;
// padding: 271.06rpx 36.64rpx 22rpx 48rpx;
padding: 20rpx;
padding-bottom: 0;
background-color: #ffffff; background-color: #ffffff;
border-radius: 16rpx; border-radius: 16rpx;
mix-blend-mode: NOTTHROUGH; mix-blend-mode: NOTTHROUGH;
background-image: url('/static/images/codefun/de7f2f0177d74c2b9c784b3825ea9832.png'); // background-image: url('/static/images/codefun/de7f2f0177d74c2b9c784b3825ea9832.png');
background-size: 94%; // background-size: 94%;
background-repeat: no-repeat; // background-repeat: no-repeat;
background-position-x: 20rpx; // background-position-x: 20rpx;
background-position-y: 20rpx; // background-position-y: 20rpx;
.fui-banner__item {
height: 358rpx;
border-radius: 20rpx;
}
.fui-banner__wrap {
height: 358rpx;
:deep(.uni-video-cover) {
.uni-video-cover-play-button {
width: 70rpx;
height: 70rpx;
line-height: 40rpx;
font-size: 56rpx;
}
}
}
.describe {
width: 88%;
position: absolute;
bottom: 52rpx;
left: 40rpx;
}
.text_34 { .text_34 {
line-height: 26.58rpx; line-height: 26.58rpx;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论