feat: 完善标签编辑

This commit is contained in:
CalciumIon
2024-11-30 16:57:44 +08:00
parent 1774be8536
commit 3053d94170
3 changed files with 36 additions and 6 deletions

View File

@@ -311,7 +311,7 @@ type ChannelTag struct {
NewTag *string `json:"new_tag"`
Priority *int64 `json:"priority"`
Weight *uint `json:"weight"`
ModelMapping *string `json:"map_mapping"`
ModelMapping *string `json:"model_mapping"`
Models *string `json:"models"`
Groups *string `json:"groups"`
}

View File

@@ -31,7 +31,7 @@ import {
Typography
} from '@douyinfe/semi-ui';
import EditChannel from '../pages/Channel/EditChannel';
import { IconTreeTriangleDown } from '@douyinfe/semi-icons';
import { IconList, IconTreeTriangleDown } from '@douyinfe/semi-icons';
import { loadChannelModels } from './utils.js';
import EditTagModal from '../pages/Channel/EditTagModal.js';
@@ -56,6 +56,20 @@ function renderType(type) {
);
}
function renderTagType(type) {
return (
<Tag
color='light-blue'
prefixIcon={<IconList />}
size='large'
shape='circle'
type='light'
>
标签聚合
</Tag>
);
}
const ChannelsTable = () => {
const columns = [
// {
@@ -90,7 +104,11 @@ const ChannelsTable = () => {
title: '类型',
dataIndex: 'type',
render: (text, record, index) => {
return <div>{renderType(text)}</div>;
if (record.children === undefined) {
return <>{renderType(text)}</>;
} else {
return <>{renderTagType(0)}</>;
}
}
},
{
@@ -441,7 +459,8 @@ const ChannelsTable = () => {
let channelGroupsStr = channels[i].group;
channelGroupsStr.split(',').forEach((item, index) => {
if (tagChannelDates.group.indexOf(item) === -1) {
tagChannelDates.group += item + ',';
// join
tagChannelDates.group += ',' + item;
}
});
}

View File

@@ -1,5 +1,5 @@
import React, { useState, useEffect } from 'react';
import { API, showError, showSuccess } from '../../helpers';
import { API, showError, showInfo, showSuccess, showWarning, verifyJSON } from '../../helpers';
import { SideSheet, Space, Button, Input, Typography, Spin, Modal, Select, Banner, TextArea } from '@douyinfe/semi-ui';
import TextInput from '../../components/TextInput.js';
import { getChannelModels } from '../../components/utils.js';
@@ -122,7 +122,12 @@ const EditTagModal = (props) => {
let data = {
tag: tag,
}
if (inputs.model_mapping !== null) {
if (inputs.model_mapping !== null && inputs.model_mapping !== '') {
if (inputs.model_mapping !== '' && !verifyJSON(inputs.model_mapping)) {
showInfo('模型映射必须是合法的 JSON 格式!');
setLoading(false);
return;
}
data.model_mapping = inputs.model_mapping
}
if (inputs.groups.length > 0) {
@@ -132,6 +137,12 @@ const EditTagModal = (props) => {
data.models = inputs.models.join(',');
}
data.newTag = inputs.newTag;
// check have any change
if (data.model_mapping === undefined && data.groups === undefined && data.models === undefined && data.newTag === undefined) {
showWarning('没有任何修改!');
setLoading(false);
return;
}
await submit(data);
setLoading(false);
};