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) return sendPostRequest(`/readControl/setMemo`, data)
}, },
//二维码溯源部分
//种植计划
code_getplant(data){
return sendGetRequest(`/code/getplant`, data)
},
}; };

View File

@ -2911,6 +2911,12 @@ textarea {
align-items: center; align-items: center;
} }
.flex-start {
display: flex;
justify-content: flex-start;
align-items: center;
}
.vrcode .el-menu, .vrcode .el-menu,
.el-submenu__title:hover, .el-submenu__title:hover,
.el-menu-item:hover, .el-menu-item:hover,
@ -2995,7 +3001,7 @@ textarea {
} }
.vrcode-textarea textarea { .vrcode-textarea textarea {
width: 680px; width: calc(100% - 30px);
height: 160px; height: 160px;
background: rgba(90, 210, 255, 0.25); background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5); border: 2px solid rgba(86, 209, 255, 0.5);
@ -3216,6 +3222,169 @@ textarea {
color: #92B1D0; 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 { .vrcode-model.manage-model .el-dialog {
background: rgba(0, 59, 114, 0.8); background: rgba(0, 59, 114, 0.8);
border: 2px solid rgba(0, 186, 255, 0.35); border: 2px solid rgba(0, 186, 255, 0.35);
@ -3336,113 +3505,6 @@ textarea {
top: 4px; 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 { .vrcode-model .vrcode-radio {
width: 100%; width: 100%;
display: flex; display: flex;
@ -3460,29 +3522,6 @@ textarea {
margin-left: 8px; 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 { .vrcode-model.confirm-psw .el-dialog__body {
min-height: unset; min-height: unset;
} }
@ -3502,7 +3541,14 @@ textarea {
padding: 0 30px; 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%; width: 100%;
padding: 20px 0 15px 0; padding: 20px 0 15px 0;
border-bottom: 1px solid rgba(0, 180, 255, 0.35); border-bottom: 1px solid rgba(0, 180, 255, 0.35);
@ -3511,23 +3557,24 @@ textarea {
flex-wrap: wrap; flex-wrap: wrap;
} }
.vrcode-model .el-dialog__body .vrcode-content .vrcode-view > div { .vrcode-view > div {
flex-shrink: 0; 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 { .vrcode-input {
width: 300px; width: 300px;
margin-right: 30px; margin-right: 30px;
margin-bottom: 15px; margin-bottom: 15px;
} }
.vrcode-input.w-100 {
width: calc(100% - 30px);
}
.vrcode-input.w-50 {
width: calc(50% - 30px);
}
.vrcode-input .input-title { .vrcode-input .input-title {
font-size: 16px; font-size: 16px;
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
@ -3537,7 +3584,7 @@ textarea {
} }
.vrcode-input input { .vrcode-input input {
width: 300px; width: 100%;
height: 44px; height: 44px;
background: rgba(90, 210, 255, 0.25); background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5); border: 2px solid rgba(86, 209, 255, 0.5);
@ -3560,6 +3607,11 @@ textarea {
margin-bottom: 7px; margin-bottom: 7px;
} }
.vrcode-selimage .tips {
font-size: 16px;
color: #FF9999;
}
.vrcode-selimage .sel-image-view { .vrcode-selimage .sel-image-view {
display: flex; display: flex;
align-items: center; align-items: center;
@ -3573,7 +3625,7 @@ textarea {
.vrcode-selimage .sel-image-view .sel-div { .vrcode-selimage .sel-image-view .sel-div {
width: 130px; width: 130px;
height: 130px; height: 130px;
margin-right: 30px; margin-right: 10px;
background: rgba(86, 209, 255, 0.25); background: rgba(86, 209, 255, 0.25);
border: 1px dashed #56D1FF; border: 1px dashed #56D1FF;
cursor: pointer; cursor: pointer;

File diff suppressed because one or more lines are too long

View File

@ -3101,7 +3101,12 @@ textarea{
align-items: center; align-items: center;
} }
.flex-start {
display: flex;
justify-content: flex-start;
align-items: center;
}
.vrcode .el-menu, .vrcode .el-menu,
.el-submenu__title:hover, .el-submenu__title:hover,
.el-menu-item:hover, .el-menu-item:hover,
@ -3188,7 +3193,7 @@ textarea{
} }
textarea { textarea {
width: 680px; width: calc(100% - 30px);
height: 160px; height: 160px;
background: rgba(90, 210, 255, 0.25); background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5); 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 { .vrcode-model {
&.manage-model { &.manage-model {
.el-dialog { .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 { .vrcode-radio {
width: 100%; 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 { &.confirm-psw {
.el-dialog__body { .el-dialog__body {
@ -3732,18 +3765,7 @@ textarea{
height: calc(100% - 43px); height: calc(100% - 43px);
padding: 0 30px; 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 { .vrcode-input {
width: 300px; width: 300px;
margin-right: 30px; margin-right: 30px;
margin-bottom: 15px; margin-bottom: 15px;
&.w-100{
width: calc(100% - 30px);
}
&.w-50{
width: calc(50% - 30px);
}
.input-title { .input-title {
font-size: 16px; font-size: 16px;
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
@ -3771,7 +3809,7 @@ textarea{
} }
input { input {
width: 300px; width:100%;
height: 44px; height: 44px;
background: rgba(90, 210, 255, 0.25); background: rgba(90, 210, 255, 0.25);
border: 2px solid rgba(86, 209, 255, 0.5); border: 2px solid rgba(86, 209, 255, 0.5);
@ -3793,7 +3831,10 @@ textarea{
>.title { >.title {
margin-bottom: 7px; margin-bottom: 7px;
} }
.tips{
font-size: 16px;
color: #FF9999;
}
.sel-image-view { .sel-image-view {
display: flex; display: flex;
align-items: center; align-items: center;
@ -3806,7 +3847,7 @@ textarea{
.sel-div { .sel-div {
width: 130px; width: 130px;
height: 130px; height: 130px;
margin-right: 30px; margin-right: 10px;
background: rgba(86, 209, 255, 0.25); background: rgba(86, 209, 255, 0.25);
border: 1px dashed #56D1FF; border: 1px dashed #56D1FF;
cursor: pointer; cursor: pointer;
@ -4500,6 +4541,7 @@ textarea{
>img { >img {
width: 6px; width: 6px;
height: 4px; 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', path: '/setsuyuan',
name: 'setsuyuan', name: 'setsuyuan',
component: () => import('../views/vrcode/setsuyuan.vue') 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')
},
]
}, },
] ]

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -201,11 +201,22 @@ export default {
TypeSel: '', TypeSel: '',
value1: '', value1: '',
modelisTrue:false, 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: { methods: {
dataInit(){
var data={userId:this.userInfo.userid}
this.api.code_getplant(data).then(res=>{
console.log(res,111);
})
},
handleCommand() { 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>