Merge remote-tracking branch 'origin/feature/v1.3_主agent_rxd' into test

This commit is contained in:
rd
2025-09-01 17:00:52 +08:00
10 changed files with 197 additions and 153 deletions

View File

@ -40,7 +40,6 @@ const layoutPageClass = computed(() => {
return result;
});
onMounted(() => {
checkHasInviteCode();
});
@ -60,18 +59,22 @@ const checkHasInviteCode = () => {
<Layout.Header class="layout-header-wrap">
<Navbar />
</Layout.Header>
<Layout class="flex layout-content-wrap">
<SiderBar />
<Layout
class="layout-content"
:style="{
paddingLeft: `${sidebarStore.sidebarWidth}px`,
}"
>
<Layout.Content :class="layoutPageClass" class="!min-h-initial">
<layout-page />
</Layout.Content>
</Layout>
<Layout class="flex app-content-layout">
<div class="flex flex-1 app-content-scroll">
<div class="app-content-inner">
<SiderBar />
<Layout
class="layout-content"
:style="{
width: `calc(100vw - ${sidebarStore.sidebarWidth}px)`,
}"
>
<Layout.Content :class="layoutPageClass" class="!min-h-initial w-full">
<layout-page />
</Layout.Content>
</Layout>
</div>
</div>
</Layout>
</Layout>
</template>
@ -87,27 +90,39 @@ const checkHasInviteCode = () => {
line-height: $navbar-height;
padding-inline: inherit;
color: inherit;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
// position: fixed;
// top: 0;
// left: 0;
// z-index: 1000;
width: 100%;
min-width: $layout-min-width;
}
.layout-content-wrap {
.app-content-layout {
width: 100%;
height: 100%;
background: transparent;
min-height: calc(100vh - $navbar-height);
.app-content-scroll {
min-height: calc(100vh - $navbar-height);
height: calc(100vh - $navbar-height);
overflow-y: auto;
overflow-x: auto;
.app-content-inner {
width: 100%;
height: calc(100vh - $navbar-height);
overflow: hidden;
display: flex;
}
}
:deep(.ant-layout-sider) {
background: none;
box-shadow: none;
padding-top: $navbar-height;
// padding-top: $navbar-height;
padding-bottom: 0;
position: fixed;
top: 0;
left: 0;
z-index: 999;
// position: fixed;
// top: 0;
// left: 0;
// z-index: 999;
height: 100%;
transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
.ant-layout-sider-trigger {
@ -118,9 +133,12 @@ const checkHasInviteCode = () => {
}
}
.layout-content {
padding-top: $navbar-height;
background: transparent;
transition: padding 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
flex: 1;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
}
}
}

View File

@ -37,20 +37,20 @@ const isHomeRoute = computed(() => {
.navbar-wrap {
position: relative;
height: 100%;
&::before {
width: 100%;
height: 100%;
background: url('@/assets/img/icon-app-header-bg.png') center top no-repeat !important;
background-size: cover !important;
bottom: 0;
content: '';
display: block;
left: 0;
position: absolute;
right: 0;
top: 0;
z-index: -998;
}
// &::before {
// width: 100%;
// height: 100%;
// background: url('@/assets/img/icon-app-header-bg.png') center top no-repeat !important;
// background-size: cover !important;
// bottom: 0;
// content: '';
// display: block;
// left: 0;
// position: absolute;
// right: 0;
// top: 0;
// z-index: -998;
// }
// background-color: var(--color-bg-2);
// border-bottom: 1px solid var(--color-border);

View File

@ -412,7 +412,7 @@ export default {
loading={true}
tip={`${isTextTab.value ? '文本' : '图片'}检测中`}
size={72}
class="h-298px !flex flex-col justify-center items-center color-#6d4cfe"
class="h-298px !flex flex-col justify-center items-center"
/>
</div>
);

View File

@ -180,6 +180,12 @@
line-height: 24px;
}
}
:deep(.arco-spin) {
.arco-spin-icon,
.arco-spin-tip {
color: #6d4cfe;
}
}
:deep(.overflow-text) {
color: #211f24;
font-family: $font-family-regular;

View File

@ -4,61 +4,66 @@
* @Date: 2025-06-25 14:02:40
-->
<template>
<div class="container">
<div class="filter-row flex mb-20px">
<div class="common-filter-wrap">
<div class="filter-row flex">
<div class="filter-row-item flex items-center">
<span class="label">账号名称</span>
<a-space size="medium" class="w-240px">
<a-input v-model="query.name" placeholder="请搜索..." size="medium" allow-clear @change="handleSearch">
<template #prefix>
<icon-search />
</template>
</a-input>
</a-space>
<a-input
v-model="query.name"
placeholder="请搜索..."
size="medium"
class="!w-240px"
allow-clear
@change="handleSearch"
>
<template #prefix>
<icon-search />
</template>
</a-input>
</div>
<div class="filter-row-item flex items-center">
<span class="label">分组</span>
<a-space class="w-200px">
<CommonSelect v-model="query.group_ids" :options="groups" @change="handleSearch" />
</a-space>
<CommonSelect class="!w-200px" v-model="query.group_ids" :options="groups" @change="handleSearch" />
</div>
<div class="filter-row-item flex items-center">
<span class="label">状态</span>
<a-space class="w-180px">
<StatusSelect v-model="query.status" @change="handleSearch" />
</a-space>
<StatusSelect v-model="query.status" @change="handleSearch" class="!w-180px" />
</div>
<div class="filter-row-item flex items-center">
<span class="label">运营人员</span>
<a-space class="w-160px">
<CommonSelect v-model="query.operator_id" :multiple="false" :options="operators" @change="handleSearch" />
</a-space>
<CommonSelect
v-model="query.operator_id"
:multiple="false"
:options="operators"
@change="handleSearch"
class="!w-160px"
/>
</div>
</div>
<div class="filter-row flex">
<div class="filter-row-item flex items-center">
<span class="label">时间筛选</span>
<a-space class="w-240px">
<a-select v-model="query.type" size="medium" placeholder="全部" class="w-120px" @change="handleSearch">
<template #arrow-icon> <icon-calendar size="16" /> </template>
<a-option :value="7" label="近7天">7</a-option>
<!-- <a-option :value="14" label="近14天">14</a-option> -->
<a-option :value="30" label="近30天">近30天</a-option>
</a-select>
</a-space>
<a-select v-model="query.type" size="medium" placeholder="全部" class="!w-240px" @change="handleSearch">
<template #arrow-icon> <icon-calendar size="16" /> </template>
<a-option :value="7" label="近7天">近7天</a-option>
<!-- <a-option :value="14" label="近14天">14</a-option> -->
<a-option :value="30" label="近30天">30</a-option>
</a-select>
</div>
<div class="filter-row-item flex items-center">
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button class="w-84px" size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
</div>
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button class="w-84px" size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
</div>
</div>
</template>

View File

@ -27,7 +27,7 @@
</div>
</div>
</div>
<div class="filter-wrap bg-#fff rounded-8px px-24px py-24px mb-16px">
<div class=" bg-#fff rounded-8px mb-16px">
<FilterBlock v-model:query="query" @onSearch="handleSearch" @onReset="handleReset" />
</div>
<div class="table-wrap bg-#fff rounded-8px px-24px py-24px flex flex-col">

View File

@ -4,9 +4,9 @@
* @Date: 2025-06-25 14:02:40
-->
<template>
<div class="container px-24px pt-12px pb-24px">
<div class="filter-row flex mb-20px">
<div class="filter-row-item flex items-center">
<div class="common-filter-wrap">
<div class="filter-row flex">
<div class="filter-row-item">
<span class="label">账号名称/ID/手机号</span>
<a-space size="medium">
<a-input
@ -23,13 +23,13 @@
</a-input>
</a-space>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">状态</span>
<a-space class="w-180px">
<StatusSelect v-model="query.status" @change="handleSearch" />
</a-space>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">平台</span>
<a-space class="w-160px">
<a-select v-model="query.platform" size="medium" placeholder="全部" allow-clear @change="handleSearch">
@ -43,44 +43,46 @@
</a-select>
</a-space>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">运营人员</span>
<a-space class="w-160px">
<CommonSelect v-model="query.operator_id" :multiple="false" :options="operators" @change="handleSearch" />
</a-space>
</div>
</div>
<div class="filter-row flex">
<div class="filter-row-item flex items-center">
<div class="filter-row">
<div class="filter-row-item">
<span class="label">分组</span>
<a-space class="w-200px">
<CommonSelect v-model="query.group_ids" multiple :options="groups" @change="handleSearch" />
</a-space>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">所属项目</span>
<a-space class="w-200px">
<CommonSelect v-model="query.project_ids" :options="projects" @change="handleSearch" />
</a-space>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">标签</span>
<a-space class="w-320px">
<CommonSelect v-model="query.tag_ids" :options="tags" @change="handleSearch" />
</a-space>
</div>
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button class="w-84px" size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
<div class="filter-row-item">
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button class="w-84px" size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
</div>
</div>
</div>
</template>

View File

@ -1,4 +1,4 @@
.container {
.filter-wrap {
.filter-row {
.filter-row-item {
&:not(:last-child) {

View File

@ -4,67 +4,72 @@
* @Date: 2025-06-25 14:02:40
-->
<template>
<div class="container px-24px pt-12px pb-24px">
<div class="filter-row flex mb-20px">
<div class="filter-row-item flex items-center">
<div class="common-filter-wrap">
<div class="filter-row">
<div class="filter-row-item">
<span class="label">账号名称/ID/手机号</span>
<a-space size="medium">
<a-input
v-model="query.search"
class="w-240px"
placeholder="请搜索..."
size="medium"
allow-clear
@change="handleSearch"
>
<template #prefix>
<icon-search />
</template>
</a-input>
</a-space>
<a-input
v-model="query.search"
class="w-240px"
placeholder="请搜索..."
size="medium"
allow-clear
@change="handleSearch"
>
<template #prefix>
<icon-search />
</template>
</a-input>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">状态</span>
<a-space class="w-180px">
<StatusSelect v-model="query.status" @change="handleSearch" />
</a-space>
<StatusSelect v-model="query.status" class="w-180px" @change="handleSearch" />
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">平台</span>
<a-space class="w-160px">
<a-select v-model="query.platform" size="medium" placeholder="全部" allow-clear @change="handleSearch">
<a-option v-for="(item, index) in PLATFORM_LIST" :key="index" :value="item.value" :label="item.label">{{
item.label
}}</a-option>
</a-select>
</a-space>
<a-select
class="!w-160px"
v-model="query.platform"
size="medium"
placeholder="全部"
allow-clear
@change="handleSearch"
>
<a-option v-for="(item, index) in PLATFORM_LIST" :key="index" :value="item.value" :label="item.label">{{
item.label
}}</a-option>
</a-select>
</div>
<div class="filter-row-item flex items-center">
<div class="filter-row-item">
<span class="label">运营人员</span>
<a-space class="w-160px">
<CommonSelect v-model="query.operator_id" :multiple="false" :options="operators" @change="handleSearch" />
</a-space>
<CommonSelect
class="!w-160px"
v-model="query.operator_id"
:multiple="false"
:options="operators"
@change="handleSearch"
/>
</div>
</div>
<div class="filter-row flex">
<div class="filter-row-item flex items-center">
<div class="filter-row">
<div class="filter-row-item">
<span class="label">所属项目</span>
<a-space class="w-200px">
<CommonSelect v-model="query.project_ids" :options="projects" @change="handleSearch" />
</a-space>
<CommonSelect class="!w-200px" v-model="query.project_ids" :options="projects" @change="handleSearch" />
</div>
<div class="filter-row-item">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
</div>
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search />
</template>
<template #default>搜索</template>
</a-button>
<a-button size="medium" @click="handleReset">
<template #icon>
<icon-refresh />
</template>
<template #default>重置</template>
</a-button>
</div>
</div>
</template>

View File

@ -135,9 +135,11 @@
}
}
.right-box {
border: 1px solid #E6E6E8;
border: 1px solid #e6e6e8;
flex: 1;
border-radius: 8px; padding: 16px; display: flex;
border-radius: 8px;
padding: 16px;
display: flex;
flex-direction: column;
overflow-y: auto;
height: fit-content;
@ -185,6 +187,12 @@
font-weight: 400;
line-height: 22px;
}
:deep(.arco-spin) {
.arco-spin-icon,
.arco-spin-tip {
color: #6d4cfe;
}
}
.forbid-word-box {
:deep(.overflow-text) {
&.level0 {