mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-04-06 03:57:56 +08:00
chore(editor): 删除无用代码
This commit is contained in:
parent
9b0db4a807
commit
3cdcca3b0b
@ -20,9 +20,8 @@ import { reactive } from 'vue';
|
||||
import { cloneDeep, mergeWith } from 'lodash-es';
|
||||
|
||||
import type { FormConfig } from '@tmagic/form';
|
||||
import type { Id, MComponent, MNode, MPage } from '@tmagic/schema';
|
||||
import { NodeType } from '@tmagic/schema';
|
||||
import { isPop, toLine } from '@tmagic/utils';
|
||||
import type { MComponent, MNode } from '@tmagic/schema';
|
||||
import { toLine } from '@tmagic/utils';
|
||||
|
||||
import type { PropsState } from '../type';
|
||||
import { DEFAULT_CONFIG, fillConfig } from '../utils/props';
|
||||
@ -125,19 +124,6 @@ class Props extends BaseService {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成指定位数的GUID,无【-】格式
|
||||
* @param digit 位数,默认值8
|
||||
* @returns
|
||||
*/
|
||||
guid(digit = 8): string {
|
||||
return 'x'.repeat(digit).replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0;
|
||||
const v = c == 'x' ? r : (r & 0x3) | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
public async createId(type: string | number): Promise<string> {
|
||||
return `${type}_${this.guid()}`;
|
||||
}
|
||||
@ -147,19 +133,12 @@ class Props extends BaseService {
|
||||
* @param {Object} config 组件配置
|
||||
*/
|
||||
/* eslint no-param-reassign: ["error", { "props": false }] */
|
||||
public async setNewItemId(config: MNode, parent?: MPage) {
|
||||
const oldId = config.id;
|
||||
|
||||
public async setNewItemId(config: MNode) {
|
||||
config.id = await this.createId(config.type || 'component');
|
||||
|
||||
// 只有弹窗在页面下的一级子元素才有效
|
||||
if (isPop(config) && parent?.type === NodeType.PAGE) {
|
||||
updatePopId(oldId, config.id, parent);
|
||||
}
|
||||
|
||||
if (config.items && Array.isArray(config.items)) {
|
||||
for (const item of config.items) {
|
||||
await this.setNewItemId(item, config as MPage);
|
||||
await this.setNewItemId(item);
|
||||
}
|
||||
}
|
||||
|
||||
@ -186,32 +165,21 @@ class Props extends BaseService {
|
||||
name: type,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成指定位数的GUID,无【-】格式
|
||||
* @param digit 位数,默认值8
|
||||
* @returns
|
||||
*/
|
||||
private guid(digit = 8): string {
|
||||
return 'x'.repeat(digit).replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0;
|
||||
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制页面时,需要把组件下关联的弹窗id换测复制出来的弹窗的id
|
||||
* @param {number} oldId 复制的源弹窗id
|
||||
* @param {number} popId 新的弹窗id
|
||||
* @param {Object} pageConfig 页面配置
|
||||
*/
|
||||
const updatePopId = (oldId: Id, popId: Id, pageConfig: MPage) => {
|
||||
pageConfig.items?.forEach((config) => {
|
||||
if (config.pop === oldId) {
|
||||
config.pop = popId;
|
||||
return;
|
||||
}
|
||||
|
||||
if (config.popId === oldId) {
|
||||
config.popId = popId;
|
||||
return;
|
||||
}
|
||||
|
||||
if (Array.isArray(config.items)) {
|
||||
updatePopId(oldId, popId, config as MPage);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export type PropsService = Props;
|
||||
|
||||
export default new Props();
|
||||
|
@ -42,7 +42,7 @@ export const beforePaste = async (position: PastePosition, config: MNode[]): Pro
|
||||
pastePosition.top = configItem.style?.top - referenceTop + pastePosition.top;
|
||||
}
|
||||
|
||||
const pasteConfig = await propsService.setNewItemId(configItem, editorService.get('root'));
|
||||
const pasteConfig = await propsService.setNewItemId(configItem);
|
||||
|
||||
if (pasteConfig.style) {
|
||||
const { left, top } = pasteConfig.style;
|
||||
|
@ -38,28 +38,6 @@ describe('setNewItemId', () => {
|
||||
expect(config.id === 1).toBeFalsy();
|
||||
expect(config.items[0].id === 2).toBeFalsy();
|
||||
});
|
||||
|
||||
test('pop', async () => {
|
||||
const config = {
|
||||
id: 1,
|
||||
type: NodeType.PAGE,
|
||||
items: [
|
||||
{
|
||||
type: 'button',
|
||||
id: 2,
|
||||
pop: 3,
|
||||
},
|
||||
{
|
||||
type: 'pop',
|
||||
id: 3,
|
||||
},
|
||||
],
|
||||
};
|
||||
await props.setNewItemId(config);
|
||||
expect(config.items[0].pop === 3).toBeFalsy();
|
||||
expect(config.items[1].id === 3).toBeFalsy();
|
||||
expect(config.items[1].id === config.items[0].pop).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
test('getDefaultValue', async () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user