Merge pull request 'pc-master' (#181) from pc-master into portal

Reviewed-on: #181
portal
xiaomeng 2024-10-28 08:13:12 +00:00
commit d0c321c33d
34 changed files with 3144 additions and 718 deletions

View File

@ -696,4 +696,11 @@ getIccid(data){
return sendPostRequest(`/readControl/setMemo`, data)
},
//二维码溯源部分
//种植计划
code_getplant(data){
return sendGetRequest(`/code/getplant`, data)
},
};

View File

@ -2911,6 +2911,12 @@ textarea {
align-items: center;
}
.flex-start {
display: flex;
justify-content: flex-start;
align-items: center;
}
.vrcode .el-menu,
.el-submenu__title:hover,
.el-menu-item:hover,
@ -2995,7 +3001,7 @@ textarea {
}
.vrcode-textarea textarea {
width: 680px;
width: calc(100% - 30px);
height: 160px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
@ -3216,6 +3222,169 @@ textarea {
color: #92B1D0;
}
.vrcode-input-sel {
margin-right: 30px;
margin-bottom: 15px;
}
.vrcode-input-sel.w-100 {
width: calc(100% - 30px);
}
.vrcode-input-sel.w-100 .el-dropdown {
width: 100%;
}
.vrcode-input-sel.w-100 .el-dropdown-link {
width: 100%;
}
.vrcode-input-sel > .title {
margin-bottom: 7px;
}
.vrcode-input-sel .el-dropdown-link {
width: 300px;
height: 44px;
cursor: pointer;
position: relative;
}
.vrcode-input-sel .el-dropdown-link input {
width: 100%;
height: 100%;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
}
.vrcode-input-sel .el-dropdown-link input::placeholder {
color: #92B1D0;
}
.vrcode-input-sel .el-dropdown-link .arrow {
width: 33px;
height: 24px;
border-left: 1px solid #fff;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-input-sel .el-dropdown-link .arrow > img {
width: 6px;
height: 4px;
}
.vrcode-input-sel .el-dropdown-link .arrow > img.search {
width: 16px;
height: 16px;
}
.vrcode-input-seltime {
margin-right: 30px;
margin-bottom: 15px;
}
.vrcode-input-seltime > .title {
margin-bottom: 7px;
}
.vrcode-input-seltime .seltime {
width: 300px;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
font-family: Microsoft YaHei;
position: relative;
}
.vrcode-input-seltime .seltime .el-input__prefix {
display: none;
}
.vrcode-input-seltime .seltime input {
width: 300px;
height: 40px;
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
background: transparent;
border: none;
}
.vrcode-input-seltime .seltime input::placeholder {
color: #92B1D0;
}
.vrcode-input-seltime .seltime .seltime-icon {
width: 38px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-left: 1px solid #fff;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-input-seltime .seltime .seltime-icon > img {
width: 16px;
height: auto;
}
.flex-view .vrcode-input-sel .el-dropdown-link {
height: 40px;
}
.flex-view .vrcode-input-sel {
margin-right: 10px;
}
.flex-view .vrcode-input {
margin-right: 10px;
}
.flex-view .vrcode-selimage {
width: auto;
}
.vrcode-title {
width: 100%;
margin-bottom: 15px;
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #FFFFFF;
position: relative;
padding-left: 13px;
}
.vrcode-title::after {
content: ' ';
width: 3px;
height: 21px;
background: #0294E2;
border-radius: 2px;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-model.manage-model .el-dialog {
background: rgba(0, 59, 114, 0.8);
border: 2px solid rgba(0, 186, 255, 0.35);
@ -3336,113 +3505,6 @@ textarea {
top: 4px;
}
.vrcode-model .vrcode-input-sel {
margin-right: 30px;
margin-bottom: 15px;
}
.vrcode-model .vrcode-input-sel > .title {
margin-bottom: 7px;
}
.vrcode-model .vrcode-input-sel .el-dropdown-link {
width: 300px;
height: 44px;
cursor: pointer;
position: relative;
}
.vrcode-model .vrcode-input-sel .el-dropdown-link input {
width: 100%;
height: 100%;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
}
.vrcode-model .vrcode-input-sel .el-dropdown-link input::placeholder {
color: #92B1D0;
}
.vrcode-model .vrcode-input-sel .el-dropdown-link .arrow {
width: 33px;
height: 24px;
border-left: 1px solid #fff;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-model .vrcode-input-sel .el-dropdown-link .arrow > img {
width: 6px;
height: 4px;
}
.vrcode-model .vrcode-input-seltime {
margin-right: 30px;
margin-bottom: 15px;
}
.vrcode-model .vrcode-input-seltime > .title {
margin-bottom: 7px;
}
.vrcode-model .vrcode-input-seltime .seltime {
width: 300px;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
font-family: Microsoft YaHei;
position: relative;
}
.vrcode-model .vrcode-input-seltime .seltime .el-input__prefix {
display: none;
}
.vrcode-model .vrcode-input-seltime .seltime input {
width: 300px;
height: 40px;
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
background: transparent;
border: none;
}
.vrcode-model .vrcode-input-seltime .seltime input::placeholder {
color: #92B1D0;
}
.vrcode-model .vrcode-input-seltime .seltime .seltime-icon {
width: 38px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-left: 1px solid #fff;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-model .vrcode-input-seltime .seltime .seltime-icon > img {
width: 16px;
height: auto;
}
.vrcode-model .vrcode-radio {
width: 100%;
display: flex;
@ -3460,29 +3522,6 @@ textarea {
margin-left: 8px;
}
.vrcode-model .vrcode-title {
width: 100%;
margin-bottom: 15px;
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #FFFFFF;
position: relative;
padding-left: 13px;
}
.vrcode-model .vrcode-title::after {
content: ' ';
width: 3px;
height: 21px;
background: #0294E2;
border-radius: 2px;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.vrcode-model.confirm-psw .el-dialog__body {
min-height: unset;
}
@ -3502,7 +3541,14 @@ textarea {
padding: 0 30px;
}
.vrcode-model .el-dialog__body .vrcode-content .vrcode-view {
.vrcode-model .el-dialog {
background: rgba(0, 76, 147, 0.9);
border: 2px solid rgba(0, 186, 255, 0.6);
max-height: 90vh;
min-height: 30vh;
}
.vrcode-view {
width: 100%;
padding: 20px 0 15px 0;
border-bottom: 1px solid rgba(0, 180, 255, 0.35);
@ -3511,23 +3557,24 @@ textarea {
flex-wrap: wrap;
}
.vrcode-model .el-dialog__body .vrcode-content .vrcode-view > div {
.vrcode-view > div {
flex-shrink: 0;
}
.vrcode-model .el-dialog {
background: rgba(0, 76, 147, 0.9);
border: 2px solid rgba(0, 186, 255, 0.6);
max-height: 90vh;
min-height: 30vh;
}
.vrcode-input {
width: 300px;
margin-right: 30px;
margin-bottom: 15px;
}
.vrcode-input.w-100 {
width: calc(100% - 30px);
}
.vrcode-input.w-50 {
width: calc(50% - 30px);
}
.vrcode-input .input-title {
font-size: 16px;
font-family: Microsoft YaHei;
@ -3537,7 +3584,7 @@ textarea {
}
.vrcode-input input {
width: 300px;
width: 100%;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
@ -3560,6 +3607,11 @@ textarea {
margin-bottom: 7px;
}
.vrcode-selimage .tips {
font-size: 16px;
color: #FF9999;
}
.vrcode-selimage .sel-image-view {
display: flex;
align-items: center;
@ -3573,7 +3625,7 @@ textarea {
.vrcode-selimage .sel-image-view .sel-div {
width: 130px;
height: 130px;
margin-right: 30px;
margin-right: 10px;
background: rgba(86, 209, 255, 0.25);
border: 1px dashed #56D1FF;
cursor: pointer;

File diff suppressed because one or more lines are too long

View File

@ -3101,7 +3101,12 @@ textarea{
align-items: center;
}
.flex-start {
display: flex;
justify-content: flex-start;
align-items: center;
}
.vrcode .el-menu,
.el-submenu__title:hover,
.el-menu-item:hover,
@ -3188,7 +3193,7 @@ textarea{
}
textarea {
width: 680px;
width: calc(100% - 30px);
height: 160px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
@ -3431,6 +3436,161 @@ textarea{
}
}
.vrcode-input-sel {
margin-right: 30px;
margin-bottom: 15px;
&.w-100{
width: calc(100% - 30px);
.el-dropdown{
width: 100%;
}
.el-dropdown-link{
width: 100%;
}
}
>.title {
margin-bottom: 7px;
}
.el-dropdown-link {
width: 300px;
height: 44px;
cursor: pointer;
position: relative;
input {
width: 100%;
height: 100%;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
&::placeholder {
color: #92B1D0;
}
}
.arrow {
width: 33px;
height: 24px;
border-left: 1px solid #fff;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
>img {
width: 6px;
height: 4px;
&.search{
width: 16px;
height: 16px;
}
}
}
}
}
.vrcode-input-seltime {
margin-right: 30px;
margin-bottom: 15px;
>.title {
margin-bottom: 7px;
}
.seltime {
width: 300px;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
font-family: Microsoft YaHei;
position: relative;
.el-input__prefix {
display: none;
}
input {
width: 300px;
height: 40px;
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
background: transparent;
border: none;
&::placeholder {
color: #92B1D0;
}
}
.seltime-icon {
width: 38px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-left: 1px solid #fff;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
>img {
width: 16px;
height: auto;
}
}
}
}
.flex-view{
.vrcode-input-sel .el-dropdown-link{
height: 40px;
}
.vrcode-input-sel{
margin-right: 10px;
}
.vrcode-input{
margin-right: 10px;
}
.vrcode-selimage{
width: auto;
}
}
.vrcode-title {
width: 100%;
margin-bottom: 15px;
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #FFFFFF;
position: relative;
padding-left: 13px;
&::after {
content: ' ';
width: 3px;
height: 21px;
background: #0294E2;
border-radius: 2px;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
}
.vrcode-model {
&.manage-model {
.el-dialog {
@ -3564,113 +3724,7 @@ textarea{
.vrcode-input-sel {
margin-right: 30px;
margin-bottom: 15px;
>.title {
margin-bottom: 7px;
}
.el-dropdown-link {
width: 300px;
height: 44px;
cursor: pointer;
position: relative;
input {
width: 100%;
height: 100%;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
&::placeholder {
color: #92B1D0;
}
}
.arrow {
width: 33px;
height: 24px;
border-left: 1px solid #fff;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
>img {
width: 6px;
height: 4px;
}
}
}
}
.vrcode-input-seltime {
margin-right: 30px;
margin-bottom: 15px;
>.title {
margin-bottom: 7px;
}
.seltime {
width: 300px;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
font-size: 16px;
font-family: Microsoft YaHei;
position: relative;
.el-input__prefix {
display: none;
}
input {
width: 300px;
height: 40px;
font-size: 16px;
padding-left: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #FFFFFF;
background: transparent;
border: none;
&::placeholder {
color: #92B1D0;
}
}
.seltime-icon {
width: 38px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-left: 1px solid #fff;
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
>img {
width: 16px;
height: auto;
}
}
}
}
.vrcode-radio {
width: 100%;
@ -3690,28 +3744,7 @@ textarea{
}
}
.vrcode-title {
width: 100%;
margin-bottom: 15px;
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #FFFFFF;
position: relative;
padding-left: 13px;
&::after {
content: ' ';
width: 3px;
height: 21px;
background: #0294E2;
border-radius: 2px;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
}
&.confirm-psw {
.el-dialog__body {
@ -3732,18 +3765,7 @@ textarea{
height: calc(100% - 43px);
padding: 0 30px;
.vrcode-view {
width: 100%;
padding: 20px 0 15px 0;
border-bottom: 1px solid rgba(0, 180, 255, .35);
display: flex;
align-items: center;
flex-wrap: wrap;
>div {
flex-shrink: 0;
}
}
}
}
@ -3756,12 +3778,28 @@ textarea{
}
}
.vrcode-view {
width: 100%;
padding: 20px 0 15px 0;
border-bottom: 1px solid rgba(0, 180, 255, .35);
display: flex;
align-items: center;
flex-wrap: wrap;
>div {
flex-shrink: 0;
}
}
.vrcode-input {
width: 300px;
margin-right: 30px;
margin-bottom: 15px;
&.w-100{
width: calc(100% - 30px);
}
&.w-50{
width: calc(50% - 30px);
}
.input-title {
font-size: 16px;
font-family: Microsoft YaHei;
@ -3771,7 +3809,7 @@ textarea{
}
input {
width: 300px;
width:100%;
height: 44px;
background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5);
@ -3793,7 +3831,10 @@ textarea{
>.title {
margin-bottom: 7px;
}
.tips{
font-size: 16px;
color: #FF9999;
}
.sel-image-view {
display: flex;
align-items: center;
@ -3806,7 +3847,7 @@ textarea{
.sel-div {
width: 130px;
height: 130px;
margin-right: 30px;
margin-right: 10px;
background: rgba(86, 209, 255, 0.25);
border: 1px dashed #56D1FF;
cursor: pointer;
@ -4500,6 +4541,7 @@ textarea{
>img {
width: 6px;
height: 4px;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -332,7 +332,61 @@ const routes = [
path: '/setsuyuan',
name: 'setsuyuan',
component: () => import('../views/vrcode/setsuyuan.vue')
}]
},{
path: '/clearReport',
name: 'clearReport',
component: () => import('../views/vrcode/clearReport.vue')
},{
path: '/pestManagement',
name: 'pestManagement',
component: () => import('../views/vrcode/pestManagement.vue')
},{
path: '/suyuanBatch',
name: 'suyuanBatch',
component: () => import('../views/vrcode/suyuanBatch.vue')
},{
path: '/reportLibrary',
name: 'reportLibrary',
component: () => import('../views/vrcode/reportLibrary.vue')
},{
path: '/cropVarieties',
name: 'cropVarieties',
component: () => import('../views/vrcode/cropVarieties.vue')
},{
path: '/croppingPattern',
name: 'croppingPattern',
component: () => import('../views/vrcode/croppingPattern.vue')
},{
path: '/agriculturalProcess',
name: 'agriculturalProcess',
component: () => import('../views/vrcode/agriculturalProcess.vue')
},{
path: '/staffManagement',
name: 'staffManagement',
component: () => import('../views/vrcode/staffManagement.vue')
},{
path: '/supplierManage',
name: 'supplierManage',
component: () => import('../views/vrcode/supplierManage.vue')
},{
path: '/informationManage',
name: 'informationManage',
component: () => import('../views/vrcode/informationManage.vue')
},{
path: '/machineManagement',
name: 'machineManagement',
component: () => import('../views/vrcode/machineManagement.vue')
},{
path: '/cropManagement',
name: 'cropManagement',
component: () => import('../views/vrcode/cropManagement.vue')
},{
path: '/farmManage',
name: 'farmManage',
component: () => import('../views/vrcode/farmManage.vue')
},
]
},
]

View File

@ -44,17 +44,9 @@
<div class="weather">
<div>
<marquee behavior="" direction="" scrollamount="3">
<div
class="item"
v-for="(item, index) in weatherDataList"
:key="index"
>
<img
:src="
require(`../../assets/image/real-time-${item.formula}.png`)
"
alt=""
/>
<div class="item" v-for="(item, index) in weatherDataList" :key="index">
<img :src="require(`../../assets/image/real-time-${item.formula}.png`)
" alt="" />
<span>{{ item.environmentDataId }} : </span>
<span>{{
item.environmentData + getTypeList(item.formula)
@ -70,11 +62,7 @@
<div class="e_title">温室环境数据</div>
<div class="detail">
<!-- <div class="title_child">一号温室</div> -->
<vue-seamless
class="e_content"
:data="list"
:class-option="defaultOption"
>
<vue-seamless class="e_content" :data="list" :class-option="defaultOption">
<div class="item" v-for="(el, index) in list" :key="index">
<!-- <img :src="el.formula" alt=""> -->
<img :src="el.img" alt="" />
@ -98,21 +86,14 @@
<div class="thisWeekTemperature">
<div class="e_title">本周温度统计</div>
<div
class="thisWeekTemperature_echart"
id="thisWeekTemperature_echart"
></div>
<div class="thisWeekTemperature_echart" id="thisWeekTemperature_echart"></div>
</div>
</div>
<div class="left" v-show="limitUserId == 5" style="height: calc(100% - 0.9rem);">
<div class="environmentData" style="height: 100%;overflow: hidden;">
<div class="e_title">温室环境数据</div>
<div class="detail" style="height: 100%;">
<vue-seamless
class="e_content e_content1"
:data="list"
:class-option="defaultOption"
>
<vue-seamless class="e_content e_content1" :data="list" :class-option="defaultOption">
<div class="item" v-for="(el, index) in list" :key="index">
<img :src="el.img" alt="" />
<div class="item_child">
@ -130,69 +111,22 @@
<!-- 丽水 -->
<div class="drag_box" ref="drag_box" v-show="limitUserId == 1">
<img class="drag_img" src="../../assets/img/map.png" alt="" />
<img
class="axis_1"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_2"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_3"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_4"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_5"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_6"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_1"
/>
<img
class="axis_7"
src="../../assets/img/axis2.png"
alt=""
@click="handlerAxis_1"
/>
<img class="axis_1" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_2" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_3" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_4" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_5" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_6" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_1" />
<img class="axis_7" src="../../assets/img/axis2.png" alt="" @click="handlerAxis_1" />
</div>
<!-- 东北 -->
<div class="drag_box1" ref="drag_box1" v-show="limitUserId == 2">
<img class="drag_img" src="../../assets/img/map1.png" alt="" />
<img
class="axis_init"
:class="'axis_' + (index + 8)"
src="../../assets/img/axis1.png"
:style="'left:' + (44.5 + index * 4.1) + '%'"
alt=""
@click="handlerAxis_2"
v-for="(i, index) in 10"
:key="index + '_1'"
/>
<img class="axis_init" :class="'axis_' + (index + 8)" src="../../assets/img/axis1.png"
:style="'left:' + (44.5 + index * 4.1) + '%'" alt="" @click="handlerAxis_2" v-for="(i, index) in 10"
:key="index + '_1'" />
<img
class="axis_init1"
:class="'axis_' + (index1 + 17)"
src="../../assets/img/axis1.png"
:style="
'top:' +
<img class="axis_init1" :class="'axis_' + (index1 + 17)" src="../../assets/img/axis1.png" :style="'top:' +
(22 + index1 * 0.105) +
'%' +
';' +
@ -200,86 +134,26 @@
(8.25 + index1 * 3.3) +
'%' +
';'
"
alt=""
@click="handlerAxis_2"
v-for="(i, index1) in 24"
:key="index1 + '_2'"
/>
" alt="" @click="handlerAxis_2" v-for="(i, index1) in 24" :key="index1 + '_2'" />
</div>
<!-- 石门 -->
<div class="drag_box5" ref="drag_box5" v-show="limitUserId == 5">
<img class="drag_img" src="../../assets/img/map2.png" alt="" />
<img
class="axis_shimen"
src="../../assets/img/axis2.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen1"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen2"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen3"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen4"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img class="axis_shimen" src="../../assets/img/axis2.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen1" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen2" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen3" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen4" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
</div>
<!-- 大冶鑫 -->
<div class="drag_box7" ref="drag_box7" v-show="limitUserId == 7">
<img class="drag_img" src="../../assets/img/map3.jpg" alt="" />
<img
class="axis_shimen"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen1"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen2"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen3"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen4"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img
class="axis_shimen5"
src="../../assets/img/axis1.png"
alt=""
@click="handlerAxis_5"
/>
<img class="axis_shimen" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen1" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen2" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen3" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen4" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
<img class="axis_shimen5" src="../../assets/img/axis1.png" alt="" @click="handlerAxis_5" />
</div>
</div>
</div>
@ -290,17 +164,9 @@
<div class="liveVideo_content">
<div class="swiper-container mySwiper_video">
<div class="swiper-wrapper">
<div
class="swiper-slide swiper-slide_video"
v-for="(item, index) in get_sel_eqbyid_list"
:key="index"
>
<div class="swiper-slide swiper-slide_video" v-for="(item, index) in get_sel_eqbyid_list" :key="index">
<div class="monitor" :id="'monitor' + item.number">
<div
ref="videoPlayer"
class="video-js"
:id="'video-js' + item.number"
></div>
<div ref="videoPlayer" class="video-js" :id="'video-js' + item.number"></div>
</div>
<div class="c_bottom">{{ item.deviceTypeName }}</div>
</div>
@ -319,22 +185,13 @@
<div class="device_detail">
<div class="swiper_timer">
<div>
<div
class="swiper-container middle_disasterWarningAnalysis"
:style="styleContainer"
>
<div class="swiper-container middle_disasterWarningAnalysis" :style="styleContainer">
<div class="swiper-wrapper">
<div
:class="
(limitUserId == 1 ? current : current1) == index
<div :class="(limitUserId == 1 ? current : current1) == index
? 'swiper-slide swiper-slide2'
: 'swiper-slide swiper-slide1'
"
v-for="(item, index) in dataList"
:key="index"
:style="styleItem"
@click="getCurrent(index, item)"
>
" v-for="(item, index) in dataList" :key="index" :style="styleItem"
@click="getCurrent(index, item)">
{{
item.greenhouseName
}}
@ -373,47 +230,32 @@
<div class="i_content">
<div class="i_content_item">
<span>1#风机</span>
<span
:style="fanStatus.status[0] == 1 ? '' : 'color:#86C2FF;'"
>{{ fanStatus.status[0] == 1 ? "打开" : "关闭" }}</span
>
<span :style="fanStatus.status[0] == 1 ? '' : 'color:#86C2FF;'">{{ fanStatus.status[0] == 1 ? "打开" :
"关闭" }}</span>
<span class="line"></span>
<span>2#风机</span>
<span
:style="fanStatus.status[1] == 1 ? '' : 'color:#86C2FF;'"
>{{ fanStatus.status[1] == 1 ? "打开" : "关闭" }}</span
>
<span :style="fanStatus.status[1] == 1 ? '' : 'color:#86C2FF;'">{{ fanStatus.status[1] == 1 ? "打开" :
"关闭" }}</span>
</div>
<div class="line1"></div>
<div class="i_content_item">
<span>3#风机</span>
<span
:style="fanStatus.status[2] == 1 ? '' : 'color:#86C2FF;'"
>{{ fanStatus.status[2] == 1 ? "打开" : "关闭" }}</span
>
<span :style="fanStatus.status[2] == 1 ? '' : 'color:#86C2FF;'">{{ fanStatus.status[2] == 1 ? "打开" :
"关闭" }}</span>
<span class="line"></span>
<span>4#风机</span>
<span
:style="fanStatus.status[3] == 1 ? '' : 'color:#86C2FF;'"
>{{ fanStatus.status[3] == 1 ? "打开" : "关闭" }}</span
>
<span :style="fanStatus.status[3] == 1 ? '' : 'color:#86C2FF;'">{{ fanStatus.status[3] == 1 ? "打开" :
"关闭" }}</span>
</div>
<div class="line1"></div>
<div class="i_content_item" style="width: 50%">
<span>5#风机</span>
<span
:style="fanStatus.status[4] == 1 ? '' : 'color:#86C2FF;'"
>{{ fanStatus.status[4] == 1 ? "打开" : "关闭" }}</span
>
<span :style="fanStatus.status[4] == 1 ? '' : 'color:#86C2FF;'">{{ fanStatus.status[4] == 1 ? "打开" :
"关闭" }}</span>
<span class="line"></span>
</div>
</div>
<div
class="i_title_"
style="margin-top: 0.2rem"
v-for="(item, index) in statusList"
:key="index"
>
<div class="i_title_" style="margin-top: 0.2rem" v-for="(item, index) in statusList" :key="index">
<template v-if="item.open != 0">
<img src="../../assets/img/i_title_img.png" alt="" />
<span>{{ item.name }}</span>
@ -446,9 +288,7 @@
item.controlState == 1 ? "自动控制" : "手机控制"
}}</span>
<span class="line"></span>
<i class="progress" v-if="Number(item.progress) == ''"
>进度{{ item.progress }}%</i
>
<i class="progress" v-if="Number(item.progress) == ''">{{ item.progress }}%</i>
<span>菜单</span>
</div>
<div class="i_title" v-else>
@ -473,9 +313,7 @@
item.controlState == 1 ? "自动控制" : "手机控制"
}}</span>
<span class="line"></span>
<i class="progress" v-if="Number(item.progress) == ''"
>进度{{ item.progress }}%</i
>
<i class="progress" v-if="Number(item.progress) == ''">{{ item.progress }}%</i>
<span>菜单</span>
</div>
<div class="i_title" v-else>
@ -499,9 +337,7 @@
item.controlState == 1 ? "自动控制" : "手机控制"
}}</span>
<span class="line"></span>
<i class="progress" v-if="Number(item.progress) == ''"
>进度{{ item.progress }}%</i
>
<i class="progress" v-if="Number(item.progress) == ''">{{ item.progress }}%</i>
<span>菜单</span>
</div>
<div class="i_title" v-else>
@ -1038,7 +874,14 @@ export default {
handlerOther() {
this.other_show = !this.other_show
},
//
compare(property) {
return function (a, b) {
let value1 = a[property];
let value2 = b[property];
return value1 - value2;
};
},
// id
dataInit(userid, limitUserId) {
this.api.Bigdata_getAllControl(userid).then((res) => {
@ -1063,12 +906,22 @@ export default {
// this.get_readControl_getState(el.deviceId)
});
if (limitUserId == 1) {
// Id
const list = []
this.$store.state.equipmentList.forEach((el, index) => {
if (el.deviceName == 10) {
list.push(el)
}
})
list.sort(this.compare('equipmentStatu'))
console.log(list, 123);
//
this.get_weather_echart_data(2023042214250027);
this.get_thisWeekTemperature_echart_data(2023042214250027);
this.get_environmentData(2023042214250027);
this.get_readControl_getState(2023042214250027);
this.getWeatherData(2023042214250027);
this.get_weather_echart_data(list[0].deviceId);
this.get_thisWeekTemperature_echart_data(list[0].deviceId);
this.get_environmentData(list[0].deviceId);
this.get_readControl_getState(list[0].deviceId);
this.getWeatherData(list[0].deviceId);
} else if (limitUserId == 2) {
//
this.get_weather_echart_data(2023072517320001);
@ -1722,6 +1575,7 @@ export default {
.e_content1 {
height: 100%;
>div {
width: 100% !important;
height: 100%;
@ -1792,12 +1646,10 @@ export default {
opacity: 0.9;
text-shadow: 0.01 0.1rem 0.2rem rgba(0, 51, 103, 0.25);
background: linear-gradient(
to bottom,
background: linear-gradient(to bottom,
#ffffff 45%,
#e9f8ff 90%,
#77baff 100%
);
#77baff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-align: center;
@ -1828,12 +1680,10 @@ export default {
}
.act {
background: linear-gradient(
-35deg,
background: linear-gradient(-35deg,
#56a8d5 0%,
rgba(0, 55, 110, 0.75) 50%,
#56a8d5 100%
);
#56a8d5 100%);
border: 1px solid rgba(122, 225, 255, 0.75);
font-size: 0.18rem;
font-family: MicrosoftYaHei;
@ -1974,8 +1824,7 @@ export default {
.weatherStation {
width: 4rem;
height: 0.43rem;
background: url("../../assets/img/weatherStation.png") center
no-repeat;
background: url("../../assets/img/weatherStation.png") center no-repeat;
background-size: 100% 100%;
}
@ -2040,8 +1889,7 @@ export default {
.e_title {
width: 3.98rem;
height: 0.19rem;
background: url("../../assets/img/environmentData_bg.png") center
no-repeat;
background: url("../../assets/img/environmentData_bg.png") center no-repeat;
background-size: 100% 100%;
font-size: 0.18rem;
font-family: AlibabaPuHuiTiM;
@ -2135,15 +1983,13 @@ export default {
top: 0;
left: 0;
z-index: 99;
-webkit-mask-image: linear-gradient(
90deg,
-webkit-mask-image: linear-gradient(90deg,
transparent 22%,
transparent 10%,
blue 30%,
blue 70%,
transparent 75%,
transparent 100%
);
transparent 100%);
.map1 {
width: 60%;
@ -2156,12 +2002,10 @@ export default {
// blue 80%,
// transparent 100%,
// transparent 100%);
-webkit-mask-image: linear-gradient(
transparent 0%,
-webkit-mask-image: linear-gradient(transparent 0%,
blue 8%,
blue 85%,
transparent 100%
);
transparent 100%);
// transform: scale(0.6);
position: absolute;
top: 50%;
@ -2176,23 +2020,19 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
-webkit-mask-image: linear-gradient(
90deg,
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%
);
transparent 99%);
.drag_img {
width: 100%;
height: 100%;
-webkit-mask-image: linear-gradient(
transparent 0%,
-webkit-mask-image: linear-gradient(transparent 0%,
blue 13%,
blue 73%,
transparent 97%
);
transparent 97%);
}
.axis_init {
@ -2218,23 +2058,19 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
-webkit-mask-image: linear-gradient(
90deg,
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%
);
transparent 99%);
.drag_img {
width: 100%;
height: 100%;
-webkit-mask-image: linear-gradient(
transparent 0%,
-webkit-mask-image: linear-gradient(transparent 0%,
blue 13%,
blue 73%,
transparent 97%
);
transparent 97%);
}
.axis_shimen {
@ -2263,6 +2099,7 @@ export default {
left: 18%;
z-index: 99;
}
.axis_shimen3 {
width: 0.3rem;
height: 0.4rem;
@ -2271,6 +2108,7 @@ export default {
left: 20%;
z-index: 99;
}
.axis_shimen4 {
width: 0.3rem;
height: 0.4rem;
@ -2280,6 +2118,7 @@ export default {
z-index: 99;
}
}
.drag_box7 {
width: 100%;
height: auto;
@ -2288,23 +2127,19 @@ export default {
// left: 0.5rem;
z-index: 10;
top: -64px;
-webkit-mask-image: linear-gradient(
90deg,
-webkit-mask-image: linear-gradient(90deg,
transparent 0%,
blue 5%,
blue 93%,
transparent 99%
);
transparent 99%);
.drag_img {
width: 100%;
height: auto;
-webkit-mask-image: linear-gradient(
transparent 0%,
-webkit-mask-image: linear-gradient(transparent 0%,
blue 13%,
blue 73%,
transparent 97%
);
transparent 97%);
}
.axis_shimen {
@ -2336,6 +2171,7 @@ export default {
cursor: pointer;
z-index: 99;
}
.axis_shimen3 {
width: 0.4rem;
height: auto;
@ -2345,6 +2181,7 @@ export default {
z-index: 99;
cursor: pointer;
}
.axis_shimen4 {
width: 0.4rem;
height: auto;
@ -2354,6 +2191,7 @@ export default {
z-index: 99;
cursor: pointer;
}
.axis_shimen5 {
width: 0.4rem;
height: auto;
@ -2364,6 +2202,7 @@ export default {
cursor: pointer;
}
}
.drag_box {
width: 100%;
height: 100%;
@ -2371,23 +2210,19 @@ export default {
// top: 0.3rem;
// left: 0.5rem;
z-index: 10;
-webkit-mask-image: linear-gradient(
90deg,
-webkit-mask-image: linear-gradient(90deg,
transparent 4%,
blue 18%,
blue 88%,
transparent 100%
);
transparent 100%);
.drag_img {
width: 100%;
height: 100%;
-webkit-mask-image: linear-gradient(
transparent 0%,
-webkit-mask-image: linear-gradient(transparent 0%,
blue 13%,
blue 73%,
transparent 97%
);
transparent 97%);
}
.axis_1 {
@ -2579,17 +2414,14 @@ export default {
width: 0.84rem !important;
}
.swiper-slide1 {
}
.swiper-slide1 {}
::v-deep .swiper-slide2 {
color: #ffffff !important;
background: linear-gradient(
-35deg,
background: linear-gradient(-35deg,
#56a8d5 0%,
rgba(0, 55, 110, 0.75) 50%,
#56a8d5 100%
) !important;
#56a8d5 100%) !important;
border: 1px solid rgba(122, 225, 255, 0.75) !important;
}
@ -2673,8 +2505,7 @@ export default {
.i_title {
// width: 4rem;
height: 0.5rem;
background: url("../../assets/img/i_title_bg.png") center
no-repeat;
background: url("../../assets/img/i_title_bg.png") center no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
@ -2730,11 +2561,9 @@ export default {
>span:nth-child(7) {
width: 0.66rem;
height: 0.3rem;
background: linear-gradient(
-35deg,
background: linear-gradient(-35deg,
rgba(122, 225, 255, 0.49) 1%,
rgba(122, 225, 255, 0.5) 100%
);
rgba(122, 225, 255, 0.5) 100%);
border: 0.01rem solid rgba(122, 225, 255, 0.5);
border-radius: 0.15rem;
font-size: 0.14rem;
@ -2749,8 +2578,7 @@ export default {
.i_title_ {
// width: 4rem;
height: 0.5rem;
background: url("../../assets/img/i_title_bg.png") center
no-repeat;
background: url("../../assets/img/i_title_bg.png") center no-repeat;
background-size: 100% 100%;
display: flex;
align-items: center;
@ -2799,11 +2627,9 @@ export default {
>span:nth-child(7) {
width: 0.66rem;
height: 0.3rem;
background: linear-gradient(
-35deg,
background: linear-gradient(-35deg,
rgba(122, 225, 255, 0.49) 1%,
rgba(122, 225, 255, 0.5) 100%
);
rgba(122, 225, 255, 0.5) 100%);
border: 0.01rem solid rgba(122, 225, 255, 0.5);
border-radius: 0.15rem;
font-size: 0.14rem;

View File

@ -28,7 +28,8 @@
</template>
<el-menu-item-group>
<el-menu-item :disabled="item1.router ? false : true" @click="toRouter1(item1)"
:index="item1.router" v-for="item1, index1 in item.list">{{ item1.name }}</el-menu-item>
:index="item1.router" v-for="item1, index1 in item.list">{{ item1.name
}}</el-menu-item>
</el-menu-item-group>
</el-submenu>
<el-menu-item @click="toRouter1(item)" :index="item.router" v-else>
@ -64,35 +65,46 @@ export default {
},
{
name: '生产环节', router: 'productionProcess',
routerList: ['agricultural', 'sprayInsecticide', 'spreadManure', 'pickingRecords'],
routerList: ['agricultural', 'sprayInsecticide', 'spreadManure', 'pickingRecords', 'clearReport', "pestManagement"],
img: require('../assets/image/vrcode-icon1.png'),
list: [{ name: '农事管理', router: '' },//agricultural
{ name: '施肥记录', router: '' },//spreadManure
{ name: '打药记录', router: '' },//sprayInsecticide
{ name: '采摘记录', router: '' },//pickingRecords
{ name: '清洁记录', router: '' },
{ name: '病虫害管理', router: '' },]
{ name: '清洁记录', router: '' },//clearReport
{ name: '病虫害管理', router: '' },//pestManagement
]
},
{
name: '产品追溯', router: 'productTraceability',
routerList: ['setsuyuan'],
routerList: ['setsuyuan', 'suyuanBatch', 'reportLibrary'],
img: require('../assets/image/vrcode-icon2.png'),
list: [{ name: '溯源批次', router: '' },
list: [{ name: '溯源批次', router: '' },//suyuanBatch
{ name: '配置溯源版面', router: 'setsuyuan' },
{ name: '各种报告库', router: '' }]
{ name: '各种报告库', router: '' }//reportLibrary
]
},
{
name: '基础信息设置', router: 'setting', routerList: [],
name: '基础信息设置', router: 'setting', routerList: ['cropVarieties',
'croppingPattern',
'agriculturalProcess',
'staffManagement',
'farmManage',
'supplierManage',
'informationManage',
'machineManagement',
'cropManagement',],
img: require('../assets/image/vrcode-icon3.png'),
list: [{ name: '作物品种', router: '' },
{ name: '种植栽培模式', router: '' },
{ name: '农事作业工序', router: '' },
{ name: '人员管理', router: '' },
{ name: '农场信息管理', router: '' },
{ name: '供应商管理', router: '' },
{ name: '生产资料管理', router: '' },
{ name: '农机工具管理', router: '' },
{ name: '作物外观图片库', router: '' },]
list: [{ name: '作物品种', router: '' },//cropVarieties
{ name: '种植栽培模式', router: '' },//croppingPattern
{ name: '农事作业工序', router: '' },//agriculturalProcess
{ name: '人员管理', router: '' },//staffManagement
{ name: '农场信息管理', router: '' },//farmManage
{ name: '供应商管理', router: '' },//supplierManage
{ name: '生产资料管理', router: '' },//informationManage
{ name: '农机工具管理', router: '' },//machineManagement
{ name: '作物外观图片库', router: '' },//cropManagement
]
},],
routerNow: 'plantingPlan',
deviceName: 1,
@ -212,4 +224,3 @@ export default {
}
</script>
<style lang="scss"></style>

View File

@ -201,11 +201,22 @@ export default {
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'],
userInfo:null
}
},
mounted() { },
mounted() {
this.userInfo = JSON.parse(localStorage.getItem("userInfo"));
this.dataInit()
},
methods: {
dataInit(){
var data={userId:this.userInfo.userid}
this.api.code_getplant(data).then(res=>{
console.log(res,111);
})
},
handleCommand() {
},

View File

@ -0,0 +1,145 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/agriculturalProcess.png" alt="" />
农事作业工序
</div>
<div class="flex-view">
<div class="vrcode-input-sel">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请输入种植模式名称">
</div>
</div>
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="序号"></el-table-column>
<el-table-column prop="data0" label="名称"></el-table-column>
<el-table-column prop="data1" label="温室清洁时间"></el-table-column>
<el-table-column prop="data3" label="消毒杀菌时间"></el-table-column>
<el-table-column prop="data2" label="清洁方式"></el-table-column>
<el-table-column prop="data5" label="使用药剂">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="380px" class="vrcode-model"
:append-to-body="true">
<div class="vrcode-model-title">
编辑名称
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input w-100">
<div class="input-title">名称</div>
<input type="text" placeholder="请输入名称">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue: false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,181 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/clearReport.png" alt="" />
清洁记录
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">新增清洁信息
</div>
<div class="vrcode-input-sel">
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="序号"></el-table-column>
<el-table-column prop="data0" label="名称"></el-table-column>
<el-table-column prop="data1" label="温室清洁时间"></el-table-column>
<el-table-column prop="data3" label="消毒杀菌时间"></el-table-column>
<el-table-column prop="data2" label="清洁方式"></el-table-column>
<el-table-column prop="data5" label="使用药剂">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
新增采摘信息
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input-seltime">
<div class="title">温室清洁时间</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择开始时间">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input-seltime">
<div class="title">消毒杀菌时间</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择结束时间">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input w-100">
<div class="input-title">消毒次数</div>
<input type="text" placeholder="请输入消毒次数">
</div>
<div class="vrcode-input w-100">
<div class="input-title">清洁方式</div>
<input type="text" placeholder="请输入清洁方式">
</div>
<div class="vrcode-input w-100">
<div class="input-title">使用药剂</div>
<input type="text" placeholder="请输入使用药剂">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,162 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/cropManagement.png" alt="" />
作物外观图片库
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data3" label="放置位置"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="操作时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="380px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
添加报告库
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input w-100">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-selimage">
<div class="title">图片</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
<div class="tips">*上传图片大小应小于2M,建议尺寸为80×60</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,189 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/cropVarieties.png" alt="" />
作物品种
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data3" label="放置位置"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="操作时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
添加报告库
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input-sel">
<div class="title">操作员</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input-sel">
<div class="title">操作员</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input w-100">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-selimage">
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,143 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/croppingPattern.png" alt="" />
种植栽培模式
</div>
<div class="flex-view">
<div class="vrcode-input-sel">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请输入种植模式名称">
<div class="arrow"><img class="search" src="../../assets/vrcodeImg/search.png" alt=""></div>
</div>
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="序号"></el-table-column>
<el-table-column prop="data0" label="名称"></el-table-column>
<el-table-column prop="data1" label="温室清洁时间"></el-table-column>
<el-table-column prop="data3" label="消毒杀菌时间"></el-table-column>
<el-table-column prop="data2" label="清洁方式"></el-table-column>
<el-table-column prop="data5" label="使用药剂">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="380px" class="vrcode-model"
:append-to-body="true">
<div class="vrcode-model-title">
编辑名称
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input w-100">
<div class="input-title">名称</div>
<input type="text" placeholder="请输入名称">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue: false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,304 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/farmManage.png" alt="" />
农场信息管理
</div>
<div class="flex-view border-none padding-none">
<div class="vrcode-title">种植信息</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">种植规模()</div>
<input type="text" placeholder="请输入种植规模">
</div>
</div>
<div class="flex-view ">
<div class="vrcode-btn save-btn" @click="addModel = true">
保存
</div>
</div>
<div class="flex-view border-none padding-none">
<div class="vrcode-title">联系人信息</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
</div>
<div class="flex-view border-none padding-none">
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
<div class="vrcode-input">
<div class="input-title">品种介绍</div>
<input type="text" placeholder="请输入品种介绍">
</div>
</div>
<div class="flex-view border-none">
<div class="vrcode-selimage">
<div class="title">二维码logo</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
<div class="vrcode-selimage">
<div class="title">系统logo</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
</div>
<div class="flex-view padding-none border-none">
<div class="vrcode-btn save-btn" @click="addModel = true">
保存
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model"
:append-to-body="true">
<div class="vrcode-model-title">
新增农事信息
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input-sel">
<div class="title">种植计划</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择种植计划">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input-sel">
<div class="title">操作类型</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作类型">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input-seltime">
<div class="title">开始时间</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择开始时间">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input-seltime">
<div class="title">结束时间</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择结束时间">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input-sel">
<div class="title">操作员</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-textarea">
<div class="title">备注</div>
<textarea placeholder="输入您的备注信息" name="" id="" cols="30" rows="10"></textarea>
</div>
<div class="vrcode-selimage">
<div class="title">工作图片</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
<div class="vrcode-radio">
<div class="radio-name">是否追溯</div>
<div class="radio-sel">
<img v-if="modelisTrue" class="sel" src="../../assets/image/radio.png" alt="">
<div v-else @click="modelisTrue = true" class="no-sel"></div>
<span></span>
</div>
<div class="radio-sel">
<img v-if="!modelisTrue" class="sel" src="../../assets/image/radio.png" alt="">
<div v-else @click="modelisTrue = false" class="no-sel"></div>
<span></span>
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '2023-04-05 21:00',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue: false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'],
userInfo: null
}
},
mounted() {
this.userInfo = JSON.parse(localStorage.getItem("userInfo"));
this.dataInit()
},
methods: {
dataInit() {
var data = { userId: this.userInfo.userid }
this.api.code_getplant(data).then(res => {
console.log(res, 111);
})
},
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,165 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/informationManage.png" alt="" />
生产资料管理
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data3" label="放置位置"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="操作时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
添加报告库
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-selimage">
<div class="title">图片</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,165 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/machineManagement.png" alt="" />
农机工具管理
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data3" label="放置位置"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="操作时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
添加报告库
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-selimage">
<div class="title">图片</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,173 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/pestManagement.png" alt="" />
病虫害管理
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">新增虫害记录
</div>
<div class="vrcode-input-sel">
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="序号"></el-table-column>
<el-table-column prop="data0" label="名称"></el-table-column>
<el-table-column prop="data1" label="温室清洁时间"></el-table-column>
<el-table-column prop="data3" label="消毒杀菌时间"></el-table-column>
<el-table-column prop="data2" label="清洁方式"></el-table-column>
<el-table-column prop="data5" label="使用药剂">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
新增病虫害记录
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">观察记录</div>
<input type="text" placeholder="请输入观察记录">
</div>
<div class="vrcode-input">
<div class="input-title">用药记录</div>
<input type="text" placeholder="请输入用药记录">
</div>
<div class="vrcode-input w-100">
<div class="input-title">鉴定方式</div>
<input type="text" placeholder="请输入鉴定方式">
</div>
<div class="vrcode-input w-100">
<div class="input-title">负责鉴定人员</div>
<input type="text" placeholder="请输入负责鉴定人员">
</div>
<div class="vrcode-input w-100">
<div class="input-title">决定施药人员</div>
<input type="text" placeholder="请输入决定施药人员">
</div>
<div class="vrcode-input w-100">
<div class="input-title">协助鉴定的单位</div>
<input type="text" placeholder="请输入协助鉴定的单位">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,161 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/reportLibrary.png" alt="" />
各种报告库
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data3" label="放置位置"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="操作时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="380px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
添加报告库
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-selimage">
<div class="title">实物图片</div>
<div class="sel-image-view">
<div class="sel-img sel-div" v-for="item, index in imgList" :key="index">
<el-image :src="item"></el-image>
<div class="del-img" @click="delImage(index)">
<img src="../../assets/img/del-image.png" alt="">
</div>
</div>
<label for="sel-img">
<div class="sel-image-sel sel-div" v-if="imgList.length < 6">
<img src="../../assets/img/add-image.png" alt="">
</div>
</label>
<input ref="fileInput" type="file" multiple id="sel-img" accept="image/*"
@change="handleImageChange" />
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,215 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/reportLibrary.png" alt="" />
人员管理
</div>
<div class="flex-view">
<div class="vrcode-btn blue-btn">
在岗人员
</div>
<div class="vrcode-btn cancle-btn">
非在岗人员
</div>
</div>
<div class="vrcode-table">
<div class="flex-start">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data3" show-overflow-tooltip label="开始时间"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="结束时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="400">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn save-btn" @click="addModel = true">
薪资设置
</div>
<div class="vrcode-btn cancle-btn" @click="addModel = true">
停止
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
新增农事信息
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input-sel">
<div class="title">种植计划</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择种植计划">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input-sel w-100">
<div class="title">操作类型</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link ">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作类型">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown" style="width: 646px;">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '2023-04-05 21:00',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'],
userInfo:null
}
},
mounted() {
this.userInfo = JSON.parse(localStorage.getItem("userInfo"));
this.dataInit()
},
methods: {
dataInit(){
var data={userId:this.userInfo.userid}
this.api.code_getplant(data).then(res=>{
console.log(res,111);
})
},
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,161 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/supplierManage.png" alt="" />
供应商管理
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">添加
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="data0" label="种植计划"></el-table-column>
<el-table-column prop="data1" label="操作类型"></el-table-column>
<el-table-column prop="data2" label="操作员"></el-table-column>
<el-table-column prop="data3" show-overflow-tooltip label="开始时间"></el-table-column>
<el-table-column prop="data4" show-overflow-tooltip label="结束时间"></el-table-column>
<el-table-column prop="data5" label="是否公开">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="740px" class="vrcode-model" :append-to-body="true">
<div class="vrcode-model-title">
新增农事信息
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
<div class="vrcode-input">
<div class="input-title">放置位置</div>
<input type="text" placeholder="请输入放置位置">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '2023-04-05 21:00',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue:false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'],
userInfo:null
}
},
mounted() {
this.userInfo = JSON.parse(localStorage.getItem("userInfo"));
this.dataInit()
},
methods: {
dataInit(){
var data={userId:this.userInfo.userid}
this.api.code_getplant(data).then(res=>{
console.log(res,111);
})
},
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>

View File

@ -0,0 +1,259 @@
<template>
<div class="plantingPlan ">
<div class="page-content">
<div class="table-title">
<img src="../../assets/vrcodeImg/suyuanBatch.png" alt="" />
溯源批次
</div>
<div class="flex-view">
<div class="vrcode-btn save-btn" @click="addModel = true">
<img src="../../assets/img/add.png" alt="">新增溯源批次
</div>
<div class="vrcode-input-sel">
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作员">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="vrcode-table">
<div class="vrcode-table-view table-view">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="520" style="width: 100%">
<el-table-column prop="id" label="序号"></el-table-column>
<el-table-column prop="data0" label="名称"></el-table-column>
<el-table-column prop="data1" label="温室清洁时间"></el-table-column>
<el-table-column prop="data3" label="消毒杀菌时间"></el-table-column>
<el-table-column prop="data2" label="清洁方式"></el-table-column>
<el-table-column prop="data5" label="使用药剂">
<template slot-scope="scope">
<div class="table-flex">
<div class="isOpen" :class="scope.row.data5 ? 'open-green' : 'open-red'">
{{ scope.row.data5 ? '已公开' : '未公开' }}
</div>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="530">
<template slot-scope="scope">
<div class="vrcode-table-btn">
<div class="vrcode-btn blue-btn" @click="addModel = true">
编辑
</div>
<div class="vrcode-btn save-btn" @click="addModel = true">
二维码
</div>
<div class="vrcode-btn cancle-btn" @click="addModel = true">
合格证二维码
</div>
<div class="vrcode-btn blue-btn" @click="addModel = true">
预览
</div>
<div class="vrcode-btn red-btn">
删除
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
<el-dialog title="提示" top="5vh" :visible.sync="addModel" width="80%" class="vrcode-model"
:append-to-body="true">
<div class="vrcode-model-title">
{{ edit ? '查看' : '新增' }}新增溯源批次
</div>
<div class="vrcode-content">
<div class="vrcode-view">
<div class="vrcode-title">种植信息</div>
<div class="vrcode-input-sel">
<div class="title">温室名称</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择温室号">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="vrcode-input-seltime">
<div class="title">播种日期</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择播种日期">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input-seltime">
<div class="title">播种日期</div>
<div class="seltime">
<el-date-picker v-model="value1" type="date" placeholder="请选择播种日期">
</el-date-picker>
<div class="seltime-icon">
<img src="../../assets/img/vrcode-time.png" alt="">
</div>
</div>
</div>
<div class="vrcode-input-sel">
<div class="title">作物名称</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择作物名称">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="vrcode-view">
<div class="vrcode-title">播种信息</div>
<div class="vrcode-input-sel">
<div class="title">操作员</div>
<el-dropdown @command="handleCommand">
<div class="el-dropdown-link">
<input v-model="TypeSel" type="text" class="input-input" placeholder="请选择操作人员名称">
<div class="arrow"><img src="../../assets/image/arrow.png" alt=""></div>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="item, index in typeSelList" :key="index" :command="index">{{
item.name
}}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="vrcode-view">
<div class="vrcode-title">播种信息</div>
<div class="vrcode-input w-50">
<div class="input-title">灌溉水处理</div>
<input type="text" placeholder="请输入灌溉水处理">
</div>
<div class="vrcode-input w-50">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
<div class="vrcode-input w-50">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
<div class="vrcode-input w-50">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
<div class="vrcode-input w-50">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
<div class="vrcode-input w-50">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
<div class="vrcode-input w-100">
<div class="input-title">水草的处理</div>
<input type="text" placeholder="请输入水草的处理">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn save-btn" @click="addModel = false">保存</div>
<div class="vrcode-btn cancle-btn" @click="addModel = false">取消</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
edit: false,
addModel: false,
tableData: [{
id: '13', data0: '西红柿种植',
data1: '施肥',
data2: '刘永强',
data3: '',
data4: '2023-04-05 21:00',
data5: true,
}, {}, {}, {}, {}, {}, {}, {},],
typeSelList: [{ name: '1#平均空气温度', value: 1, },
{ name: '2#平均空气温度', value: 2, },
{ name: '1#空气温度', value: 3, },
{ name: '2#空气温度', value: 4, },
{ name: '3#空气温度', value: 5, },
{ name: '4#空气温度', value: 6, },
{ name: '5#空气温度', value: 7, },
{ name: '6#空气温度', value: 8, },
{ name: '7#空气温度', value: 9, },
{ name: '8#空气温度', value: 10, },],
TypeSel: '',
value1: '',
modelisTrue: false,
imgList: ['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
}
},
mounted() { },
methods: {
handleCommand() {
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
},
delImage(index) {
console.log('删除图片', index);
this.imgList.splice(index, 1);
},
handleImageChange(event) {
const files = event.target.files;
if (files.length > 0) {
for (let i = 0; i < files.length; i++) {
const reader = new FileReader();
reader.onload = (e) => {
this.imgList.push(e.target.result);
};
reader.readAsDataURL(files[i]);
}
this.$refs.fileInput.value = '';
} else {
console.log(null);
}
}
},
}
</script>
<style lang="scss"></style>