feat: 新增svg组件,批量替换

This commit is contained in:
rd
2025-09-25 15:26:42 +08:00
parent 9e5bf07c1f
commit 9894380ba9
122 changed files with 414 additions and 370 deletions

View File

@ -11,6 +11,7 @@
"prepare": "husky install"
},
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
"@arco-design/web-vue": "^2.42.0",
"@microsoft/fetch-event-source": "^2.0.1",
"@types/nprogress": "^0.2.0",

103
pnpm-lock.yaml generated
View File

@ -8,6 +8,9 @@ importers:
.:
dependencies:
'@ant-design/icons-vue':
specifier: ^7.0.1
version: 7.0.1(vue@3.5.18(typescript@4.9.5))
'@arco-design/web-vue':
specifier: ^2.42.0
version: 2.42.0(vue@3.5.18(typescript@4.9.5))
@ -450,133 +453,133 @@ packages:
resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
'@esbuild/android-arm64@0.16.17':
resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz}
resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.16.17':
resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz}
resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.16.17':
resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz}
resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.16.17':
resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz}
resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.16.17':
resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz}
resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.16.17':
resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz}
resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.16.17':
resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz}
resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.16.17':
resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz}
resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.16.17':
resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz}
resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.16.17':
resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz}
resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.16.17':
resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz}
resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.16.17':
resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz}
resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.16.17':
resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz}
resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.16.17':
resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz}
resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.16.17':
resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz}
resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.16.17':
resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz}
resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-x64@0.16.17':
resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz}
resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-x64@0.16.17':
resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz}
resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.16.17':
resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz}
resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.16.17':
resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz}
resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.16.17':
resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz}
resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.16.17':
resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz}
resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@ -657,91 +660,85 @@ packages:
engines: {node: ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0}
'@parcel/watcher-android-arm64@2.5.1':
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==, tarball: https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz}
resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [android]
'@parcel/watcher-darwin-arm64@2.5.1':
resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==, tarball: https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz}
resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [darwin]
'@parcel/watcher-darwin-x64@2.5.1':
resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==, tarball: https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz}
resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [darwin]
'@parcel/watcher-freebsd-x64@2.5.1':
resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==, tarball: https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz}
resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [freebsd]
'@parcel/watcher-linux-arm-glibc@2.5.1':
resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz}
resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm-musl@2.5.1':
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz}
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-arm64-glibc@2.5.1':
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz}
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm64-musl@2.5.1':
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz}
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-x64-glibc@2.5.1':
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz}
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-x64-musl@2.5.1':
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==, tarball: https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz}
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@parcel/watcher-win32-arm64@2.5.1':
resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==, tarball: https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz}
resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [win32]
'@parcel/watcher-win32-ia32@2.5.1':
resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==, tarball: https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz}
resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
engines: {node: '>= 10.0.0'}
cpu: [ia32]
os: [win32]
'@parcel/watcher-win32-x64@2.5.1':
resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==, tarball: https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz}
resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [win32]
'@parcel/watcher@2.5.1':
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==, tarball: https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.1.tgz}
resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
engines: {node: '>= 10.0.0'}
'@polka/url@1.0.0-next.21':
@ -800,13 +797,13 @@ packages:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
'@types/sortablejs@1.15.8':
resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==, tarball: https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz}
resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==}
'@types/svgo@2.6.4':
resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, tarball: https://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz}
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
'@types/web-bluetooth@0.0.16':
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
@ -1687,7 +1684,7 @@ packages:
resolution: {integrity: sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==}
canvg@3.0.11:
resolution: {integrity: sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==, tarball: https://registry.npmmirror.com/canvg/-/canvg-3.0.11.tgz}
resolution: {integrity: sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==}
engines: {node: '>=10.0.0'}
chalk@1.1.3:
@ -1877,7 +1874,7 @@ packages:
resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==}
core-js@3.45.0:
resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.45.0.tgz}
resolution: {integrity: sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@ -2197,7 +2194,7 @@ packages:
engines: {node: '>=0.12'}
errno@0.1.8:
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz}
resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
hasBin: true
error-ex@1.3.2:
@ -2614,7 +2611,7 @@ packages:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
@ -2778,7 +2775,7 @@ packages:
engines: {node: '>= 0.4'}
graceful-fs@4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz}
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
grapheme-splitter@1.0.4:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
@ -3716,7 +3713,7 @@ packages:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz}
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
make-iterator@1.0.1:
@ -3837,7 +3834,7 @@ packages:
engines: {node: '>= 0.6'}
mime@1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz}
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
hasBin: true
@ -3966,7 +3963,7 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
needle@3.2.0:
resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, tarball: https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz}
resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==}
engines: {node: '>= 4.4.x'}
hasBin: true
@ -4872,7 +4869,7 @@ packages:
engines: {node: '>=0.10.0'}
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz}
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
source-map@0.7.4:

View File

@ -1,3 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5 5.41667H2.5V3.75H17.5V5.41667ZM17.5 10.8333L9.16667 10.8333V9.16667L17.5 9.16667V10.8333ZM2.5 16.25L17.5 16.25V14.5833L2.5 14.5833V16.25ZM5.88166 7.49938C6.1589 7.31999 6.52469 7.51898 6.52469 7.8492V11.9793C6.52469 12.3095 6.1589 12.5085 5.88167 12.3291L2.69031 10.264C2.43656 10.0999 2.43656 9.7286 2.69031 9.5644L5.88166 7.49938Z" fill="#737478"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5 5.41667H2.5V3.75H17.5V5.41667ZM17.5 10.8333L9.16667 10.8333V9.16667L17.5 9.16667V10.8333ZM2.5 16.25L17.5 16.25V14.5833L2.5 14.5833V16.25ZM5.88166 7.49938C6.1589 7.31999 6.52469 7.51898 6.52469 7.8492V11.9793C6.52469 12.3095 6.1589 12.5085 5.88167 12.3291L2.69031 10.264C2.43656 10.0999 2.43656 9.7286 2.69031 9.5644L5.88166 7.49938Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 514 B

View File

@ -1,3 +1,3 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.5 5.41667H17.5V3.75H2.5V5.41667ZM9.16667 10.8333L17.5 10.8333V9.16667L9.16667 9.16667V10.8333ZM17.5 16.25L2.5 16.25V14.5833L17.5 14.5833V16.25ZM2.5 7.93499C2.5 7.60478 2.86579 7.40578 3.14302 7.58517L6.33438 9.6502C6.58813 9.81439 6.58812 10.1856 6.33438 10.3498L3.14302 12.4149C2.86579 12.5943 2.5 12.3953 2.5 12.065V7.93499Z" fill="#737478"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.5 5.41667H17.5V3.75H2.5V5.41667ZM9.16667 10.8333L17.5 10.8333V9.16667L9.16667 9.16667V10.8333ZM17.5 16.25L2.5 16.25V14.5833L17.5 14.5833V16.25ZM2.5 7.93499C2.5 7.60478 2.86579 7.40578 3.14302 7.58517L6.33438 9.6502C6.58813 9.81439 6.58812 10.1856 6.33438 10.3498L3.14302 12.4149C2.86579 12.5943 2.5 12.3953 2.5 12.065V7.93499Z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 505 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.5 6H2.5V4H21.5V6ZM21.5 13H2.5V11H21.5V13ZM21.5 20H2.5V18H21.5V20Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 246 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.29297 20.4489L13.7994 2.95081L15.7071 3.55115L10.2007 21.0492L8.29297 20.4489Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 258 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 11V2.5H13V11H21.5V13H13V21.5H11V13H2.5V11H11Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 226 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM10.3 9.9893V9.75871C10.3012 9.48436 10.3993 9.18002 10.6183 8.95121C10.8204 8.73989 11.2145 8.5 11.9943 8.5C12.7265 8.5 13.2356 8.84959 13.4953 9.24648C13.7726 9.67032 13.718 10.026 13.5864 10.2036C13.4222 10.4252 13.2184 10.6299 12.9721 10.8516C12.8972 10.9191 12.8048 10.9994 12.7058 11.0856L12.7058 11.0856C12.5287 11.2397 12.3303 11.4124 12.1721 11.5629C11.6103 12.0974 11.0002 12.8434 11.0002 14L11.0034 14.5064L13.0034 14.4936L13.0002 13.9973C13.001 13.6552 13.1412 13.4015 13.5507 13.0118C13.6884 12.8808 13.8122 12.7737 13.9538 12.6512L13.9539 12.6512C14.0586 12.5605 14.1731 12.4615 14.3102 12.338C14.5954 12.0813 14.9128 11.7731 15.1935 11.3941C15.9516 10.3706 15.7743 9.07681 15.1689 8.15152C14.5459 7.19927 13.4124 6.5 11.9943 6.5C10.767 6.5 9.81556 6.89715 9.17316 7.56856C8.54785 8.22211 8.30229 9.04557 8.30001 9.75365V9.9893H10.3ZM11.0034 15.5V17.5039H13.0034V15.5H11.0034Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 3.33333C5.42267 3.33333 3.33333 5.42267 3.33333 8C3.33333 10.5773 5.42267 12.6667 8 12.6667C10.1736 12.6667 12.0016 11.1801 12.5197 9.16716L13.8109 9.49951C13.1449 12.0872 10.7967 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C9.88554 2 11.5671 2.86964 12.6667 4.22866V2.66667H14V6.66667H10V5.33333H11.8304C10.9867 4.12378 9.58512 3.33333 8 3.33333Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 539 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.70709 20.4634L7.29288 19.0492L14.3639 11.9782L7.29288 4.90709L8.70709 3.49288L16.4852 11.271C16.4852 11.271 16.4853 11.2711 15.7782 11.9782L16.4852 11.271L17.1924 11.9782L8.70709 20.4634Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 367 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.8283 5.92898C13.0946 3.19531 8.66245 3.19531 5.92878 5.92898C3.19511 8.66265 3.19511 13.0948 5.92878 15.8285C8.66245 18.5621 13.0946 18.5621 15.8283 15.8285C18.5619 13.0948 18.5619 8.66265 15.8283 5.92898ZM4.51456 4.51476C8.02928 1.00004 13.7278 1.00004 17.2425 4.51476C20.5182 7.79047 20.741 12.963 17.9108 16.4967L21.4851 20.0711L20.0709 21.4853L16.4965 17.9109C12.9628 20.7411 7.79027 20.5184 4.51456 17.2427C0.999845 13.728 0.999845 8.02948 4.51456 4.51476Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 642 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.69816 6.69532C7.81664 5.57685 9.19776 4.88664 10.6424 4.62199L10.282 2.65472C8.45093 2.99017 6.69852 3.86654 5.28395 5.28111C1.57397 8.99109 1.57397 15.0062 5.28395 18.7161L3.57684 20.4232H8.40527V15.5948L6.69816 17.3019C3.76923 14.373 3.76923 9.62425 6.69816 6.69532ZM20.4243 3.57577H15.5959V8.4042L17.303 6.69709C20.2319 9.62603 20.2319 14.3748 17.303 17.3037C16.1845 18.4222 14.8034 19.1124 13.3587 19.377L13.7191 21.3443C15.5502 21.0088 17.3026 20.1325 18.7172 18.7179C22.4272 15.0079 22.4272 8.99286 18.7172 5.28288L20.4243 3.57577Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 717 B

