Compare commits
2 Commits
d93a4816fb
...
4ea4e53fa4
| Author | SHA1 | Date |
|---|---|---|
|
|
4ea4e53fa4 | |
|
|
6926230168 |
|
|
@ -40,6 +40,10 @@ export enum MenuEnum {
|
||||||
UP = 'up',
|
UP = 'up',
|
||||||
// 下移
|
// 下移
|
||||||
DOWN = 'down',
|
DOWN = 'down',
|
||||||
|
// 移出分组
|
||||||
|
MOVEOUTGROUP = 'moveOutGroup',
|
||||||
|
// 移入上一分组
|
||||||
|
MOVEUPGROUP = 'moveUpGroup',
|
||||||
// 清空剪贴板
|
// 清空剪贴板
|
||||||
CLEAR = 'clear',
|
CLEAR = 'clear',
|
||||||
// 成组
|
// 成组
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,18 @@ import { previewUrl } from '@/utils';
|
||||||
import { EventBus } from '@/utils/eventBus';
|
import { EventBus } from '@/utils/eventBus';
|
||||||
import axiosInstance from '@/api/axios';
|
import axiosInstance from '@/api/axios';
|
||||||
import { translateStr } from '@/api/http';
|
import { translateStr } from '@/api/http';
|
||||||
import {
|
import { RequestParamsObjType } from '@/enums/httpEnum';
|
||||||
RequestParamsObjType,
|
|
||||||
} from '@/enums/httpEnum';
|
|
||||||
|
|
||||||
const chartEditStore = useChartEditStore();
|
const chartEditStore = useChartEditStore();
|
||||||
const ceshiFunction = mapFun();
|
const ceshiFunction = mapFun();
|
||||||
// 含有海康视频的组件要特殊处理
|
// 含有海康视频的组件要特殊处理
|
||||||
const HKVideoList = ['ZhiGan_ModalTimeLine', 'ZhiGan_ModalVideo', 'ZhiGan_SheXiangTouModal','ZhiGan_WuRenJiShiShiHuaMian', 'HuoQingDetailTimeLine'];
|
const HKVideoList = [
|
||||||
|
'ZhiGan_ModalTimeLine',
|
||||||
|
'ZhiGan_ModalVideo',
|
||||||
|
'ZhiGan_SheXiangTouModal',
|
||||||
|
'ZhiGan_WuRenJiShiShiHuaMian',
|
||||||
|
'HuoQingDetailTimeLine',
|
||||||
|
];
|
||||||
//递归获取某个id在数组里的位置或者父id
|
//递归获取某个id在数组里的位置或者父id
|
||||||
export const queryFun = (array, value, peg?: any) => {
|
export const queryFun = (array, value, peg?: any) => {
|
||||||
var res = [];
|
var res = [];
|
||||||
|
|
@ -94,11 +98,11 @@ export const eventCommonHandler = (
|
||||||
// console.log(obj);
|
// console.log(obj);
|
||||||
|
|
||||||
// 海康视频组件单独处理
|
// 海康视频组件单独处理
|
||||||
if(obj.isGroup && obj.groupList.some((li) => HKVideoList.includes(li.key))) {
|
if (obj.isGroup && obj.groupList.some((li) => HKVideoList.includes(li.key))) {
|
||||||
obj.groupList.forEach((g) => {
|
obj.groupList.forEach((g) => {
|
||||||
if(HKVideoList.includes(g.key)){
|
if (HKVideoList.includes(g.key)) {
|
||||||
g.status.hide = false;
|
g.status.hide = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// chartEditStore.updateComponentList(arr[0], obj);
|
// chartEditStore.updateComponentList(arr[0], obj);
|
||||||
|
|
@ -124,11 +128,11 @@ export const eventCommonHandler = (
|
||||||
obj.status.hide = true;
|
obj.status.hide = true;
|
||||||
|
|
||||||
// 海康视频组件单独处理
|
// 海康视频组件单独处理
|
||||||
if(obj.isGroup && obj.groupList.some((li) => HKVideoList.includes(li.key))) {
|
if (obj.isGroup && obj.groupList.some((li) => HKVideoList.includes(li.key))) {
|
||||||
obj.groupList.forEach((g) => {
|
obj.groupList.forEach((g) => {
|
||||||
if(HKVideoList.includes(g.key)){
|
if (HKVideoList.includes(g.key)) {
|
||||||
g.status.hide = true;
|
g.status.hide = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// chartEditStore.updateComponentList(arr[0], obj);
|
// chartEditStore.updateComponentList(arr[0], obj);
|
||||||
|
|
@ -152,24 +156,18 @@ export const eventCommonHandler = (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (elementList[j].movement == 'communication') {
|
} else if (elementList[j].movement == 'communication') {
|
||||||
|
|
||||||
// 组件通信
|
// 组件通信
|
||||||
for (let k = 0; k < elementList[j].elementId.length; k++) {
|
for (let k = 0; k < elementList[j].elementId.length; k++) {
|
||||||
if (componentList[i].id == elementList[j].elementId[k]) {
|
if (componentList[i].id == elementList[j].elementId[k]) {
|
||||||
|
|
||||||
EventBus.emit(elementList[j].elementId[k] + type, params);
|
EventBus.emit(elementList[j].elementId[k] + type, params);
|
||||||
|
|
||||||
// 分组内所有组件默认添加通信
|
// 分组内所有组件默认添加通信
|
||||||
componentList[i]?.groupList?.forEach((groupItem,idx)=>{
|
componentList[i]?.groupList?.forEach((groupItem, idx) => {
|
||||||
EventBus.emit(groupItem.id +"dataupdate", params);
|
EventBus.emit(groupItem.id + 'dataupdate', params);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (elementList[j].movement == 'graphic') {
|
} else if (elementList[j].movement == 'graphic') {
|
||||||
|
|
||||||
for (let k = 0; k < elementList[j].elementId.length; k++) {
|
for (let k = 0; k < elementList[j].elementId.length; k++) {
|
||||||
if (componentList[i].id == elementList[j].elementId[k]) {
|
if (componentList[i].id == elementList[j].elementId[k]) {
|
||||||
EventBus.emit(elementList[j].elementId[k] + type, params);
|
EventBus.emit(elementList[j].elementId[k] + type, params);
|
||||||
|
|
@ -194,23 +192,27 @@ export const eventCommonHandler = (
|
||||||
requestContentType,
|
requestContentType,
|
||||||
requestDataType,
|
requestDataType,
|
||||||
requestHttpType,
|
requestHttpType,
|
||||||
requestParams
|
requestParams,
|
||||||
} = elementList[j].callBackRequest;
|
} = elementList[j].callBackRequest;
|
||||||
|
|
||||||
// 处理头部
|
// 处理头部
|
||||||
let headers: RequestParamsObjType = Object.fromEntries(requestParams.Header.map(item => [item.key.toLowerCase(), item.value]));
|
let headers: RequestParamsObjType = Object.fromEntries(
|
||||||
if(!headers['x-token']){
|
requestParams.Header.map((item) => [item.key.toLowerCase(), item.value]),
|
||||||
|
);
|
||||||
|
if (!headers['x-token']) {
|
||||||
headers['x-token'] = localStorage.getItem('X-Token');
|
headers['x-token'] = localStorage.getItem('X-Token');
|
||||||
}
|
}
|
||||||
// 清除掉空项
|
// 清除掉空项
|
||||||
for (const key in headers) {
|
for (const key in headers) {
|
||||||
if (key === "") {
|
if (key === '') {
|
||||||
delete headers[key];
|
delete headers[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// params 参数
|
// params 参数
|
||||||
let params: RequestParamsObjType = Object.fromEntries(requestParams.Params.map(item => [item.key, item.value]));
|
let params: RequestParamsObjType = Object.fromEntries(
|
||||||
|
requestParams.Params.map((item) => [item.key, item.value]),
|
||||||
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const url = new Function(
|
const url = new Function(
|
||||||
|
|
|
||||||
|
|
@ -528,6 +528,57 @@ export const useChartEditStore = defineStore({
|
||||||
setDown(isHistory = true) {
|
setDown(isHistory = true) {
|
||||||
this.wrap(true, isHistory);
|
this.wrap(true, isHistory);
|
||||||
},
|
},
|
||||||
|
//递归获取某个id在数组里的位置或者父id
|
||||||
|
queryFun(array, value, peg?: any) {
|
||||||
|
const res = [];
|
||||||
|
function _find(array, value, peg) {
|
||||||
|
array.forEach((item, index) => {
|
||||||
|
if (item.id === value) {
|
||||||
|
if (peg || peg === 0) {
|
||||||
|
res.push(peg);
|
||||||
|
}
|
||||||
|
res.push(index);
|
||||||
|
return;
|
||||||
|
} else if (item.groupList instanceof Array) {
|
||||||
|
_find(item.groupList, value, index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_find(array, value, peg);
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
// 图层移出分组
|
||||||
|
moveOutGroup() {
|
||||||
|
// 暂不支持多选
|
||||||
|
if (this.getTargetChart.selectId.length > 1) return;
|
||||||
|
|
||||||
|
loadingStart();
|
||||||
|
const data = this.queryFun(this.getComponentList, this.getTargetChart.selectId[0]);
|
||||||
|
if (data.length > 1) {
|
||||||
|
const item = this.getComponentList[data[0]].groupList[data[1]];
|
||||||
|
this.componentList[data[0]].groupList.splice(data[1], 1);
|
||||||
|
this.componentList.push(item);
|
||||||
|
loadingFinish();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
window['$message'].warning('单组件和分组不能移出');
|
||||||
|
loadingFinish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 图层移入上一分组
|
||||||
|
moveUpGroup() {
|
||||||
|
const index: number = this.fetchTargetIndex();
|
||||||
|
const item = this.getComponentList[index];
|
||||||
|
const lastItem = this.getComponentList[this.componentList.length - 1];
|
||||||
|
if (lastItem.isGroup) {
|
||||||
|
this.componentList[this.componentList.length - 1].groupList.push(item);
|
||||||
|
this.componentList.splice(index, 1);
|
||||||
|
} else {
|
||||||
|
window['$message'].warning('当前组件上一个不是分组');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
// * 复制
|
// * 复制
|
||||||
async setCopy(isCut = false) {
|
async setCopy(isCut = false) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -791,6 +842,7 @@ export const useChartEditStore = defineStore({
|
||||||
},
|
},
|
||||||
// * 创建分组
|
// * 创建分组
|
||||||
setGroup(id?: string | string[], isHistory = true) {
|
setGroup(id?: string | string[], isHistory = true) {
|
||||||
|
console.log('setGroup');
|
||||||
try {
|
try {
|
||||||
let selectIds = this.idPreFormat(id) || this.getTargetChart.selectId;
|
let selectIds = this.idPreFormat(id) || this.getTargetChart.selectId;
|
||||||
selectIds = this.getSelectIdSortList(selectIds);
|
selectIds = this.getSelectIdSortList(selectIds);
|
||||||
|
|
@ -880,6 +932,38 @@ export const useChartEditStore = defineStore({
|
||||||
loadingFinish();
|
loadingFinish();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 创建空分组
|
||||||
|
setCreateGroup(isHistory = true) {
|
||||||
|
try {
|
||||||
|
loadingStart();
|
||||||
|
const groupClass = new PublicGroupConfigClass();
|
||||||
|
const historyList: CreateComponentType[] = [];
|
||||||
|
|
||||||
|
// 记录整体坐标
|
||||||
|
const groupAttr = {
|
||||||
|
l: 0,
|
||||||
|
t: 0,
|
||||||
|
r: 0,
|
||||||
|
b: 0,
|
||||||
|
};
|
||||||
|
// 修改原数据之前,先记录
|
||||||
|
if (isHistory) chartHistoryStore.createGroupHistory(historyList);
|
||||||
|
|
||||||
|
// 设置 group 属性
|
||||||
|
groupClass.attr.x = groupAttr.l;
|
||||||
|
groupClass.attr.y = groupAttr.t;
|
||||||
|
groupClass.attr.w = groupAttr.r - groupAttr.l;
|
||||||
|
groupClass.attr.h = groupAttr.b - groupAttr.t;
|
||||||
|
groupClass.chartConfig.title = '新建分组';
|
||||||
|
this.addComponentList(groupClass);
|
||||||
|
this.setTargetSelectChart(groupClass.id);
|
||||||
|
loadingFinish();
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
window['$message'].error('创建分组失败,请联系管理员');
|
||||||
|
loadingFinish();
|
||||||
|
}
|
||||||
|
},
|
||||||
// * 解除分组
|
// * 解除分组
|
||||||
setUnGroup(ids?: string[], callBack?: (e: CreateComponentType[]) => void, isHistory = true) {
|
setUnGroup(ids?: string[], callBack?: (e: CreateComponentType[]) => void, isHistory = true) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -905,7 +989,8 @@ export const useChartEditStore = defineStore({
|
||||||
});
|
});
|
||||||
this.setTargetSelectChart(targetGroup.id);
|
this.setTargetSelectChart(targetGroup.id);
|
||||||
// 删除分组
|
// 删除分组
|
||||||
this.removeComponentList(targetGroup.id, false);
|
this.componentList[targetIndex].groupList = [];
|
||||||
|
// this.removeComponentList(targetGroup.id, false);
|
||||||
|
|
||||||
if (callBack) {
|
if (callBack) {
|
||||||
callBack(targetGroup.groupList);
|
callBack(targetGroup.groupList);
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
export enum ChartModeEnum {
|
export enum ChartModeEnum {
|
||||||
SINGLE = 'single',
|
SINGLE = 'single',
|
||||||
DOUBLE = 'double'
|
DOUBLE = 'double',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum LayerModeEnum {
|
export enum LayerModeEnum {
|
||||||
THUMBNAIL = 'thumbnail',
|
THUMBNAIL = 'thumbnail',
|
||||||
TEXT = 'text'
|
TEXT = 'text',
|
||||||
|
CREATEGROUP = 'creategroup',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ChartLayoutStoreEnum {
|
export enum ChartLayoutStoreEnum {
|
||||||
|
|
@ -15,22 +16,22 @@ export enum ChartLayoutStoreEnum {
|
||||||
Chart_TYPE = 'chartType',
|
Chart_TYPE = 'chartType',
|
||||||
LAYER_TYPE = 'layerType',
|
LAYER_TYPE = 'layerType',
|
||||||
PERCENTAGE = 'percentage',
|
PERCENTAGE = 'percentage',
|
||||||
RE_POSITION_CANVAS = 'rePositionCanvas'
|
RE_POSITION_CANVAS = 'rePositionCanvas',
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ChartLayoutType {
|
export interface ChartLayoutType {
|
||||||
// 图层控制
|
// 图层控制
|
||||||
[ChartLayoutStoreEnum.LAYERS]: boolean
|
[ChartLayoutStoreEnum.LAYERS]: boolean;
|
||||||
// 图表组件
|
// 图表组件
|
||||||
[ChartLayoutStoreEnum.CHARTS]: boolean
|
[ChartLayoutStoreEnum.CHARTS]: boolean;
|
||||||
// 详情设置
|
// 详情设置
|
||||||
[ChartLayoutStoreEnum.DETAILS]: boolean
|
[ChartLayoutStoreEnum.DETAILS]: boolean;
|
||||||
// 组件展示方式
|
// 组件展示方式
|
||||||
[ChartLayoutStoreEnum.Chart_TYPE]: ChartModeEnum
|
[ChartLayoutStoreEnum.Chart_TYPE]: ChartModeEnum;
|
||||||
// 层级展示方式
|
// 层级展示方式
|
||||||
[ChartLayoutStoreEnum.LAYER_TYPE]: LayerModeEnum
|
[ChartLayoutStoreEnum.LAYER_TYPE]: LayerModeEnum;
|
||||||
// 当前正在加载的数量
|
// 当前正在加载的数量
|
||||||
[ChartLayoutStoreEnum.PERCENTAGE]: number
|
[ChartLayoutStoreEnum.PERCENTAGE]: number;
|
||||||
// 是否重置当前画布位置
|
// 是否重置当前画布位置
|
||||||
[ChartLayoutStoreEnum.RE_POSITION_CANVAS]: boolean
|
[ChartLayoutStoreEnum.RE_POSITION_CANVAS]: boolean;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@
|
||||||
@mousedown="mousedownHandle($event, element, componentGroupData.id)"
|
@mousedown="mousedownHandle($event, element, componentGroupData.id)"
|
||||||
@mouseenter="mouseenterHandle(element)"
|
@mouseenter="mouseenterHandle(element)"
|
||||||
@mouseleave="mouseleaveHandle(element)"
|
@mouseleave="mouseleaveHandle(element)"
|
||||||
@contextmenu="handleContextMenu($event, componentGroupData, optionsHandle)"
|
@contextmenu="handleContextMenu($event, element, optionsHandle)"
|
||||||
></LayersListItem>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</draggable>
|
</draggable>
|
||||||
</n-collapse-transition>
|
</n-collapse-transition>
|
||||||
|
|
@ -148,7 +148,7 @@
|
||||||
statusMenuEnums.push(MenuEnum.SHOW);
|
statusMenuEnums.push(MenuEnum.SHOW);
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
...filter([MenuEnum.UN_GROUP]),
|
...filter([MenuEnum.UN_GROUP, MenuEnum.MOVEOUTGROUP]),
|
||||||
divider(),
|
divider(),
|
||||||
...targetList.filter((i) => !statusMenuEnums.includes(i.key as MenuEnum)),
|
...targetList.filter((i) => !statusMenuEnums.includes(i.key as MenuEnum)),
|
||||||
];
|
];
|
||||||
|
|
@ -206,6 +206,7 @@
|
||||||
|
|
||||||
// 移动结束处理
|
// 移动结束处理
|
||||||
const onMoveCallback = (val: any) => {
|
const onMoveCallback = (val: any) => {
|
||||||
|
console.log(val);
|
||||||
const { newIndex, element } = val.added;
|
const { newIndex, element } = val.added;
|
||||||
const groupIndex = chartEditStore.getComponentList.findIndex(
|
const groupIndex = chartEditStore.getComponentList.findIndex(
|
||||||
(item) => item.id == props.componentGroupData.id,
|
(item) => item.id == props.componentGroupData.id,
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,14 @@
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</n-tooltip>
|
</n-tooltip>
|
||||||
</n-button>
|
</n-button>
|
||||||
|
<n-button ghost size="small" :type="'tertiary'" @click="chartEditStore.setCreateGroup()">
|
||||||
|
<n-tooltip :show-arrow="false" trigger="hover">
|
||||||
|
<template #trigger>
|
||||||
|
<n-icon size="14" :component="DocumentAddIcon" />
|
||||||
|
</template>
|
||||||
|
创建空分组
|
||||||
|
</n-tooltip>
|
||||||
|
</n-button>
|
||||||
</n-button-group>
|
</n-button-group>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -51,7 +59,7 @@
|
||||||
v-if="element.isGroup"
|
v-if="element.isGroup"
|
||||||
:componentGroupData="element"
|
:componentGroupData="element"
|
||||||
:layer-mode="layerMode"
|
:layer-mode="layerMode"
|
||||||
></layers-group-list-item>
|
/>
|
||||||
<!-- 单组件 -->
|
<!-- 单组件 -->
|
||||||
<layers-list-item
|
<layers-list-item
|
||||||
v-else
|
v-else
|
||||||
|
|
@ -61,7 +69,7 @@
|
||||||
@mouseenter="mouseenterHandle(element)"
|
@mouseenter="mouseenterHandle(element)"
|
||||||
@mouseleave="mouseleaveHandle(element)"
|
@mouseleave="mouseleaveHandle(element)"
|
||||||
@contextmenu="handleContextMenu($event, element, optionsHandle)"
|
@contextmenu="handleContextMenu($event, element, optionsHandle)"
|
||||||
></layers-list-item>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</draggable>
|
</draggable>
|
||||||
|
|
@ -81,7 +89,7 @@
|
||||||
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
|
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
|
||||||
import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d';
|
import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d';
|
||||||
import { MenuOptionsItemType } from '@/views/chart/hooks/useContextMenu.hook.d';
|
import { MenuOptionsItemType } from '@/views/chart/hooks/useContextMenu.hook.d';
|
||||||
import { useContextMenu } from '@/views/chart/hooks/useContextMenu.hook';
|
import { useContextMenu, divider } from '@/views/chart/hooks/useContextMenu.hook';
|
||||||
import { MenuEnum, MouseEventButton, WinKeyboard, MacKeyboard } from '@/enums/editPageEnum';
|
import { MenuEnum, MouseEventButton, WinKeyboard, MacKeyboard } from '@/enums/editPageEnum';
|
||||||
|
|
||||||
import { LayersListItem } from './components/LayersListItem/index';
|
import { LayersListItem } from './components/LayersListItem/index';
|
||||||
|
|
@ -90,7 +98,7 @@
|
||||||
import { icon } from '@/plugins';
|
import { icon } from '@/plugins';
|
||||||
|
|
||||||
const { LayersIcon, GridIcon, ListIcon } = icon.ionicons5;
|
const { LayersIcon, GridIcon, ListIcon } = icon.ionicons5;
|
||||||
const { LaptopIcon } = icon.carbon;
|
const { LaptopIcon, DocumentAddIcon } = icon.carbon;
|
||||||
const chartLayoutStore = useChartLayoutStore();
|
const chartLayoutStore = useChartLayoutStore();
|
||||||
const chartEditStore = useChartEditStore();
|
const chartEditStore = useChartEditStore();
|
||||||
const { handleContextMenu, onClickOutSide } = useContextMenu();
|
const { handleContextMenu, onClickOutSide } = useContextMenu();
|
||||||
|
|
@ -124,6 +132,9 @@
|
||||||
allList: MenuOptionsItemType[],
|
allList: MenuOptionsItemType[],
|
||||||
targetInstance: CreateComponentType,
|
targetInstance: CreateComponentType,
|
||||||
) => {
|
) => {
|
||||||
|
const filter = (menulist: MenuEnum[]) => {
|
||||||
|
return allList.filter((i) => menulist.includes(i.key as MenuEnum));
|
||||||
|
};
|
||||||
// 多选处理
|
// 多选处理
|
||||||
if (chartEditStore.getTargetChart.selectId.length > 1) {
|
if (chartEditStore.getTargetChart.selectId.length > 1) {
|
||||||
return targetList.filter((i) => i.key === MenuEnum.GROUP);
|
return targetList.filter((i) => i.key === MenuEnum.GROUP);
|
||||||
|
|
@ -140,7 +151,12 @@
|
||||||
} else {
|
} else {
|
||||||
statusMenuEnums.push(MenuEnum.SHOW);
|
statusMenuEnums.push(MenuEnum.SHOW);
|
||||||
}
|
}
|
||||||
return targetList.filter((item) => !statusMenuEnums.includes(item.key as MenuEnum));
|
// return targetList.filter((item) => !statusMenuEnums.includes(item.key as MenuEnum));
|
||||||
|
return [
|
||||||
|
...filter([MenuEnum.MOVEUPGROUP]),
|
||||||
|
divider(),
|
||||||
|
...targetList.filter((i) => !statusMenuEnums.includes(i.key as MenuEnum)),
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
// 缩小
|
// 缩小
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ const {
|
||||||
EyeOutlineIcon,
|
EyeOutlineIcon,
|
||||||
EyeOffOutlineIcon,
|
EyeOffOutlineIcon,
|
||||||
GridIcon,
|
GridIcon,
|
||||||
|
LogOutOutlineIcon,
|
||||||
} = icon.ionicons5;
|
} = icon.ionicons5;
|
||||||
const { UpToTopIcon, DownToBottomIcon, PaintBrushIcon, Carbon3DSoftwareIcon, Carbon3DCursorIcon } =
|
const { UpToTopIcon, DownToBottomIcon, PaintBrushIcon, Carbon3DSoftwareIcon, Carbon3DCursorIcon } =
|
||||||
icon.carbon;
|
icon.carbon;
|
||||||
|
|
@ -116,6 +117,7 @@ export const defaultOptions: MenuOptionsItemType[] = [
|
||||||
icon: renderIcon(ChevronDownIcon),
|
icon: renderIcon(ChevronDownIcon),
|
||||||
fnHandle: chartEditStore.setDown,
|
fnHandle: chartEditStore.setDown,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
key: 'd2',
|
key: 'd2',
|
||||||
|
|
@ -155,6 +157,18 @@ export const defaultMultiSelectOptions: MenuOptionsItemType[] = [
|
||||||
icon: renderIcon(Carbon3DCursorIcon),
|
icon: renderIcon(Carbon3DCursorIcon),
|
||||||
fnHandle: chartEditStore.setUnGroup,
|
fnHandle: chartEditStore.setUnGroup,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '移出分组',
|
||||||
|
key: MenuEnum.MOVEOUTGROUP,
|
||||||
|
icon: renderIcon(LogOutOutlineIcon),
|
||||||
|
fnHandle: chartEditStore.moveOutGroup,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '移入新建分组',
|
||||||
|
key: MenuEnum.MOVEUPGROUP,
|
||||||
|
icon: renderIcon(Carbon3DSoftwareIcon),
|
||||||
|
fnHandle: chartEditStore.moveUpGroup,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
// * 无数据传递拥有的选项
|
// * 无数据传递拥有的选项
|
||||||
|
|
@ -273,7 +287,6 @@ export const useContextMenu = () => {
|
||||||
const targetItem: MenuOptionsItemType[] = menuOptions.value.filter(
|
const targetItem: MenuOptionsItemType[] = menuOptions.value.filter(
|
||||||
(e: MenuOptionsItemType) => e.key === key,
|
(e: MenuOptionsItemType) => e.key === key,
|
||||||
);
|
);
|
||||||
|
|
||||||
menuOptions.value.forEach((e: MenuOptionsItemType) => {
|
menuOptions.value.forEach((e: MenuOptionsItemType) => {
|
||||||
if (e.key === key) {
|
if (e.key === key) {
|
||||||
if (e.fnHandle) {
|
if (e.fnHandle) {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
:show="chartEditStore.getRightMenuShow"
|
:show="chartEditStore.getRightMenuShow"
|
||||||
:on-clickoutside="onClickOutSide"
|
:on-clickoutside="onClickOutSide"
|
||||||
@select="handleMenuSelect"
|
@select="handleMenuSelect"
|
||||||
></n-dropdown>
|
/>
|
||||||
<!-- 加载蒙层 -->
|
<!-- 加载蒙层 -->
|
||||||
<content-load></content-load>
|
<content-load></content-load>
|
||||||
<n-modal
|
<n-modal
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue