Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
wu.jifen
2025-04-23 21:00:26 +08:00
16 changed files with 313 additions and 139 deletions

View File

@@ -57,6 +57,47 @@
margin: 0;
}
}
&.primary-button {
//background: var(--color-primary);
background: $--color-primary-button-background;
border: 1px solid #eaecf5;
color: $--color-primary-button-color;
font-size: 14px;
font-weight: 600;
font-family: PingFangSC, PingFang SC;
&:hover {
background: lighten($--color-primary-button-color, 5%);
border: 1px solid #eaecf5;
}
}
&.line-button {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: unset;
cursor: pointer;
color: #fff;
&:hover {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
&:active {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
&:focus {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
}
&.el-button--medium {
padding: 8px 20px;
border-radius: 8px;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 14px;
}
}
.el-button--text {
@@ -94,6 +135,7 @@
color: $--color-primary-light;
&:hover {
background-color: $--color-primary-light;
border-color: var(--color-primary);
}
}
&:hover {
@@ -146,25 +188,3 @@
border-color: $--color-primary-danger-light;
}
}
.line-button {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: unset;
cursor: pointer;
color: #fff;
&:hover {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
&:active {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
&:focus {
background: linear-gradient(311deg, #8d5cff 0%, #026eff 100%);
border: none;
color: #fff;
}
}

View File

@@ -13,13 +13,21 @@
}
}
.el-input--medium {
.el-input__inner {
.el-input--medium,
.el-input--small,
.el-select--medium,
.el-range-editor--medium {
&.el-input__inner {
border-radius: 8px;
//height: 30px;
//line-height: 30px;
}
.el-input__icon {
& .el-input__inner {
border-radius: 8px;
//height: 30px;
//line-height: 30px;
}
& .el-input__icon {
//line-height: 30px;
}
}
@@ -28,3 +36,91 @@
border-radius: 8px;
}
}
.el-input,
.el-select,
.el-range-editor {
&.is-active,
&.is-focus {
border-color: $--color-primary;
&:hover {
border-color: $--color-primary;
}
& .el-input__inner {
&:focus {
border-color: $--color-primary;
}
&:hover {
border-color: $--color-primary;
}
&:active {
border-color: $--color-primary;
}
&:focus {
border-color: $--color-primary;
}
&:disabled {
border-color: rgba(0, 0, 0, 0.25);
}
}
}
& .el-input__inner {
&:focus {
border-color: $--color-primary;
}
&:hover {
border-color: $--color-primary;
}
&:active {
border-color: $--color-primary;
}
&:focus {
border-color: $--color-primary;
}
}
&.is-disabled {
border-color: transparent;
& .el-input__inner {
border-color: transparent !important;
&:focus {
border-color: transparent !important;
}
&:hover {
border-color: transparent !important;
}
&:active {
border-color: transparent !important;
}
}
}
}
.el-select-dropdown__item {
&.selected {
color: $--color-primary;
}
}
.el-date-table {
& td {
&.available {
&:hover {
color: $--color-primary;
}
}
&.today {
span {
color: $--color-primary;
}
}
&.end-date {
span {
background: lighten($--color-primary, 5%);
}
}
&.start-date {
span {
background: lighten($--color-primary, 5%);
}
}
}
}

View File

@@ -1,16 +1,12 @@
.el-form--label-top {
& .el-form-item__label {
line-height: 30px;
padding: 0;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 13px;
color: $--color-primary-label;
//line-height: 18px;
text-align: left;
font-style: normal;
}
}
.el-form-item__label {
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 13px;
color: $--color-primary-label;
line-height: 18px;
text-align: left;
font-style: normal;
}

View File

@@ -36,3 +36,25 @@
border-radius: 5px;
padding: 5px;
}
.el-pagination {
&.is-background {
& .el-pager {
li {
&:not(.disabled) {
&.active {
background-color: $--color-primary;
}
&:hover {
color: $--color-primary-light;
}
}
}
}
}
}
//.el-pagination.is-background .el-pager li:not(.disabled).active {
//
//}
//.el-pagination.is-background .el-pager li:not(.disabled):hover

View File

@@ -1,5 +1,5 @@
//主题色
$--color-primary: #0a6dff; //主题色
$--color-primary: #4f47f5ff; //主题色
$--color-primary-light: lighten($--color-primary, 5%); //高亮颜色
$--color-primary-disabled: #155aef24;
$--color-primary-danger: #ff0000;
@@ -10,10 +10,12 @@ $--color-primary-desc-text-drank: #999;
$--color-primary-table-hover: #eff0f8;
$--color-primary-table-button-hover: #e3e5f1;
$--color-primary-label: #70778d;
$--color-primary-button-color: #4f47f5;
$--color-primary-button-background: #4f47f51a;
:root {
--swiper-theme-color: #0a6dff;
--color-primary: #0a6dff;
--swiper-theme-color: #4f47f5ff;
--color-primary: #4f47f5ff;
--color-primary-disabled: #155aef24;
--color-primary-danger: #ff0000;
}

View File

@@ -194,3 +194,20 @@ body,
width: 0px;
height: 0px;
}
.render-container {
height: calc(100vh - 20px);
background: #fff;
border-radius: 7px;
margin: 10px 10px 10px 0;
padding: 20px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 0px;
}
}
.header-icon {
width: 50px;
height: 50px;
}

