This commit is contained in:
lxz 2024-01-02 18:18:57 +08:00
parent a7b393bdf1
commit af5e75d9c1
17 changed files with 259 additions and 141 deletions

View File

@ -9,6 +9,8 @@ export const login = (data) => syhttp.post('/login/account', data)
export const xinregister = (data) => syhttp.post('/index/code', data) export const xinregister = (data) => syhttp.post('/index/code', data)
//用户注册 //用户注册
export const logregister = (data) => syhttp.post('/login/register', data) export const logregister = (data) => syhttp.post('/login/register', data)
//用户注册验证码
export const registerCode = (data) => syhttp.post('/sms/sendCode', data)
//修改密码 //修改密码
export const changePassword = (data) => syhttp.post('/user/changePassword', data) export const changePassword = (data) => syhttp.post('/user/changePassword', data)
//退出登录 //退出登录
@ -64,3 +66,9 @@ export const towns = (data) => http.get('/common/geo/towns', data)
export const villages = (data) => http.get('/common/geo/villages', data) export const villages = (data) => http.get('/common/geo/villages', data)
//小组 //小组
export const groups = (data) => http.get('/common/geo/groups', data) export const groups = (data) => http.get('/common/geo/groups', data)
//视频推流
export const videoPush = (data) => http.get('/video', data)
// http: //127.0.0.1:8001/video/17378971117/lihai_lot_walnutpi_dev_1

View File

@ -1,47 +1,47 @@
<template> <template>
<view class="" style="margin-top: 10rpx;"> <view class="" style="margin-top: 15rpx;">
<view class="" style="display: flex;align-items: center;height: 50rpx;"> <view class="" style="display: flex;align-items: center;height: 50rpx;">
<u--image src="/static/main/index/dw.png" width="25rpx" height="30rpx" <u--image src="/static/main/index/dw.png" width="18.18rpx" height="24.47rpx"
style="margin-right: 10rpx;"></u--image> style="margin-right: 10rpx;"></u--image>
{{info.title}} <text style="color: #333333;font-size: 26rpx;">{{info.title}}</text>
</view> </view>
<view class="info"> <view class="info">
<view class="info-li" style="background-image: url('/static/main/index/tdmj1.png');"> <view class="info-li" style="background-image: url('/static/main/index/tdmj1.png');">
当前种植 当前种植
<view class=""> <view class="info-value">
{{info.kindarea|| info.total_area-info.residual_area}} {{info.kindarea|| info.total_area-info.residual_area}}
</view> </view>
</view> </view>
<view class="info-li" style="background-image: url('/static/main/index/tdmj1.png');"> <view class="info-li" style="background-image: url('/static/main/index/tdmj1.png');">
土地面积 土地面积
<view class=""> <view class="info-value">
{{info.total_area}} {{info.total_area}}
</view> </view>
</view> </view>
<view class="info-li" style="background-image: url('/static/main/index/tdfzr.png');"> <view class="info-li" style="background-image: url('/static/main/index/tdfzr.png');">
土地负责人 土地负责人
<view class=""> <view class="info-value">
{{info.master_name}} {{info.master_name}}
</view> </view>
</view> </view>
<view class="info-li" style="background-image: url('/static/main/index/fzrdh.png');"> <view class="info-li" style="background-image: url('/static/main/index/fzrdh.png');">
负责人电话 负责人电话
<view class=""> <view class="info-value">
{{info.master_phone}} {{info.master_phone}}
</view> </view>
</view> </view>
<view class="info-li" v-if="isDetail" style="background-image: url('/static/main/index/dqzz.png');"> <view class="info-li" v-if="isDetail" style="background-image: url('/static/main/index/dqzz.png');">
种植品种 种植品种
<view class=""> <view class="info-value">
{{info.kind}} {{info.kind}}
</view> </view>
</view> </view>
<view class="info-li" v-if="isDetail" style="background-image: url('/static/main/index/pin_pai.png');"> <view class="info-li" v-if="isDetail" style="background-image: url('/static/main/index/pin_pai.png');">
种植品牌 种植品牌
<view class=""> <view class="info-value">
{{info.breed}} {{info.breed}}
</view> </view>
</view> </view>
@ -130,15 +130,26 @@
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
margin-top: 10rpx;
.info-li { .info-li {
width: 223rpx; width: 223rpx;
height: 129rpx; height: 105rpx;
border-radius: 10rpx; border-radius: 10rpx;
background-size: 100% 100%; background-size: 100% 100%;
padding: 20rpx; // padding: 20rpx;
padding: 18rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1); box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
font-size: 26rpx;
color: #333333;
}
.info-value {
color: #7B7B7B;
font-size: 26rpx;
margin-top: 4rpx;
} }
} }

View File

@ -8,7 +8,7 @@ let env = "dev"
let HTTP_REQUEST_URL let HTTP_REQUEST_URL
let HEADER let HEADER
if (env == 'dev') { if (env == 'dev') {
BASE_URL = 'http://ceshi-suyuan.lihaink.cn/' BASE_URL = 'http://192.168.1.15:8082/'
} else if (env = 'prod') { } else if (env = 'prod') {
BASE_URL = 'https://suyuan.lihaink.cn/' BASE_URL = 'https://suyuan.lihaink.cn/'
} }

