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; border: none;
color: #fff; 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 { .underBorder {
border: unset; border: unset;
.el-input__inner { .el-input__inner {
border: unset; border: unset;
border-radius: unset !important;
} }
.el-input-group__prepend { .el-input-group__prepend {
@@ -13,10 +15,16 @@
.el-input--medium { .el-input--medium {
.el-input__inner { .el-input__inner {
height: 30px; border-radius: 8px;
line-height: 30px; //height: 30px;
//line-height: 30px;
} }
.el-input__icon { .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-desc-text-drank: #999;
$--color-primary-table-hover: #eff0f8; $--color-primary-table-hover: #eff0f8;
$--color-primary-table-button-hover: #e3e5f1; $--color-primary-table-button-hover: #e3e5f1;
$--color-primary-label: #70778d;
:root { :root {
--swiper-theme-color: #0a6dff; --swiper-theme-color: #0a6dff;

View File

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

View File

@@ -1,5 +1,5 @@
<template> <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"> <div class="render-dialog-body">
<slot name="default"></slot> <slot name="default"></slot>
</div> </div>
@@ -18,10 +18,18 @@ export default {
return {} return {}
}, },
props: { props: {
width: {
type: String,
default: '30%'
},
appendToBody: { appendToBody: {
type: Boolean, type: Boolean,
default: false default: false
}, },
destroyOnClose: {
type: Boolean,
default: false
},
visible: { visible: {
type: Boolean, type: Boolean,
default: false default: false

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,7 +16,7 @@
<div slot="header" class="clearfix mt30 flex"> <div slot="header" class="clearfix mt30 flex">
<div> <div>
<h3>知识库列表</h3> <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>
<p class="mt10 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> </el-card>
</div> </div>
</div> </div>
<knowledgeForm :visible.sync="drawer" :datasetId="datasetId" @update:visible="getList"></knowledgeForm>
</div> </div>
</template> </template>
<script> <script>
import { docManageDataset, datasetDelete } from '@/api/generatedApi/index' import { docManageDataset, datasetDelete } from '@/api/generatedApi/index'
import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue' import knowledgeForm from '@/views/knowledge/detail/components/knowledgeForm.vue'
import konwledgePng_1 from '@/assets/images/konwledge/konwledge-1.png' import konwledgePng_1 from '@/assets/images/konwledge/konwledge-1.png'
export default { export default {
name: 'index', name: 'index',
data() { data() {
return { return {
datasetId: '',
konwledgePng_1, konwledgePng_1,
datasetList: [], datasetList: [],
nameLike: '', nameLike: '',
@@ -96,12 +98,14 @@ export default {
}) })
}, },
createdKnowLedge(item) { createdKnowLedge(item) {
this.$router.push({ this.datasetId = item ? item.id : ''
path: '/knowledge/knowledge-create', this.drawer = true
query: { // this.$router.push({
datasetId: item ? item.id : null // path: '/knowledge/knowledge-create',
} // query: {
}) // datasetId: item ? item.id : null
// }
// })
}, },
knowLedgeDetail(item) { knowLedgeDetail(item) {
this.$router.push({ this.$router.push({