diff --git a/src/views/property-marketing/media-account/account-manage/components/add-account-modal/index.vue b/src/views/property-marketing/media-account/account-manage/components/add-account-modal/index.vue index af22a1c..ec61b54 100644 --- a/src/views/property-marketing/media-account/account-manage/components/add-account-modal/index.vue +++ b/src/views/property-marketing/media-account/account-manage/components/add-account-modal/index.vue @@ -16,6 +16,7 @@ import { Tooltip, Upload, Switch, + Select, } from 'ant-design-vue'; const { TextArea } = Input; import AuthorizedAccountModal from '../authorized-account-modal'; @@ -36,6 +37,7 @@ import { getTemplateUrl, batchMediaAccounts, getProjectList, + postAccountTags, } from '@/api/all/propertyMarketing'; import icon1 from '@/assets/img/media-account/icon-download.png'; @@ -268,6 +270,35 @@ export default { ); }; + const handleTagChange = (value) => { + form.value.tag_ids = value; + }; + const handleTagInputPressEnter = async (e) => { + const inputValue = e.target.value.trim(); + + if (!inputValue) return; + const _target = tagOptions.value.find((item) => item.name === inputValue); + if (_target) { + return; + } + + try { + const { code, data } = await postAccountTags({ name: inputValue }); + + if (code === 200 && data) { + tagOptions.value.push({ + id: data.id, + name: data.name, + }); + e.target.value = ''; + + form.value.tag_ids = form.value.tag_ids.filter((item) => item !== inputValue); + form.value.tag_ids.push(data.id); + } + } catch (error) { + message.error('添加标签失败'); + } + }; expose({ open }); @@ -394,11 +425,28 @@ export default { - { + // 检测回车键 + if (e.key === 'Enter') { + e.preventDefault(); + handleTagInputPressEnter(e); + } + }} />