blob: 4601261782e68e0d12af15ab2ac2b69a41c2e0b2 [file] [log] [blame]
<template>
<el-dialog append-to-body limited-area
:close-on-press-escape="false"
:close-on-click-modal="false"
:title="$t(`kylinLang.model.${editCC ? 'editCC' : 'addCC'}`)" width="480px" :visible="isShow" @close="closeModal()">
<el-alert :title="$t('editCCTip')" type="warning" v-if="editCC" showIcon :closable="false" />
<CCEditForm v-if="isShow" @saveSuccess="saveCC" @saveError="saveCCError" ref="ccForm" @resetSubmitLoading="resetLoading" :isPureForm="true" :currentCCForm="currentCCForm" :modelInstance="modelInstance" :isEdited="editCC"/>
<div slot="footer" class="dialog-footer ky-no-br-space">
<el-button @click="closeModal" size="medium">{{$t('kylinLang.common.cancel')}}</el-button>
<el-button type="primary" @click="submit" :loading="btnLoading" size="medium">{{$t('kylinLang.common.submit')}}</el-button>
</div>
</el-dialog>
</template>
<script>
import Vue from 'vue'
import { Component } from 'vue-property-decorator'
import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
import vuex from '../../../../store'
import locales from './locales'
import store, { types } from './store'
import CCEditForm from '../ComputedColumnForm/ccform.vue'
vuex.registerModule(['modals', 'CCAddModal'], store)
@Component({
computed: {
...mapGetters(['currentSelectedProject']),
...mapState('CCAddModal', {
isShow: state => state.isShow,
callback: state => state.callback,
modelInstance: state => state.form.modelInstance,
currentCCForm: state => state.form.currentCCForm,
editCC: state => state.editCC
})
},
methods: {
...mapActions({
getModelByModelName: 'LOAD_MODEL_INFO'
}),
...mapMutations('CCAddModal', {
setModal: types.SET_MODAL,
hideModal: types.HIDE_MODAL,
setModalForm: types.SET_MODAL_FORM,
resetModalForm: types.RESET_MODAL_FORM
})
},
components: {
CCEditForm
},
locales
})
export default class CCAddModal extends Vue {
btnLoading = false
saveCC () {
this.btnLoading = false
this.closeModal(true)
}
saveCCError () {
this.btnLoading = false
}
closeModal (isSubmit) {
this.hideModal()
setTimeout(() => {
this.callback && this.callback(isSubmit)
this.resetModalForm()
}, 200)
}
async submit () {
this.btnLoading = true
this.$refs.ccForm.$emit('addCC')
}
resetLoading () {
this.btnLoading = false
}
}
</script>
<style lang="less">
</style>