From 059c7c46d0fc7ba29733fea0a4d78ceca85fa0ef Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 28 Aug 2018 17:18:55 +0800 Subject: [PATCH] i --- src/components/DragSelect/index.vue | 73 ++++++++++++++++++++++++ src/directive/el-dragSelect/drag.js | 30 ++++++++++ src/directive/el-dragSelect/index.js | 13 +++++ src/lang/en.js | 1 + src/lang/zh.js | 1 + src/router/modules/components.js | 6 ++ src/views/components-demo/dragSelect.vue | 68 ++++++++++++++++++++++ 7 files changed, 192 insertions(+) create mode 100644 src/components/DragSelect/index.vue create mode 100644 src/directive/el-dragSelect/drag.js create mode 100644 src/directive/el-dragSelect/index.js create mode 100644 src/views/components-demo/dragSelect.vue diff --git a/src/components/DragSelect/index.vue b/src/components/DragSelect/index.vue new file mode 100644 index 00000000..d362da60 --- /dev/null +++ b/src/components/DragSelect/index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/directive/el-dragSelect/drag.js b/src/directive/el-dragSelect/drag.js new file mode 100644 index 00000000..6bd2852e --- /dev/null +++ b/src/directive/el-dragSelect/drag.js @@ -0,0 +1,30 @@ +// import Sortable from 'sortablejs' + +// function setSort(el, binding) { +// // import('sortablejs').then(excel => { + +// // }) +// // import +// const d = el.querySelectorAll('.el-select__tags > span')[0] +// const sortable = Sortable.create(d, { +// ghostClass: 'sortable-ghost', // Class name for the drop placeholder, +// setData: function(dataTransfer) { +// dataTransfer.setData('Text', '') +// // to avoid Firefox bug +// // Detail see : https://github.com/RubaXa/Sortable/issues/1012 +// }, +// onEnd: evt => { +// console.log(binding) +// // console.log(evt) +// // const targetRow = this.value.splice(evt.oldIndex, 1)[0] +// // this.value.splice(evt.newIndex, 0, targetRow) +// } +// }) +// } + +// export default{ +// bind(el, binding, vnode) { +// console.log(binding) +// setSort(el, binding) +// } +// } diff --git a/src/directive/el-dragSelect/index.js b/src/directive/el-dragSelect/index.js new file mode 100644 index 00000000..89c13f8d --- /dev/null +++ b/src/directive/el-dragSelect/index.js @@ -0,0 +1,13 @@ +import drag from './drag' + +const install = function(Vue) { + Vue.directive('el-drag-select', drag) +} + +if (window.Vue) { + window['el-drag-select'] = drag + Vue.use(install); // eslint-disable-line +} + +drag.install = install +export default drag diff --git a/src/lang/en.js b/src/lang/en.js index 52fe707d..1d712bbe 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -22,6 +22,7 @@ export default { componentMixin: 'Mixin', backToTop: 'BackToTop', dragDialog: 'Drag Dialog', + dragSelect: 'Drag Select', dragKanban: 'Drag Kanban', charts: 'Charts', keyboardChart: 'Keyboard Chart', diff --git a/src/lang/zh.js b/src/lang/zh.js index ee182ec4..2b873419 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -22,6 +22,7 @@ export default { componentMixin: '小组件', backToTop: '返回顶部', dragDialog: '拖拽 Dialog', + dragSelect: '拖拽 Select', dragKanban: '可拖拽看板', charts: '图表', keyboardChart: '键盘图表', diff --git a/src/router/modules/components.js b/src/router/modules/components.js index 56dad2b1..b1e535e3 100644 --- a/src/router/modules/components.js +++ b/src/router/modules/components.js @@ -78,6 +78,12 @@ const componentsRouter = { name: 'DragDialogDemo', meta: { title: 'dragDialog' } }, + { + path: 'drag-select', + component: () => import('@/views/components-demo/dragSelect'), + name: 'DragSelectDemo', + meta: { title: 'dragSelect', noCache: true } + }, { path: 'dnd-list', component: () => import('@/views/components-demo/dndList'), diff --git a/src/views/components-demo/dragSelect.vue b/src/views/components-demo/dragSelect.vue new file mode 100644 index 00000000..12d60416 --- /dev/null +++ b/src/views/components-demo/dragSelect.vue @@ -0,0 +1,68 @@ + + + + +