From 465920796f0b2b2c516156be32d1a1f3a72bcecb Mon Sep 17 00:00:00 2001 From: rd <1344903914@qq.com> Date: Thu, 18 Sep 2025 11:54:48 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=A0=87=E7=AD=BE=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/components/ant-select.scss | 9 ++- .../add-raw-material-drawer/index.vue | 36 +++++----- .../add-raw-material-drawer/style.scss | 4 +- .../edit-raw-material-modal/index.vue | 66 +++++++++++++++---- .../components/filter-block/index.vue | 58 +++++++++++++--- .../components/raw-material/constants.ts | 1 + 6 files changed, 133 insertions(+), 41 deletions(-) diff --git a/src/styles/components/ant-select.scss b/src/styles/components/ant-select.scss index afb4d1a..71073bd 100644 --- a/src/styles/components/ant-select.scss +++ b/src/styles/components/ant-select.scss @@ -24,6 +24,11 @@ font-weight: 400; } } + + .ant-select-arrow { + color: #737478; + //font-size: 14px; + } &:focus, &-focused { .ant-select-selector { @@ -72,10 +77,12 @@ &.ant-select-multiple { .ant-select-selector { height: fit-content !important; - padding: 0 12px 0 4px !important; + padding: 0 28px 0 4px !important; .ant-select-selection-overflow-item { + margin-right: 4px; .ant-select-selection-item { + margin-right: 0; border-radius: 4px; background: #E6E6E8; border: none; diff --git a/src/views/material-center/components/raw-material/components/add-raw-material-drawer/index.vue b/src/views/material-center/components/raw-material/components/add-raw-material-drawer/index.vue index d29e439..8898880 100644 --- a/src/views/material-center/components/raw-material/components/add-raw-material-drawer/index.vue +++ b/src/views/material-center/components/raw-material/components/add-raw-material-drawer/index.vue @@ -48,8 +48,12 @@ export default defineComponent({ } }; - const handleTagChange = (record) => { - console.log(record.tag_ids); + const handleTagChange = (value, option, record) => { + if (value.length < 6) { + record.tag_ids = value; + } else { + message.warning('最多选择5个'); + } }; // 添加处理标签输入的函数 @@ -57,15 +61,13 @@ export default defineComponent({ const inputValue = e.target.value.trim(); if (!inputValue) return; - - if (record.tag_ids.length >= 5) { - message.warning('最多选择5个'); + const _target = tagData.value.find((item) => item.name === inputValue); + if (_target) { return; } - const _target = tagData.value.find((item) => item.name === inputValue); - if (_target) { - record.tag_ids = [...record.tag_ids, _target.id]; + if (record.tag_ids.length >= 5) { + message.warning('最多选择5个'); return; } @@ -355,17 +357,21 @@ export default defineComponent({ return ( + /> ); }} /> diff --git a/src/views/material-center/components/raw-material/components/add-raw-material-drawer/style.scss b/src/views/material-center/components/raw-material/components/add-raw-material-drawer/style.scss index d0dff9b..9814ae6 100644 --- a/src/views/material-center/components/raw-material/components/add-raw-material-drawer/style.scss +++ b/src/views/material-center/components/raw-material/components/add-raw-material-drawer/style.scss @@ -9,8 +9,8 @@ } .ant-select { - .ant-select-selection-item { - + .ant-select-selection-overflow-item { + max-width: 50%; } } diff --git a/src/views/material-center/components/raw-material/components/edit-raw-material-modal/index.vue b/src/views/material-center/components/raw-material/components/edit-raw-material-modal/index.vue index fee8b82..7aec647 100644 --- a/src/views/material-center/components/raw-material/components/edit-raw-material-modal/index.vue +++ b/src/views/material-center/components/raw-material/components/edit-raw-material-modal/index.vue @@ -5,7 +5,12 @@ import { Button, Modal, Form, FormItem, Input, message, Select } from 'ant-desig const { TextArea } = Input; import { formatFileSize, exactFormatTime } from '@/utils/tools'; -import { getRawMaterialDetail, putRawMaterial, getRawMaterialTagsList } from '@/api/all/generationWorkshop'; +import { + getRawMaterialDetail, + putRawMaterial, + getRawMaterialTagsList, + posRawMaterialTags, +} from '@/api/all/generationWorkshop'; import { TABS_LIST, ORIGIN_LIST } from '@/views/material-center/components/raw-material/constants'; const INITIAL_FORM = { @@ -98,6 +103,46 @@ export default { }); }; + const handleTagChange = (value) => { + if (value.length < 6) { + form.value.tag_ids = value; + } else { + message.warning('最多选择5个'); + } + }; + + // 添加处理标签输入的函数 + 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; + } + + if (form.value.tag_ids.length >= 5) { + message.warning('最多选择5个'); + return; + } + + try { + const { code, data } = await posRawMaterialTags({ 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, data.id]; + } + } catch (error) { + message.error('添加标签失败'); + } + }; + expose({ open }); return () => ( @@ -152,30 +197,29 @@ export default { + /> - - - - - - - - +
+ 标签 +