<template> <div v-if="visible"> <el-dialog id="reviseplanDialog" :title="title" :destroy-on-close="true" :visible.sync="visible" :close-on-click-modal="false" append-to-body :before-close="closeDialog" width="90%"> <el-row class="dialogMinHeight"> <el-button class="successBorder" size="medium" style="position: absolute;z-index: 1;right: 2px;top: 2px;" @click="saveData()">应用</el-button> <el-tabs v-model="parentActiveName" type="border-card" @tab-click="handleClick"> <el-tab-pane label="栏舍配方" name="栏舍配方"> <DhedFormula ref="DhedFormula" :parent-date="date" /> </el-tab-pane> <el-tab-pane label="撒料计划" name="撒料计划"> <MaterialIssuancePlan ref="MaterialIssuancePlan" :parent-date="date" /> </el-tab-pane> <el-tab-pane label="预混计划" name="预混计划"> <PremixedPlan ref="PremixedPlan" :parent-date="date" /> </el-tab-pane> </el-tabs> </el-row> <div slot="footer" class="dialog-footer" style="bottom: 10px;"> <el-button class="cancelClose" @click="closeDialog()">关闭</el-button> </div> </el-dialog> </div> </template> <script> import { PostDataByName } from '@/api/common' import DhedFormula from './typePage/dhedFormula.vue' import MaterialIssuancePlan from './typePage/materialIssuancePlan.vue' import PremixedPlan from './typePage/premixedPlan.vue' import { MessageBox } from 'element-ui' import Cookies from 'js-cookie' export default { name: 'RevisePlan', components: { DhedFormula, MaterialIssuancePlan, PremixedPlan }, props: { show: { type: Boolean, default: false }, // 弹框可见标志 parentActiveName: { type: String, defalut: '栏舍配方' }, parentDate: { type: String, defalut: '' } }, data() { return { typeList: [{ id: '1', effect: 'dark', label: '栏舍配方' }, { id: '2', effect: 'plain', label: '撒料计划' }, { id: '3', effect: 'plain', label: '预混计划' }], visible: this.show, dialogFormVisible: false, dialogStatus: '', rules: {}, date: '', parentActiveName: '', temp: {}, title: '', isDhedFormula: true, isMaterialIssuancePlan: false, isPremixedPlan: false, textMap: { revisePlan: '修改计划' }, isokDisable: false, requestParam: {} } }, watch: { // 监听show,visible 随着show变化而变化 show: { immediate: true, handler(show) { this.visible = show } }, parentDate: { immediate: true, handler(newVal, oldVal) { console.log('newVal-date', newVal) this.date = newVal this.title = '修改计划——' + this.date } }, parentActiveName: { immediate: true, handler(newVal, oldVal) { console.log('newVal===', newVal) console.log('oldVal', oldVal) this.parentActiveName = newVal } } }, created() { }, methods: { closeDialog() { this.$emit('update:show', false) // 子组件更新弹框隐藏 this.$emit('activeName', '栏舍配方') }, saveData() { console.log('点击了应用') MessageBox.confirm('是否确认将当前修改计划应用至' + this.date, { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => { this.requestParam.name = 'updatedownloadedplanDone' this.requestParam.parammaps = {} this.requestParam.parammaps.pastureid = Cookies.get('pastureid') this.requestParam.parammaps.date = this.date PostDataByName(this.requestParam).then(response => { if (response.msg === 'fail') { this.$notify({ title: '保存失败', message: response.data, type: 'warning', duration: 2000 }) } else { this.$notify({ title: '成功', message: '保存成功', type: 'success', duration: 2000 }) this.closeDialog() this.$parent.getList() } }) }).catch(() => { this.$message({ type: 'info', message: '已取消应用' }) }) }, handleClick(item) { console.log(item.name) if (item.name == '撒料计划') { this.$refs.MaterialIssuancePlan.getIsDisplay() this.$refs.MaterialIssuancePlan.getDownList() } else if (item.name == '栏舍配方') { this.$refs.DhedFormula.getIsDisplay() this.$refs.DhedFormula.getDownList() } else { this.$refs.PremixedPlan.getDownList() this.$refs.PremixedPlan.getIsDisplay() this.$refs.PremixedPlan.getList() } } } } </script> <style lang="scss" scoped> #reviseplanDialog { margin-top: -10vh !important } </style>