View File

@@ -5,8 +5,8 @@
</div>
<div slot="footer">
<slot name="footer">
<el-button size="medium" class="render-button" @click="cancel">{{ cancelButtonText }}</el-button>
<el-button size="medium" class="render-button" type="primary" @click="confirm">{{ confirmButtonText }}</el-button>
<el-button size="medium" @click="cancel">{{ cancelButtonText }}</el-button>
<el-button size="medium" type="primary" @click="confirm">{{ confirmButtonText }}</el-button>
</slot>
</div>
</el-dialog>

View File

@@ -127,7 +127,7 @@
</el-table>
</el-form>
<!--表格分页-->
<div class="text-right" v-if="total">
<div class="text-right pt10" v-if="total">
<el-pagination
class="table-container"
@size-change="sizeChange"

View File

@@ -95,7 +95,7 @@ export default {
<el-button slot="append" icon="el-icon-search"></el-button>
</template>
</el-input>
<el-button class="render-button line-button pv8 ph10" icon="el-icon-plus" @click="createdIntelligentAgent()">创建智能体</el-button>
<el-button size="medium" class="line-button pv8 ph10" icon="el-icon-plus" @click="createdIntelligentAgent()">创建智能体</el-button>
</div>
<h3>智能体</h3>
</nav>

View File

@@ -49,7 +49,7 @@
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" class="render-button"> </el-button>
<el-button @click="dialogVisible = false" size="medium"> </el-button>
</span>
</r-dialog>
</div>

View File

@@ -37,7 +37,7 @@
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" class="render-button"> </el-button>
<el-button @click="dialogVisible = false" size="medium"> </el-button>
</span>
</r-dialog>
</div>

View File

@@ -27,12 +27,12 @@
</el-col>
</el-row>
<div slot="footer" :span="24">
<el-button class="render-button" size="medium" v-if="!infoDialogVisible" @click="$emit('update:visible', false)">取消</el-button>
<el-button class="render-button" type="primary" size="medium" @click="save" v-if="!infoDialogVisible">
<el-button size="medium" v-if="!infoDialogVisible" @click="$emit('update:visible', false)">取消</el-button>
<el-button type="primary" size="medium" @click="save" v-if="!infoDialogVisible">
{{ datasetId ? '保存' : '创建' }}
</el-button>
<el-button class="render-button" size="medium" @click="jumpKnowledgeList" v-if="infoDialogVisible">返回知识库列表</el-button>
<el-button class="render-button" size="medium" @click="jumpKnowledgeDetail" v-if="infoDialogVisible">查看知识库详情</el-button>
<el-button size="medium" @click="jumpKnowledgeList" v-if="infoDialogVisible">返回知识库列表</el-button>
<el-button size="medium" @click="jumpKnowledgeDetail" v-if="infoDialogVisible">查看知识库详情</el-button>
</div>
</r-dialog>

View File

@@ -8,9 +8,9 @@
<el-empty v-else-if="!loading && !previewData" description="暂无预览数据"></el-empty>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="medium" class="render-button" @click="handleReUpload">重新上传</el-button>
<el-button size="medium" type="primary" class="render-button" @click="handleConfirm">下一步</el-button>
<el-button size="medium" type="primary" class="render-button" @click="emitKnowledgeDataset">直接上传至知识库</el-button>
<el-button size="medium" @click="handleReUpload">重新上传</el-button>
<el-button size="medium" type="primary" @click="handleConfirm">下一步</el-button>
<el-button size="medium" type="primary" @click="emitKnowledgeDataset">直接上传至知识库</el-button>
</span>
</r-dialog>
</div>

View File

@@ -17,7 +17,7 @@
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleConfirm" class="render-button">完成</el-button>
<el-button type="primary" @click="handleConfirm" size="medium">完成</el-button>
</span>
</r-dialog>
</div>

View File

@@ -1,90 +1,84 @@
<template>
<div class="container index-container">
<el-card shadow="hover">
<div slot="header" class="clearfix">
<div class=" render-container">
<div class="clearfix flex align-items-c justify-content-b ">
<img :src="knowledgePng_1" class="header-icon" />
<div class="ml20" style="flex:1">
<div class="flex align-items-c">
<h3 class="mr20" v-if="!editKnowledge">{{ knowledgeName }}</h3>
<el-input class="mr20 w400" size="medium" v-else v-model="copyKnowledgeName">{{ knowledgeName }}</el-input>
<el-icon class="fs20 el-icon-edit cursor-pointer" @click.native="editKnowledgeName" v-if="!editKnowledge" />
<div class="mr20 header" v-if="!editKnowledge">{{ knowledgeName }}</div>
<el-input class="mr20 w400" size="small" v-else v-model="copyKnowledgeName">{{ knowledgeName }}</el-input>
<el-icon class="fs16 el-icon-edit-outline cursor-pointer" @click.native="editKnowledgeName" v-if="!editKnowledge" />
<div v-else>
<el-button type="primary" size="medium" @click="saveKnowledgeName">保存</el-button>
<el-button size="medium" @click="cancelKnowledgeName">取消</el-button>
<el-button type="primary" size="medium" class="render-button" @click="saveKnowledgeName">保存</el-button>
<el-button size="medium" class="render-button" @click="cancelKnowledgeName">取消</el-button>
</div>
<span class="segment-content">{{ segmentedMode | filterSegmentedMode }}</span>
</div>
<p class="mt10 fs14" style="line-height: 20px">描述{{ knowledgeDesc }}</p>
<p class="mt10 fs14" style="line-height: 20px">分段模式{{ segmentedMode | filterSegmentedMode }}</p>
<el-button type="text" class="mt10" @click="jumpEditKnowledge">修改知识库</el-button>
<el-button type="text" class="mt10" @click="jumpAddKnowledge">上传知识</el-button>
<!-- <p class="mt10 fs14" style="line-height: 20px">分段模式{{ segmentedMode | filterSegmentedMode }}</p>-->
</div>
<div class="card-body">
<el-empty v-if="!hasList">
<div class="mt20">
<el-button type="primary" size="medium" class="fs14" @click="jumpAddKnowledge">立即添加</el-button>
</div>
</el-empty>
<div class="table-container" v-else>
<div class="">
<el-form :model="form" label-width="100px">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="知识文件名称" prop="fileName">
<el-input v-model="form.knowledgeNameLike" placeholder="请输入知识文件名称" @keydown.enter.native="search"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="知识文件来源" prop="documentSource">
<el-select v-model="form.documentSource" placeholder="请输入知识文件名称">
<el-option label="全部" value=""></el-option>
<el-option v-for="item in documentSourceOptions" :label="item.label" :value="item.value" :key="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="上传用户" prop="createdUserLike">
<el-select v-model="form.createdUserLike" placeholder="请输入知识文件名称" disabled>
<el-option label="暂无用户" value=""></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="关键字">
<el-input v-model="form.name" placeholder="请输入关键字/敏感词" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上传时间" prop="times">
<el-date-picker
style="width:100%"
v-model="form.times"
value-format="yyyy-MM-dd"
start-placeholder="开始时间"
end-placeholder="结束时间"
type="daterange"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24" class="mb20 text-center">
<el-button size="medium" type="primary" @click="search">查询</el-button>
<el-button size="medium" @click="reset">重置</el-button>
</el-col>
</el-row>
</el-form>
</div>
<r-table
:columns="columns"
:data="list"
:deletion="false"
:total="total"
@page-change="pageChange"
@current-change="currentChange"
:current-page="page"
:page-size="pageSize"
></r-table>
<div>
<!-- <el-button type="primary" size="medium" class="normal-button" @click="jumpEditKnowledge">修改知识库</el-button>-->
<el-button type="primary" size="medium" icon="el-icon-edit-outline" class="primary-button" @click="jumpEditKnowledge">修改知识库</el-button>
<el-button type="primary" size="medium" icon="el-icon-plus" class="primary-button" @click="jumpAddKnowledge">上传知识</el-button>
</div>
</div>
<div class="mt20 card-body">
<el-empty v-if="!hasList">
<div class="mt20">
<el-button type="primary" size="medium" class="fs14" @click="jumpAddKnowledge">立即添加</el-button>
</div>
</el-empty>
<div class="table-container" v-else>
<div class="flex align-items-c justify-content-b">
<el-form :model="form" label-width="100px" label-position="top" inline>
<el-form-item label="知识文件名称" prop="fileName">
<el-input v-model="form.knowledgeNameLike" size="medium" placeholder="请输入知识文件名称" @keydown.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="知识文件来源" prop="documentSource">
<el-select v-model="form.documentSource" placeholder="请输入知识文件名称" size="medium">
<el-option label="全部" value=""></el-option>
<el-option v-for="item in documentSourceOptions" :label="item.label" :value="item.value" :key="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="上传用户" prop="createdUserLike">
<el-select v-model="form.createdUserLike" placeholder="请输入知识文件名称" disabled size="medium">
<el-option label="暂无用户" value=""></el-option>
</el-select>
</el-form-item>
<el-form-item label="关键字">
<el-input v-model="form.name" placeholder="请输入关键字/敏感词" disabled size="medium"></el-input>
</el-form-item>
<el-form-item label="上传时间" prop="times">
<el-date-picker
size="medium"
style="width:100%"
v-model="form.times"
value-format="yyyy-MM-dd"
start-placeholder="开始时间"
end-placeholder="结束时间"
type="daterange"
></el-date-picker>
</el-form-item>
</el-form>
<div class="mt15">
<el-button size="medium" type="primary" @click="search">查询</el-button>
<el-button size="medium" @click="reset">重置</el-button>
</div>
</div>
<r-table
:columns="columns"
:data="list"
:deletion="false"
:total="total"
@page-change="pageChange"
@current-change="currentChange"
:current-page="page"
:page-size="pageSize"
></r-table>
</div>
</el-card>
</div>
<document-drawer
:visible.sync="drawer"
:descriptions="descriptions"
@@ -101,11 +95,12 @@ import { datasetDocumentEx, datasetQueryDelete, datasetQuerySegments, datasetsEx
import { documentSourceOptions, segmentedModeOptionsMap } from '@/assets/js/utils/utilOptions'
import DocumentDrawer from './components/documentDetail/DocumentDrawer.vue'
import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue'
import knowledgePng_1 from '@/assets/images/konwledge/konwledge-1.png'
export default {
name: 'index',
data() {
return {
knowledgePng_1,
datasetId: this.$route.query.datasetId,
activeName: -1,
drawer: false,
@@ -647,16 +642,42 @@ export default {
}
.segment-content {
padding: 20px;
background: #f9f9f9;
border-radius: 15px;
//white-space: pre-wrap;
line-height: 35px;
color: #666;
background: #f6f8fa;
border-radius: 4px;
font-family: PingFangSC;
font-size: 12px;
color: #4e5969;
line-height: 17px;
text-align: left;
font-style: normal;
margin-left: 20px;
padding: 2px 5px;
}
.segment-empty {
padding: 10px;
text-align: center;
}
.clearfix {
padding-bottom: 20px;
position: relative;
&:after {
position: absolute;
bottom: 0;
left: 0;
content: '';
width: 100%;
border-bottom: 1px solid #979797;
// 宽度缩小
transform: scaleY(0.2);
}
& .header {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 16px;
color: #000000;
text-align: left;
font-style: normal;
}
}
</style>

View File

@@ -43,8 +43,8 @@
{{ item.segmentedMode | filterSegmentedMode }}
</div>
<div class="opacity-button">
<el-button class="default render-button" icon="el-icon-delete" @click.stop="deleteKnowLedge(item)">删除</el-button>
<el-button class="render-button line-button" icon="el-icon-edit" @click.stop="createdKnowLedge(item)" type="primary">修改</el-button>
<el-button class="default " size="medium" icon="el-icon-delete" @click.stop="deleteKnowLedge(item)">删除</el-button>
<el-button class="line-button" size="medium" icon="el-icon-edit" @click.stop="createdKnowLedge(item)" type="primary">修改</el-button>
</div>
</div>