From f0614eae87c06eedf0b11070a9e3a1ad3289f974 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 08 Aug 2022 19:25:46 +0800
Subject: [PATCH] 结束种养可选择结束时间,首页结束种养按钮点击后列表

---
 src/views/wel/index.vue           |   57 ++-
 src/views/farmplant/farmplant.vue |   86 +++++-
 src/views/wel/over.vue            |  592 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 693 insertions(+), 42 deletions(-)

diff --git a/src/views/farmplant/farmplant.vue b/src/views/farmplant/farmplant.vue
index 45d88d7..e583381 100644
--- a/src/views/farmplant/farmplant.vue
+++ b/src/views/farmplant/farmplant.vue
@@ -31,7 +31,30 @@
             </template>
             <template slot-scope="{ type, size, row }" slot="menu">
               <el-button icon="el-icon-check" :size="size" :type="type" @click="recovery(row)">采 收</el-button>
-              <el-button icon="el-icon-error" :size="size" :type="type" @click="over(row.id)">结 束</el-button>
+              <!-- <el-button icon="el-icon-error" :size="size" :type="type" @click="over(row.id)">结 束</el-button> -->
+              <el-button icon="el-icon-error" :size="size" :type="type" @click="getData(row)">结 束</el-button>
+
+                <el-dialog
+                    title="确认结束种养"
+                    :visible.sync="overVisible"
+                    width="30%"
+                    append-to-body="true">
+                    <div class="block">
+                        <span class="demonstration">结束时间</span>
+                        <el-date-picker
+                        v-model="endPlantTime"
+                        type="date"
+                        placeholder="选择日期"
+                        value-format="yyyy-MM-dd"
+                        align="center">
+                        </el-date-picker>
+                    </div>
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="overVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="over">确 定</el-button>
+                    </span>
+                </el-dialog>
+
                 <el-button
                     :type="type"
                     :size="size"
@@ -68,6 +91,7 @@
             recoveryVisible: false,
             detectionVisible: false,
             visible: true,
+            overVisible:false,
             form: {},
             query: {},
             loading: true,
@@ -422,6 +446,9 @@
                 ],
             },
             data: [],
+            endPlantTime:"",
+            //结束种养时的传输数据
+            overData:""
         }
     },
     watch: {
@@ -730,29 +757,48 @@
             this.$refs.recovery.init(data)
           })
         },
+        // 结束种植
+        // over(id) {
+        //     var that = this
+        //     that.$confirm("确定结束当前种植的农产品?", {
+        //       confirmButtonText: "确定",
+        //       cancelButtonText: "取消",
+        //       type: "warning",
+        //     })
+        //     .then(() => {
+        //         const data = {
+        //           id: id,
+        //           status: 2,
+        //         }
+        //         return update(data)
+        //     })
+        //     .then(() => {
+        //         that.onLoad(this.page, this.query)
+        //         that.$message({
+        //           type: "success",
+        //           message: "操作成功!",
+        //         })
+        //     })
+        // },
         //结束种植
