| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- import { ref } from 'vue';
- import { sceneListType, getListWorkshop, workspaceAddDatas } from '@/api/scene/sceneOperate';
- export const colomns = [
- { label: '场景名称', prop: 'name', width: 300 },
- { label: '场景标签', prop: 'companyLabelId', width: 300 },
- { label: '代码', prop: 'code' },
- ];
- // export interface User {
- // name?: string;
- // tag?: string; //顶级场景下面的场景标签
- // Toptag?: string[]; //公司层面的标签
- // code?: string;
- // hasChildren?: boolean;
- // children?: User[];
- // status?: string;
- // seniorScene?: string;
- // templeteRoom?: string;
- // leader?: string;
- // }
- interface DataSourceUser extends sceneListType<getListWorkshop<workspaceAddDatas>> {
- parent?: sceneListType<getListWorkshop<workspaceAddDatas>> | null;
- }
- export const dataSourceWithParent = (d: DataSourceUser[], parent: DataSourceUser | null) => {
- d.forEach((item, _index) => {
- item.parent = parent;
- if (item.children && item.children?.length > 0) {
- dataSourceWithParent(item.children, item);
- }
- });
- return d;
- };
- export const options = [
- {
- value: 'Option1',
- label: 'Option1',
- },
- {
- value: 'Option2',
- label: 'Option2',
- },
- ];
- export const tableData = ref<User[]>([
- {
- name: '1',
- tag: '6',
- code: '22',
- },
- {
- name: '2',
- tag: '7',
- code: '33',
- },
- {
- name: '3',
- tag: '6',
- code: '333',
- children: [
- {
- name: '31',
- tag: '6',
- code: '44',
- children: [
- {
- name: '311',
- tag: '7',
- code: 'zzz',
- },
- ],
- },
- {
- name: '32',
- tag: '8',
- code: 'wangxiaohu',
- children: [
- {
- name: '321',
- tag: '8',
- code: 'zzqqqz',
- },
- ],
- },
- ],
- },
- {
- name: '4',
- tag: '7',
- code: '55555',
- },
- ]);
- //用于新增数据
- export const updateData = (data, targetName, newAdd) => {
- for (let i = 0; i < data.length; i++) {
- const currentItem = data[i];
- if (currentItem.name === targetName) {
- if (!currentItem.children) {
- currentItem.children = [];
- }
- currentItem.children.push(newAdd);
- return true; // 表示已经找到并修改
- }
- // 如果有子项,递归查找
- if (currentItem.children && currentItem.children.length > 0) {
- const found = updateData(currentItem.children, targetName, newAdd);
- if (found) {
- return true; // 如果在子项中找到目标项,停止继续查找
- }
- }
- }
- return false; // 表示未找到目标项
- };
- //判断该条数据的层级
- export const findItemLevel = (data, targetCode, currentLevel = 0) => {
- for (let i = 0; i < data.length; i++) {
- const item = data[i];
- if (item.code === targetCode) {
- return currentLevel;
- }
- if (item.children && item.children.length > 0) {
- const childLevel = findItemLevel(item.children, targetCode, currentLevel + 1);
- if (childLevel !== -1) {
- return childLevel;
- }
- }
- }
- return -1;
- };
- //删除行
- export const deleteTableRow = (dataSource, name) => {
- const deleteRecursive = (data) => {
- for (let i = 0; i < data.length; i++) {
- const currentItem = data[i];
- if (currentItem.name === name) {
- // 删除当前项
- data.splice(i, 1);
- return true;
- }
- // 如果有子项,递归查找
- if (currentItem.children && currentItem.children.length > 0) {
- const found = deleteRecursive(currentItem.children);
- if (found) {
- return true; // 如果在子项中找到目标项,停止继续查找
- }
- }
- }
- return false; // 表示未找到目标项
- };
- // 从顶层开始递归删除
- deleteRecursive(dataSource);
- };
- //行的编辑提交功能
- export const editTableRow = (
- dataSource,
- level,
- name,
- newName,
- newCode,
- newStatus,
- newLeader = '',
- newTemplete = '',
- newTag = 0,
- newToptag = [] as unknown as string[],
- ) => {
- const editTRecursive = (data) => {
- for (let i = 0; i < data.length; i++) {
- const currentItem = data[i];
- if (currentItem.name === name) {
- // 修改
- currentItem.name = newName;
- currentItem.code = newCode;
- currentItem.status = newStatus;
- if (level === 0) {
- currentItem.Toptag = newToptag;
- } else if (level === 1) {
- currentItem.companyLabelId = newTag;
- currentItem.templete = newTemplete;
- } else if (level === 2) {
- currentItem.leader = newLeader;
- }
- return true;
- }
- // 如果有子项,递归查找
- if (currentItem.children && currentItem.children.length > 0) {
- const found = editTRecursive(currentItem.children);
- if (found) {
- return true; // 如果在子项中找到目标项,停止继续查找
- }
- }
- }
- return false; // 表示未找到目标项
- };
- editTRecursive(dataSource);
- };
- // export const convertArray = (inputArray) => {
- // return inputArray.map((item) => {
- // const [start, end] = item.split('-');
- // console.log(start, end);
- // return { tag: start, templete: end };
- // });
- // };
- export enum ENABLED {
- FALSE = 0,
- TRUE = 1,
- }
|