<template>
|
<div class="wraaper-box">
|
<div class="search">
|
<div style="float: left">
|
<div style="float: left">
|
<el-select
|
v-model="formInline.stype"
|
placeholder="全部分类"
|
size="small"
|
@change="stypeChange"
|
>
|
<el-option label="全部分类" value></el-option>
|
<el-option label="大田" value="0"></el-option>
|
<el-option label="大棚" value="1"></el-option>
|
<el-option label="果园" value="2"></el-option>
|
<el-option label="鱼塘" value="3"></el-option>
|
<el-option label="山地" value="4"></el-option>
|
<el-option label="养殖区" value="5"></el-option>
|
</el-select>
|
</div>
|
<!-- <div style="float: left; margin-left: 15px">-->
|
<!-- <el-select-->
|
<!-- v-model="formInline.state"-->
|
<!-- size="small"-->
|
<!-- placeholder="有库存"-->
|
<!-- @change="stateChange"-->
|
<!-- >-->
|
<!-- <el-option label="全部" value=""></el-option>-->
|
<!-- <el-option label="有库存" value="0"></el-option>-->
|
<!-- <el-option label="无库存" value="1"></el-option>-->
|
<!-- </el-select>-->
|
<!-- </div>-->
|
<div style="float: left; margin-left: 15px">
|
<el-input
|
v-model="formInline.keyword"
|
size="small"
|
placeholder="请输入名称"
|
@input="keywordChange"
|
clearable
|
></el-input>
|
</div>
|
</div>
|
<div class="edit">
|
<el-button size="small" @click="goToMapModel(row)">
|
<span style="color: #5abf78">进入地图模式</span>
|
</el-button>
|
<el-button
|
type="success"
|
size="small"
|
@click="land"
|
style="margin-right: 50px;width: 80px;"
|
>圈地</el-button>
|
</div>
|
</div>
|
<div class="el-page" style="text-align: center;">
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="page.currentPage"
|
:hide-on-single-page="value"
|
:page-size="page.pageSize"
|
background
|
layout="total, prev, pager, next"
|
:total="page.total"
|
></el-pagination>
|
</div>
|
|
<div class="landhome">
|
<div
|
class="land"
|
v-for="(item, index) in farmPlanList"
|
:key="index"
|
@click="landInfo(item)"
|
>
|
<div class="land-img">
|
<img v-if="item.url" :src="item.url" class="landimg" />
|
<img v-else src="../../../public/img/bg/noimage.jpg" class="landimg" />
|
|
<!-- <div v-for="(url,index) in item.urls" :key="index" class="strainimg">
|
<img v-if="url" :src="url" width="30px" height="30px" />
|
</div>-->
|
<div
|
v-if="item.urls.length >0"
|
class="strainimg"
|
:class="{strainimg1:item.urls.length==1,strainimg2:item.urls.length==2,strainimg3:item.urls.length==3,strainimg4:item.urls.length==4,strainimg5:item.urls.length>=5}"
|
>
|
<img
|
v-for="(url,index) in item.urls"
|
:key="index"
|
:src="url"
|
width="30px"
|
height="30px"
|
/>
|
</div>
|
|
<!-- <img
|
src="../../../public/img/97ae6951541f46e1bb2468adb5d69403.png"
|
class="pzIcon"
|
/>
|
<img
|
src="../../../public/img/97ae6951541f46e1bb2468adb5d69403.png"
|
class="pzIcon"
|
/>-->
|
</div>
|
<div class="text">
|
<div class="land-name">{{ item.landName }}</div>
|
<div class="land-area">
|
<div class="box">{{ item.landArea}} {{ item.dica }}</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<landAdd v-if="landVisible" ref="land" @refreshOnLoad="onLoad"></landAdd>
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from "vuex"
|
import { getList } from "@/api/land/land"
|
import landAdd from "./landAdd"
|
import fixed from "@/util/mathHandler"
|
export default {
|
components: {
|
landAdd,
|
},
|
name: "wel",
|
data () {
|
return {
|
formInline: {
|
stype: "",
|
state: "0",
|
keyword: "",
|
},
|
query: {},
|
farm: {},
|
value: true,
|
farmingCount: 0,
|
landVisible: false,
|
farmPlanList: [],
|
page: {
|
pageSize: 12,
|
currentPage: 1,
|
total: 0,
|
},
|
option: {
|
labelWidth: 80,
|
span: 6,
|
column: [
|
{
|
label: '地块类型',
|
prop: 'search',
|
search: true,
|
}
|
]
|
},
|
}
|
},
|
computed: {
|
...mapGetters(["userInfo", "$farmId"]),
|
},
|
watch: {
|
'$farmId': {
|
handler (newName, oldName) {
|
// this.farm.id = newName
|
this.page.currentPage = 1
|
//地块页面
|
setTimeout(() => {
|
this.onLoad()
|
}, 100)
|
|
}
|
}
|
},
|
created () {
|
this.$EventBus.$on('getFarmObj', (farmObj) => {
|
// this.$nextTick(() => {
|
// this.$EventBus.$emit("setFarmId", farmObj.id);
|
// });
|
setTimeout(() => {
|
this.$EventBus.$emit("setFarmId", farmObj.id)
|
}, 100)
|
})
|
this.onLoad(this.page)
|
},
|
methods: {
|
//圈地
|
land () {
|
this.landVisible = true
|
this.$nextTick(() => {
|
this.$refs.land.init()
|
})
|
},
|
//农资类型select 改变事件
|
stypeChange (value) {
|
this.query["landType"] = value
|
this.onLoad(this.page, this.query)
|
this.page.currentPage = 1
|
},
|
//库存 select 改变事件
|
stateChange (value) {
|
this.query["state"] = value
|
this.onLoad(this.page, this.query)
|
},
|
//keywordChange 输入事件
|
keywordChange (value) {
|
this.query["landName"] = value
|
this.onLoad(this.page, this.query)
|
},
|
//分页
|
handleSizeChange (val) {
|
this.page.pageSize = val
|
this.onLoad(this.page)
|
},
|
//改变页码
|
handleCurrentChange (val) {
|
this.page.currentPage = val
|
this.onLoad(this.page)
|
},
|
landInfo (item) {
|
var arr = []
|
this.$store.state.tags.tagList.forEach((item) => {
|
if (item.label != "地块详情") {
|
arr.push(item)
|
}
|
})
|
this.$store.state.tags.tagList = arr
|
this.$router.push({
|
path: `/LandDetail`,
|
query: item,
|
})
|
},
|
onLoad (page, params = {}) {
|
if (typeof (page) == "undefined") {
|
page = this.page
|
}
|
Object.assign(params, { farmId: this.$farmId })
|
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
|
const data = res.data.data
|
this.page.total = data.total
|
this.farmPlanList = data.records
|
this.farmPlanList.forEach((e) => {
|
e.landArea = fixed.fixedNum(e.landArea)
|
if (e.strainUrl == "") {
|
e["urls"] = []
|
} else {
|
e["urls"] = e.strainUrl.split(",")
|
}
|
|
})
|
})
|
},
|
//进入地图模式
|
goToMapModel (row) {
|
this.$router.push({
|
path: `/mapPattern`,
|
query: row,
|
})
|
}
|
},
|
};
|
</script>
|
<style lang="scss" scope>
|
.el-font-size {
|
font-size: 14px;
|
}
|
|
.search {
|
padding-top: 40px;
|
width: 98%;
|
margin: 0 auto;
|
display: flex;
|
flex-flow: row nowrap;
|
justify-content: space-between;
|
|
// .el-page{
|
// text-align: right;
|
// }
|
// .el-pagination{
|
// text-align: right;
|
// }
|
}
|
|
.wraaper-box {
|
padding: 0 !important;
|
position: absolute;
|
top: 40px;
|
left: 0;
|
width: 100%;
|
height: calc(100% - 40px);
|
}
|
|
.landhome {
|
padding: 10px;
|
width: 100%;
|
height: 88%;
|
display: flex;
|
box-sizing: border-box;
|
flex-wrap: wrap;
|
overflow-y: auto;
|
|
.land {
|
margin: 10px;
|
width: 236px;
|
height: 340px;
|
border-radius: 2px 2px 0px 0px;
|
cursor: pointer;
|
|
.land-img {
|
width: 100%;
|
// height: 280px;
|
height: 240px;
|
margin: 0 auto;
|
text-align: center;
|
position: relative;
|
|
.landimg {
|
width: 100%;
|
// height: 280px;
|
height: 240px;
|
//border-radius: 100px;
|
//margin-top: 25px;
|
//margin-left: -25px;
|
}
|
// .pzIcon {
|
// width: 40px;
|
// height: 40px;
|
// border-radius: 50%;
|
// // position: absolute;
|
// // left: calc(50% - 20px);
|
// // top: 100px;
|
// justify-content: center;
|
// }
|
}
|
|
.text {
|
padding: 0 10px;
|
display: flex;
|
height: 60px;
|
line-height: 60px;
|
background: #fff;
|
|
.land-name {
|
flex: 1;
|
text-align: left;
|
font-size: 14px;
|
}
|
.land-area {
|
width: 60px;
|
position: relative;
|
text-align: center;
|
font-size: 14px;
|
|
.box {
|
position: absolute;
|
top: 0;
|
right: 0;
|
left: 1;
|
bottom: 0;
|
margin: auto;
|
width: 120px;
|
height: 24px;
|
line-height: 24px;
|
border: 1px solid #64c3a4;
|
color: #64c3a4;
|
border-radius: 30px;
|
}
|
}
|
}
|
}
|
.search {
|
padding-top: 40px;
|
width: 98%;
|
margin: 0 auto;
|
display: flex;
|
flex-flow: row nowrap;
|
justify-content: space-between;
|
margin-top: -25px;
|
}
|
.el-page {
|
padding-top: 30px;
|
text-align: center;
|
}
|
}
|
.edit {
|
padding-left: 13px;
|
}
|
.strainimg {
|
position: absolute;
|
// display:flex;
|
// align-content:center
|
// flex-direction: row;
|
// align-items: center;
|
}
|
.strainimg1 {
|
width: 31px;
|
top: 45%;
|
left: 45%;
|
}
|
.strainimg2 {
|
width: 60px;
|
top: 45%;
|
left: 40%;
|
}
|
.strainimg3 {
|
width: 60px;
|
top: 38%;
|
left: 36%;
|
}
|
.strainimg4 {
|
width: 60px;
|
top: 38%;
|
left: 36%;
|
}
|
.strainimg5 {
|
width: 90px;
|
top: 38%;
|
left: 30%;
|
}
|
|
.strainimg img {
|
border-radius: 50%;
|
}
|
</style>
|