const tags = {
    '客户姓名': {
        key: 'userName',
    },
    '坐席': {
        key: 'seatUser',
    },
    '链接': {
        key: 'url',
        type: 'link',
    },
};

/**
 * 节点
 * @param {string} temp 更换的短信模板
 * @param {*} data 更换数据 { userName: { label: '', click: function } }
 * @returns 节点
 */
export const matchTags = (temp, data) => {
    const regex = /【([^】]*)】/g;
    let match;
    const nodes = [];
    let lastIndex = 0;

    while ((match = regex.exec(temp)) !== null) {
        // 添加匹配前的文本节点（如果有的话）
        if (match.index > lastIndex) {
          nodes.push({ content: temp.slice(lastIndex, match.index) });
        }
        
        // 添加el-tag组件节点
        
        let tagValue = match[1];
        const tag = tags[`${match[1]}`]
        if (tag) {
            const info = data[`${tag.key}`]
            if (info) tagValue = info.label;
            if (tag.type === 'link') {
                nodes.push({ isLink: true, content: tagValue, click: info?.click });
            } else {
                nodes.push({ isTag: true,  content: tagValue, click: info?.click });
            }
        } else {
            nodes.push({ content: tagValue });
        }



        // if (tags[`${match[1]}`] && data && data[`${tags[`${match[1]}`]}`]) tagValue = data[`${tags[`${match[1]}`]}`]
        // console.log(tagValue, 'tagValue')
        // nodes.push({ isTag: true,  content: tagValue });
        
        // 更新下一次查找的起始位置
        lastIndex = regex.lastIndex;
    }

    // 添加最后的文本节点（如果有的话）
    if (lastIndex < temp.length) {
      nodes.push({ content: temp.slice(lastIndex) });
    }

    return nodes;
}