View File

@ -31,8 +31,8 @@
"style": { "style": {
"navigationBarTitleText": "土地详情", "navigationBarTitleText": "土地详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#F4F4F4", "navigationBarBackgroundColor": "#35D190",
"navigationBarTextStyle": "black" "navigationBarTextStyle": "white"
} }
}, },
{ {

View File

@ -13,16 +13,16 @@
<view class="content"> <view class="content">
<view class="tit" style="margin: 0;"> <view class="tit">
您好 您好
</view> </view>
<view class="tit"> <view class="tit" style="margin-bottom: 60rpx;">
欢迎进入吟龙土壤墒情监测溯系统! 欢迎进入吟龙土壤墒情监测溯系统!
</view> </view>
<view class="input-card"> <view class="input-card">
<view class="card-head"> <view class="card-head">
<!-- <view class="triangle top" /> <view class="triangle top" />
<view class="triangle bottom" /> <view class="triangle bottom" />
<view class="code-login" @click="changeLoginType(0)" :class="{act:loginType==2}"> <view class="code-login" @click="changeLoginType(0)" :class="{act:loginType==2}">
<span>验证码登录</span> <span>验证码登录</span>
@ -31,11 +31,11 @@
</view> </view>
<view class="password-login" @click="changeLoginType(350)" :class="{act:loginType==1}"> <view class="password-login" @click="changeLoginType(350)" :class="{act:loginType==1}">
密码登录 密码登录
</view> --> </view>
<view class="" style="background-color: #35D190;color: white;width: 100%;height: 100rpx; <!-- <view class="" style="background-color: #35D190;color: white;width: 100%;height: 100rpx;
text-align: center;line-height: 100rpx;"> text-align: center;line-height: 100rpx;">
账号登录 账号登录
</view> </view> -->
</view> </view>
<view class="login-content"> <view class="login-content">
<view class="code"> <view class="code">
@ -92,10 +92,10 @@
<!-- <view class="" style="font-size: 26rpx;"> <view class="" style="font-size: 26rpx;">
<text>还没有账号点击</text> <text @click="resgiter" <text>还没有账号点击</text> <text @click="resgiter"
style="color: #35D190;text-decoration: underline;">注册</text> style="color: #35D190;text-decoration: underline;">注册</text>
</view> --> </view>
<view class="sub-btn"> <view class="sub-btn">
<u-button @click="submitFn" type="primary" <u-button @click="submitFn" type="primary"
@ -163,9 +163,9 @@
</view> </view>
</view> </view>
<view class="agreement"> <!-- <view class="agreement">
<text>登录代表您已经同意</text> <text style="color:#2D94FE ;">服务协议隐私政策</text> <text>登录代表您已经同意</text> <text style="color:#2D94FE ;">服务协议隐私政策</text>
</view> </view> -->
</view> </view>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -182,12 +182,17 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
width: 700rpx; width: 750rpx;
padding: 0 25rpx;
box-sizing: border-box;
margin: 0 auto;
.tit { .tit {
color: white; color: white;
font-size: 44rpx; font-size: 44rpx;
margin-bottom: 30rpx; margin-bottom: 18rpx;
// margin-bottom: 30rpx;
margin-left: 23rpx;
} }
.input-card { .input-card {
@ -537,7 +542,7 @@
} }
} }
const lineX = ref(0) const lineX = ref(0)
const loginType = ref(1) const loginType = ref(2)
const changeLoginType = (num) => { const changeLoginType = (num) => {
num ? loginType.value = 1 : loginType.value = 2 num ? loginType.value = 1 : loginType.value = 2
formData.scene = loginType.value formData.scene = loginType.value

View File

@ -31,19 +31,19 @@
customStyle="background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none" shape='circle' customStyle="background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none" shape='circle'
border="surround" v-model="formData.mobile"></u-input> border="surround" v-model="formData.mobile"></u-input>
</view> </view>
<!-- <view class="" style="display: flex;margin-top: 30rpx;margin-bottom: 10rpx;"> <view class="" style="display: flex;margin-top: 30rpx;margin-bottom: 10rpx;">
<up-image :src="u('yzm')" width="30rpx" height="44rpx" style="margin-right: 20rpx;"></up-image> <up-image :src="u('yzm')" width="30rpx" height="44rpx" style="margin-right: 20rpx;"></up-image>
</view> </view>
<view class="" style="position: relative;"> <view class="" style="position: relative;">
<u-input type="number" shape='circle' <u-input type="number" shape='circle'
customStyle="background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none;margin-bottom:15rpx" customStyle="background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none;margin-bottom:15rpx"
placeholder="请输入验证码" border="surround" v-model="formData.code"></u-input> placeholder="请输入验证码" border="surround" v-model="formData.verify_code"></u-input>
<view class="get-code" :style="{color: countDown?'grey':''}" @click="getCode"><text <view class="get-code" :style="{color: countDown?'grey':''}" @click="getCode"><text
class="lineY"></text> class="lineY"></text>
获取验证码 <text v-if='countDown'>{{countDown}}s</text> </view> 获取验证码 <text v-if='countDown'>{{countDown}}s</text> </view>
</view> --> </view>
<view class="" style="margin: 30rpx 0;"> <view class="" style="margin: 30rpx 0;">
<view class="" style="display: flex;margin-top: 30rpx;margin-bottom: 10rpx;"> <view class="" style="display: flex;margin-top: 30rpx;margin-bottom: 10rpx;">
@ -84,7 +84,8 @@
<script setup> <script setup>
import Myindex from '@/components/return/index.vue'; import Myindex from '@/components/return/index.vue';
import { import {
logregister logregister,
registerCode
} from '@/api/api.js'; } from '@/api/api.js';
import { import {
reactive, reactive,
@ -93,7 +94,8 @@
const pwdShow = ref(false) const pwdShow = ref(false)
const pwdShow1 = ref(false) const pwdShow1 = ref(false)
const formData = reactive({ const formData = reactive({
mobile: "", mobile: "19130550023",
verify_code: "",
password: "", password: "",
password_confirm: "", password_confirm: "",
@ -104,19 +106,33 @@
const u = (name) => { const u = (name) => {
return `/static/main/login/${name}.png` return `/static/main/login/${name}.png`
} }
//
const startCountDown = () => {
countDown.value = 60
const timer = setInterval(() => {
countDown.value -= 1; //
if (countDown.value <= 0) {
clearInterval(timer); //
}
}, 1000);
};
const getCode = () => { const getCode = () => {
if (countDown.value) return if (countDown.value) return
if (!formData.account) return uni.$u.toast('账号不能为空'); if (!formData.mobile) return uni.$u.toast('账号不能为空');
let data = { let data = {
phone: formData.account, mobile: formData.mobile,
scene: 101 scene: 'YZMDL'
} }
xinregister(data).then((res) => { registerCode(data).then((res) => {
if (res.code == 1) { if (res.code == 1) {
isshow.value = true
uni.$u.toast('验证码已发送'); uni.$u.toast('验证码已发送');
// //
startCountDown() startCountDown()

View File

@ -4,13 +4,12 @@
<view class="content-con-a" v-if="datalist.length>0"> <view class="content-con-a" v-if="datalist.length>0">
<view class="shop_action"> <view class="shop_action">
<view class="" v-for="(item,i) in datalist"> <view class="" v-for="(item,i) in datalist" :key="i">
<view class="tit"> <view class="tit">
{{item.type_text}} {{item.type_text}}
</view> </view>
<view class="shop_action-detail" v-if="item.type!=3&&item.type!=5"> <view class="shop_action-detail" v-if="item.type!=3&&item.type!=5">
<view class="action-detail"> <view class="action-detail">
<view class="title"> <view class="title">
施肥面积 施肥面积
@ -81,8 +80,8 @@
<view class="detail-img" v-if="item.detail&&item.detail.pic&&item.detail.pic.length>0"> <view class="detail-img" v-if="item.detail&&item.detail.pic&&item.detail.pic.length>0">
<u-swiper :list="item.detail.pic" @click="hdClick" indicator indicatorMode="dot" <u-swiper style="height: 380rpx;" :list="item.detail.pic" @click="hdClick" indicator
circular></u-swiper> indicatorMode="dot" circular></u-swiper>
<!-- <image @click="perviewFn(item.detail.pic)" :src="item.detail.pic[0]" mode="aspectFit"> <!-- <image @click="perviewFn(item.detail.pic)" :src="item.detail.pic[0]" mode="aspectFit">
</image> --> </image> -->
@ -256,7 +255,7 @@
} }
.content { .content {
padding-top: 30rpx; // padding-top: 30rpx;
padding-bottom: 30rpx; padding-bottom: 30rpx;
.banner { .banner {
@ -286,6 +285,7 @@
margin-bottom: 35rpx; margin-bottom: 35rpx;
margin-left: 35rpx; margin-left: 35rpx;
.detaila { .detaila {
width: 200rpx; width: 200rpx;
} }
@ -299,7 +299,7 @@
} }
.shop_action { .shop_action {
margin-top: 42rpx; // margin-top: 42rpx;
.shop_action-title { .shop_action-title {
@ -311,6 +311,7 @@
} }
.shop_action-detail { .shop_action-detail {
font-size: 28rpx;
width: 694rpx; width: 694rpx;
padding: 35rpx 0; padding: 35rpx 0;
background: #FFFFFF; background: #FFFFFF;
@ -328,7 +329,9 @@
} }
.detail { .detail {
width: 450rpx width: 450rpx;
color: #7B7B7B;
font-size: 28rpx;
} }
} }
@ -343,13 +346,15 @@
.detail-img { .detail-img {
width: 627rpx; width: 627rpx;
height: 380rpx;
// background-color: red;
// height: 529rpx; // height: 529rpx;
// background-color: red; // background-color: red;
image { // image {
width: 100%; // width: 100%;
height: 100%; // height: 100%;
} // }
} }
} }
} }

View File

@ -32,7 +32,7 @@
<u--image v-if="item.pic" :src="item.pic[0]||''" height="150rpx" width="150rpx" <u--image v-if="item.pic" :src="item.pic[0]||''" height="150rpx" width="150rpx"
style="margin-right: 20rpx;border-radius: 10rpx;overflow: hidden;"></u--image> style="margin-right: 20rpx;border-radius: 10rpx;overflow: hidden;"></u--image>
<view style="color:#7B7B7B ;"> <view style="color:#7B7B7B;font-size: 26rpx;">
<view class="card-tit"> <view class="card-tit">
{{item.title}} {{item.title}}
</view> </view>
@ -131,6 +131,7 @@
import MyTabbar from "@/components/customTabbar/tabbar.vue" import MyTabbar from "@/components/customTabbar/tabbar.vue"
onLoad(() => { onLoad(() => {
uni.hideTabBar()
// console.log(store.state.userInfo) // console.log(store.state.userInfo)
if (!store.state.userInfo) { if (!store.state.userInfo) {
uni.redirectTo({ uni.redirectTo({
@ -246,7 +247,9 @@
position: relative; position: relative;
padding-left: 20rpx; padding-left: 20rpx;
font-weight: bold; font-weight: bold;
font-size: 28rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
color: #1A1A1A;
} }
.tits::before { .tits::before {
@ -255,9 +258,10 @@
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
left: 0; left: 0;
width: 3px; width: 6rpx;
/* 左边框的宽度 */ /* 左边框的宽度 */
height: 30rpx; height: 25rpx;
border-radius: 20rpx;
background-color: #34D08D; background-color: #34D08D;
} }
@ -416,6 +420,7 @@
font-weight: bold; font-weight: bold;
margin-bottom: 10rpx; margin-bottom: 10rpx;
color: black; color: black;
font-size: 28rpx;
} }
.card-address { .card-address {

View File

@ -6,11 +6,10 @@
</view> </view>
<view class="nav-con" style="justify-content: space-between;"> <view class="nav-con" style="justify-content: space-between;">
<view class="" v-if="Object.keys(dataobj).length>0" <view class="title" v-if="Object.keys(dataobj).length>0" @click=" show=true">
style="padding-left: 20rpx;display: flex;color: white;" @click="show=true">
<u--image :src="u('qhtd')" width="38.55rpx" height="38.55rpx" <u--image :src="u('qhtd')" width="38.55rpx" height="38.55rpx"
style="margin-right: 20rpx;"></u--image> style="margin-right: 20rpx;"></u--image>
{{dataobj.title}} <text class="text">{{dataobj.title}}</text>
</view> </view>
<view class="" v-else> <view class="" v-else>
@ -19,18 +18,16 @@
<view class="" style="display: flex;align-items: center;"> <view class="" style="display: flex;align-items: center;">
<view class="nav"> <view class="nav">
<view class="" style="margin-right: 20rpx;"> <view class="" style="margin-right: 16rpx;">
<!-- <u-icon name="scan" @click="scanFn" color="white" :size="30"></u-icon> --> <u--image :src="u('sbbd')" width="35.25rpx" @click="showModal=true"
<u--image :src="u('sys')" width="38.55rpx" @click="scanFn" height="38.55rpx"></u--image> height="35.25rpx"></u--image>
</view> </view>
<view class="" style="margin-left: 20rpx;"> <view class="" style="margin-left: 16rpx;">
<!-- <u-icon name="coupon-fill" color="white" @click="showModal=true" :size="28"></u-icon> --> <u--image :src="u('sys')" width="35.25rpx" @click="scanFn" height="35.25rpx"></u--image>
<u--image :src="u('sbbd')" width="38.55rpx" @click="showModal=true"
height="38.55rpx"></u--image>
</view> </view>
<view class="" style="margin-left: 20rpx;"> <view class="" style="margin-left: 20rpx;">
<!-- <u-icon name="plus-circle" color="white" @click="navto('/pages/addLand/addLand')"
:size="28"></u-icon> -->
</view> </view>
</view> </view>
@ -46,32 +43,31 @@
<view class=""> <view class="">
<view class="" style="height:var(--status-bar-height) ;"> <view class="" style="height:var(--status-bar-height) ;">
</view> </view>
<view class="nav-con" style="margin-bottom: 80rpx;"> <view class="nav-con" style="margin-bottom: 65rpx;">
</view> </view>
</view> </view>
<view class="content" v-if="true"> <view class="content">
<!-- 土地信息 --> <!-- 土地信息 -->
<view class=""> <view class="">
<view class="empty-land" v-if="Object.keys(dataobj).length<=0"> <view class="empty-land" v-if="Object.keys(dataobj).length<=0">
<text>没有土地信息</text> <text>没有土地信息</text>
<text @click="navto('/pages/addLand/addLand')">去新增</text> <text @click="navto('/pages/addLand/addLand')" style="display: flex;">去新增 <u-icon name="arrow-right"
color="#709DE9" size="28"></u-icon></text>
</view> </view>
<view class="land-info"> <view class="land-info">
<view class="land-area"> <view class="land-area">
土地面积 土地面积
<view style="color: #7B7B7B; font-size: 28rpx;">
<view class="">
{{dataobj.total_area|| "--"}} {{dataobj.total_area|| "--"}}
</view> </view>
</view> </view>
<view class="plant-area"> <view class="plant-area">
种植面积 种植面积
<view class=""> <view style="color: #7B7B7B; font-size: 28rpx;">
{{dataobj.total_area-dataobj.residual_area||"--"}} {{dataobj.total_area-dataobj.residual_area||"--"}}
</view> </view>
</view> </view>
@ -80,7 +76,8 @@
<view v-if="(dataobj.total_area-dataobj.residual_area)==0" @click="palnt(dataobj.id)"> <view v-if="(dataobj.total_area-dataobj.residual_area)==0" @click="palnt(dataobj.id)">
<view class="empty-land" style="background-image: url('static/main/index/xzzh.png');"> <view class="empty-land" style="background-image: url('static/main/index/xzzh.png');">
<text></text> <text></text>
<text>去新增</text> <text style="display: flex;font-size: 26rpx;">新增种植 <u-icon name="arrow-right" color="#709DE9"
size="15"></u-icon></text>
</view> </view>
</view> </view>
<view class="note" v-else> <view class="note" v-else>
@ -92,8 +89,9 @@
<view class="tit" style=""> <view class="tit" style="">
苗情检测视频 苗情检测视频
</view> </view>
<view class="" style="font-size: 24rpx;color: #ACACAC;display: flex;align-items: center;"> <view class="" style="font-size: 20rpx;color: #ACACAC;display: flex;align-items: center;">
<u-icon name="clock" style="margin-right: 5rpx;"></u-icon> {{getNowTimeFn()}} <u-icon name="clock" style="margin-right: 5rpx;" color="#ACACAC"></u-icon>
刷新时间{{getNowTimeFn()}}
</view> </view>
@ -118,12 +116,13 @@
土壤检测信息 土壤检测信息
</view> </view>
<view class="area-check"> <view class="area-check">
<view class="area-li" v-for="(item,index) in soilList" key="index" <view class="area-li" v-for="(item,index) in soilList" :key="index"
:style="{backgroundImage:`url(${bgc(item.icon)})`}"> :style="{backgroundImage:`url(${bgc(item.icon)})`}">
<view class=""> <view class="" style="color: #2E2E2E;font-size: 26rpx;">
{{item.name}} {{item.name}}
</view> </view>
<view class="" :style=" {color: item.status==0?'#73DFB2':'red'}"> <view class="" :style=" {color: item.status==0?'#73DFB2':'red'}"
style="font-size: 28rpx;margin-top: 10rpx;">
{{ item.num?item.num+item.unit:'--' }} {{ item.num?item.num+item.unit:'--' }}
</view> </view>
<view class="" style="display: flex;color:red" v-if="item.status>0"> <view class="" style="display: flex;color:red" v-if="item.status>0">
@ -143,14 +142,15 @@
环境检测信息 环境检测信息
</view> </view>
<view class="area-check"> <view class="area-check">
<view class="area-li" v-for="(item,index) in environmentList" key="index" <view class="area-li" v-for="(item,index) in environmentList" :key="index"
:style="{backgroundImage:`url(${bgc(item.icon)})`}"> :style="{backgroundImage:`url(${bgc(item.icon)})`}">
<view class=""> <view class="" style="color: #2E2E2E;font-size: 26rpx;">
{{item.name}} {{item.name}}
</view> </view>
<view class="" :style=" {color: item.status==0?'#73DFB2':'red'}"> <view class="" :style=" {color: item.status==0?'#73DFB2':'red'}"
style="font-size: 28rpx;margin-top: 10rpx;">
<text v-if="item.num==0">{{item.num+item.unit}}</text> <text v-if="item.num==0">{{item.num+item.unit}}</text>
<text v-else>{{ item.num?item.num+item.unit:'--' }}</text> <text v-else>{{ item.num?item.num+item.unit:'--' }}</text>
</view> </view>
@ -240,7 +240,7 @@
@close="show = false" @select="confirm"> @close="show = false" @select="confirm">
</u-action-sheet> </u-action-sheet>
</view> </view>
<view class="empty" v-else> <!-- <view class="empty">
<view class="addLand"> <view class="addLand">
<view class=""> <view class="">
你还没有土地信息 你还没有土地信息
@ -250,7 +250,7 @@
</view> </view>
</view> </view>
</view> </view> -->
<!-- 组件 --> <!-- 组件 -->
<view class="Modal"> <view class="Modal">
@ -353,7 +353,7 @@
icon: "trph", icon: "trph",
name: "土壤PH值", name: "土壤PH值",
num: 0, num: 0,
unit: "PH", unit: "",
status: 0, status: 0,
}, { }, {
@ -861,7 +861,8 @@
.content { .content {
// min-height: 92vh; // min-height: 92vh;
padding: 0 30rpx; padding: 0 30rpx;
padding-top: 20rpx; // padding-top: 20rpx;
// background-color: red;
box-sizing: border-box; box-sizing: border-box;
@ -869,28 +870,35 @@
.land-info { .land-info {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 20rpx; margin-bottom: 30rpx;
.land-area { .land-area {
width: 340rpx; width: 335rpx;
height: 120rpx; height: 120rpx;
// background-color: red; font-size: 30rpx;
border-radius: 10rpx;
color: #1A1A1A;
box-sizing: border-box;
background-image: url('/static/main/index/tdmj.png'); background-image: url('/static/main/index/tdmj.png');
background-size: 100% 100%; background-size: 100% 100%;
text-align: center;
padding-top: 20rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1); box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
padding-top: 20rpx;
padding-left: 115rpx;
} }
.plant-area { .plant-area {
width: 340rpx; width: 335rpx;
height: 120rpx; height: 120rpx;
font-size: 30rpx;
background-image: url('/static/main/index/zzmj.png'); background-image: url('/static/main/index/zzmj.png');
background-size: 100% 100%; background-size: 100% 100%;
text-align: center; box-sizing: border-box;
padding-top: 20rpx; border-radius: 10rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1); box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
padding-top: 20rpx;
padding-left: 115rpx;
} }
} }
@ -907,7 +915,6 @@
width: 100%; width: 100%;
height: 447rpx; height: 447rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
// background-color: red;
} }
@ -916,8 +923,9 @@
.note { .note {
height: 168rpx; height: 168rpx;
background-image: url('/static/main/index/JNS.png'); background-image: url('/static/main/index/JNS.png');
// background-color: red;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: 20rpx; margin-bottom: 30rpx;
position: relative; position: relative;
} }
@ -927,12 +935,13 @@
flex-wrap: wrap; flex-wrap: wrap;
.area-li { .area-li {
width: 335rpx; width: 330rpx;
height: 200rpx; height: 194rpx;
border-radius: 10rpx; border-radius: 10rpx;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: 20rpx; margin-bottom: 20rpx;
padding: 45rpx 30rpx; padding: 45rpx 30rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
} }
} }
@ -942,7 +951,9 @@
position: relative; position: relative;
padding-left: 20rpx; padding-left: 20rpx;
font-weight: bold; font-weight: bold;
font-size: 28rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
color: #1A1A1A;
} }
.tit::before { .tit::before {
@ -951,23 +962,18 @@
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
left: 0; left: 0;
width: 3px; width: 6rpx;
/* 左边框的宽度 */ /* 左边框的宽度 */
height: 30rpx; height: 25rpx;
border-radius: 20rpx;
background-color: #34D08D; background-color: #34D08D;
} }
// old
.soil-monitor { .soil-monitor {
margin-top: 40rpx; margin-top: 40rpx;
.head { .head {
// .tit {
// font-size: 33.29rpx;
// color: black;
// }
.flushed-time { .flushed-time {
display: flex; display: flex;
@ -1041,8 +1047,10 @@
} }
.empty-land { .empty-land {
width: 690rpx; width: 715rpx;
margin: 0 auto;
height: 135rpx; height: 135rpx;
transform: translateX(-20rpx);
color: #74A0EA; color: #74A0EA;
text-align: center; text-align: center;
background-image: url('../../static/main/index/xz.png'); background-image: url('../../static/main/index/xz.png');
@ -1053,4 +1061,18 @@
padding-left: 200rpx; padding-left: 200rpx;
padding-right: 10rpx; padding-right: 10rpx;
} }
.title {
padding-left: 20rpx;
display: flex;
color: white;
font-size: 32rpx;
width: 400rpx;
}
.text {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
</style> </style>

View File

@ -61,6 +61,10 @@
ref ref
} from 'vue'; } from 'vue';
import { logout } from '@/api/api.js' import { logout } from '@/api/api.js'
import {
onLoad
} from "@dcloudio/uni-app"
import store from "@/store/index.js" import store from "@/store/index.js"
const userinfo = reactive({}) const userinfo = reactive({})
@ -78,7 +82,9 @@
} }
onLoad(() => {
uni.hideTabBar()
})

View File

@ -8,37 +8,33 @@
</view> </view>
<view class="" style="display: flex;align-items: center;"> <view class="" style="display: flex;align-items: center;">
<u-icon name="clock" style="margin-right: 10rpx;"></u-icon> <u-icon name="clock" style="margin-right: 10rpx;"></u-icon>
<text style="color: #ACACAC;font-size: 25rpx;">刷新时间: {{getNowTimeFn()}} </text> <text style="color: #ACACAC;font-size: 20rpx;">刷新时间: {{getNowTimeFn()}} </text>
</view> </view>
</view> </view>
<view class="video" style="position: relative;"> <view class="video" style="position: relative;">
<u--image src="https://ceshi-worker-task.lihaink.cn/uploads/images/20231223/20231223092144475437017.png" <u--image src="https://ceshi-worker-task.lihaink.cn/uploads/images/20231223/20231223092144475437017.png"
width="100%" height="300rpx" @click="goLive" v-if="videoUrl"></u--image> width="100%" height="300rpx" @click="goLive" v-if="videoUrl"></u--image>
<u--image src="/static/main/index/k.png" width="100%" height="300rpx" v-else></u--image> <!-- <u--image src="/static/main/index/k.png" width="100%" height="510rpx" v-else></u--image> -->
<u--image :src="u('K')" v-else width="100%" height="510rpx"></u--image>
<view class="" <view class=""
style="width: 100%;height: 100%;background-color: rgba(0, 0, 0, .5);position: absolute;top: 1px;" style="width: 100%;height: 100%;background-color: rgba(0, 0, 0, .5);position: absolute;top: 1px;"
@click="goLive" v-if="videoUrl"> @click="goLive" v-if="videoUrl">
<u-icon name="play-circle" size="40" color="white" v-if="videoUrl" <u-icon name="play-circle" size="40" color="white" v-if="videoUrl"
style="position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);"></u-icon> style="position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);"></u-icon>
</view> </view>
</view> </view>
<landInfo :info='dataobj'></landInfo> <landInfo :info='dataobj'></landInfo>
<view class="add-thing" @click="addshowPicke"> <view class="add-thing" @click="addshowPicke">
新增种植 新增种植
</view> </view>
<view class=""> <view class="">
<view class="tit" style="font-size: 33.29rpx;margin: 20rpx 0;"> <view class="tit">
种植信息 种植信息
</view> </view>
<view class="" v-if="dataList.length>0"> <view class="" v-if="dataList.length>0">
@ -77,7 +73,7 @@
<text style="color: black;">种植面积:</text> {{item.area}} <text style="color: black;">种植面积:</text> {{item.area}}
</view> </view>
<view class="te"> <view class="te">
<text style="color: black;white-space: nowrap;">参与人:</text> {{item.user}} <text style="color: black;white-space: nowrap;">参与人:</text> {{item.user}}
</view> </view>
<view class=""> <view class="">
<text style="color: black;">种植日期:</text> {{item.plant_date}} <text style="color: black;">种植日期:</text> {{item.plant_date}}
@ -307,6 +303,9 @@
}
const u = (name) => {
return `/static/main/index/${name}.png`
} }
</script> </script>
@ -332,7 +331,12 @@
} }
.video { .video {
// margin-top: 10rpx; width: 690rpx;
height: 510rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
border-radius: 10rpx;
overflow: hidden;
} }
.add-thing { .add-thing {
@ -410,7 +414,8 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-direction: column; flex-direction: column;
margin-left: 40rpx; margin-left: 20rpx;
font-size: 26rpx;
} }
} }
} }
@ -419,7 +424,9 @@
position: relative; position: relative;
padding-left: 20rpx; padding-left: 20rpx;
font-weight: bold; font-weight: bold;
font-size: 28rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
color: #1A1A1A;
} }
.tit::before { .tit::before {
@ -428,12 +435,14 @@
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
left: 0; left: 0;
width: 3px; width: 6rpx;
/* 左边框的宽度 */ /* 左边框的宽度 */
height: 30rpx; height: 25rpx;
border-radius: 20rpx;
background-color: #34D08D; background-color: #34D08D;
} }
.code-btn { .code-btn {
border: 1px solid $theme-main-color; border: 1px solid $theme-main-color;
border-radius: 30rpx; border-radius: 30rpx;

View File

@ -7,17 +7,26 @@
</view> </view>
<view class="" style="display: flex;align-items: center;"> <view class="" style="display: flex;align-items: center;">
<u-icon name="clock" style="margin-right: 10rpx;"></u-icon> <u-icon name="clock" style="margin-right: 10rpx;"></u-icon>
<text style="color: #ACACAC;font-size: 25rpx;">刷新时间: {{getNowTimeFn()}} </text> <text style="color: #ACACAC;font-size: 20rpx;">刷新时间: {{getNowTimeFn()}} </text>
</view> </view>
</view> </view>
<view class="video" @click="navto('/pages/live/live')"> <view class="video" @click="navto('/pages/live/live')">
<u--image :src="url" width="100%" height="300rpx"></u--image> <!-- <u--image src="https://ceshi-worker-task.lihaink.cn/uploads/images/20231223/20231223092144475437017.png"
width="100%" height="300rpx" @click="goLive" v-if="videoUrl"></u--image> -->
<!-- <u--image src="/static/main/index/k.png" width="100%" height="510rpx"></u--image> -->
<u--image :src="u('K')" width="100%" height="510rpx"></u--image>
<!-- <view class=""
style="width: 100%;height: 100%;background-color: rgba(0, 0, 0, .5);position: absolute;top: 1px;"
@click="goLive" v-if="videoUrl">
<u-icon name="play-circle" size="40" color="white" v-if="videoUrl"
style="position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);"></u-icon>
</view> -->
</view> </view>
<landInfo :info='dataobj' :isDetail='true'></landInfo> <landInfo :info='dataobj' :isDetail='true'></landInfo>
<view class=""> <view class="">
<view class="tit" style="font-size: 33.29rpx;margin: 20rpx 0;"> <view class="tit">
操作信息 操作信息
</view> </view>
<view class="" v-if="dataList1.length>0"> <view class="" v-if="dataList1.length>0">
@ -384,6 +393,9 @@
if (type == 1) return "/static/main/index/shi_fei.png" if (type == 1) return "/static/main/index/shi_fei.png"
if (type == 5) return "/static/main/index/shou_huo.png" if (type == 5) return "/static/main/index/shou_huo.png"
} }
const u = (name) => {
return `/static/main/index/${name}.png`
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -408,7 +420,12 @@
} }
.video { .video {
// margin-top: 10rpx; width: 690rpx;
height: 510rpx;
box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
border-radius: 10rpx;
overflow: hidden;
} }
.add-thing { .add-thing {
@ -476,7 +493,8 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-direction: column; flex-direction: column;
margin-left: 40rpx; margin-left: 20rpx;
font-size: 26rpx;
} }
.stick-img { .stick-img {
@ -493,7 +511,9 @@
position: relative; position: relative;
padding-left: 20rpx; padding-left: 20rpx;
font-weight: bold; font-weight: bold;
font-size: 28rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
color: #1A1A1A;
} }
.tit::before { .tit::before {
@ -502,9 +522,10 @@
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
left: 0; left: 0;
width: 3px; width: 6rpx;
/* 左边框的宽度 */ /* 左边框的宽度 */
height: 30rpx; height: 25rpx;
border-radius: 20rpx;
background-color: #34D08D; background-color: #34D08D;
} }
</style> </style>

View File

@ -37,6 +37,15 @@
uni.$emit('push', { uni.$emit('push', {
msg: '页面更新' msg: '页面更新'
}) })
uni.request({
url: 'http://192.168.1.27:8001/video/13433212473/lihai_lot_walnutpi_dev_3', //仅为示例,并非真实接口地址。
success: (res) => {
console.log(54545);
// this.text = 'request success';
}
});
// uni.request({ // uni.request({
// url: 'https://iot.lihaink.cn/push_stream', // url: 'https://iot.lihaink.cn/push_stream',
// data: { // data: {

View File

@ -1,11 +1,12 @@
<template> <template>
<view class="content"> <view class="content">
<view class="reset-password"> <view class="reset-password">
<u--form ref="formRef" :rules="rules" :model="formData" labelPosition='top'> <u--form ref="formRef" :rules="rules" :model="formData" labelPosition='top'
:labelStyle="{color:'#7A7A7A',fontSize:'28rpx'}">
<u-form-item label="原密码" labelWidth="140rpx" borderBottom prop="old_password" left-icon='lock'> <u-form-item label="原密码" labelWidth="140rpx" borderBottom prop="old_password" left-icon='lock'>
<u-input placeholder="请输入原密码" border="surround" v-model="formData.old_password" <u-input placeholder="请输入原密码" border="surround" v-model="formData.old_password"
:password="!pwdShow.old_password" class="ipt" customStyle='padding:20rpx 10rpx'> :password="!pwdShow.old_password" class="ipt" customStyle='padding:20rpx 30rpx'>
<!-- <template #suffix> <!-- <template #suffix>
<u-icon :name="pwdShow.old_password?'eye-off':'eye-fill'" size="25" <u-icon :name="pwdShow.old_password?'eye-off':'eye-fill'" size="25"
@click="pwdShow.old_password=!pwdShow.old_password"></u-icon> @click="pwdShow.old_password=!pwdShow.old_password"></u-icon>
@ -25,7 +26,7 @@
<u-form-item label="新密码" labelWidth="140rpx" borderBottom prop="password" left-icon='lock'> <u-form-item label="新密码" labelWidth="140rpx" borderBottom prop="password" left-icon='lock'>
<u-input border="surround" class="ipt" customStyle='padding:20rpx 10rpx' v-model="formData.password" <u-input border="surround" class="ipt" customStyle='padding:20rpx 30rpx' v-model="formData.password"
:password="!pwdShow.password" placeholder="请输入新密码"> :password="!pwdShow.password" placeholder="请输入新密码">
<!-- <!--
<template #suffix> <template #suffix>
@ -38,7 +39,7 @@
</u-form-item> </u-form-item>
<u-form-item label="确认密码" labelWidth="180rpx" borderBottom prop="password_confirm" left-icon='lock'> <u-form-item label="确认密码" labelWidth="180rpx" borderBottom prop="password_confirm" left-icon='lock'>
<u-input border="surround" v-model="formData.password_confirm" :password="!pwdShow.password_confirm" <u-input border="surround" v-model="formData.password_confirm" :password="!pwdShow.password_confirm"
placeholder="请确认新密码" class="ipt" customStyle='padding:20rpx 10rpx'> placeholder="请确认新密码" class="ipt" customStyle='padding:20rpx 30rpx'>
<!-- <template #suffix> <!-- <template #suffix>
<u-icon :name="pwdShow.password_confirm?'eye-off':'eye-fill'" size="25" <u-icon :name="pwdShow.password_confirm?'eye-off':'eye-fill'" size="25"
@ -47,7 +48,7 @@
</u-input> </u-input>
</u-form-item> </u-form-item>
<u-button style="margin-top: 28rpx;background-color:#34D190;color: #fff;" <u-button style="margin-top: 28rpx;background-color:#34D190;color: #fff;font-size: 32rpx;"
customStyle="border-radius: 50rpx;height:100rpx" @click="submit">提交</u-button> customStyle="border-radius: 50rpx;height:100rpx" @click="submit">提交</u-button>
</u--form> </u--form>
</view> </view>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long