This commit is contained in:
孟帅
2024-04-22 23:08:40 +08:00
parent 82483bd7b9
commit e144b12580
445 changed files with 17457 additions and 6708 deletions

View File

@@ -1,93 +1,99 @@
<template>
<n-date-picker v-bind="$props" v-model:value="modelValue" :shortcuts="shortcuts" :clearable="true"/>
<n-date-picker
v-bind="$props"
v-model:value="modelValue"
:shortcuts="showShortcuts ? shortcuts : undefined"
:clearable="true"
style="width: 100%"
/>
</template>
<script lang="ts">
import { computed, defineComponent, onMounted, ref } from 'vue';
import {
dateToTimestamp,
formatToDate,
formatToDateTime,
timestampToTime,
defShortcuts,
defRangeShortcuts,
} from '@/utils/dateUtil';
import { basicProps } from './props';
import { computed, defineComponent, onMounted, ref } from 'vue';
import {
dateToTimestamp,
defRangeShortcuts,
defShortcuts,
formatToDate,
formatToDateTime,
timestampToTime,
} from '@/utils/dateUtil';
import { basicProps } from './props';
export default defineComponent({
name: 'BasicUpload',
props: {
...basicProps,
},
emits: ['update:formValue', 'update:startValue', 'update:endValue'],
setup(props, { emit }) {
const shortcuts = ref<any>({});
export default defineComponent({
name: 'DatePicker',
props: {
...basicProps,
},
emits: ['update:formValue', 'update:startValue', 'update:endValue'],
setup(props, { emit }) {
const shortcuts = ref<any>({});
function getTimestamp(value) {
let t = dateToTimestamp(value);
if (t === 0) {
return new Date().getTime();
function getTimestamp(value) {
let t = dateToTimestamp(value);
console.log('getTimestamp t:' + t);
if (t === 0) {
return undefined;
}
return t;
}
return t;
}
function setTimestamp(value) {
if (!isTimeType()) {
return formatToDate(new Date(Number(value)).toDateString());
} else {
return formatToDateTime(timestampToTime(Number(value / 1000)));
}
}
function isRangeType() {
return props.type.indexOf('range') != -1;
}
function isTimeType() {
return props.type.indexOf('time') != -1;
}
const modelValue = computed({
get() {
if (!isRangeType()) {
const value = getTimestamp(props.formValue);
if (props.formValue == ""){
emit('update:formValue', setTimestamp(value));
}
return value;
function setTimestamp(value) {
if (value === undefined) {
return undefined;
}
if (!isTimeType()) {
return formatToDate(new Date(Number(value)).toDateString());
} else {
const value = [getTimestamp(props.startValue), getTimestamp(props.endValue)];
if (props.startValue == "" && props.endValue == ""){
return formatToDateTime(timestampToTime(Number(value / 1000)));
}
}
function isRangeType() {
return props.type.indexOf('range') != -1;
}
function isTimeType() {
return props.type.indexOf('time') != -1;
}
const modelValue = computed({
get() {
if (!isRangeType()) {
return getTimestamp(props.formValue);
} else {
const value = [getTimestamp(props.startValue), getTimestamp(props.endValue)];
if (!value[0] && !value[1]) {
return null;
}
return value;
}
},
set(value) {
if (!isRangeType()) {
emit('update:formValue', setTimestamp(value));
} else {
emit('update:startValue', setTimestamp(value[0]));
emit('update:endValue', setTimestamp(value[1]));
}
return value
}
},
set(value) {
},
});
onMounted(async () => {
if (!isRangeType()) {
emit('update:formValue', setTimestamp(value));
shortcuts.value = defShortcuts();
} else {
emit('update:startValue', setTimestamp(value[0]));
emit('update:endValue', setTimestamp(value[1]));
shortcuts.value = defRangeShortcuts();
}
},
});
});
onMounted(async () => {
if (!isRangeType()) {
shortcuts.value = defShortcuts();
} else {
shortcuts.value = defRangeShortcuts();
}
});
return {
modelValue,
shortcuts,
};
},
});
return {
modelValue,
shortcuts,
showShortcuts: props.showShortcuts,
};
},
});
</script>
<style lang="less"></style>

View File

@@ -15,4 +15,8 @@ export const basicProps = {
type: String as PropType<string> | undefined | Date,
default: () => '',
},
showShortcuts: {
type: Boolean as PropType<boolean>,
default: () => true,
},
};