index.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div class="confirm-d">
  3. <Modal class-name="vertical-center-modal" :title='title' v-model="show" :width="444">
  4. <Form :label-width='100' class="confirm_form" v-if="formData">
  5. <FormItem :label='item.title' v-for="(item,index) in formData" :key="index">
  6. <Select v-model="item.value" filterable clearable v-if="item.is_select" style="width:70%" filter-by-label>
  7. <Option v-for="(_item,_index) in item.list" :key="_index" :label="_item.title" :value='_item.id'/>
  8. </Select>
  9. <Input v-model="item.value" style="width:70%" v-else/>
  10. </FormItem>
  11. </Form>
  12. <div class='content-modal' v-else>{{content}}</div>
  13. <div class="modal-footer" slot="footer">
  14. <Button @click="cancel">取消</Button>
  15. <Button @click="then" :type="type ? type :'error'">确认</Button>
  16. </div>
  17. </Modal>
  18. </div>
  19. </template>
  20. <script>
  21. export default {
  22. data(){
  23. return {
  24. show:false,
  25. }
  26. },
  27. destroyed(){
  28. this.show = false
  29. },
  30. methods:{
  31. then(){
  32. this.$emit('then')
  33. },
  34. cancel(){
  35. this.$emit('cancel')
  36. },
  37. close(){
  38. this.show = false
  39. }
  40. }
  41. }
  42. </script>
  43. <style lang="scss" scoped>
  44. .modal-footer{display: flex;justify-content:flex-end;}
  45. </style>
  46. <style lang="scss">
  47. .confirm_form{
  48. }
  49. .content-modal{display: flex;justify-content: center;align-items: center;}
  50. .vertical-center-modal{display: flex;align-items: center;justify-content: center;
  51. .ivu-modal{top: 0;}
  52. }
  53. </style>