mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-12-11 02:12:51 +00:00
Compare commits
2 Commits
054ed561b6
...
2667981e4c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2667981e4c | ||
|
|
b536eba81c |
@ -133,16 +133,15 @@ const { pageSize, currentPage, paginationData, handleSizeChange, handleCurrentCh
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { nextZIndex } = useZIndex();
|
const { nextZIndex } = useZIndex();
|
||||||
|
const updateKey = ref(1);
|
||||||
|
|
||||||
const { addable, newHandler } = useAdd(props, emit);
|
const { addable, newHandler } = useAdd(props, emit);
|
||||||
const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName);
|
const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName);
|
||||||
useSortable(props, emit, tMagicTableRef, modelName);
|
useSortable(props, emit, tMagicTableRef, modelName, updateKey);
|
||||||
const { isFullscreen, toggleFullscreen } = useFullscreen();
|
const { isFullscreen, toggleFullscreen } = useFullscreen();
|
||||||
const { importable, excelHandler, clearHandler } = useImport(props, emit, newHandler);
|
const { importable, excelHandler, clearHandler } = useImport(props, emit, newHandler);
|
||||||
const { selectHandle, toggleRowSelection } = useSelection(props, emit, tMagicTableRef);
|
const { selectHandle, toggleRowSelection } = useSelection(props, emit, tMagicTableRef);
|
||||||
|
|
||||||
const updateKey = ref(1);
|
|
||||||
|
|
||||||
const data = computed(() => (props.config.pagination ? paginationData.value : props.model[modelName.value]));
|
const data = computed(() => (props.config.pagination ? paginationData.value : props.model[modelName.value]));
|
||||||
|
|
||||||
const toggleMode = () => {
|
const toggleMode = () => {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { inject, type Ref, type ShallowRef, watchEffect } from 'vue';
|
import { inject, nextTick, type Ref, type ShallowRef, watchEffect } from 'vue';
|
||||||
import Sortable, { type SortableEvent } from 'sortablejs';
|
import Sortable, { type SortableEvent } from 'sortablejs';
|
||||||
|
|
||||||
import { type TMagicTable } from '@tmagic/design';
|
import { type TMagicTable } from '@tmagic/design';
|
||||||
@ -13,6 +13,7 @@ export const useSortable = (
|
|||||||
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void,
|
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void,
|
||||||
tMagicTableRef: ShallowRef<InstanceType<typeof TMagicTable> | null>,
|
tMagicTableRef: ShallowRef<InstanceType<typeof TMagicTable> | null>,
|
||||||
modelName: Ref<string | number>,
|
modelName: Ref<string | number>,
|
||||||
|
updateKey: Ref<number>,
|
||||||
) => {
|
) => {
|
||||||
const mForm = inject<FormState | undefined>('mForm');
|
const mForm = inject<FormState | undefined>('mForm');
|
||||||
|
|
||||||
@ -36,6 +37,13 @@ export const useSortable = (
|
|||||||
|
|
||||||
emit('change', newData);
|
emit('change', newData);
|
||||||
mForm?.$emit('field-change', newData);
|
mForm?.$emit('field-change', newData);
|
||||||
|
|
||||||
|
sortable?.destroy();
|
||||||
|
sortable = undefined;
|
||||||
|
|
||||||
|
nextTick(() => {
|
||||||
|
updateKey.value += 1;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@ -107,7 +107,7 @@ export const useTableColumns = (
|
|||||||
actionFixed = props.config.fixed;
|
actionFixed = props.config.fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
const actionClumn = {
|
const actionColumn = {
|
||||||
props: {
|
props: {
|
||||||
label: '操作',
|
label: '操作',
|
||||||
fixed: actionFixed,
|
fixed: actionFixed,
|
||||||
@ -133,7 +133,7 @@ export const useTableColumns = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (actionFixed !== 'right') {
|
if (actionFixed !== 'right') {
|
||||||
columns.push(actionClumn);
|
columns.push(actionColumn);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (props.sort && props.model[modelName.value] && props.model[modelName.value].length > 1) {
|
if (props.sort && props.model[modelName.value] && props.model[modelName.value].length > 1) {
|
||||||
@ -237,7 +237,7 @@ export const useTableColumns = (
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (actionFixed === 'right') {
|
if (actionFixed === 'right') {
|
||||||
columns.push(actionClumn);
|
columns.push(actionColumn);
|
||||||
}
|
}
|
||||||
|
|
||||||
return columns;
|
return columns;
|
||||||
|
|||||||
@ -16,7 +16,6 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { toRaw } from 'vue';
|
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import utc from 'dayjs/plugin/utc';
|
import utc from 'dayjs/plugin/utc';
|
||||||
import { cloneDeep } from 'lodash-es';
|
import { cloneDeep } from 'lodash-es';
|
||||||
@ -121,12 +120,12 @@ const initValueItem = function (
|
|||||||
asyncLoadConfig(value, initValue, item as HtmlField);
|
asyncLoadConfig(value, initValue, item as HtmlField);
|
||||||
|
|
||||||
// 这种情况比较多,提前结束
|
// 这种情况比较多,提前结束
|
||||||
if (name && !items && typeof initValue[name] !== 'undefined') {
|
if (name && !items && typeof initValue?.[name] !== 'undefined') {
|
||||||
if (typeof value[name] === 'undefined') {
|
if (typeof value[name] === 'undefined') {
|
||||||
if (type === 'number') {
|
if (type === 'number') {
|
||||||
value[name] = Number(initValue[name]);
|
value[name] = Number(initValue[name]);
|
||||||
} else {
|
} else {
|
||||||
value[name] = typeof initValue[name] === 'object' ? cloneDeep(initValue[name]) : initValue[name];
|
value[name] = typeof initValue[name] === 'object' ? initValue[name] : initValue[name];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,13 +280,15 @@ export const initValue = async (
|
|||||||
) => {
|
) => {
|
||||||
if (!Array.isArray(config)) throw new Error('config应该为数组');
|
if (!Array.isArray(config)) throw new Error('config应该为数组');
|
||||||
|
|
||||||
let valuesTmp = createValues(mForm, config, toRaw(initValues), {});
|
const initValuesCopy = cloneDeep(initValues);
|
||||||
|
|
||||||
|
let valuesTmp = createValues(mForm, config, initValuesCopy, {});
|
||||||
|
|
||||||
const [firstForm] = config as [ContainerCommonConfig];
|
const [firstForm] = config as [ContainerCommonConfig];
|
||||||
if (firstForm && typeof firstForm.onInitValue === 'function') {
|
if (firstForm && typeof firstForm.onInitValue === 'function') {
|
||||||
valuesTmp = await firstForm.onInitValue(mForm, {
|
valuesTmp = await firstForm.onInitValue(mForm, {
|
||||||
formValue: valuesTmp,
|
formValue: valuesTmp,
|
||||||
initValue: initValues,
|
initValue: initValuesCopy,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user