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

This commit is contained in:
wu.jifen
2025-04-23 19:22:00 +08:00
12 changed files with 162 additions and 66 deletions

View File

@@ -157,4 +157,14 @@
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

@@ -1,7 +1,9 @@
.underBorder {
border: unset;
.el-input__inner {
border: unset;
border-radius: unset !important;
}
.el-input-group__prepend {
@@ -13,10 +15,16 @@
.el-input--medium {
.el-input__inner {
height: 30px;
line-height: 30px;
border-radius: 8px;
//height: 30px;
//line-height: 30px;
}
.el-input__icon {
line-height: 30px;
//line-height: 30px;
}
}
.el-textarea {
.el-textarea__inner {
border-radius: 8px;
}
}

View File

@@ -0,0 +1,16 @@
.el-form--label-top {
& .el-form-item__label {
line-height: 30px;
padding: 0;
}
}
.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

@@ -0,0 +1,23 @@
.el-radio__inner {
border-radius: 4px;
width: 14px;
height: 14px;
&:after {
}
}
.el-radio__input {
&.is-checked {
& + .el-radio__label {
color: $--color-primary;
}
.el-radio__inner {
background: #fff;
&:after {
background: $--color-primary;
width: 7px;
height: 7px;
border-radius: 1px;
}
}
}
}

View File

@@ -9,6 +9,7 @@ $--color-primary-desc-text: #51525d;
$--color-primary-desc-text-drank: #999;
$--color-primary-table-hover: #eff0f8;
$--color-primary-table-button-hover: #e3e5f1;
$--color-primary-label: #70778d;
:root {
--swiper-theme-color: #0a6dff;

View File

@@ -3,6 +3,8 @@
@import 'renderSass/dialog';
@import 'renderSass/input';
@import 'renderSass/table';
@import 'renderSass/label';
@import 'renderSass/radio';
html,
body,

View File

@@ -1,5 +1,5 @@
<template>
<el-dialog :visible.sync="visible" :title="title" :append-to-body="appendToBody">
<el-dialog :visible.sync="visible" :title="title" :append-to-body="appendToBody" :destroy-on-close="destroyOnClose" :width="width">
<div class="render-dialog-body">
<slot name="default"></slot>
</div>
@@ -18,10 +18,18 @@ export default {
return {}
},
props: {
width: {
type: String,
default: '30%'
},
appendToBody: {
type: Boolean,
default: false
},
destroyOnClose: {
type: Boolean,
default: false
},
visible: {
type: Boolean,
default: false

View File

@@ -9,7 +9,6 @@
@sort-change="sortChange"
ref="renderTable"
:border="border"
stripe
:header-align="align"
size="small"
default-expand-all

View File

@@ -58,7 +58,6 @@ export default {
width: 35px;
//height: 65px;
vertical-align: middle;
margin-right: 12px;
}
& .sidebar-title {

View File

@@ -1,45 +1,42 @@
<template>
<div class="container index-container">
<el-card shadow="hover">
<div slot="header" class="clearfix">
<h3>{{ $route.query.datasetId ? '修改' : '新增' }}知识库</h3>
</div>
<el-row>
<el-col :span="21" :offset="1">
<el-form :model="model" ref="model" label-width="120px" :rules="rules">
<el-form-item label="知识库名称:" prop="name">
<el-input v-model="model.name"></el-input>
</el-form-item>
<r-dialog :visible.sync="visible" :title="(datasetId ? `修改` : `新增`) + '知识库'" destroy-on-close width="500px">
<div slot="header" class="clearfix">
<h3>{{ datasetId ? '修改' : '新增' }}</h3>
</div>
<el-row>
<el-col>
<el-form :model="model" ref="model" label-width="120px" :rules="rules" label-position="top">
<el-form-item label="知识库名称:" prop="name">
<el-input v-model="model.name" size="medium"></el-input>
</el-form-item>
<el-form-item label="描述(可选)" prop="description" requried>
<el-input type="textarea" v-model="model.description"></el-input>
</el-form-item>
<el-form-item label="描述(可选)" prop="description" requried>
<el-input type="textarea" v-model="model.description"></el-input>
</el-form-item>
<el-form-item label="分段模式:" prop="segmentedMode" v-if="$route.query.datasetId">
{{ model.segmentedMode | filterSegmentedMode }}
</el-form-item>
<el-form-item label="分段模式:" prop="segmentedMode" v-else>
<el-radio-group v-model="model.segmentedMode">
<el-radio :label="0">通用分段模式</el-radio>
<el-radio :label="1">Q&A分段模式</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</el-col>
<el-form-item label="分段模式:" prop="segmentedMode" v-if="datasetId">
{{ model.segmentedMode | filterSegmentedMode }}
</el-form-item>
<el-form-item label="分段模式:" prop="segmentedMode" v-else>
<el-radio-group v-model="model.segmentedMode">
<el-radio :label="0">通用分段模式</el-radio>
<el-radio :label="1">Q&A分段模式</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</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">
{{ 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>
</div>
</r-dialog>
<el-col :span="24" class="text-center">
<el-button type="primary" size="medium" @click="save" v-if="!infoDialogVisible">
{{ $route.query.datasetId ? '保存' : '创建' }}
</el-button>
<el-button size="medium" v-if="!infoDialogVisible" @click="$router.go(-1)">取消</el-button>
<el-button size="medium" @click="jumpKnowledgeList" v-if="infoDialogVisible">返回知识库列表</el-button>
<el-button size="medium" @click="jumpKnowledgeDetail" v-if="infoDialogVisible">查看知识库详情</el-button>
</el-col>
</el-row>
</el-card>
<!-- <el-dialog title="知识库操作成功" :visible.sync="infoDialogVisible" width="50%"></el-dialog>-->
</div>
<!-- <el-dialog title="知识库操作成功" :visible.sync="infoDialogVisible" width="50%"></el-dialog>-->
</template>
<script>
import 'nprogress/nprogress.css' // progress bar style
@@ -64,8 +61,30 @@ export default {
}
}
},
props: {},
watch: {},
props: {
visible: {
type: Boolean,
default: false
},
datasetId: {
type: String,
default: ''
}
},
watch: {
datasetId(val) {
if (val) {
this.getDetail()
} else {
this.model = {
description: '',
name: '',
segmentedMode: 0,
id: null
}
}
}
},
components: {},
filters: {
filterSegmentedMode(val) {
@@ -95,9 +114,8 @@ export default {
},
getDetail() {
let { datasetId } = this.$route.query
if (!datasetId) return
getDatasetById({ id: datasetId }).then(res => {
if (!this.datasetId) return
getDatasetById({ id: this.datasetId }).then(res => {
this.model = {
...res.content.content
}
@@ -108,12 +126,13 @@ export default {
if (!valid) {
return false
}
;(!this.$route.query.datasetId ? datasetCreate : datasetUpdate)(this.model).then(res => {
;(!this.datasetId ? datasetCreate : datasetUpdate)(this.model).then(res => {
if (res) {
// 添加保存成功的提示
this.$message.success('保存成功')
this.model.id = res.content.content.id
this.infoDialogVisible = true
// this.infoDialogVisible = true
this.$emit('update:visible', false)
// this.$router.go(-1)
}
})

View File

@@ -92,19 +92,24 @@
:active-segment="activeSegment"
@update:visible="val => (drawer = val)"
/>
<knowledgeForm :visible.sync="drawerForm" :datasetId="$route.query.datasetId" @update:visible="getKnowledgeDetail"></knowledgeForm>
</div>
</template>
<script>
import { datasetDocumentEx, datasetQueryDelete, datasetQuerySegments, datasetsExPages, datasetUpdate, getDatasetById } from '@/api/generatedApi/index'
import { documentSourceOptions, segmentedModeOptionsMap } from '@/assets/js/utils/utilOptions'
import DocumentDrawer from './components/documentDetail/DocumentDrawer.vue'
import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue'
export default {
name: 'index',
data() {
return {
datasetId: this.$route.query.datasetId,
activeName: -1,
drawer: false,
drawerForm: false,
editKnowledge: false,
form: {
knowledgeNameLike: '',
@@ -136,6 +141,7 @@ export default {
props: {},
watch: {},
components: {
knowledgeForm,
DocumentDrawer
},
methods: {
@@ -176,13 +182,14 @@ export default {
},
// 跳转到知识库编辑
jumpEditKnowledge() {
let { datasetId } = this.$route.query
this.$router.push({
path: '/knowledge/knowledge-create',
query: {
datasetId: datasetId
}
})
this.drawerForm = true
// let { datasetId } = this.$route.query
// this.$router.push({
// path: '/knowledge/knowledge-create',
// query: {
// datasetId: datasetId
// }
// })
},
/**
* @name 根据id 获取知识内容详情

View File

@@ -16,7 +16,7 @@
<div slot="header" class="clearfix mt30 flex">
<div>
<h3>知识库列表</h3>
<p class="mt20 fs14 theme-primary-desc-text" style="line-height: 10px">
<p class="mt20 fs14 theme-primary-desc-text" style="line-height: 15px">
易商数智知识库平台旨在为用户提供更便捷更灵敏更全面的知识存储和操作平台用户可以通过创建不同的知识库完成对系统内知识的细分和储备
</p>
<p class="mt10 fs14 theme-primary-desc-text" style="line-height: 15px">同时也可以通过修改和删除操作对系统内知识体系进行修正和优化</p>
@@ -52,17 +52,19 @@
</el-card>
</div>
</div>
<knowledgeForm :visible.sync="drawer" :datasetId="datasetId" @update:visible="getList"></knowledgeForm>
</div>
</template>
<script>
import { docManageDataset, datasetDelete } from '@/api/generatedApi/index'
import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue'
import konwledgePng_1 from '@/assets/images/konwledge/konwledge-1.png'
export default {
name: 'index',
data() {
return {
datasetId: '',
konwledgePng_1,
datasetList: [],
nameLike: '',
@@ -96,12 +98,14 @@ export default {
})
},
createdKnowLedge(item) {
this.$router.push({
path: '/knowledge/knowledge-create',
query: {
datasetId: item ? item.id : null
}
})
this.datasetId = item ? item.id : ''
this.drawer = true
// this.$router.push({
// path: '/knowledge/knowledge-create',
// query: {
// datasetId: item ? item.id : null
// }
// })
},
knowLedgeDetail(item) {
this.$router.push({