This commit is contained in:
2026-03-09 09:39:08 +08:00
parent 1b24d0284e
commit a75f9805a8
6 changed files with 69 additions and 9 deletions

View File

@ -15,4 +15,4 @@ VOLUME ["/etc/nginx/nginx.conf", "/usr/share/nginx/html"]
CMD ["nginx","-g","daemon off;"] CMD ["nginx","-g","daemon off;"]
# docker build -t docker.ges.bjgastx.com/itc-web:1.1.4 . # docker build -t docker.ges.bjgastx.com/itc-web:1.1.5 .

View File

@ -46,6 +46,7 @@
watch( watch(
() => props.value, () => props.value,
(val) => { (val) => {
debugger;
modelValue.value = val ? dayjs(val) : undefined; modelValue.value = val ? dayjs(val) : undefined;
}, },
{ {

View File

@ -11,6 +11,8 @@ import {
} from 'ant-design-vue'; } from 'ant-design-vue';
import type { ComponentType } from './types/componentType'; import type { ComponentType } from './types/componentType';
import { ApiSelect, ApiTreeSelect } from '/@/components/Form'; import { ApiSelect, ApiTreeSelect } from '/@/components/Form';
import { RangePicker } from '/@/components/RangePicker';
import { XjrDatePicker } from '/@/components/DatePicker';
const componentMap = new Map<ComponentType, Component>(); const componentMap = new Map<ComponentType, Component>();
@ -22,9 +24,11 @@ componentMap.set('AutoComplete', AutoComplete);
componentMap.set('ApiTreeSelect', ApiTreeSelect); componentMap.set('ApiTreeSelect', ApiTreeSelect);
componentMap.set('Switch', Switch); componentMap.set('Switch', Switch);
componentMap.set('Checkbox', Checkbox); componentMap.set('Checkbox', Checkbox);
componentMap.set('DatePicker', DatePicker);
componentMap.set('TimePicker', TimePicker); componentMap.set('TimePicker', TimePicker);
componentMap.set('DatePicker', XjrDatePicker);
componentMap.set('RangePicker', RangePicker);
export function add(compName: ComponentType, component: Component) { export function add(compName: ComponentType, component: Component) {
componentMap.set(compName, component); componentMap.set(compName, component);
} }

View File

@ -1,8 +1,10 @@
<template> <template>
<a-range-picker :size="size" v-model:value="modelValue" :placeholder="placeholder" :format="format" :valueFormat="format" :allowClear="allowClear" :disabled="disabled" @change="handleChange" /> <a-range-picker :size="size" v-model:value="modelValue" :placeholder="placeholder" :allowClear="allowClear" :disabled="disabled"
@input.stop="() => {}" @keydown.stop="() => {}" :inputReadOnly="true" @keyup.stop="() => {}" @change.stop="handleChange" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, watchEffect, inject, watch } from 'vue'; import { ref, watchEffect, inject, watch } from 'vue';
import dayjs, { Dayjs } from 'dayjs';
const props = defineProps({ const props = defineProps({
value: Array, value: Array,
@ -29,11 +31,12 @@
watch( watch(
() => props.value, () => props.value,
(val: any) => { (val: any) => {
debugger;
modelValue.value = props.valueType == 'Array' ? val || [] : val ? val.split(',') : ''; modelValue.value = props.valueType == 'Array' ? val || [] : val ? val.split(',') : '';
}, },
{ {
immediate: true immediate: true
} }
); );
watchEffect(() => { watchEffect(() => {
@ -41,6 +44,7 @@
// emit('update:value', []); // emit('update:value', []);
// return; // return;
// } // }
debugger;
if (props.mainKey) { if (props.mainKey) {
if (!formModel[props.mainKey]) return; if (!formModel[props.mainKey]) return;
const emitData = const emitData =
@ -55,7 +59,9 @@
} }
} }
}); });
const handleChange = (time) => { const handleChange = (time,e) => {
debugger;
console.log(time,e);
emit('update:value', props.valueType == 'Array' || !time ? time : time.join(',')); emit('update:value', props.valueType == 'Array' || !time ? time : time.join(','));
emit('change', props.valueType == 'Array' || !time ? time : time.join(',')); emit('change', props.valueType == 'Array' || !time ? time : time.join(','));
if (formModel && props.startField && props.endField) { if (formModel && props.startField && props.endField) {

View File

@ -11,6 +11,8 @@ import {
} from 'ant-design-vue'; } from 'ant-design-vue';
import type { ComponentType } from './types/componentType'; import type { ComponentType } from './types/componentType';
import { ApiSelect, ApiTreeSelect } from '/@/components/Form'; import { ApiSelect, ApiTreeSelect } from '/@/components/Form';
import { RangePicker } from '/@/components/RangePicker';
import { XjrDatePicker } from '/@/components/DatePicker';
const componentMap = new Map<ComponentType, Component>(); const componentMap = new Map<ComponentType, Component>();
@ -22,8 +24,9 @@ componentMap.set('AutoComplete', AutoComplete);
componentMap.set('ApiTreeSelect', ApiTreeSelect); componentMap.set('ApiTreeSelect', ApiTreeSelect);
componentMap.set('Switch', Switch); componentMap.set('Switch', Switch);
componentMap.set('Checkbox', Checkbox); componentMap.set('Checkbox', Checkbox);
componentMap.set('DatePicker', DatePicker); componentMap.set('DatePicker', XjrDatePicker);
componentMap.set('TimePicker', TimePicker); componentMap.set('TimePicker', TimePicker);
componentMap.set('RangePicker', RangePicker);
export function add(compName: ComponentType, component: Component) { export function add(compName: ComponentType, component: Component) {
componentMap.set(compName, component); componentMap.set(compName, component);

46
src/utils/theme/theme.ts Normal file
View File

@ -0,0 +1,46 @@
/**
* 主题样式
*/
export interface ThemeCss {
leftImg?: string;
topImg?: string;
backColor: string;
borderColor: string;
hoverColor: string;
activeColor: string;
textColor?: string;
}
/**
* 主题详情
*/
export class ThemeInfo {
name: string;
css: ThemeCss;
constructor(name: string, css: ThemeCss) {
this.name = name;
this.css = css;
}
};
export const ThemeType = {
DEFAULT: new ThemeInfo('default', { leftImg: '', topImg: '', backColor: '', borderColor: '', hoverColor: '', activeColor: '', textColor: '' }),
LIGHT: new ThemeInfo('light', { leftImg: '', topImg: '', backColor: '', borderColor: '', hoverColor: '', activeColor: '', textColor: '' }),
}
export const AppTheme = {
info:ThemeType.DEFAULT,
setTheme(theme: ThemeInfo) {
this.info = theme;
},
getTheme() {
return this.info;
},
getThemeCss() {
return this.info.css;
},
}