-        over (id) {
-            var that = this
-            that.$confirm("确定结束当前种植的农产品?", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning",
-            })
-            .then(() => {
-                const data = {
-                  id: id,
-                  status: 2,
+        over(){
+            this.overData.endPlantTime = this.endPlantTime
+            const data = {
+                id:this.overData.id,
+                status:2,
+                endPlantTime:this.overData.endPlantTime
+            }
+            update(data).then((res)=>{
+                if(res.data.code == 200){
+                    this.onLoad(this.page, this.query)
                 }
-                return update(data)
             })
-            .then(() => {
-                that.onLoad(this.page, this.query)
-                that.$message({
-                  type: "success",
-                  message: "操作成功!",
-                })
-            })
+            this.overVisible = false
         },
+        getData(row){
+            this.overVisible = true
+            this.overData = row
+        }
     },
 };
 </script>
diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue
index 20fe223..16a1134 100644
--- a/src/views/wel/index.vue
+++ b/src/views/wel/index.vue
@@ -75,7 +75,8 @@
                             <el-button plain size="small" @click="recovery(item)">
                                 <span style="color: #5abf78">采收</span>
                             </el-button>
-                            <el-button plain size="small" @click="over(item.id)">结束</el-button>
+                            <!-- <el-button plain size="small" @click="over(item.id)">结束</el-button> -->
+                            <el-button plain size="small" @click="over(item)">结束</el-button>
                         </div>
                     </div>
                 </div>
@@ -168,6 +169,8 @@
         </div>
         <!-- 弹窗, 采收 -->
         <recovery v-if="recoveryVisible" ref="recovery" :farmDetail="farm"></recovery>
+        <!-- 弹窗,结束种养-->
+        <over v-if="overVisible" ref="over" :farmDetail="farm"></over>
         <!-- 圈地 -->
         <land v-if="landVisible" ref="land"></land>
         <!-- 种养品 -->
@@ -187,6 +190,7 @@
 import { StockCount } from "@/api/stock/stock"
 import {getFarmList} from "@/api/farm/farm";
 import recovery from "./recovery.vue"
+import over from "./over.vue"
 import land from "./land.vue"
 import plant from "./plant.vue"
 import farming from "./farming.vue"
@@ -194,6 +198,7 @@
 export default {
     components: {
         recovery,
+        over,
         land,
         plant,
         farming,
@@ -213,6 +218,7 @@
             farmingCount: 0,
             farmPlanList: [],
             recoveryVisible: false,
+            overVisible:false,
             landVisible: false,
             plantVisible: false,
             farmingVisible: false,
@@ -321,29 +327,36 @@
                 this.$refs.recovery.init(data)
             })
         },
-        //结束种植
-        over (id) {
-            var that = this
-            this.$confirm("确定结束当前种植的农产品?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
+        //结束种养
+        over(data) {
+            this.overVisible = true
+            this.$nextTick(() => {
+                this.$refs.over.initData(data)
             })
-                .then(() => {
-                    const data = {
-                        id: id,
-                        status: 2,
-                    }
-                    return update(data)
-                })
-                .then(() => {
-                    that.onLoad()
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    })
-                })
         },
