Skip to content

Commit 7cda2a8

Browse files
author
Kenneth Cheng
committed
upgrade draggable to vue3
1 parent ce3add9 commit 7cda2a8

File tree

4 files changed

+47
-16
lines changed

4 files changed

+47
-16
lines changed

package-lock.json

Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
"name": "vue3-excel-editor",
33
"email": "apple.6502@gmail.com",
44
"description": "Vue3 plugin for displaying and editing the array-of-object in Excel style",
5-
"version": "1.0.4",
5+
"version": "1.0.5",
66
"main": "src/main.js",
77
"dependencies": {
88
"@vuepic/vue-datepicker": "^3.3.0",
99
"moment": "^2.29.1",
10+
"vuedraggable": "^4.1.0",
1011
"xlsx": "^0.18.5"
1112
},
1213
"repository": {

src/PanelSetting.vue

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
</div>
2020
<div>
2121
<div ref="panelList" class="panel-list">
22-
<!-- draggable v-model="fields" draggable=".panel-list-item" item-key="fields">
23-
<div v-for="(item, k) in fields" :key="k"
24-
class="panel-list-item"
25-
@click.prevent="columnLabelClick($event, item)">
26-
<input type="checkbox" :checked="!item.invisible" :disabled="true" class="panel-checkbox">
27-
<span>{{ item.label }}</span>
28-
</div>
29-
</draggable-->
22+
<draggable v-model="fields" draggable=".panel-list-item" item-key="fields">
23+
<template #item="{element}">
24+
<div class="panel-list-item" @click.prevent="columnLabelClick($event, element)">
25+
<input type="checkbox" v-model="element.invisible" class="panel-checkbox" :true-value="false" :false-value="true">
26+
<span>{{ element.label }}</span>
27+
</div>
28+
</template>
29+
</draggable>
3030
</div>
3131
</div>
3232
</div>
@@ -46,12 +46,12 @@
4646
</template>
4747

4848
<script>
49-
// import draggable from 'vuedraggable'
49+
import draggable from 'vuedraggable'
5050
5151
export default {
52-
// components: {
53-
// 'draggable': draggable
54-
// },
52+
components: {
53+
'draggable': draggable
54+
},
5555
props: {
5656
modelValue: Array,
5757
localizedLabel: {

src/VueExcelEditor.vue

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ import PanelSetting from './PanelSetting.vue'
281281
import PanelFind from './PanelFind.vue'
282282
import DatePicker from '@vuepic/vue-datepicker'
283283
import {read, writeFile, utils} from 'xlsx'
284+
import moment from 'moment'
284285
285286
import '@vuepic/vue-datepicker/dist/main.css'
286287
@@ -1053,9 +1054,25 @@ export default {
10531054
})
10541055
},
10551056
datepickerClick () {
1056-
this.inputBox.value = this.inputDateTime
1057+
const m = moment(this.inputDateTime)
1058+
switch(this.currentField.type) {
1059+
case 'date':
1060+
this.inputBox.value = m.format('YYYY-MM-DD')
1061+
break
1062+
case 'datetime':
1063+
this.inputBox.value = m.format('YYYY-MM-DD hh:mn:00')
1064+
break
1065+
case 'datetimesec':
1066+
this.inputBox.value = m.format('YYYY-MM-DD hh:mn:ss')
1067+
break
1068+
case 'datetick':
1069+
case 'datetimetick':
1070+
case 'datetimesectick':
1071+
this.inputBox.value = m.valueOf()
1072+
break
1073+
}
10571074
this.inputBoxShow = 0
1058-
this.inputCellWrite(this.inputDateTime)
1075+
this.inputCellWrite(this.inputBox.value)
10591076
this.showDatePicker = false
10601077
this.focused = true
10611078
},

0 commit comments

Comments
 (0)