3
src/assets/svg/xt-up.svg Normal file
View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.5071 14.5711L19.0929 15.9853L12.0218 8.91425L4.95076 15.9853L3.53655 14.5711L11.3147 6.79299C11.3147 6.79295 11.3147 6.79293 12.0218 7.50004L11.3147 6.79299L12.0218 6.08582L20.5071 14.5711Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 370 B

View File

@ -54,10 +54,10 @@
:class="isRequiredColumn(item) ? '!display-none' : ''"
>
<div class="flex items-center">
<icon-menu size="16" class="mr-8px" />
<SvgIcon name="xt-menu" size="16" class="color-#55585f mr-8px"/>
<span>{{ getCheckColumnLabel(item) }}</span>
</div>
<icon-close size="16" class="color-#737478 cursor-pointer" @click="removeCheckedField(item)" />
<SvgIcon name="xt-close" size="16" class="color-#737478 cursor-pointer" @click="removeCheckedField(item)"/>
</div>
</VueDraggable>
</div>

View File

@ -1,5 +1,6 @@
<script lang="tsx">
import { ref, defineComponent, onMounted, nextTick, watch, h } from 'vue';
import SvgIcon from '@/components/svg-icon/index.vue';
export interface ExpandableTagsProps {
// 标签数据数组
@ -190,7 +191,7 @@ export default defineComponent({
}}
>
<span class="cts mr-2px color-#6D4CFE expand-text">{isExpand.value ? '收起' : '更多'}</span>
<icon-down size={12} class="color-#6D4CFE icon" />
<SvgIcon name="xt-down" size={12} class="color-#6D4CFE icon" />
</div>
)}
</div>

View File

@ -23,7 +23,7 @@
"
>
{{ isShow ? '收起' : '展开' }}
<icon-up size="16" :class="{ active: isShow }" class="ml-2px color-#8C8C8C" />
<SvgIcon name="xt-up" size="16" :class="{ active: isShow }" class="ml-2px color-#8C8C8C" />
</div>
</Tooltip>
</template>

View File

@ -1,6 +1,7 @@
<script lang="tsx">
import { Button } from 'ant-design-vue';
import { Bubble } from '@/components/xt-chat/xt-bubble';
import SvgIcon from '@/components/svg-icon/index.vue';
import Http from '@/api';
import { downloadByUrl } from '@/utils/tools';
@ -82,7 +83,7 @@ export default {
type="primary"
ghost
class="mr-16px"
v-slots={{ icon: () => <icon-plus size="14" /> }}
v-slots={{ icon: () => <SvgIcon name="xt-plus" size="14" /> }}
onClick={onAddMediaCenter}
>
素材中心
@ -93,7 +94,7 @@ export default {
type="primary"
ghost
class="mr-16px"
v-slots={{ icon: () => <icon-plus size="14" /> }}
v-slots={{ icon: () => <SvgIcon name="xt-plus" size="14" /> }}
onClick={onAddTaskManage}
>
任务管理
@ -102,13 +103,13 @@ export default {
type="outline"
size="medium"
class="mr-16px"
v-slots={{ icon: () => <icon-download size="14" /> }}
v-slots={{ icon: () => <SvgIcon name="xt-download" size="14" /> }}
onClick={onDownload}
>
下载
</Button>*/}
<div class="line mr-24px w-1px h-16px bg-#B1B2B5"></div>
<icon-close size={20} class="color-#737478 cursor-pointer" onClick={() => emit('close')} />
<SvgIcon name="xt-close" size={20} class="color-#737478 cursor-pointer" onClick={() => emit('close')} />
</header>
);
};

View File