+        //结束种植
+        // over (id) {
+        //     var that = this
+        //     this.$confirm("确定结束当前种植的农产品?", {
+        //         confirmButtonText: "确定",
+        //         cancelButtonText: "取消",
+        //         type: "warning",
+        //     })
+        //         .then(() => {
+        //             const data = {
+        //                 id: id,
+        //                 status: 2,
+        //             }
+        //             return update(data)
+        //         })
+        //         .then(() => {
+        //             that.onLoad()
+        //             this.$message({
+        //                 type: "success",
+        //                 message: "操作成功!",
+        //             })
+        //         })
+        // },
         //圈地
         land () {
             this.landVisible = true
diff --git a/src/views/wel/over.vue b/src/views/wel/over.vue
new file mode 100644
index 0000000..7695e8a
--- /dev/null
+++ b/src/views/wel/over.vue
@@ -0,0 +1,592 @@
+<template>
+        <el-dialog
+            v-if="visible"
+            title="确认结束种养"
+            :visible.sync="visible"
+            width="80%"
+            :modal-append-to-body="false"
+            :append-to-body="true"
+            :close-on-click-modal="false"
+            destroy-on-close="true">
+                    
+        <avue-crud
+            :option="option"
+            :table-loading="loading"
+            :data="data"
+            :page.sync="page"
+            :permission="permissionList"
+            :before-open="beforeOpen"
+            v-model="form"
+            ref="crud"
+            @search-change="searchChange"
+            @search-reset="searchReset"
+            @selection-change="selectionChange"
+            @current-change="currentChange"
+            @size-change="sizeChange"
+            @refresh-change="refreshChange"   
+        >
+            <template slot-scope="{ type, size, row }" slot="menu">
+              <el-button icon="el-icon-error" :size="size" :type="type" @click="getData(row)">结 束</el-button>
+                <el-dialog
+                    title="确认结束种养"
+                    :visible.sync="overVisible"
+                    width="30%"
+                    append-to-body="true">
+                    <div class="block">
+                        <span class="demonstration">结束时间</span>
+                        <el-date-picker
+                        v-model="endPlantTime"
+                        type="date"
+                        placeholder="选择日期"
+                        value-format="yyyy-MM-dd"
+                        align="center">
+                        </el-date-picker>
+                    </div>
+                    <span slot="footer" class="dialog-footer">
+                        <el-button @click="overVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="over">确 定</el-button>
+                    </span>
+                </el-dialog>
+            </template>
+        </avue-crud>
+        </el-dialog>
+</template>
+
+<script>
+import { getDetail, getList, update, remove, save } from "@/api/farmplant/farmplant"
+import { getStrainList } from "@/api/farmplant/strain"
+import { getLandList } from "@/api/land/land"
+import { mapGetters } from "vuex"
+import detection from "../farmplant/detection.vue"
+import recovery from "./recovery.vue"
+export default {
+    components: {
+        recovery,
+        detection
+    },
+    props: {
+        farmDetail:{
+            type:Object
+        }
+    },
+    data () {
+        return {
+            visible: true,
+            overVisible:false,
+            form: {},
+            query: {},
+            loading: true,
+            excelBox: false,
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+            },
+            selectionList: [],
+            landList: [],
+            landId: 0,
+            option: {
+                tip: false,
+                height: 520,
+                editBtn: false,
+                delBtn: false,
+                viewBtn: false,
+                header:false,
+                menuWidth: 100,
+                menuAlign: "center",
+                align: "center",
+                selection: true,
+                searchShow: true,
+                searchMenuSpan: 6,
+                indexFixed: false,
+                selectionFixed: false,
+                expandFixed: false,
+                menuFixed: false,
+                column: [
+                    {
+                        label: "种养品",
+                        prop: "strainId",
+                        hide: true,
+                        labelWidth: 110,
+                        type: "tree",
+                        dicData: [],
+                        props: {
+                            label: "strainName",
+                            value: "id"
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择种养品",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "种养品名称",
+                        prop: "strainName",
+                        search: true,
+                        searchSpan: 5,
+                        searchLabelWidth: 110,
+                        display: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入种养品",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "品种",
+                        prop: "varieties",
+                        // search:true,
+                        // searchSpan:5,
+                        labelWidth: 110,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入种养品名称",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "种养品图片",
+                        prop: "url",
+                        type: "upload",
+                        listType: "picture-img",
+                        width: 100,
+                        labelWidth: 110,
+                        display: false,
+                    },
+                    {
+                        label: "所属地块",
+                        prop: "landName",
+                        display: false,
+                    },
+                    {
+                        label: "所属地块",
+                        prop: "landId",
+                        searchSpan: 4,
+                        type: "tree",
+                        hide: true,
+                        dicData: [],
+                        props: {
+                            label: "landName",
+                            value: "id"
+                        },
+                        labelWidth: 110,
+                        change: (val) => {
+                          this.landId = val.value
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择所属地块",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "种植标准",
+                        prop: "plant",
+                        // search:true,
+                        // searchSpan:4,
+                        labelWidth: 110,
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "有机",
+                                value: "0"
+                            },
+                            {
+                                label: "绿色",
+                                value: "1"
+                            },
+                            {
+                                label: "无公害",
+                                value: "2"
+                            },
+                            {
+                                label: "普通",
+                                value: "3"
+                            },
+                        ],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择种植标准",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "种植方式",
+                        prop: "plantingWay",
+                        // search:true,
+                        // searchSpan:4,
+                        type: "select",
+                        labelWidth: 110,
+                        dicData: [
+                            {
+                                label: "移栽",
+                                value: "0"
+                            },
+                            {
+                                label: "直播",
+                                value: "1"
+                            },
+                        ],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择种植方式",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "作业方式",
+                        prop: "jobWay",
+                        // search:true,
+                        // searchSpan:4,
+                        labelWidth: 110,
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "人工",
+                                value: "0"
+                            },
+                            {
+                                label: "机械",
+                                value: "1"
+                            },
+                        ],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入作业方式",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "移栽时间",
+                        prop: "transplanTimeStart",
+                        search:true,
+                        searchValue:"",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        labelWidth: 110,
+                        width:82,
+                        hide:true,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择移栽时间",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "移栽时间",
+                        prop: "transplanTime",
+                        searchValue:"",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        labelWidth: 110,
+                        width:82,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择移栽时间",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "预计采收时间",
+                        prop: "recoveryTime",
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                        hide: true,
+                        labelWidth: 110,
+                        rules: [
+                            {
+                                required: false,
+                                message: "请选预计采收时间",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "预计亩产",
+                        prop: "per",
+                        labelWidth: 110,
+                        hide: true,
+                        type: "number",
+                        rules: [
+                            {
+                                required: false,
+                                message: "请输入预计亩产",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "株数",
+                        prop: "plantNumber",
+                        labelWidth: 110,
+                        type: "number",
+                        hide: true,
+                        rules: [
+                            {
+                                required: false,
+                                message: "请输入株数",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    {
+                        label: "株间距",
+                        prop: "plantSpacing",
+                        labelWidth: 110,
+                        type: "number",
+                        hide: true,
+                        rules: [
+                            {
+                                required: false,
+                                message: "请输入株间距",
+                                trigger: "blur",
+                            },
+                        ],
+                        // display:false,
+                    },
+                    // {
+                    //   label: "投苗时间",
+                    //   prop: "seedingTime",
+                    //   type: "date",
+                    //   format: "yyyy-MM-dd",
+                    //   valueFormat: "yyyy-MM-dd",
+                    //   labelWidth:110,
+                    //   hide:true,
+                    //   rules: [
+                    //     {
+                    //       required: true,
+                    //       message: "请选择投苗时间",
+                    //       trigger: "blur",
+                    //     },
+                    //   ],
+                    //   display:false,
+                    // },
+                    // {
+                    //   label: "养殖数量",
+                    //   prop: "breed",
+                    //   labelWidth:110,
+                    //   type:"number",
+                    //   hide:true,
+                    //   rules: [
+                    //     {
+                    //       required: true,
+                    //       message: "请输入养殖数量",
+                    //       trigger: "blur",
+                    //     },
+                    //   ],
+                    //   display:false,
+                    // },
+                    {
+                        label: "种植状态",
+                        prop: "status",
+                        searchValue:"1",
+                        search: true,
+                        searchSpan: 4,
+                        labelWidth: 110,
+                        type: "select",
+                        dicData: [
+                            {
+                                label: "种植中",
+                                value: "1"
+                            },
+                            {
+                                label: "已结束",
+                                value: "2"
+                            },
+                        ],
+                        display: false,
+                    },
+                ],
+            },
+            data: [],
+            endPlantTime:"",
+            //结束种养时的传输数据
+            overData:"",
+            strainId:"",
+        }
+    },
+    created () {
+        // this.initData()
+    },
+    computed: {
+        ...mapGetters(["permission", "userInfo"]),
+        // permissionList() {
+        //   return {
+        //     addBtn: this.vaildData(this.permission.social_add, true),
+        //     viewBtn: this.vaildData(this.permission.social_view, false),
+        //     delBtn: this.vaildData(this.permission.social_delete, false),
+        //     editBtn: this.vaildData(this.permission.social_edit, false),
+        //   };
+        // },
+        ids () {
+            let ids = []
+            this.selectionList.forEach((ele) => {
+                ids.push(ele.id)
+            })
+            return ids.join(",")
+        },
+    },
+    methods: {
+        //初始化数据
+        initData(data){
+            var that = this
+            this.strainId = data.strainId
+            that.visible = true;
+            var params={
+                status:"1"
+            }
+            this.onLoad(this.page,params)
+            //获取农地数据
+            getLandList(that.userInfo.dept_id).then((res) => {
+                if (res.data.code == 200) {
+                    var landIdcolumn = that.findObject(that.option.column, "landId")
+                    that.landList = res.data.data
+                    landIdcolumn.dicData = res.data.data
+                }
+            })
+            //获取农产品数据
+            getStrainList(0).then((res) => {
+                if (res.data.code == 200) {
+                    var strainId = that.findObject(that.option.column, "strainId")
+                    strainId.dicData = res.data.data
+                }
+            })
+            
+        },
+        searchReset () {
+            this.query = {}
+            this.onLoad(this.page)
+        },
+        searchChange (params, done) {
+            if(params.transplanTimeStart !=""){
+                params['transplanTimeEnd']=this.getEndDate(params.transplanTimeStart,1)
+            }
+            this.query = params
+            console.log(this.query)
+            this.page.currentPage = 1
+            this.onLoad(this.page, params)
+            this.query = {}
+            done()
+        },
+        selectionChange (list) {
+            this.selectionList = list
+        },
+        selectionClear () {
+            this.selectionList = []
+            this.$refs.crud.toggleSelection()
+        },
+        currentChange (currentPage) {
+            this.page.currentPage = currentPage
+        },
+        sizeChange (pageSize) {
+            this.page.pageSize = pageSize
+        },
+        refreshChange () {
+            this.onLoad(this.page, this.query)
+        },
+        onLoad (page, params = {}) {
+            var datas = this.$route.query.id
+            params.landId = datas
+            if (this.landId) {
+              params['landId'] = this.landId
+            }
+            params['tenantId'] = this.userInfo.tenant_id
+            params['deptId'] = this.userInfo.dept_id
+            params['farmId'] = this.farmDetail.id
+            params['strainId'] = this.strainId
+            this.loading = true
+            getList(
+                page.currentPage,
+                page.pageSize,
+                Object.assign(params, this.query)
+            ).then((res) => {
+                const data = res.data.data
+                this.page.total = data.total
+                this.data = data.records
+                this.loading = false
+                this.selectionClear()
+            })
+        },
+        // 结束种植
+        // over(id) {
+        //     var that = this
+        //     that.$confirm("确定结束当前种植的农产品?", {
+        //       confirmButtonText: "确定",
+        //       cancelButtonText: "取消",
+        //       type: "warning",
+        //     })
+        //     .then(() => {
+        //         const data = {
+        //           id: id,
+        //           status: 2,
+        //         }
+        //         return update(data)
+        //     })
+        //     .then(() => {
+        //         that.onLoad(this.page, this.query)
+        //         that.$message({
+        //           type: "success",
+        //           message: "操作成功!",
+        //         })
+        //     })
+        // },
+        //结束种植
+        over(){
+            this.overData.endPlantTime = this.endPlantTime
+            const data = {
+                id:this.overData.id,
+                status:2,
+                endPlantTime:this.overData.endPlantTime
+            }
+            update(data).then((res)=>{
+                if(res.data.code == 200){
+                    this.onLoad(this.page, this.query)
+                }
+            })
+            this.overVisible = false
+        },
+        getData(row){
+            this.overVisible = true
+            this.overData = row
+        },
+        getEndDate(date,num){
+            var array = date.split('-')
+            array[2]=array[2]-0+num
+            return array[0]+"-"+array[1]+"-"+array[2]
+        }
+    },
+};
+</script>
+
+<style>
+</style>

--
Gitblit v1.9.3