DirectiveEditor.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <script setup lang="ts">
  2. import DirectiveAdd from '@/views/domain/ngx_conf/directive/DirectiveAdd'
  3. import {useGettext} from 'vue3-gettext'
  4. import {reactive, ref} from 'vue'
  5. import DirectiveEditorItem from '@/views/domain/ngx_conf/directive/DirectiveEditorItem.vue'
  6. import draggable from 'vuedraggable'
  7. const {$gettext} = useGettext()
  8. const props = defineProps(['ngx_directives', 'readonly'])
  9. const adding = ref(false)
  10. let directive = reactive({})
  11. const current_idx = ref(-1)
  12. function onSave(idx: number) {
  13. setTimeout(() => {
  14. current_idx.value = idx + 1
  15. }, 50)
  16. }
  17. </script>
  18. <template>
  19. <h2>{{ $gettext('Directives') }}</h2>
  20. <draggable
  21. :list="props.ngx_directives"
  22. item-key="name"
  23. class="list-group"
  24. ghost-class="ghost"
  25. handle=".anticon-holder"
  26. >
  27. <template #item="{ element: directive, index }">
  28. <directive-editor-item @click="current_idx=index"
  29. :directive="directive"
  30. :current_idx="current_idx" :index="index"
  31. :ngx_directives="ngx_directives"
  32. :readonly="readonly"
  33. v-auto-animate
  34. />
  35. </template>
  36. </draggable>
  37. <directive-add v-if="!readonly" :ngx_directives="ngx_directives" v-auto-animate/>
  38. </template>
  39. <style lang="less" scoped>
  40. </style>