@ -2,6 +2,7 @@
import { ref } from 'vue';
import { Sender } from 'ant-design-x-vue';
import { Tooltip } from 'ant-design-vue';
import SvgIcon from '@/components/svg-icon/index.vue';
interface SenderInputProps {
modelValue?: string;
@ -73,7 +74,7 @@ export default {
isEmptyValue.value ? 'opacity-50' : ''
}`}
>
<icon-arrow-right size={20} class="color-#FFFFFF" />
<SvgIcon name="xt-arrow-right" size={20} class="color-#FFFFFF" />
</div>
);
};

View File

@ -3,14 +3,7 @@ import { ref } from 'vue';
import type { BubbleListProps } from '@/components/xt-chat/xt-bubble/types';
import markdownit from 'markdown-it';
import { message as antdMessage } from 'ant-design-vue';
import {
IconFile,
IconCaretUp,
IconDownload,
IconCaretDown,
IconRefresh,
IconCopy,
} from '@arco-design/web-vue/es/icon';
import SvgIcon from '@/components/svg-icon/index.vue';
import { Tooltip } from 'ant-design-vue';
import TextOverTips from '@/components/text-over-tips/index.vue';
@ -111,14 +104,14 @@ export default function useChatHandler(options: UseChatHandlerOptions): UseChatH
return (
<div class="flex items-center">
<Tooltip title="复制" onClick={() => onCopy(content)} align={{ offset: [0, 4] }}>
<div class="action-box">
<IconCopy size={16} class="color-#737478" />
<div class="action-box flex items-center">
<SvgIcon name="xt-copy" size="16" class="color-#737478"/>
</div>
</Tooltip>
{isLastRunTask && (
<Tooltip title="重新生成" onClick={() => handleRemoteRefresh(item)} align={{ offset: [0, 4] }}>
<div class="action-box ml-12px">
<IconRefresh size={16} class="color-#737478 " />
<div class="action-box ml-12px flex items-center">
<SvgIcon name="xt-refresh" size="16" class="color-#737478"/>
</div>
</Tooltip>
)}
@ -317,7 +310,7 @@ export default function useChatHandler(options: UseChatHandlerOptions): UseChatH
<>
{_targetData && (
<div class="file-card mt-10px">
<IconFile class="w-24px h-24px mr-16px color-#6D4CFE" />
<SvgIcon name="xt-file" size="14" class="color-#6D4CFE w-24px h-24px mr-16px"/>
<div>
<TextOverTips
context={FILE_TYPE_MAP?.[_targetData.file_type] ?? '-'}
@ -348,14 +341,14 @@ export default function useChatHandler(options: UseChatHandlerOptions): UseChatH
// ) :
<Tooltip title="复制" onClick={() => onCopy(existingItem.content.output)} align={{ offset: [0, 4] }}>
<div class="action-box">
<IconCopy size={16} class="color-#737478" />
<SvgIcon name="xt-copy" size="16" class="color-#737478"/>
</div>
</Tooltip>
)}
{isLastRunTask && (
<Tooltip title="重新生成" onClick={() => onRefresh(teamRunTaskId)} align={{ offset: [0, 4] }}>
<div class="action-box ml-12px">
<IconRefresh size={16} class="color-#737478 " />
<div class="action-box ml-12px flex items-center">
<SvgIcon name="xt-refresh" size="16" class="color-#737478"/>
</div>
</Tooltip>
)}

View File

@ -26,12 +26,12 @@ const DEFAULT_MENU_CONFIG = [
{
label: '重命名',
key: 'rename',
icon: <icon-edit size={14} class="color-#737478" />,
icon: <SvgIcon name="xt-edit" size={14} class="color-#737478" />,
},
{
label: '删除',
key: 'delete',
icon: <icon-delete size={14} class="color-#F64B31" />,
icon: <SvgIcon name="xt-delete" size={14} class="color-#F64B31" />,
status: 'danger',
},
] as ConversationItem[];
@ -144,7 +144,7 @@ export default defineComponent({
),
}}
>
<icon-more size={16} class="color-#737478 cursor-pointer ml-8px opacity-0 group-hover:opacity-100" />
<SvgIcon name="svg-more"size={16} class="color-#737478 cursor-pointer ml-8px opacity-0 group-hover:opacity-100" />
</Dropdown>
</div>
));

View File

@ -1,5 +1,7 @@
<script lang="jsx">
import { Input } from 'ant-design-vue';
import SvgIcon from '@/components/svg-icon/index.vue';
// import { handleUserHome } from '@/utils/user.ts';
import { useChatStore } from '@/stores/modules/chat';
import { useUserStore } from '@/stores';
@ -34,7 +36,7 @@ export default {
v-slots={{
suffix: () => (
<div class=" rounded-16px w-32px h-32px flex justify-center items-center icon " onClick={handleSearch}>
<icon-arrow-right size={20} class="color-#6D4CFE" />
<SvgIcon name="xt-arrow-right" size={20} class="color-#6D4CFE" />
</div>
),
}}

View File

@ -32,8 +32,7 @@
</div>
<TextOverTips :context="userData.name || userData.mobile" />
</div>
<icon-caret-down class="icon-caret color-#939499" size="14" />
<<SvgIcon name="xt-caret-down" class="icon-caret color-#939499" size="14" />
</div>
<template #overlay>
@ -44,7 +43,7 @@
<img :src="icon1" class="w-16px h-16px mr-8px" />
<span>管理中心</span>
</div>
<icon-right size="12" />
<SvgIcon name="xt-right" size="12" />
</div>
</MenuItem>
<MenuItem v-if="enterprises.length > 0">
@ -55,7 +54,7 @@
<img :src="icon3" class="w-16px h-16px mr-8px" />
<span>切换企业账号</span>
</div>
<icon-right size="12" />
<SvgIcon name="xt-right" size="12" />
</div>
</template>
<div v-for="(item, index) in enterprises" :key="index">
@ -70,7 +69,7 @@
:class="enterpriseInfo?.id === item.id ? '!color-#6D4CFE' : ''"
>
<span>{{ item.name }}</span>
<icon-check v-if="enterpriseInfo?.id === item.id" size="16" />
<SvgIcon name="xt-check" v-if="enterpriseInfo?.id === item.id" size="16" />
</div>
</MenuItem>
@ -131,7 +130,7 @@
<img :src="icon2" class="w-16px h-16px mr-8px" />
<span>退出登录</span>
</div>
<icon-right size="12" />
<SvgIcon name="xt-right" size="12" />
</div>
</MenuItem>
</Menu>

View File

@ -1,8 +1,8 @@
<script lang="jsx">
import { ref, computed } from 'vue';
import { Button, Checkbox, Input, Tooltip, Table, Pagination, message, notification } from 'ant-design-vue';
import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon';
import { Button, Checkbox, Input, Table, Pagination, message, notification } from 'ant-design-vue';
import SvgIcon from '@/components/svg-icon/index.vue';
import NoData from '@/components/no-data';
import { getTask, postRedoTask, postBatchDownload, batchQueryTaskStatus } from '@/api/all/common';
import { INITIAL_FORM, TABLE_COLUMNS } from './constants';
@ -213,7 +213,7 @@ export default {
allowClear
onChange={handleSearch}
v-slots={{
prefix: () => <IconSearch />,
prefix: () => <SvgIcon name="xt-search" size="14" class="color-#55585f"/>,
}}
/>
</div>
@ -227,7 +227,7 @@ export default {
allowClear
onChange={handleSearch}
v-slots={{
prefix: () => <IconSearch />,
prefix: () => <SvgIcon name="xt-search" size="14" class="color-#55585f"/>,
}}
/>
</div>
@ -262,7 +262,7 @@ export default {
</span>
</div>
</div>
<IconClose size={16} class="cursor-pointer color-#737478" onClick={clearSelectedRows} />
<SvgIcon name="xt-close" size="16" class="cursor-pointer color-#55585f" onClick={clearSelectedRows} />
</div>
)}
@ -299,11 +299,6 @@ export default {
title={() => (
<>
<span class="cts mr-4px">{column.title}</span>
{column.tooltip && (
<Tooltip title={column.tooltip} placement="top">
<IconQuestionCircle class="tooltip-icon color-#737478" size={16} />
</Tooltip>
)}
</>
)}
customRender={({ record }) => {

View File

@ -1,15 +1,15 @@
<script lang="jsx">
import { ref, computed } from 'vue';
import { Button, Tooltip, Table, Pagination } from 'ant-design-vue';
import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon';
import { Button, Table, Pagination } from 'ant-design-vue';
import NoData from '@/components/no-data';
import DeleteTaskModal from './delete-task-modal.vue';
import { getTask } from '@/api/all/common';
import { INITIAL_FORM, TABLE_COLUMNS } from './constants';
import { IMPORT_TASK_STATUS, enumTaskStatus } from '../../constants';
import { formatTableField, exactFormatTime } from '@/utils/tools';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
import { downloadByUrl } from '@/utils/tools';
import DeleteTaskModal from './delete-task-modal.vue';
import icon1 from '@/assets/img/media-account/icon-delete.png';
// import { showExportNotification } from '@/utils/notification';
@ -147,11 +147,6 @@ export default {
title={() => (
<>
<span class="cts mr-4px">{column.title}</span>
{column.tooltip && (
<Tooltip title={column.tooltip} placement="top">
<IconQuestionCircle class="tooltip-icon color-#737478" size={16} />
</Tooltip>
)}
</>
)}
customRender={({ record }) => {

View File

@ -221,11 +221,12 @@ export default defineComponent({
sidebarStore.setMenuCollapse();
}}
>
{collapsed.value ? (
<icon-menu-unfold size={16} class="color-#55585F icon mr-4px" />
) : (
<icon-menu-fold size={16} class="color-#55585F icon mr-4px" />
)}
<SvgIcon
name="xt-menu-fold"
size="16"
class={`color-#737478 icon mr-4px ${collapsed.value ? 'xt-menu-unfold' : 'xt-menu-fold'}`}
/>
{!collapsed.value && <span class="cts !color-#55585F flex-shrink-0">收起</span>}
</div>
</div>

View File

@ -1,4 +1,3 @@
import { IconBookmark } from '@arco-design/web-vue/es/icon';
import type { AppRouteRecordRaw } from '../types';
import { MENU_GROUP_IDS } from '@/router/constants';
@ -9,7 +8,6 @@ const COMPONENTS: AppRouteRecordRaw[] = [
redirect: 'dataEngine/hotTranslation',
meta: {
locale: '全域数据引擎',
icon: IconBookmark,
requiresAuth: true,
requireLogin: true,
roles: ['*'],

View File

@ -1,4 +1,3 @@
import { IconBookmark } from '@arco-design/web-vue/es/icon';
import type { AppRouteRecordRaw } from '../types';
import { MENU_GROUP_IDS } from '@/router/constants';
import { GROUP_MANAGEMENT_NAME, GROUP_WRITER_NAME } from '@/layouts/components/siderBar/menu-list';
@ -12,7 +11,6 @@ const COMPONENTS: AppRouteRecordRaw[] = [
redirect: 'management/person',
meta: {
locale: '管理中心',
icon: IconBookmark,
requiresAuth: false,
requireLogin: true,
roles: ['*'],

View File

@ -1,7 +1,6 @@
import { notification } from 'ant-design-vue';
import { downloadByUrl } from '@/utils/tools';
import { IconLoading } from '@arco-design/web-vue/es/icon';
import { Loading3QuartersOutlined } from '@ant-design/icons-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png';
import icon2 from '@/assets/img/media-account/icon-success.png';
@ -23,7 +22,7 @@ export function showExportNotification(label: string, others: { id?: string, dur
message: () => null,
description: (
<div class="flex items-center pr-16px">
<IconLoading size={16} class="color-#6D4CFE mr-8px" />
<Loading3QuartersOutlined class="color-#6D4CFE mr-8px" spin/>
<p class="text-14px lh-22px font-400 color-#211F24">{label}</p>
</div>
),

View File

@ -1,7 +1,7 @@
<template>
<div class="pl-16px h-full flex flex-col overflow-y-auto">
<div class="back-wap cursor-pointer mb-17px mt--3px !w-fit" @click="goChatIndex">
<icon-left size="16" class="color-#737478 mr-4px" />
<SvgIcon name="xt-left" size="16" class="color-#737478 mr-4px" />
<span class="cs">返回空间</span>
</div>
<div class="workflow-container">
@ -53,8 +53,8 @@
import { ref, onMounted } from 'vue';
import { getChatAgent } from '@/api/all/agent';
import { useRouter } from 'vue-router';
import menuFold from '@/assets/svg/menu-fold.svg';
import menuUnfold from '@/assets/svg/menu-unfold.svg';
import menuFold from '@/assets/svg/xt-menu-fold.svg';
import menuUnfold from '@/assets/svg/xt-menu-unfold.svg';
import { Tooltip } from 'ant-design-vue';
import { formatNumberShow } from '@/utils/tools';

View File

@ -9,7 +9,7 @@
class="absolute right-0 top-4px !w-400px"
>
<template #prefix>
<icon-search @click="getData()" />
<SvgIcon name="xt-search" @click="getData()" />
</template>
</Input>
<div v-for="(item, index) in list" :key="index">

View File

@ -1,7 +1,7 @@
<template>
<div class="h-full overflow-hidden flex flex-col">
<div class="back-wap cursor-pointer mb-20px" @click="goChatIndex">
<icon-left size="16" class="color-#737478 mr-4px" />
<SvgIcon name="xt-left" size="16" class="color-#737478 mr-4px" />
<span class="cs">返回空间</span>
</div>
<div class="workflow-container flex-1">

View File

@ -6,7 +6,7 @@
<span class="title mr-4px">行业词云</span>
<Tooltip>
<template #title>基于行业内内容提取的高频词汇</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>

View File

@ -7,7 +7,7 @@
<span class="title mr-4px">行业热门话题洞察</span>
<Tooltip>
<template #title>基于社交内容平台的行业数据分析用户关注的热门话题与趋势</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<Table
@ -61,7 +61,7 @@
<span class="mr-8px">热度指数</span>
<Tooltip>
<template #title>综合话题出现频次互动数据如点赞收藏评论加权计算的热度得分</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</div>
</template>
@ -72,7 +72,7 @@
<template #title
>统计该行业下全部内容的情绪分布选取占比最高的情绪类型作为该话题的整体情感倾向</template
>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</div>
</template>
@ -165,7 +165,6 @@ import star5 from '@/assets/img/hottranslation/star-fill5.png';
import top1 from '@/assets/img/captcha/top1.svg';
import top2 from '@/assets/img/captcha/top2.svg';
import top3 from '@/assets/img/captcha/top3.svg';
import { IconQuestionCircle, IconArrowUp, IconArrowDown } from '@arco-design/web-vue/es/icon';
// 新增排序状态和函数
const heatSortDirection = ref('desc'); // 默认降序排列
const columns = [

View File

@ -13,7 +13,7 @@
<template #title
>基于该行业中近期提及频次高用户互动活跃的品牌内容筛选出关注度较高的代表性品牌</template
>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<Table
@ -42,8 +42,8 @@
</template>
<template v-else-if="column.slotName === 'trend'" #customRender="{ record }">
<div class="flex items-center" :class="record.trend > 0 ? 'color-#F64B31' : 'color-#25C883'">
<icon-arrow-up v-if="record.trend > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record.trend > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ `${(record.trend * 100).toFixed(2)}%` }}
</div>
</template>
@ -55,7 +55,7 @@
<span>热度指数</span>
<Tooltip>
<template #title>综合话题出现频次互动数据如点赞收藏评论加权计算的热度得分</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -64,7 +64,7 @@
<span>变化幅度</span>
<Tooltip>
<template #title>仅基于品牌出现频次</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -73,7 +73,7 @@
<span>占总声量比例</span>
<Tooltip>
<template #title>该品牌在当前周期内被提及的内容量占整个行业内容总量的比例</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -94,7 +94,7 @@
<template #title
>基于情绪分析与敏感词识别对行业内容中的负面或争议性话题进行监测辅助判断舆情风险动态</template
>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>

View File

@ -11,7 +11,7 @@
<span class="title mr-4px">关键词热度榜</span>
<Tooltip>
<template #title>基于该行业用户内容中提及频率较高的关键词按热度进行排序反映近期关注焦点</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
@ -31,7 +31,7 @@
<span>热度指数</span>
<Tooltip>
<template #title>综合话题出现频次互动数据如点赞收藏评论加权计算的热度得分</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -40,7 +40,7 @@
<span>变化幅度</span>
<Tooltip>
<template #title>仅基于关键词出现频次</template>
<icon-question-circle size="14" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -64,8 +64,8 @@
</template>
<template #tred="{ record }">
<div class="flex items-center" :class="record.trend > 0 ? 'color-#F64B31' : 'color-#25C883'">
<icon-arrow-up v-if="record.trend > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record.trend > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ `${(record.trend * 100).toFixed(2)}%` }}
</div>
</template>
@ -82,7 +82,7 @@
<template #title
>对该行业下用户内容进行情绪分析按情绪类别统计占比提取占比最高者作为行业情绪代表</template
>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
@ -135,7 +135,7 @@
<template #title
>指当前周期中首次出现或相较上一周期词频显著增长的关键词反映近期出现的新关注点</template
>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
@ -185,7 +185,7 @@
<span>当前热度指数</span>
<Tooltip>
<template #title>综合关键词出现频次互动表现如点赞收藏评论加权计算的热度得分</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</Space>
</template>
@ -194,14 +194,14 @@
<span>变化幅度</span>
<Tooltip>
<template #title>仅基于关键词出现频次</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</Space>
</template>
<template #tred="{ record }">
<div class="flex items-center" :class="record.trend > 0 ? 'color-#F64B31' : 'color-#25C883'">
<icon-arrow-up v-if="record.trend > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record.trend > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ `${(record.trend * 100).toFixed(2)}%` }}
</div>
</template>
@ -236,8 +236,8 @@
<div class="mb-12px flex items-center">
<p class="cts !mr-16px flex-shrink-0 w-83px">变化幅度</p>
<div class="flex items-center" :class="topicInfo.trend > 0 ? 'color-#F64B31' : 'color-#25C883'">
<icon-arrow-up v-if="topicInfo.trend > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="topicInfo.trend > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ `${topicInfo.trend * 100}%` }}
</div>
</div>

View File

@ -75,14 +75,14 @@
<Space style="margin-left: 'auto'">
<Button type="primary" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px"/>
<SvgIcon name="xt-search" class="mr-8px"/>
</template>
<!-- Use the default slot to avoid extra spaces -->
<template #default>搜索</template>
</Button>
<Button class="w-84px reset-btn" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px"/>
<SvgIcon name="xt-refresh" class="mr-8px"/>
</template>
<template #default>重置</template>
</Button>

View File

@ -14,7 +14,7 @@
<template #title
>基于用户内容中的情绪分析与表达模式提取反复出现的负面倾向主题反映典型使用痛点</template
>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<Table

View File

@ -8,7 +8,7 @@
<span class="title mr-4px">性别分布</span>
<Tooltip>
<template #title>基于社交内容平台中用户资料互动行为及语义特征进行智能识别与估算</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<Space v-if="genderData.length > 0">
@ -42,7 +42,7 @@
<span class="title mr-4px">年龄分布</span>
<Tooltip>
<template #title>基于社交平台的公开信息内容偏好与行为模式通过算法进行年龄段归类和统计</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<Space v-if="ageValueData.length > 0" align="center">
@ -63,7 +63,7 @@
<span class="title mr-4px">地域分布</span>
<Tooltip>
<template #title>基于社交平台的IP归属地位置标签内容发布地等数据推测用户活跃区域</template>
<icon-question-circle size="16" class="!color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="!color-#737478" />
</Tooltip>
</div>
<div class="flex">

View File

@ -69,7 +69,7 @@ const getAllIcons = () => {
};
const onCopySvg = (name) => {
const context = `<SvgIcon name="${name}" size="14" class="color-#55585f"/>`;
const context = `<SvgIcon name="${name}" size="14" class="color-#737478"/>`;
copy(context);
message.success('复制成功');
};

View File

@ -97,7 +97,7 @@ export default {
<Drawer width={320} rootClassName="ct-history-conversation-drawer" v-model:open={open.value} onClose={onClose}>
<header class="header h-40px px-12px flex justify-between items-center">
<span class="text-12px font-400 color-#211F24 font-family-medium">历史对话</span>
<icon-close size={16} class="color-#211F24 cursor-pointer" onClick={onClose} />
<SvgIcon name="xt-close" size={16} class="color-#211F24 cursor-pointer" onClick={onClose} />
</header>
{dataSource.value.length === 0 ? (
<NoData text="暂无历史对话" />

View File

@ -2,6 +2,7 @@
import { ref } from 'vue';
import { Sender } from 'ant-design-x-vue';
import { Tooltip } from 'ant-design-vue';
import SvgIcon from '@/components/svg-icon/index.vue';
interface SenderInputProps {
modelValue?: string;
@ -71,7 +72,7 @@ export default {
isEmptyValue.value ? 'opacity-50' : ''
}`}
>
<icon-arrow-right size={20} class="color-#FFFFFF" />
<SvgIcon name="xt-arrow-right" size={20} class="color-#FFFFFF" />
</div>
);
};

View File

@ -4,7 +4,7 @@
<div class="w-full bg-#fff rounded-16px px-40px py-32px flex flex-col items-center">
<div class="flex items-center mb-24px w-full">
<div class="flex items-center cursor-pointer" @click="onBack">
<icon-left class="mr-4px color-#000" size="24" />
<SvgIcon name="xt-left" class="mr-4px color-#000" size="24" />
<span class="color-#000 text-20px font-500 lh-28px font-family-medium">{{
isResetPassword ? '重置密码' : '手机注册'
}}</span>

View File

@ -17,10 +17,10 @@ import icon3 from '@/assets/img/error-img.png';
import icon4 from '@/assets/img/creative-generation-workshop/icon-avatar-default-v2.png';
const _iconMap = new Map([
// [3, { icon: <icon-check-circle-fill size={16} class="color-#25C883 flex-shrink-0" /> }],
[2, { icon: <icon-exclamation-circle-fill size={16} class="color-#F64B31 flex-shrink-0" /> }],
[1, { icon: <icon-exclamation-circle-fill size={16} class="color-#FFAE00 flex-shrink-0" /> }],
[0, { icon: <icon-check-circle-fill size={16} class="color-#25C883 flex-shrink-0" /> }],
// [3, { icon: <SvgIcon name="xt-check-circle-fill" size={16} class="color-#25C883 flex-shrink-0" /> }],
[2, { icon: <SvgIcon name="xt-exclamation-circle-fill" size={16} class="color-#F64B31 flex-shrink-0" /> }],
[1, { icon: <SvgIcon name="xt-exclamation-circle-fill" size={16} class="color-#FFAE00 flex-shrink-0" /> }],
[0, { icon: <SvgIcon name="xt-check-circle-fill" size={16} class="color-#25C883 flex-shrink-0" /> }],
]);
export default {
@ -94,7 +94,7 @@ export default {
}
return (
<icon-delete
<SvgIcon name="xt-delete"
class="ml-12px cursor-pointer color-#55585F hover:color-#6D4CFE"
size={16}
onClick={() => deleteCommentModalRef.value?.open(id)}
@ -121,7 +121,7 @@ export default {
class="cts !color-#737478"
/>
</div>
<icon-close size={16} class="color-#737478 cursor-pointer flex-shrink-0" onClick={closeReplay} />
<SvgIcon name="xt-close" size={16} class="color-#737478 cursor-pointer flex-shrink-0" onClick={closeReplay} />
</div>
</div>
)}
@ -292,11 +292,11 @@ export default {
<img src={icon1} class="w-80px h-10.8px absolute bottom-1px left--9px" />
</div>
)}
<icon-menu-unfold
<SvgIcon
name="xt-menu-unfold"
size={20}
class="color-#55585F cursor-pointer hover:color-#6D4CFE absolute top-24px right-24px"
onClick={() => emit('toggle', false)}
class="color-#55585F cursor-pointer hover:color-#6D4CFE absolute top-24px right-24px"
/>
{/**主体 */}

View File

@ -2,6 +2,7 @@
import { Button } from 'ant-design-vue';
import { Spin } from 'ant-design-vue';
import AiSuggest from './components/ai-suggest/';
import SvgIcon from '@/components/svg-icon/index.vue';
import { getShareWorksList, getShareWorksDetail, patchShareWorksConfirm } from '@/api/all/generationWorkshop.ts';
import { convertVideoUrlToCoverUrl, exactFormatTime } from '@/utils/tools.ts';
@ -225,7 +226,7 @@ export default {
) : (
<section class={`page-wrap relative ${isExpand.value ? 'expand' : ''}`}>
<div class="fold-box cursor-pointer" onClick={() => (isExpand.value = true)}>
<icon-menu-fold size={20} class="color-#55585F hover:color-#6D4CFE" />
<SvgIcon name="xt-menu-fold" size={20} class="color-#55585F hover:color-#6D4CFE"/>
</div>
<section class="explore-detail-wrap pt-32px pb-52px flex flex-col items-center">
<div class="flex justify-start flex-col w-full relative">

View File

@ -2,6 +2,7 @@
import { Tabs, TabPane, Button } from 'ant-design-vue';
import ManuscriptList from './manuscript/list/index.vue';
import ManuscriptCheckList from './manuscript/check-list/index.vue';
import SvgIcon from '@/components/svg-icon/index.vue';
import ShareManuscriptModal from '@/views/material-center/components/finished-products/manuscript/components/share-manuscript-modal/index.vue';
import UploadManuscriptModal from '@/views/material-center/components/finished-products/manuscript/components/upload-manuscript-modal/index.vue';
@ -43,7 +44,7 @@ export default defineComponent({
class="ml-12px"
onClick={openUploadModal}
v-slots={{
icon: () => <icon-plus size="16" class="mr-8px" />,
icon: () => <SvgIcon name="xt-plus" size="16" class="mr-8px" />,
default: () => '上传内容稿件',
}}
/>

View File

@ -18,7 +18,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
@ -35,7 +35,7 @@
<!-- @change="handleSearch"-->
<!-- >-->
<!-- <template #prefix>-->
<!-- <icon-search />-->
<!-- <SvgIcon name="xt-search" />-->
<!-- </template>-->
<!-- </Input>-->
<!-- </Space>-->
@ -83,13 +83,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button size="medium" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -28,7 +28,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>

View File

@ -1,6 +1,7 @@
<script lang="jsx">
import { Drawer, Image } from 'ant-design-vue';
import TextOverTips from '@/components/text-over-tips';
import SvgIcon from '@/components/svg-icon/index.vue';
import icon1 from '@/assets/img/error-img.png';
@ -45,7 +46,7 @@ export default {
<span class="mr-8px cts bold">批量审核列表</span>
<span class="mr-8px cts !lh-22px !text-14px">{`${dataSource.value.length}`}</span>
</div>
<icon-menu-unfold size={16} class="color-##55585F cursor-pointer hover:color-#6D4CFE" onClick={onClose} />
<SvgIcon name="xt-menu-unfold" size={16} class="color-##55585F cursor-pointer hover:color-#6D4CFE" onClick={onClose}/>
</div>
<div class="flex-1 overflow-y-auto px-24px">
{dataSource.value.map((item) => (

View File

@ -1,8 +1,9 @@
<script lang="jsx">
import axios from 'axios';
import { Swiper, SwiperSlide } from 'swiper/vue';
import SvgIcon from '@/components/svg-icon/index.vue';
import { Button, Form, Input, FormItem, Tabs, message, Image, Upload, Spin } from 'ant-design-vue';
import { IconLoading } from '@arco-design/web-vue/es/icon';
import { LoadingOutlined } from '@ant-design/icons-vue';
import TextOverTips from '@/components/text-over-tips';
import HighlightTextarea from './highlight-textarea';
@ -174,7 +175,7 @@ export default {
<Button type="primary" ghost class="w-123px check-btn" onClick={onAiReplace} disabled={isDisabled.value}>
{aiReplaceLoading.value ? (
<>
<IconLoading size={14} />
<LoadingOutlined style={{ fontSize: '14px' }} spin />
<span class="ml-8px check-text">AI生成中</span>
</>
) : (
@ -270,7 +271,8 @@ export default {
}}
/>
</div>
<icon-close-circle-fill
<SvgIcon
name="xt-close-circle-fill"
size={16}
class="close-icon absolute top--8px right--8px hidden cursor-pointer color-#737478 hover:!color-#211F24 z-50"
onClick={(e) => onDeleteImage(e, item, index)}
@ -294,7 +296,7 @@ export default {
<div class="flex justify-center mb-16px">
{renderUpload(
<div class="upload-box">
<icon-plus size="14" class="mb-16px color-#3C4043" />
<SvgIcon name="xt-plus" size="14" class="mb-16px color-#3C4043" />
<span class="cts !color-#211F24">上传图片</span>
</div>,
)}
@ -426,7 +428,7 @@ export default {
<span>{item.label}</span>
{
// activeTab.value === item.value && aiReview.value?.violation_items.length > 0 && (
// <icon-exclamation-circle-fill size={14} class="color-#F64B31 absolute right--10px top-0" />
// <SvgIcon name="xt-exclamation-circle-fill" size={14} class="color-#F64B31 absolute right--10px top-0" />
// )
}
</div>

View File

@ -1,11 +1,11 @@
<script lang="jsx">
import { Button, message } from 'ant-design-vue';
import { Spin } from 'ant-design-vue';
import CancelCheckModal from './cancel-check-modal.vue';
import CheckSuccessModal from './check-success-modal.vue';
import HeaderCard from './components/header-card';
import ContentCard from './components/content-card';
import CheckListDrawer from './components/check-list-drawer';
import SvgIcon from '@/components/svg-icon/index.vue';
import { slsWithCatch, rlsWithCatch, glsWithCatch } from '@/utils/stroage.ts';
import useGetAiReviewResult from '@/hooks/useGetAiReviewResult.ts';
@ -209,7 +209,7 @@ export default {
<span class="cts color-#4E5969 cursor-pointer" onClick={onExit}>
成品库
</span>
<icon-oblique-line size="12" class="color-#C9CDD4 mx-4px" />
<SvgIcon name="xt-oblique-line" size="12" class="color-#C9CDD4 mx-4px" />
<span class="cts bold !color-#1D2129">{`${workIds.value.length > 0 ? '批量' : ''}审核内容稿件`}</span>
</div>
{dataSource.value.length > 1 && (
@ -217,7 +217,7 @@ export default {
class="check-list-icon"
onClick={() => checkListDrawerRef.value.open(dataSource.value, selectCardInfo.value)}
>
<icon-menu-fold size={16} class="color-#55585F icon mr-4px" />
<SvgIcon name="xt-menu-fold" size={16} class="color-#55585F icon mr-4px" />
<span class="cts !color-#211F24">审核列表</span>
</div>
)}

View File

@ -16,7 +16,8 @@
>
<div class="group-container relative rounded-8px w-100px h-100px">
<img :src="file.url" class="object-cover w-full h-full border-1px border-#E6E6E8 rounded-8px" />
<icon-close-circle-fill
<SvgIcon
name="xt-close-circle-fill"
:size="16"
class="absolute top--8px right--8px cursor-pointer hidden color-#939499 hidden group-hover:block z-50"
@click="() => handleDeleteFile(index)"
@ -35,7 +36,7 @@
>
<template #default>
<div class="upload-box">
<icon-plus size="14" class="mb-16px color-#3C4043" />
<SvgIcon name="xt-plus" size="14" class="mb-16px color-#3C4043" />
<span class="cts !color-#211F24">上传图片</span>
</div>
</template>

View File

@ -1,10 +1,12 @@
<script lang="jsx">
import axios from 'axios';
import { Button, Form, FormItem, Input, message, Upload } from 'ant-design-vue';
import { Loading3QuartersOutlined } from '@ant-design/icons-vue';
// import CommonSelect from '@/components/common-select';
// import { VueDraggable } from 'vue-draggable-plus';
import TextOverTips from '@/components/text-over-tips';
import ImgBox from './img-box';
import SvgIcon from '@/components/svg-icon/index.vue';
import { formatFileSize, getVideoInfo, formatDuration, formatUploadSpeed } from '@/utils/tools';
// import { getProjectList } from '@/api/all/propertyMarketing';
@ -207,7 +209,7 @@ export default {
>
{formData.value.videoInfo.uploadStatus === ENUM_UPLOAD_STATUS.DEFAULT ? (
<div class="upload-box">
<icon-plus size="14" class="mb-16px color-#3C4043" />
<SvgIcon name="xt-plus" size="14" class="mb-16px color-#3C4043" />
<span class="cts !color-#211F24">上传视频</span>
</div>
) : (
@ -238,7 +240,7 @@ export default {
<div class="flex items-center mr-12px">
{isUploading ? (
<div class="w-80px h-80px flex items-center justify-center bg-#fff rounded-8px mr-16px">
<icon-loading size="24" class="color-#B1B2B5" />
<Loading3QuartersOutlined spin size="24" class="color-#B1B2B5 text-24px" />
</div>
) : (
<img src={formData.value.videoInfo.poster} class="w-80 h-80 object-cover mr-16px rounded-8px" />
@ -256,7 +258,7 @@ export default {
) : (
<div class="flex items-center">
<div class="flex items-center mr-24px w-100px">
<icon-loading size="16" class="color-#6D4CFE mr-8px" />
<Loading3QuartersOutlined spin size="16" class="color-#6D4CFE mr-8px text-16px" />
<span class="cts !color-#6D4CFE mr-4px">上传中</span>
<span class="cts !color-#6D4CFE ">{formData.value.videoInfo.percent}%</span>
</div>

View File

@ -139,7 +139,7 @@ export default {
<div class="flex items-center">
<span>分享对象</span>
<Tooltip title="可填写客户名称、昵称等,非必填" placement="top">
<icon-question-circle class="tooltip-icon color-#737478 ml-4px" size="14" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478 ml-4px" size="14" />
</Tooltip>
</div>
),

View File

@ -4,6 +4,8 @@ import { useClipboard } from '@vueuse/core';
import { getWriterLinksGenerate, getTemplateUrl, postWorksByLink, postWorksByFile } from '@/api/all/generationWorkshop';
import { generateFullUrl } from '@/utils/tools';
import { slsWithCatch } from '@/utils/stroage.ts';
import SvgIcon from '@/components/svg-icon/index.vue';
import { Loading3QuartersOutlined } from '@ant-design/icons-vue';
import TextOverTips from '@/components/text-over-tips';
import icon1 from '@/assets/img/media-account/icon-feedback-fail.png';
@ -240,7 +242,7 @@ export default {
showUploadList={false}
>
<div class="upload-box">
<icon-plus size="14" class="mb-16px" />
<SvgIcon name="xt-plus" size="14" class="mb-16px" />
<span class="text mb-4px">点击或拖拽文件到此处上传</span>
<span class="tip">支持文档文本+, 视频批量上传</span>
</div>
@ -256,7 +258,7 @@ export default {
// 渲染加载状态
const renderLoadingState = () => (
<div class="flex flex-col items-center justify-center rounded-8px bg-#F7F8FA h-208px">
<icon-loading size="48" class="!color-#6D4CFE mb-16px" />
<Loading3QuartersOutlined spin class="!color-#6D4CFE mb-16px text-48px" />
<p class="tip !text-#768893">上传过程耗时可能较长请耐心等待</p>
<p class="tip !text-#768893">刷新页面将会终止本次数据的上传请谨慎操作</p>
</div>
@ -282,7 +284,8 @@ export default {
<img src={item.cover} width="32" height="32" class="rounded-3px mr-8px" />
<TextOverTips class="text !text-left" context={item.title} />
</div>
<icon-delete
<SvgIcon
name="xt-delete"
size="16px"
class="color-#737478 cursor-pointer hover:!color-#211F24"
onClick={() => onDelete(index)}

View File

@ -163,7 +163,7 @@ export default {
<span class="cts color-#4E5969 cursor-pointer" onClick={onBack}>
{sourceInfo.value.title}
</span>
<icon-oblique-line size="12" class="color-#C9CDD4 mx-4px" />
<SvgIcon name="xt-oblique-line" size="12" class="color-#C9CDD4 mx-4px" />
<span class="cts bold !color-#1D2129">内容稿件详情</span>
</div>
<div class="flex-1 bg-#fff rounded-8px content">

View File

@ -102,7 +102,7 @@ export default {
<span class="cts color-#4E5969 cursor-pointer" onClick={onCancel}>
成品库
</span>
<icon-oblique-line size="12" class="color-#C9CDD4 mx-4px" />
<SvgIcon name="xt-oblique-line" size="12" class="color-#C9CDD4 mx-4px" />
<span class="cts bold !color-#1D2129">编辑内容稿件</span>
</div>
<div class="flex-1 overflow-y-auto p-24px bg-#fff rounded-8px ">

View File

@ -11,7 +11,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -35,7 +35,7 @@
<!-- @change="handleSearch"-->
<!-- >-->
<!-- <template #prefix>-->
<!-- <icon-search />-->
<!-- <SvgIcon name="xt-search" />-->
<!-- </template>-->
<!-- </Input>-->
<!-- </div>-->
@ -64,13 +64,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button size="medium" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -27,7 +27,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>

View File

@ -1,6 +1,8 @@
<script lang="jsx">
import { Button, message } from 'ant-design-vue';
import TextOverTips from '@/components/text-over-tips';
import SvgIcon from '@/components/svg-icon/index.vue';
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
import CancelUploadModal from './cancel-upload-modal.vue';
import UploadSuccessModal from './upload-success-modal.vue';
@ -273,7 +275,8 @@ export default {
)}`}
onClick={() => onSelect(item)}
>
<icon-close-circle-fill
<SvgIcon
name="xt-close-circle-fill"
size={16}
class="absolute top--8px right--8px color-#737478 hover:color-#211F24 hidden group-hover:block"
onClick={(e) => onDelete(e, item, index)}

View File

@ -8,6 +8,7 @@ const { Option } = Select;
// import CommonSelect from '@/components/common-select';
import ImgLazyLoad from '@/components/img-lazy-load';
// import TextOverTips from '@/components/text-over-tips';
import SvgIcon from '@/components/svg-icon/index.vue';
import axios from 'axios';
import { formatFileSize, getVideoInfo, getFileExtension } from '@/utils/tools';
@ -19,7 +20,7 @@ import {
documentExtensions,
} from '@/views/material-center/components/raw-material/constants';
// import icon1 from '@/assets/img/media-account/icon-delete.png';
// import icon1 from '@/assets/img/media-account/SvgIcon name="xt-delete".png';
import icon2 from '../../img/icon-no-text.png';
enum EnumUploadStatus {
@ -464,7 +465,8 @@ export default defineComponent({
customRender={({ text, record }) => {
return (
<div class="flex items-center justify-end">
<icon-delete
<SvgIcon
name="xt-delete"
class="mr-8px color-#737478 cursor-pointer"
size="14"
onClick={() => openDeleteModal(record)}
@ -509,7 +511,7 @@ export default defineComponent({
onDragleave={handleDragLeave}
onDrop={handleDrop}
>
<icon-plus size="14" class="mb-10px color-#55585F" />
<SvgIcon name="xt-plus" size="14" class="mb-10px color-#55585F" />
<span class="cts">点击或拖拽文件到此处上传</span>
</div>
</Upload>

View File

@ -11,7 +11,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -36,7 +36,7 @@
<!-- <span class="label">序号</span>-->
<!-- <Input v-model:value="query.uid" class="!w-160px" placeholder="请输入序号" allowClear @change="handleSearch">-->
<!-- <template #prefix>-->
<!-- <icon-search />-->
<!-- <SvgIcon name="xt-search" />-->
<!-- </template>-->
<!-- </Input>-->
<!-- </div>-->
@ -54,13 +54,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button size="medium" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -28,7 +28,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
<template v-if="column.dataIndex === 'name'" #customRender="{ record }">
@ -75,7 +75,7 @@
</template>
<template v-else-if="column.dataIndex === 'operation'" #customRender="{ record }">
<div class="flex items-center">
<icon-delete class="mr-8px color-#737478 cursor-pointer" size="14" @click="onDelete(record)" />
<SvgIcon name="xt-delete" class="mr-8px color-#737478 cursor-pointer" size="14" @click="onDelete(record)" />
<Button class="mr-8px !h-24px !px-12px" ghost size="small" type="primary" @click="onEdit(record)"
>编辑
</Button>
@ -102,7 +102,7 @@ import TextOverTips from '@/components/text-over-tips';
import HoverImagePreview from '@/components/hover-image-preview';
import ImgLazyLoad from '@/components/img-lazy-load';
// import icon1 from '@/assets/img/media-account/icon-delete.png';
// import icon1 from '@/assets/img/media-account/SvgIcon name="xt-delete".png';
import icon2 from '../../img/icon-no-text.png';
const emits = defineEmits(['sorterChange', 'delete', 'select', 'selectAll', 'edit']);

View File

@ -25,13 +25,13 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
<Button type="primary" @click="openAdd">
<template #icon>
<icon-plus class="mr-8px" size="16" />
<SvgIcon name="xt-plus" class="mr-8px" size="16" />
</template>
<template #default>添加新标签</template>
</Button>
@ -51,7 +51,7 @@
<span class="s1 mb-32px mt-8px">暂无标签</span>
<Button size="large" type="primary" @click="openAdd">
<template #icon>
<icon-plus class="mr-8px" size="16" />
<SvgIcon name="xt-plus" class="mr-8px" size="16" />
</template>
<template #default>去添加</template>
</Button>

View File

@ -9,6 +9,7 @@ import DeleteRawMaterialModal from './components/table/delete-file-modal.vue';
import TagsManageModal from './components/tags-manage-modal';
import AddRawMaterialDrawer from './components/add-raw-material-drawer';
import EditRawMaterialDrawer from './components/edit-raw-material-modal';
import SvgIcon from '@/components/svg-icon/index.vue';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
import { getRawMaterialsPage } from '@/api/all/generationWorkshop';
@ -132,7 +133,7 @@ export default defineComponent({
class="ml-12px"
onClick={handleAddMaterial}
v-slots={{
icon: () => <icon-plus size="16" class="mr-8px" />,
icon: () => <SvgIcon name="xt-plus" size="16" class="mr-8px" />,
default: () => '上传原料',
}}
/>

View File

@ -15,7 +15,7 @@
<Space size="medium">
<Input v-model:value="query.name" class="w-240px" placeholder="请搜索..." size="medium" allowClear>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
@ -23,13 +23,13 @@
<div class="filter-row flex">
<Button type="outline" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>
@ -98,7 +98,7 @@
cancelText="取消"
@confirm="deleteBrand(record.id)"
>
<icon-delete></icon-delete>
<SvgIcon name="xt-delete" size="14" class="color-#55585f"/>
</Popconfirm>
<Button type="outline" class="edit-btn" size="small" @click="handleEdit(record.id)">编辑</Button>
</Space>
@ -125,7 +125,6 @@
<script setup>
import { ref, computed, reactive, onMounted } from 'vue';
import { IconDelete } from '@arco-design/web-vue/es/icon';
import { Button, Modal, Space, Form, FormItem, Pagination, Input, Table, message, Popconfirm } from 'ant-design-vue';
const { TextArea } = Input;

View File

@ -11,7 +11,7 @@
<span class="label">服务/产品</span>
<Input v-model:value="query.name" class="w-240px" placeholder="请搜索..." size="middle" allowClear>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -25,13 +25,13 @@
<div class="filter-row flex">
<Button class="mr-12px outline-btn">
<template #icon>
<icon-search />
<SvgIcon name="xt-search" />
</template>
搜索
</Button>
<Button>
<template #icon>
<icon-refresh />
<SvgIcon name="xt-refresh" />
</template>
重置
</Button>

View File

@ -12,7 +12,7 @@
<Space>
<Input v-model:value="query.name" class="w-240px" placeholder="请搜索..." allowClear>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
@ -27,13 +27,13 @@
<div class="filter-row flex">
<Button type="primary" ghost class="mr-12px">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button>
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -16,7 +16,7 @@
</div>
<div class="flex items-center">
<Button type="outline" class="w-110px mr-12px" size="medium" @click="handleExport">
<template #icon> <icon-download class="mr-8px" /> </template>
<template #icon> <SvgIcon name="xt-download" class="mr-8px" /> </template>
<template #default>导出数据</template>
</Button>
<Button type="outline" class="w-110px" size="medium" @click="openCustomColumn">
@ -63,7 +63,7 @@
<img v-if="column.dataIndex === 'ai_evaluate'" width="16" height="16" :src="icon5" class="mr-4px" />
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
@ -114,8 +114,8 @@
<template v-else-if="column.isRateField" #customRender="{ record }">
<div class="flex items-center rate-row justify-end" :class="record[column.dataIndex] > 0 ? 'up' : 'down'">
<icon-arrow-up v-if="record[column.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record[column.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ formatTableField(column, record) }}
</div>
</template>

View File

@ -54,10 +54,10 @@
:class="isRequiredColumn(item) ? '!display-none' : ''"
>
<div class="flex items-center">
<icon-menu size="16" class="mr-8px" />
<SvgIcon name="xt-menu" size="16" class="mr-8px"/>
<span>{{ getCheckColumnLabel(item) }}</span>
</div>
<icon-close size="16" class="color-#737478 cursor-pointer" @click="removeCheckedField(item)" />
<SvgIcon name="xt-close" size="16" class="color-#737478 cursor-pointer" @click="removeCheckedField(item)" />
</div>
</VueDraggable>
</div>

View File

@ -10,7 +10,7 @@
<span class="label">账号名称</span>
<Input v-model:value="query.name" placeholder="请搜索..." class="!w-240px" allowClear @change="handleSearch">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -37,7 +37,7 @@
<div class="filter-row-item flex items-center">
<span class="label">时间筛选</span>
<Select v-model:value="query.type" size="middle" placeholder="全部" class="!w-240px" @change="handleSearch">
<template #suffixIcon> <icon-calendar size="16" /> </template>
<template #suffixIcon> <SvgIcon name="xt-calendar" size="16" /> </template>
<Option :value="7" label="近7天">近7天</Option>
<!-- <Option :value="14" label="近14天">近14天</Option> -->
<Option :value="30" label="近30天">近30天</Option>
@ -46,13 +46,13 @@
<div class="filter-row-item flex items-center">
<Button type="primary" ghost class="w-84px mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button class="w-84px" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -10,7 +10,7 @@
<div class="flex items-center">
<p class="text-18px font-400 lh-26px color-#211F24 mr-4px title">数据总览</p>
<Tooltip title="展示所筛选的账号的信息汇总">
<icon-question-circle size="16" class="color-#737478" />
<SvgIcon name="xt-question-circle" size="16" class="color-#737478" />
</Tooltip>
</div>
</div>

View File

@ -48,7 +48,7 @@
<div class="flex items-center mb-4px">
<p class="cts !color-#737478 !mr-4px">{{ field.title }}</p>
<Tooltip v-if="field.tooltip" :title="field.tooltip" position="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</div>
<p class="cts">
@ -104,8 +104,8 @@
class="flex items-center"
:class="detailData[field.dataIndex] > 0 ? 'color-#F64B31' : 'color-#25C883'"
>
<icon-arrow-up v-if="detailData[field.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="detailData[field.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ `${detailData[field.dataIndex]}%` }}
</div>
</template>
@ -125,7 +125,7 @@
@click="showMore = !showMore"
>
<span class="cts mr-8px !color-#6D4CFE"> {{ showMore ? '收起' : '更多' }} </span>
<icon-down
<SvgIcon name="xt-down"
size="13"
class="!color-#6D4CFE transform transition-transform duration-300 ease-in-out"
:class="showMore ? 'rotate-180' : ''"

View File

@ -8,7 +8,7 @@
<div class="flex items-center">
<span class="cts !text-18px !lh-26px mr-4px title">作品列表</span>
<Tooltip title="展示笔记层级的详细数据,如曝光、互动等,是内容精细分析入口。">
<icon-question-circle class="color-#737478" size="14" />
<SvgIcon name="xt-question-circle" class="color-#737478" size="14" />
</Tooltip>
</div>
</div>
@ -17,7 +17,7 @@
<span class="label">作品标题</span>
<Input v-model:value="query.title" class="!w-240px" placeholder="请搜索..." allowClear @change="handleSearch">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -34,13 +34,13 @@
</div>
<Button type="primary" ghost class="w-84px mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button class="w-84px" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>
@ -68,7 +68,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="14" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="14" />
</Tooltip>
</template>
<template #customRender="{ record }">

View File

@ -5,7 +5,7 @@
<template>
<div class="account-detail-wrap">
<div class="flex items-center mb-16px cursor-pointer" @click="handleBack">
<icon-left size="16" />
<SvgIcon name="xt-left" size="16" />
<span class="cts title ml-8px">账号列表</span>
</div>
<AccountInfo />

View File

@ -13,7 +13,7 @@
:wrapperClassName="`card-item ${isSelected(item) ? 'checked' : ''}`"
>
<template #icon>
<icon-sync size="24" />
<SvgIcon name="xt-sync" size="24" />
</template>
<Checkbox
:checked="isSelected(item)"

View File

@ -29,7 +29,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
<template v-if="column.dataIndex === 'name'" #customRender="{ record }">

View File

@ -24,6 +24,7 @@ import AuthorizedAccountModal from '../authorized-account-modal';
import StatusBox from '@/views/property-marketing/media-account/components/status-select/status-box.tsx';
import SyncDataModal from '../sync-data-modal';
import CommonSelect from '@/components/common-select';
import SvgIcon from '@/components/svg-icon/index.vue';
// import { downloadByUrl } from '@/utils/tools';
import { showExportNotification } from '@/utils/notification';
@ -265,7 +266,7 @@ export default {
<>
<span class="label">{label}</span>
<Tooltip content={tooltipContent}>
<icon-question-circle size="14" class="ml-4px color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="ml-4px color-#737478" />
</Tooltip>
</>
);

View File

@ -50,7 +50,7 @@
height="24"
class="mb-13px"
/>
<icon-loading v-else size="24" class="color-#6D4CFE mb-13px" />
<Loading3QuartersOutlined spin v-else class="color-#6D4CFE mb-13px text-24px" />
<span
:class="modalState === MODAL_STATE.QR_FAILED ? '!color-#F64B31' : '!color-#6D4CFE'"
class="s2"
@ -66,7 +66,7 @@
<Image v-else :src="qrCodeUrl" :width="160" :height="160" />
<!-- 二维码失效遮罩 -->
<div v-if="modalState === MODAL_STATE.QR_EXPIRED" class="mask cursor-pointer" @click="handleRefreshQrCode">
<icon-refresh size="24" class="mb-13px" />
<SvgIcon name="xt-refresh" size="24" class="mb-13px" />
<p class="s1">二维码失效</p>
<p class="s1">请点击刷新</p>
</div>
@ -77,9 +77,7 @@
</div>
<template #footer>
<Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode">
重新生成
</Button>
<Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode"> 重新生成 </Button>
<Button v-if="[MODAL_STATE.SUCCESS, MODAL_STATE.FAILED].includes(modalState)" size="large" @click="close">
取消
</Button>
@ -95,6 +93,7 @@
<script setup>
import { defineExpose, ref, computed } from 'vue';
import { Button, Modal, message, Image, Progress } from 'ant-design-vue';
import { Loading3QuartersOutlined } from '@ant-design/icons-vue';
import { getAuthorizedImage, getMediaAccountsAuthorizedStatus } from '@/api/all/propertyMarketing';
import SyncDataModal from '../sync-data-modal';

View File

@ -10,7 +10,7 @@
<span class="label">账号名称/ID/手机号</span>
<Input v-model:value="query.search" class="w-240px" placeholder="请搜索..." allowClear @change="handleSearch">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -66,13 +66,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="w-84px mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button class="w-84px" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -19,14 +19,14 @@
<Space size="medium" class="w-240px">
<Input v-model:value="query.name" placeholder="请搜索..." size="middle" allowClear @change="reload">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
</div>
<Button type="primary" size="middle" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>添加新分组</template>
</Button>
@ -72,7 +72,7 @@
<span class="s1 mb-16px">暂无分组</span>
<Button type="primary" class="mb-16px" size="middle" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>去添加</template>
</Button>

View File

@ -64,7 +64,7 @@
height="24"
class="mb-13px"
/>
<icon-loading v-else size="24" class="color-#6D4CFE mb-13px" />
<Loading3QuartersOutlined spin v-else size="24" class="color-#6D4CFE mb-13px text-24px" />
<span
:class="modalState === MODAL_STATE.QR_FAILED ? '!color-#F64B31' : '!color-#6D4CFE'"
class="s2"
@ -82,7 +82,7 @@
<!-- 二维码失效遮罩 -->
<div v-if="modalState === MODAL_STATE.QR_EXPIRED" class="mask cursor-pointer" @click="handleRefreshQrCode">
<icon-refresh size="24" class="mb-13px" />
<SvgIcon name="xt-refresh" size="24" class="mb-13px" />
<p class="s1">二维码失效</p>
<p class="s1">请点击刷新</p>
</div>
@ -113,6 +113,7 @@
<script setup>
import { defineExpose, ref, computed } from 'vue';
import { Button, Modal, message, Image, Progress } from 'ant-design-vue';
import { Loading3QuartersOutlined } from '@ant-design/icons-vue';
import { getMediaAccountsAuthorizedStatus, getAuthorizedImage } from '@/api/all/propertyMarketing';
import SyncDataModal from '../sync-data-modal';

View File

@ -25,13 +25,13 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
<Button type="primary" @click="openAdd">
<template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>添加新标签</template>
</Button>
@ -51,7 +51,7 @@
<span class="s1 mb-16px">暂无标签</span>
<Button type="primary" class="mb-16px" @click="openAdd">
<template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>去添加</template>
</Button>

View File

@ -22,7 +22,7 @@
</Button>
<Button type="primary" class="w-112px" size="middle" @click="handleOpenAccountModal">
<template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>添加账号</template>
</Button>

View File

@ -1,7 +1,7 @@
<template>
<div class="note-detail-wrap h-full flex flex-col">
<div class="flex items-center mb-16px cursor-pointer" @click="handleBack">
<icon-left size="16" />
<SvgIcon name="xt-left" size="16" />
<span class="cts ml-8px bold">账号详情</span>
</div>
@ -11,7 +11,7 @@
<div class="flex items-center">
<span class="cts !text-18px !lh-26px mr-4px bold">作品详情</span>
<Tooltip title="展示作品的标题、图文、视频等详细内容">
<icon-question-circle class="color-#737478" size="14" />
<SvgIcon name="xt-question-circle" class="color-#737478" size="14" />
</Tooltip>
</div>
</div>
@ -42,7 +42,7 @@
<div class="flex items-center">
<span class="cts !text-18px !lh-26px mr-4px bold">评论列表</span>
<Tooltip title="展示用户对作品的评论">
<icon-question-circle class="color-#737478" size="14" />
<SvgIcon name="xt-question-circle" class="color-#737478" size="14" />
</Tooltip>
</div>
</div>
@ -76,7 +76,7 @@
<div class="flex items-center">
<span class="cts !text-18px !lh-26px mr-4px bold">作品数据</span>
<Tooltip title="展示作品的曝光量、点赞量等数据指标">
<icon-question-circle class="color-#737478" size="14" />
<SvgIcon name="xt-question-circle" class="color-#737478" size="14" />
</Tooltip>
</div>
</div>
@ -85,7 +85,7 @@
<div class="flex items-center mb-4px">
<span class="cts !color-#737478 mr-4px">{{ item.label }}</span>
<Tooltip :title="item.tooltip">
<icon-question-circle class="color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="color-#737478" size="16" />
</Tooltip>
</div>
<span class="cts num">{{ formatNumberShow(dataSource[item.prop]) }}</span>

View File

@ -11,7 +11,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
<Input
@ -23,7 +23,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
@ -69,7 +69,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
@ -98,7 +98,7 @@
<Tooltip :title="item.title">
<p class="name mr-4px">{{ item.title || '-' }}</p>
</Tooltip>
<icon-close size="12" class="color-#3C4043 cursor-pointer flex-shrink-0" @click="onDelete(item)" />
<SvgIcon name="xt-close" size="12" class="color-#3C4043 cursor-pointer flex-shrink-0" @click="onDelete(item)" />
</div>
</template>
<NoData v-else text="暂无账户" />

View File

@ -11,7 +11,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
<Select
@ -69,7 +69,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
@ -98,7 +98,7 @@
<Tooltip :title="item.name">
<p class="name mr-4px">{{ item.name || '-' }}</p>
</Tooltip>
<icon-close size="12" class="color-#3C4043 cursor-pointer flex-shrink-0" @click="onDelete(item)" />
<SvgIcon name="xt-close" size="12" class="color-#3C4043 cursor-pointer flex-shrink-0" @click="onDelete(item)" />
</div>
</template>
<NoData v-else text="暂无账户" />

View File

@ -11,7 +11,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
<Select
@ -72,7 +72,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
<template #customRender="{ record }">
@ -98,7 +98,7 @@
<div class="flex flex-wrap" v-if="selectedRows?.length">
<div class="tag-item mr-8px mb-8px" v-for="item in selectedRows" :key="item.id">
<span class="name mr-4px">{{ item.name || '-' }}</span>
<icon-close size="12" class="color-#3C4043 cursor-pointer" @click="onDelete(item)" />
<SvgIcon name="xt-close" size="12" class="color-#3C4043 cursor-pointer" @click="onDelete(item)" />
</div>
</div>
<NoData v-else text="暂无账号" />

View File

@ -18,7 +18,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
@ -26,13 +26,13 @@
<div class="filter-row-item flex items-center">
<Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px"/>
<SvgIcon name="xt-search" class="mr-8px"/>
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px"/>
<SvgIcon name="xt-refresh" class="mr-8px"/>
</template>
<template #default>重置</template>
</Button>

View File

@ -28,7 +28,7 @@
<div class="flex items-center">
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</div>
</template>

View File

@ -6,7 +6,7 @@
<div class="flex items-center">
<Button type="primary" class="w-112px search-btn" size="medium" @click="handleOpenAddProjectModal">
<template #icon>
<icon-plus size="16" />
<SvgIcon name="xt-plus" size="16" />
</template>
<template #default>添加项目</template>
</Button>

View File

@ -3,7 +3,7 @@
<template #title>
<span class="a-card-title">{{ title.name }}</span>
<Tooltip position="tl" :title="title.popover">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</template>

View File

@ -37,13 +37,13 @@
</div>
<Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -17,7 +17,7 @@
<div class="flex items-center">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleExport">
<template #icon> <icon-download class="mr-8px" /> </template>
<template #icon> <SvgIcon name="xt-download" class="mr-8px" /> </template>
<template #default>导出数据</template>
</Button>
<Button type="primary" ghost size="medium" @click="openCustomColumn">
@ -66,7 +66,7 @@
<img v-if="column.dataIndex === 'ai_evaluate'" width="16" height="16" :src="icon5" class="mr-4px" />
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
@ -105,8 +105,8 @@
<template v-else-if="column.isRateField" #customRender="{ record }">
<div class="flex items-center rate-row justify-end" :class="record[column.dataIndex] > 0 ? 'up' : 'down'">
<icon-arrow-up v-if="record[column.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record[column.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ formatTableField(column, record) }}
</div>
</template>

View File

@ -63,13 +63,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -19,14 +19,14 @@
<Space size="medium" class="w-240px">
<Input v-model:value="query.name" placeholder="请搜索..." size="middle" allowClear @change="handleSearch">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
</div>
<Button type="primary" size="medium" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>添加新分组</template>
</Button>
@ -68,7 +68,7 @@
<span class="s1 mb-16px">暂无分组</span>
<Button type="primary" class="mb-16px" size="medium" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>去添加</template>
</Button>

View File

@ -17,7 +17,7 @@
<div class="flex items-center">
<Button type="primary" ghost class="mr-12px" @click="handleExport">
<template #icon> <icon-download class="mr-8px" /> </template>
<template #icon> <SvgIcon name="xt-download" class="mr-8px" /> </template>
<template #default>导出数据</template>
</Button>
<Button type="primary" ghost @click="openCustomColumn">
@ -61,7 +61,7 @@
<img v-if="column.dataIndex === 'ai_evaluate'" width="16" height="16" :src="icon5" class="mr-4px" />
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
<template #customRender="{ record }">
@ -101,8 +101,8 @@
</template>
<template v-else-if="column.isRateField">
<div class="flex items-center rate-row justify-end" :class="record[column.dataIndex] > 0 ? 'up' : 'down'">
<icon-arrow-up v-if="record[column.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record[column.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ formatTableField(column, record) }}
</div>
</template>

View File

@ -43,7 +43,7 @@
:showUploadList="false"
>
<div class="upload-box">
<icon-plus size="14" class="mb-16px" />
<SvgIcon name="xt-plus" size="14" class="mb-16px" />
<span class="text mb-4px">点击或拖拽文件到此处上传</span>
<span class="tip">支持 xls, xlsx格式</span>
</div>
@ -58,7 +58,7 @@
}"
>
<div class="flex items-center">
<icon-file size="16" class="flex-shrink-0" />
<SvgIcon name="xt-file" size="16" class="flex-shrink-0" />
<span class="name ml-8px">{{ fileName }}</span>
</div>
<span
@ -132,7 +132,7 @@
<template #label>
<span class="label">同步项目数据</span>
<Tooltip title="同步项目数据后,账户数据将同步到项目中">
<icon-question-circle size="14" class="ml-4px color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="ml-4px color-#737478" />
</Tooltip>
</template>
<Switch v-model:checked="form.is_sync_project" size="middle" :checkedValue="1" :unCheckedValue="0" />

View File

@ -17,7 +17,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -59,13 +59,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button size="medium" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -21,7 +21,7 @@
@change="reload"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -36,7 +36,7 @@
@change="reload"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -72,7 +72,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>

View File

@ -10,7 +10,7 @@
<div class="flex items-center">
<Button type="primary" class="w-112px" @click="handleOpenAccountModal">
<template #icon>
<icon-plus size="16" />
<SvgIcon name="xt-plus" size="16" />
</template>
<template #default>添加账户</template>
</Button>

Some files were not shown because too many files have changed in this diff Show More