CN-1410 Detections模块中,无法根据面包屑导航进行跳转页面
This commit is contained in:
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="cn-header__nav">
|
<div class="cn-header__nav">
|
||||||
<i class="cn-icon cn-icon-a-NetworkAnalytics"></i>
|
<i class="cn-icon cn-icon-a-NetworkAnalytics"></i>
|
||||||
<el-breadcrumb class="header__left-breadcrumb" separator=">">
|
<el-breadcrumb class="header__left-breadcrumb" separator=">" v-if="route.startsWith('/panel')">
|
||||||
<el-breadcrumb-item class="header__left-breadcrumb-item" :id="`breadcrumb${item.value}`" :title="index===3?item.value:''"
|
<el-breadcrumb-item class="header__left-breadcrumb-item" :id="`breadcrumb${item.value}`" :title="index===3?item.value:''"
|
||||||
v-for="(item,index) in breadcrumb" :key="item.value">
|
v-for="(item,index) in breadcrumb" :key="item.value">
|
||||||
<template v-if="index===3" >
|
<template v-if="index===3" >
|
||||||
@@ -113,6 +113,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
|
<el-breadcrumb class="header__left-breadcrumb" separator=">" v-else>
|
||||||
|
<el-breadcrumb-item class="header__left-breadcrumb-item" :id="`breadcrumb${item.value}`"
|
||||||
|
v-for="(item,index) in breadcrumb" :key="item.value">
|
||||||
|
<span v-if="item.clickable" class="route-menu" @click="jumpOther(item.route,index)">{{ item.value }}</span>
|
||||||
|
<span v-else>{{ item.value }}</span>
|
||||||
|
</el-breadcrumb-item>
|
||||||
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 菜单 -->
|
<!-- 菜单 -->
|
||||||
@@ -326,15 +333,17 @@ export default {
|
|||||||
breadcrumb () {
|
breadcrumb () {
|
||||||
const breadcrumb = []
|
const breadcrumb = []
|
||||||
this.generateBreadcrumb(breadcrumb, this.$store.getters.menuList)
|
this.generateBreadcrumb(breadcrumb, this.$store.getters.menuList)
|
||||||
// 写死一级和二级菜单是否可以点击跳转
|
if(breadcrumb){
|
||||||
if (breadcrumb[0]) {
|
// panel菜单是否可以点击跳转:一级菜单不可点击,二级菜单可以点击
|
||||||
if (['knowledgeBase'].indexOf(breadcrumb[0].code) > -1) {
|
if(breadcrumb[0] && breadcrumb[1] && breadcrumb[1].route
|
||||||
breadcrumb[0].clickable = true
|
&& breadcrumb[1].route.indexOf('/panel/') === 0){
|
||||||
}
|
breadcrumb[1].clickable = true
|
||||||
if (breadcrumb[1]) {
|
}else {// 除panel外的菜单是否可以点击跳转:除了新增、编辑,其它均可点击
|
||||||
if (breadcrumb[1].route && breadcrumb[1].route.indexOf('/panel/') === 0) {
|
breadcrumb.forEach(item => {
|
||||||
breadcrumb[1].clickable = true
|
if(item.value !== 'Create' && item.value !== 'Edit'){
|
||||||
}
|
item.clickable = true
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -667,6 +676,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//仅处理除panel外的相关路径的导航
|
||||||
|
async jumpOther (route, index) {
|
||||||
|
route = route.replace('redirect:', '')
|
||||||
|
this.showMenu = false
|
||||||
|
if (route === this.route && index > 0) {//当前只有一级菜单时,点击不进行刷新,重新跳转
|
||||||
|
this.refresh()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (route) {
|
||||||
|
this.$router.push({
|
||||||
|
path: route,
|
||||||
|
query: {
|
||||||
|
t: +new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//仅处理panel相关路径的导航
|
||||||
async jump (route, columnName, columnValue, opeType) {
|
async jump (route, columnName, columnValue, opeType) {
|
||||||
route = route.replace('redirect:', '')
|
route = route.replace('redirect:', '')
|
||||||
if (route === '/panel/linkMonitor' && opeType === 3) {
|
if (route === '/panel/linkMonitor' && opeType === 3) {
|
||||||
@@ -700,11 +727,6 @@ export default {
|
|||||||
child.columnName = columnName
|
child.columnName = columnName
|
||||||
this.urlChangeParams[this.curTabState.thirdMenu] = columnName
|
this.urlChangeParams[this.curTabState.thirdMenu] = columnName
|
||||||
this.urlChangeParams[this.curTabState.fourthMenu] = columnValue
|
this.urlChangeParams[this.curTabState.fourthMenu] = columnValue
|
||||||
// const tabObjGroup = networkOverviewTabList.filter(item => item.label == columnName)
|
|
||||||
// let curTab = this.getCurTabByLabel()
|
|
||||||
// const type = curTab ? curTab.prop : ''
|
|
||||||
// this.curTabProp = this.$route.query.dimensionType ? this.$route.query.dimensionType : null
|
|
||||||
// this.urlChangeParams[this.curTabState.dimensionType] = type
|
|
||||||
this.urlChangeParams[this.curTabState.panelName] = columnValue
|
this.urlChangeParams[this.curTabState.panelName] = columnValue
|
||||||
} else if (columnName) { // 点击的为列名
|
} else if (columnName) { // 点击的为列名
|
||||||
child.columnValue = ''
|
child.columnValue = ''
|
||||||
|
|||||||
@@ -163,8 +163,9 @@ export function handleComponent (code) {
|
|||||||
case 'report':
|
case 'report':
|
||||||
return () => import('@/views/report/Report')
|
return () => import('@/views/report/Report')
|
||||||
case 'knowledgeBase':
|
case 'knowledgeBase':
|
||||||
case 'userDefinedLibrary':
|
|
||||||
return () => import('@/views/setting/KnowledgeBase')
|
return () => import('@/views/setting/KnowledgeBase')
|
||||||
|
case 'userDefinedLibrary':
|
||||||
|
return () => import('@/views/setting/KnowledgeBaseUserDefinedList')
|
||||||
case 'createUserDefinedLibrary':
|
case 'createUserDefinedLibrary':
|
||||||
case 'editUserDefinedLibrary':
|
case 'editUserDefinedLibrary':
|
||||||
return () => import('@/views/setting/KnowledgeBaseForm')
|
return () => import('@/views/setting/KnowledgeBaseForm')
|
||||||
|
|||||||
@@ -821,7 +821,7 @@ export default {
|
|||||||
if (q) {
|
if (q) {
|
||||||
str1 = q.substring(q.indexOf('%'), q.indexOf('%') + 3)
|
str1 = q.substring(q.indexOf('%'), q.indexOf('%') + 3)
|
||||||
}
|
}
|
||||||
if (q.indexOf('+') > -1) {
|
if (q && q.indexOf('+') > -1) {
|
||||||
q = q.replace('+', '')
|
q = q.replace('+', '')
|
||||||
}
|
}
|
||||||
if (q && q.indexOf('%') > 0 && (str1 !== '%20' || str1 === '%25')) {
|
if (q && q.indexOf('%') > 0 && (str1 !== '%20' || str1 === '%25')) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="top-title">
|
<div class="top-title">
|
||||||
{{$t('overall.knowledgeBase')}}
|
{{$t('overall.knowledgeBase')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="builtIn-to-user-defined" v-if="dataType === 'builtInList'">
|
<div class="builtIn-to-user-defined" >
|
||||||
<button :title="$t('knowledgeBase.userDefinedLibrary')" class="top-tool-btn--user_defined_library"
|
<button :title="$t('knowledgeBase.userDefinedLibrary')" class="top-tool-btn--user_defined_library"
|
||||||
v-if="hasPermission('userDefinedLibrary')"
|
v-if="hasPermission('userDefinedLibrary')"
|
||||||
@click="changeToUserDefinedList">
|
@click="changeToUserDefinedList">
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 内置库列表 -->
|
<!-- 内置库列表 -->
|
||||||
<div class="knowledge-base-built-in__content" v-if="dataType === 'builtInList'">
|
<div class="knowledge-base-built-in__content" >
|
||||||
<div class="list-card" >
|
<div class="list-card" >
|
||||||
<div class="list-mode__card" >
|
<div class="list-mode__card" >
|
||||||
<loading :loading="loading"></loading>
|
<loading :loading="loading"></loading>
|
||||||
@@ -33,63 +33,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 用户自定义列表 -->
|
|
||||||
<div class="knowledge-base-user-defined__content" v-else-if="dataType === 'userDefinedList'">
|
|
||||||
<div class="right-list-card" >
|
|
||||||
<div class="top-tools" >
|
|
||||||
<div class="top-tools__left">
|
|
||||||
<button id="knowledge-base-add" :title="$t('knowledgeBase.createKnowledgeBase')" class="top-tool-btn margin-r-10 top-tool-btn--create"
|
|
||||||
style="width:72px;"
|
|
||||||
v-if="hasPermission('createUserDefinedLibrary')"
|
|
||||||
@click="jumpToCreatePage">
|
|
||||||
<i class="cn-icon-xinjian cn-icon"></i>
|
|
||||||
<span>{{$t('overall.create')}}</span>
|
|
||||||
</button>
|
|
||||||
<button id="knowledge-base-edit" :title="$t('knowledgeBase.editKnowledgeBase')" class="top-tool-btn margin-r-10" :disabled="disableEdit"
|
|
||||||
style="width:72px;"
|
|
||||||
v-if="hasPermission('editUserDefinedLibrary')"
|
|
||||||
@click="editSelectRecord">
|
|
||||||
<i class="cn-icon-edit cn-icon" ></i>
|
|
||||||
<span>{{$t('overall.edit')}}</span>
|
|
||||||
</button>
|
|
||||||
<button id="knowledge-base-delete" :title="$t('knowledgeBase.deleteKnowledgeBase')" class="top-tool-btn margin-r-10"
|
|
||||||
v-if="hasPermission('deleteUserDefinedLibrary')"
|
|
||||||
style="width:72px;" :disabled="disableDelete"
|
|
||||||
@click="toDelete">
|
|
||||||
<i class="cn-icon-delete cn-icon"></i>
|
|
||||||
<span>{{$t('overall.delete')}}</span>
|
|
||||||
</button>
|
|
||||||
<div class="top-tool-search margin-l-10" >
|
|
||||||
<el-input v-model="keyWord" size="small" @keyup.enter="onSearch"></el-input>
|
|
||||||
<button class="top-tool-btn top-tool-btn--search" style="border-radius: 0 2px 2px 0 !important;" @click="onSearch">
|
|
||||||
<i class="el-icon-search"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="list-mode__row" style="position:relative;">
|
|
||||||
<loading :loading="loading"></loading>
|
|
||||||
<knowledge-base-table-for-row
|
|
||||||
ref="dataTable"
|
|
||||||
height="100%"
|
|
||||||
:api="url"
|
|
||||||
:isNoData="isNoData"
|
|
||||||
:custom-table-title="tools.customTableTitle"
|
|
||||||
:table-data="tableData"
|
|
||||||
:is-selected-status="isSelectedStatus"
|
|
||||||
@delete="toDelete"
|
|
||||||
@selectionChange="selectionChange"
|
|
||||||
@edit="edit"
|
|
||||||
@orderBy="tableDataSort"
|
|
||||||
@reload="reloadRowList"
|
|
||||||
@toggleLoading="toggleLoading"
|
|
||||||
></knowledge-base-table-for-row>
|
|
||||||
</div>
|
|
||||||
<div class="knowledge-pagination" >
|
|
||||||
<pagination ref="pagination" :page-obj="pageObj" :table-id="tableId" @pageNo='pageNo' @pageSize='pageSize'></pagination>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="showConfirmDialog"
|
<el-dialog v-model="showConfirmDialog"
|
||||||
:title="$t('overall.hint')"
|
:title="$t('overall.hint')"
|
||||||
@@ -114,8 +57,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column property="knowledgeId" label="ID" width="150"></el-table-column>
|
<el-table-column property="knowledgeId" label="ID" width="150"></el-table-column>
|
||||||
<el-table-column property="name" label="Name"></el-table-column>
|
<el-table-column property="name" label="Name"></el-table-column>
|
||||||
<!-- <el-table-column property="category" label="Category" width="100" :formatter = "categoryFormat"></el-table-column>
|
<!-- <el-table-column property="category" label="Category" width="100" :formatter = "categoryFormat"></el-table-column>
|
||||||
<el-table-column property="source" label="Source" width="110" :formatter = "sourceFormat"></el-table-column> -->
|
<el-table-column property="source" label="Source" width="110" :formatter = "sourceFormat"></el-table-column> -->
|
||||||
</el-table>
|
</el-table>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
@@ -126,280 +69,164 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import dataListMixin from '@/mixins/data-list'
|
import dataListMixin from '@/mixins/data-list'
|
||||||
import KnowledgeBaseTableForCard from '@/components/table/setting/knowledgeBaseTableForCard'
|
import KnowledgeBaseTableForCard from '@/components/table/setting/knowledgeBaseTableForCard'
|
||||||
import KnowledgeBaseTableForRow from '@/components/table/setting/KnowledgeBaseTableForRow'
|
import { api } from '@/utils/api'
|
||||||
import { api } from '@/utils/api'
|
import { urlParamsHandler, overwriteUrl } from '@/utils/tools'
|
||||||
import { urlParamsHandler, overwriteUrl } from '@/utils/tools'
|
import { knowledgeBaseCategory, knowledgeBaseSource, knowledgeCategoryValue } from '@/utils/constants'
|
||||||
import { knowledgeBaseCategory, knowledgeBaseSource, knowledgeCategoryValue } from '@/utils/constants'
|
import axios from 'axios'
|
||||||
import axios from 'axios'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'knowledgeBase',
|
name: 'knowledgeBase',
|
||||||
components: {
|
components: {
|
||||||
KnowledgeBaseTableForCard,
|
KnowledgeBaseTableForCard
|
||||||
KnowledgeBaseTableForRow
|
},
|
||||||
},
|
mixins: [dataListMixin],
|
||||||
mixins: [dataListMixin],
|
data () {
|
||||||
data () {
|
return {
|
||||||
return {
|
url: api.knowledgeBase,
|
||||||
url: api.knowledgeBase,
|
listUrl: api.knowledgeBaseList,
|
||||||
listUrl: api.knowledgeBaseList,
|
tableId: 'knowledgeBaseTable', // 需要分页的table的id,用于记录每页数量
|
||||||
tableId: 'knowledgeBaseTable', // 需要分页的table的id,用于记录每页数量
|
isSelectedStatus: false,
|
||||||
isSelectedStatus: false,
|
filterParams: {},
|
||||||
filterParams: {},
|
checkedCategoryIds: [],
|
||||||
checkedCategoryIds: [],
|
checkedStatusIds: [],
|
||||||
checkedStatusIds: [],
|
keyWord: '',
|
||||||
keyWord: '',
|
showConfirmDialog: false,
|
||||||
showConfirmDialog: false,
|
delItemList: [],
|
||||||
delItemList: [],
|
secondBatchDeleteObjs: []
|
||||||
secondBatchDeleteObjs: [],
|
|
||||||
dataType: 'builtInList' // userDefinedList|builtInList
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onSearch () {
|
|
||||||
const params = {
|
|
||||||
...this.filterParams,
|
|
||||||
name: this.keyWord
|
|
||||||
}
|
}
|
||||||
if (this.dataType === 'userDefinedList') {
|
|
||||||
params.category = knowledgeCategoryValue.userDefined
|
|
||||||
}
|
|
||||||
this.clearList()
|
|
||||||
this.search(params)
|
|
||||||
},
|
},
|
||||||
reloadRowList () {
|
watch: {
|
||||||
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
|
||||||
this.getTableData()
|
|
||||||
},
|
},
|
||||||
categoryFormat (row, column) {
|
methods: {
|
||||||
const category = row.category
|
categoryFormat (row, column) {
|
||||||
const t = knowledgeBaseCategory.find(t => t.value === category)
|
const category = row.category
|
||||||
return t ? t.name : category
|
const t = knowledgeBaseCategory.find(t => t.value === category)
|
||||||
},
|
return t ? t.name : category
|
||||||
sourceFormat (row, column) {
|
},
|
||||||
const source = row.source
|
sourceFormat (row, column) {
|
||||||
const t = knowledgeBaseSource.find(t => t.value === source)
|
const source = row.source
|
||||||
return t ? t.name : source
|
const t = knowledgeBaseSource.find(t => t.value === source)
|
||||||
},
|
return t ? t.name : source
|
||||||
handleClose () {
|
},
|
||||||
this.showConfirmDialog = false
|
handleClose () {
|
||||||
},
|
this.showConfirmDialog = false
|
||||||
showDelDialog () {
|
},
|
||||||
this.showConfirmDialog = true
|
showDelDialog () {
|
||||||
this.$nextTick(() => {
|
this.showConfirmDialog = true
|
||||||
this.batchDeleteObjs.forEach((item) => {
|
this.$nextTick(() => {
|
||||||
this.$refs.delDataTable.toggleRowSelection(item, true)
|
this.batchDeleteObjs.forEach((item) => {
|
||||||
|
this.$refs.delDataTable.toggleRowSelection(item, true)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
},
|
||||||
},
|
secondSelectionChange (objs) {
|
||||||
secondSelectionChange (objs) {
|
this.secondBatchDeleteObjs = objs
|
||||||
this.secondBatchDeleteObjs = objs
|
},
|
||||||
},
|
selectionChange (objs) {
|
||||||
selectionChange (objs) {
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
objs.forEach(obj => {
|
|
||||||
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === obj.knowledgeId)
|
|
||||||
if (delObj === undefined) {
|
|
||||||
this.batchDeleteObjs.push(obj)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (this.batchDeleteObjs.length === 1) {
|
|
||||||
this.disableEdit = false
|
|
||||||
} else {
|
|
||||||
this.disableEdit = true
|
|
||||||
}
|
|
||||||
if (this.batchDeleteObjs.length >= 1) {
|
|
||||||
this.disableDelete = false
|
|
||||||
} else {
|
|
||||||
this.disableDelete = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
checkboxStatusChange (isCheck, data) {
|
|
||||||
if (isCheck) {
|
|
||||||
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === data.knowledgeId)
|
|
||||||
if (delObj === undefined) {
|
|
||||||
this.batchDeleteObjs.push(data)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const cancleObjIndex = this.batchDeleteObjs.findIndex(item => item.knowledgeId === data.knowledgeId)
|
|
||||||
if (cancleObjIndex > -1) {
|
|
||||||
this.batchDeleteObjs.splice(cancleObjIndex, 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.batchDeleteObjs.length === 1) {
|
|
||||||
this.disableEdit = false
|
|
||||||
} else {
|
|
||||||
this.disableEdit = true
|
|
||||||
}
|
|
||||||
if (this.batchDeleteObjs.length >= 1) {
|
|
||||||
this.disableDelete = false
|
|
||||||
} else {
|
|
||||||
this.disableDelete = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
delBatchKnowledge () {
|
|
||||||
const ids = []
|
|
||||||
if (this.secondBatchDeleteObjs && this.secondBatchDeleteObjs.length > 0) {
|
|
||||||
this.secondBatchDeleteObjs.forEach(item => {
|
|
||||||
ids.push(item.knowledgeId)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
let hasReference = false
|
|
||||||
let referenceKnowledge = null
|
|
||||||
this.batchDeleteObjs.forEach(item => {
|
|
||||||
if (item.reference && item.reference.length > 0) {
|
|
||||||
hasReference = true
|
|
||||||
referenceKnowledge = item
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if (ids.length === 0) {
|
|
||||||
this.$alert(this.$t('tip.pleaseSelect'), {
|
|
||||||
confirmButtonText: this.$t('tip.yes'),
|
|
||||||
type: 'warning'
|
|
||||||
}).catch(() => {})
|
|
||||||
} else if (hasReference) {
|
|
||||||
this.$message.error(this.$t('knowledgeBase.deleteReferenceObjects', { name: referenceKnowledge.name }))
|
|
||||||
} else {
|
|
||||||
this.toggleLoading(true)
|
|
||||||
axios.delete(this.url + '?knowledgeIds=' + ids).then(response => {
|
|
||||||
if (response.status === 200) {
|
|
||||||
this.delFlag = true
|
|
||||||
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
|
||||||
this.secondBatchDeleteObjs.forEach((item) => {
|
|
||||||
this.$refs.delDataTable.toggleRowSelection(item, false)
|
|
||||||
})
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
// delete this.searchLabel.category
|
|
||||||
delete this.searchLabel.source
|
|
||||||
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
|
||||||
this.getTableData()
|
|
||||||
} else {
|
|
||||||
this.$message.error(response.data.message)
|
|
||||||
}
|
|
||||||
}).finally(() => {
|
|
||||||
this.toggleLoading(false)
|
|
||||||
if (this.isSelectedStatus != undefined) {
|
|
||||||
this.isSelectedStatus = false
|
|
||||||
this.disableDelete = true
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
this.showConfirmDialog = false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
submit () {
|
|
||||||
this.delBatchKnowledge()
|
|
||||||
this.showConfirmDialog = false
|
|
||||||
},
|
|
||||||
edit (u) {
|
|
||||||
axios.get(`${this.url}/${u.id}`).then(response => {
|
|
||||||
if (response.status === 200) {
|
|
||||||
this.object = response.data.data.list[0]
|
|
||||||
}
|
|
||||||
}).catch(e => {
|
|
||||||
console.error(e)
|
|
||||||
if (e.response.data && e.response.data.message) {
|
|
||||||
this.$message.error(e.response.data.message)
|
|
||||||
} else {
|
|
||||||
this.$message.error(this.$t('tip.somethingWentWrong'))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
reload (params, isAll, isClearType, checkedCategoryIds, checkedStatusIds) {
|
|
||||||
this.disableDelete = true
|
|
||||||
this.isSelectedStatus = false
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
this.filterParams = params
|
|
||||||
this.checkedCategoryIds = checkedCategoryIds
|
|
||||||
this.checkedStatusIds = checkedStatusIds
|
|
||||||
params = {
|
|
||||||
...params,
|
|
||||||
name: this.keyWord
|
|
||||||
}
|
|
||||||
this.getTableData(params, isAll, isClearType)
|
|
||||||
},
|
|
||||||
clearList () {
|
|
||||||
this.disableDelete = true
|
|
||||||
this.isSelectedStatus = false
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
this.tableData = []
|
|
||||||
this.pageObj.total = 0
|
|
||||||
},
|
|
||||||
toSelect () {
|
|
||||||
this.$refs.dataTableCard.clearSelect()
|
|
||||||
this.isSelectedStatus = !this.isSelectedStatus
|
|
||||||
this.disableDelete = true
|
|
||||||
this.batchDeleteObjs = []
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
},
|
|
||||||
editSelectRecord () {
|
|
||||||
if (this.batchDeleteObjs.length === 0) {
|
|
||||||
this.$alert(this.$t('tip.pleaseSelectForEdit'), {
|
|
||||||
confirmButtonText: this.$t('tip.yes'),
|
|
||||||
type: 'warning'
|
|
||||||
}).catch(() => {})
|
|
||||||
} else {
|
|
||||||
this.jumpToEditPage(this.batchDeleteObjs[0].knowledgeId)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
changeToUserDefinedList () {
|
|
||||||
this.dataType = 'userDefinedList'
|
|
||||||
this.$router.push({
|
|
||||||
path: '/knowledgeBase/userDefined',
|
|
||||||
query: {
|
|
||||||
t: +new Date(),
|
|
||||||
dataType: 'userDefinedList'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
toDelete (data) {
|
|
||||||
if (data && data.knowledgeId) {
|
|
||||||
this.secondBatchDeleteObjs = []
|
|
||||||
this.batchDeleteObjs = []
|
this.batchDeleteObjs = []
|
||||||
this.secondBatchDeleteObjs.push(data)
|
objs.forEach(obj => {
|
||||||
this.batchDeleteObjs.push(data)
|
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === obj.knowledgeId)
|
||||||
}
|
if (delObj === undefined) {
|
||||||
this.showDelDialog()
|
this.batchDeleteObjs.push(obj)
|
||||||
},
|
}
|
||||||
modeChange (mode) {
|
})
|
||||||
this.disableDelete = true
|
if (this.batchDeleteObjs.length === 1) {
|
||||||
this.isSelectedStatus = false
|
this.disableEdit = false
|
||||||
this.batchDeleteObjs = []
|
} else {
|
||||||
this.secondBatchDeleteObjs = []
|
this.disableEdit = true
|
||||||
this.dataType = mode
|
}
|
||||||
if (this.$refs.dataTableCard) {
|
if (this.batchDeleteObjs.length >= 1) {
|
||||||
this.$refs.dataTableCard.clearSelect()
|
this.disableDelete = false
|
||||||
}
|
} else {
|
||||||
const { query } = this.$route
|
this.disableDelete = true
|
||||||
const newUrl = urlParamsHandler(window.location.href, query, { dataType: mode })
|
}
|
||||||
overwriteUrl(newUrl)
|
},
|
||||||
},
|
checkboxStatusChange (isCheck, data) {
|
||||||
del (row) {
|
if (isCheck) {
|
||||||
this.$confirm(this.$t('tip.confirmDelete'), {
|
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === data.knowledgeId)
|
||||||
confirmButtonText: this.$t('tip.yes'),
|
if (delObj === undefined) {
|
||||||
cancelButtonText: this.$t('tip.no'),
|
this.batchDeleteObjs.push(data)
|
||||||
type: 'warning'
|
}
|
||||||
}).then(() => {
|
} else {
|
||||||
this.toggleLoading(true)
|
const cancleObjIndex = this.batchDeleteObjs.findIndex(item => item.knowledgeId === data.knowledgeId)
|
||||||
axios.delete(this.url + '?knowledgeIds=' + row.id).then(response => {
|
if (cancleObjIndex > -1) {
|
||||||
|
this.batchDeleteObjs.splice(cancleObjIndex, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.batchDeleteObjs.length === 1) {
|
||||||
|
this.disableEdit = false
|
||||||
|
} else {
|
||||||
|
this.disableEdit = true
|
||||||
|
}
|
||||||
|
if (this.batchDeleteObjs.length >= 1) {
|
||||||
|
this.disableDelete = false
|
||||||
|
} else {
|
||||||
|
this.disableDelete = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delBatchKnowledge () {
|
||||||
|
const ids = []
|
||||||
|
if (this.secondBatchDeleteObjs && this.secondBatchDeleteObjs.length > 0) {
|
||||||
|
this.secondBatchDeleteObjs.forEach(item => {
|
||||||
|
ids.push(item.knowledgeId)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let hasReference = false
|
||||||
|
let referenceKnowledge = null
|
||||||
|
this.batchDeleteObjs.forEach(item => {
|
||||||
|
if (item.reference && item.reference.length > 0) {
|
||||||
|
hasReference = true
|
||||||
|
referenceKnowledge = item
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (ids.length === 0) {
|
||||||
|
this.$alert(this.$t('tip.pleaseSelect'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
type: 'warning'
|
||||||
|
}).catch(() => {})
|
||||||
|
} else if (hasReference) {
|
||||||
|
this.$message.error(this.$t('knowledgeBase.deleteReferenceObjects', { name: referenceKnowledge.name }))
|
||||||
|
} else {
|
||||||
|
this.toggleLoading(true)
|
||||||
|
axios.delete(this.url + '?knowledgeIds=' + ids).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.delFlag = true
|
||||||
|
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
||||||
|
this.secondBatchDeleteObjs.forEach((item) => {
|
||||||
|
this.$refs.delDataTable.toggleRowSelection(item, false)
|
||||||
|
})
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
// delete this.searchLabel.category
|
||||||
|
delete this.searchLabel.source
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
this.getTableData()
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.data.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.toggleLoading(false)
|
||||||
|
if (this.isSelectedStatus != undefined) {
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.disableDelete = true
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.showConfirmDialog = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submit () {
|
||||||
|
this.delBatchKnowledge()
|
||||||
|
this.showConfirmDialog = false
|
||||||
|
},
|
||||||
|
edit (u) {
|
||||||
|
axios.get(`${this.url}/${u.id}`).then(response => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
this.delFlag = true
|
this.object = response.data.data.list[0]
|
||||||
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
|
||||||
// delete this.searchLabel.category
|
|
||||||
delete this.searchLabel.source
|
|
||||||
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
|
||||||
this.getTableData()
|
|
||||||
} else {
|
|
||||||
this.$message.error(response.data.message)
|
|
||||||
}
|
}
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
@@ -408,70 +235,124 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.$message.error(this.$t('tip.somethingWentWrong'))
|
this.$message.error(this.$t('tip.somethingWentWrong'))
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
reload (params, isAll, isClearType, checkedCategoryIds, checkedStatusIds) {
|
||||||
|
this.disableDelete = true
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.filterParams = params
|
||||||
|
this.checkedCategoryIds = checkedCategoryIds
|
||||||
|
this.checkedStatusIds = checkedStatusIds
|
||||||
|
params = {
|
||||||
|
...params,
|
||||||
|
name: this.keyWord
|
||||||
|
}
|
||||||
|
this.getTableData(params, isAll, isClearType)
|
||||||
|
},
|
||||||
|
clearList () {
|
||||||
|
this.disableDelete = true
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.tableData = []
|
||||||
|
this.pageObj.total = 0
|
||||||
|
},
|
||||||
|
toSelect () {
|
||||||
|
this.$refs.dataTableCard.clearSelect()
|
||||||
|
this.isSelectedStatus = !this.isSelectedStatus
|
||||||
|
this.disableDelete = true
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
},
|
||||||
|
editSelectRecord () {
|
||||||
|
if (this.batchDeleteObjs.length === 0) {
|
||||||
|
this.$alert(this.$t('tip.pleaseSelectForEdit'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
type: 'warning'
|
||||||
|
}).catch(() => {})
|
||||||
|
} else {
|
||||||
|
this.jumpToEditPage(this.batchDeleteObjs[0].knowledgeId)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeToUserDefinedList () {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/knowledgeBase/userDefined',
|
||||||
|
query: {
|
||||||
|
t: +new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
toDelete (data) {
|
||||||
|
if (data && data.knowledgeId) {
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs.push(data)
|
||||||
|
this.batchDeleteObjs.push(data)
|
||||||
|
}
|
||||||
|
this.showDelDialog()
|
||||||
|
},
|
||||||
|
del (row) {
|
||||||
|
this.$confirm(this.$t('tip.confirmDelete'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
cancelButtonText: this.$t('tip.no'),
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.toggleLoading(true)
|
||||||
|
axios.delete(this.url + '?knowledgeIds=' + row.id).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.delFlag = true
|
||||||
|
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
||||||
|
// delete this.searchLabel.category
|
||||||
|
delete this.searchLabel.source
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
this.getTableData()
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.data.message)
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
console.error(e)
|
||||||
|
if (e.response.data && e.response.data.message) {
|
||||||
|
this.$message.error(e.response.data.message)
|
||||||
|
} else {
|
||||||
|
this.$message.error(this.$t('tip.somethingWentWrong'))
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.toggleLoading(false)
|
||||||
|
})
|
||||||
|
}).catch(() => {})
|
||||||
|
},
|
||||||
|
getBuiltInData () {
|
||||||
|
this.isNoData = false
|
||||||
|
this.toggleLoading(true)
|
||||||
|
const params = {
|
||||||
|
category: knowledgeCategoryValue.aiTagging + ',' + knowledgeCategoryValue.webSketch,
|
||||||
|
pageSize: -1
|
||||||
|
}
|
||||||
|
axios.get(this.listUrl, { params }).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.tableData = response.data.data.list
|
||||||
|
this.isNoData = !this.tableData || this.tableData.length === 0
|
||||||
|
} else {
|
||||||
|
console.error(response.data)
|
||||||
|
this.isNoData = true
|
||||||
|
if (response.data.message) {
|
||||||
|
this.$message.error(response.data.message)
|
||||||
|
} else {
|
||||||
|
this.$message.error(this.$t('tip.somethingWentWrong'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.isNoData = true
|
||||||
}).finally(() => {
|
}).finally(() => {
|
||||||
this.toggleLoading(false)
|
this.toggleLoading(false)
|
||||||
})
|
})
|
||||||
}).catch(() => {})
|
|
||||||
},
|
|
||||||
jumpToEditPage (id) {
|
|
||||||
const pageNo = this.$router.currentRoute.value.query.pageNo
|
|
||||||
this.$router.push({
|
|
||||||
path: '/knowledgeBase/userDefined/edit',
|
|
||||||
query: {
|
|
||||||
t: +new Date(),
|
|
||||||
pageNoForTable: pageNo || 1,
|
|
||||||
id: id,
|
|
||||||
dataType: this.dataType
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
jumpToCreatePage () {
|
|
||||||
this.$router.push({
|
|
||||||
path: '/knowledgeBase/userDefined/create',
|
|
||||||
query: {
|
|
||||||
t: +new Date(),
|
|
||||||
dataType: this.dataType
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getBuiltInData () {
|
|
||||||
this.isNoData = false
|
|
||||||
this.toggleLoading(true)
|
|
||||||
const params = {
|
|
||||||
category: knowledgeCategoryValue.aiTagging + ',' + knowledgeCategoryValue.webSketch,
|
|
||||||
pageSize: -1
|
|
||||||
}
|
}
|
||||||
axios.get(this.listUrl, { params }).then(response => {
|
},
|
||||||
if (response.status === 200) {
|
mounted () {
|
||||||
this.tableData = response.data.data.list
|
this.filterParams = {}
|
||||||
this.isNoData = !this.tableData || this.tableData.length === 0
|
|
||||||
} else {
|
|
||||||
console.error(response.data)
|
|
||||||
this.isNoData = true
|
|
||||||
if (response.data.message) {
|
|
||||||
this.$message.error(response.data.message)
|
|
||||||
} else {
|
|
||||||
this.$message.error(this.$t('tip.somethingWentWrong'))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).catch(() => {
|
|
||||||
this.isNoData = true
|
|
||||||
}).finally(() => {
|
|
||||||
this.toggleLoading(false)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted () {
|
|
||||||
const curMode = this.$router.currentRoute.value.query.dataType
|
|
||||||
this.dataType = curMode || 'builtInList'
|
|
||||||
this.filterParams = {}
|
|
||||||
if (this.dataType === 'builtInList') {
|
|
||||||
this.getBuiltInData()
|
this.getBuiltInData()
|
||||||
} else if (this.dataType === 'userDefinedList') {
|
|
||||||
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
|
||||||
}
|
}
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -512,7 +512,6 @@ export default {
|
|||||||
isPreviewChange: false,
|
isPreviewChange: false,
|
||||||
isClick: false,
|
isClick: false,
|
||||||
pageNoForTable: 1,
|
pageNoForTable: 1,
|
||||||
dataType: 'builtInList',
|
|
||||||
status: 1,
|
status: 1,
|
||||||
oldItemIds: [],
|
oldItemIds: [],
|
||||||
oldTagItem: {},
|
oldTagItem: {},
|
||||||
@@ -827,8 +826,7 @@ export default {
|
|||||||
path: '/knowledgeBase/userDefined',
|
path: '/knowledgeBase/userDefined',
|
||||||
query: {
|
query: {
|
||||||
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
||||||
t: +new Date(),
|
t: +new Date()
|
||||||
dataType: this.dataType
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
@@ -837,8 +835,7 @@ export default {
|
|||||||
path: '/knowledgeBase/userDefined',
|
path: '/knowledgeBase/userDefined',
|
||||||
query: {
|
query: {
|
||||||
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
||||||
t: +new Date(),
|
t: +new Date()
|
||||||
dataType: this.dataType
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -903,8 +900,7 @@ export default {
|
|||||||
path: '/knowledgeBase/userDefined',
|
path: '/knowledgeBase/userDefined',
|
||||||
query: {
|
query: {
|
||||||
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
||||||
t: +new Date(),
|
t: +new Date()
|
||||||
dataType: this.dataType
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -932,8 +928,7 @@ export default {
|
|||||||
path: '/knowledgeBase/userDefined',
|
path: '/knowledgeBase/userDefined',
|
||||||
query: {
|
query: {
|
||||||
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
||||||
t: +new Date(),
|
t: +new Date()
|
||||||
dataType: this.dataType
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -1211,9 +1206,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
const pageNo = this.$router.currentRoute.value.query.pageNoForTable
|
const pageNo = this.$router.currentRoute.value.query.pageNoForTable
|
||||||
const dataType = this.$router.currentRoute.value.query.dataType
|
|
||||||
this.pageNoForTable = pageNo || 1
|
this.pageNoForTable = pageNo || 1
|
||||||
this.dataType = dataType || 'builtInList'
|
|
||||||
const div = document.getElementsByClassName('el-upload-dragger')[0]
|
const div = document.getElementsByClassName('el-upload-dragger')[0]
|
||||||
const self = this
|
const self = this
|
||||||
div.addEventListener('click', function (event) {
|
div.addEventListener('click', function (event) {
|
||||||
@@ -1265,8 +1258,7 @@ export default {
|
|||||||
path: '/knowledgeBase/userDefined',
|
path: '/knowledgeBase/userDefined',
|
||||||
query: {
|
query: {
|
||||||
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
pageNo: self.pageNoForTable ? Number(self.pageNoForTable) : 1,
|
||||||
t: +new Date(),
|
t: +new Date()
|
||||||
dataType: this.dataType
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
352
src/views/setting/KnowledgeBaseUserDefinedList.vue
Normal file
352
src/views/setting/KnowledgeBaseUserDefinedList.vue
Normal file
@@ -0,0 +1,352 @@
|
|||||||
|
<template>
|
||||||
|
<div class="knowledge-base">
|
||||||
|
<div class="knowledge-base__top">
|
||||||
|
<div class="top-title">
|
||||||
|
{{$t('overall.knowledgeBase')}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 用户自定义列表 -->
|
||||||
|
<div class="knowledge-base-user-defined__content" >
|
||||||
|
<div class="right-list-card" >
|
||||||
|
<div class="top-tools" >
|
||||||
|
<div class="top-tools__left">
|
||||||
|
<button id="knowledge-base-add" :title="$t('knowledgeBase.createKnowledgeBase')" class="top-tool-btn margin-r-10 top-tool-btn--create"
|
||||||
|
style="width:72px;"
|
||||||
|
v-if="hasPermission('createUserDefinedLibrary')"
|
||||||
|
@click="jumpToCreatePage">
|
||||||
|
<i class="cn-icon-xinjian cn-icon"></i>
|
||||||
|
<span>{{$t('overall.create')}}</span>
|
||||||
|
</button>
|
||||||
|
<button id="knowledge-base-edit" :title="$t('knowledgeBase.editKnowledgeBase')" class="top-tool-btn margin-r-10" :disabled="disableEdit"
|
||||||
|
style="width:72px;"
|
||||||
|
v-if="hasPermission('editUserDefinedLibrary')"
|
||||||
|
@click="editSelectRecord">
|
||||||
|
<i class="cn-icon-edit cn-icon" ></i>
|
||||||
|
<span>{{$t('overall.edit')}}</span>
|
||||||
|
</button>
|
||||||
|
<button id="knowledge-base-delete" :title="$t('knowledgeBase.deleteKnowledgeBase')" class="top-tool-btn margin-r-10"
|
||||||
|
v-if="hasPermission('deleteUserDefinedLibrary')"
|
||||||
|
style="width:72px;" :disabled="disableDelete"
|
||||||
|
@click="toDelete">
|
||||||
|
<i class="cn-icon-delete cn-icon"></i>
|
||||||
|
<span>{{$t('overall.delete')}}</span>
|
||||||
|
</button>
|
||||||
|
<div class="top-tool-search margin-l-10" >
|
||||||
|
<el-input v-model="keyWord" size="small" @keyup.enter="onSearch"></el-input>
|
||||||
|
<button class="top-tool-btn top-tool-btn--search" style="border-radius: 0 2px 2px 0 !important;" @click="onSearch">
|
||||||
|
<i class="el-icon-search"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="list-mode__row" style="position:relative;">
|
||||||
|
<loading :loading="loading"></loading>
|
||||||
|
<knowledge-base-table-for-row
|
||||||
|
ref="dataTable"
|
||||||
|
height="100%"
|
||||||
|
:api="url"
|
||||||
|
:isNoData="isNoData"
|
||||||
|
:custom-table-title="tools.customTableTitle"
|
||||||
|
:table-data="tableData"
|
||||||
|
:is-selected-status="isSelectedStatus"
|
||||||
|
@delete="toDelete"
|
||||||
|
@selectionChange="selectionChange"
|
||||||
|
@edit="edit"
|
||||||
|
@orderBy="tableDataSort"
|
||||||
|
@reload="reloadRowList"
|
||||||
|
@toggleLoading="toggleLoading"
|
||||||
|
></knowledge-base-table-for-row>
|
||||||
|
</div>
|
||||||
|
<div class="knowledge-pagination" >
|
||||||
|
<pagination ref="pagination" :page-obj="pageObj" :table-id="tableId" @pageNo='pageNo' @pageSize='pageSize'></pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import dataListMixin from '@/mixins/data-list'
|
||||||
|
import KnowledgeBaseTableForRow from '@/components/table/setting/KnowledgeBaseTableForRow'
|
||||||
|
import { api } from '@/utils/api'
|
||||||
|
import { urlParamsHandler, overwriteUrl } from '@/utils/tools'
|
||||||
|
import { knowledgeBaseCategory, knowledgeBaseSource, knowledgeCategoryValue } from '@/utils/constants'
|
||||||
|
import axios from 'axios'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'knowledgeBaseUserDefinedList',
|
||||||
|
components: {
|
||||||
|
KnowledgeBaseTableForRow
|
||||||
|
},
|
||||||
|
mixins: [dataListMixin],
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
url: api.knowledgeBase,
|
||||||
|
listUrl: api.knowledgeBaseList,
|
||||||
|
tableId: 'knowledgeBaseTable', // 需要分页的table的id,用于记录每页数量
|
||||||
|
isSelectedStatus: false,
|
||||||
|
filterParams: {},
|
||||||
|
checkedCategoryIds: [],
|
||||||
|
checkedStatusIds: [],
|
||||||
|
keyWord: '',
|
||||||
|
showConfirmDialog: false,
|
||||||
|
delItemList: [],
|
||||||
|
secondBatchDeleteObjs: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onSearch () {
|
||||||
|
const params = {
|
||||||
|
...this.filterParams,
|
||||||
|
name: this.keyWord,
|
||||||
|
category: knowledgeCategoryValue.userDefined
|
||||||
|
}
|
||||||
|
this.clearList()
|
||||||
|
this.search(params)
|
||||||
|
},
|
||||||
|
reloadRowList () {
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
categoryFormat (row, column) {
|
||||||
|
const category = row.category
|
||||||
|
const t = knowledgeBaseCategory.find(t => t.value === category)
|
||||||
|
return t ? t.name : category
|
||||||
|
},
|
||||||
|
sourceFormat (row, column) {
|
||||||
|
const source = row.source
|
||||||
|
const t = knowledgeBaseSource.find(t => t.value === source)
|
||||||
|
return t ? t.name : source
|
||||||
|
},
|
||||||
|
handleClose () {
|
||||||
|
this.showConfirmDialog = false
|
||||||
|
},
|
||||||
|
showDelDialog () {
|
||||||
|
this.showConfirmDialog = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.batchDeleteObjs.forEach((item) => {
|
||||||
|
this.$refs.delDataTable.toggleRowSelection(item, true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
secondSelectionChange (objs) {
|
||||||
|
this.secondBatchDeleteObjs = objs
|
||||||
|
},
|
||||||
|
selectionChange (objs) {
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
objs.forEach(obj => {
|
||||||
|
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === obj.knowledgeId)
|
||||||
|
if (delObj === undefined) {
|
||||||
|
this.batchDeleteObjs.push(obj)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (this.batchDeleteObjs.length === 1) {
|
||||||
|
this.disableEdit = false
|
||||||
|
} else {
|
||||||
|
this.disableEdit = true
|
||||||
|
}
|
||||||
|
if (this.batchDeleteObjs.length >= 1) {
|
||||||
|
this.disableDelete = false
|
||||||
|
} else {
|
||||||
|
this.disableDelete = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
checkboxStatusChange (isCheck, data) {
|
||||||
|
if (isCheck) {
|
||||||
|
const delObj = this.batchDeleteObjs.find(item => item.knowledgeId === data.knowledgeId)
|
||||||
|
if (delObj === undefined) {
|
||||||
|
this.batchDeleteObjs.push(data)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const cancleObjIndex = this.batchDeleteObjs.findIndex(item => item.knowledgeId === data.knowledgeId)
|
||||||
|
if (cancleObjIndex > -1) {
|
||||||
|
this.batchDeleteObjs.splice(cancleObjIndex, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.batchDeleteObjs.length === 1) {
|
||||||
|
this.disableEdit = false
|
||||||
|
} else {
|
||||||
|
this.disableEdit = true
|
||||||
|
}
|
||||||
|
if (this.batchDeleteObjs.length >= 1) {
|
||||||
|
this.disableDelete = false
|
||||||
|
} else {
|
||||||
|
this.disableDelete = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delBatchKnowledge () {
|
||||||
|
const ids = []
|
||||||
|
if (this.secondBatchDeleteObjs && this.secondBatchDeleteObjs.length > 0) {
|
||||||
|
this.secondBatchDeleteObjs.forEach(item => {
|
||||||
|
ids.push(item.knowledgeId)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let hasReference = false
|
||||||
|
let referenceKnowledge = null
|
||||||
|
this.batchDeleteObjs.forEach(item => {
|
||||||
|
if (item.reference && item.reference.length > 0) {
|
||||||
|
hasReference = true
|
||||||
|
referenceKnowledge = item
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (ids.length === 0) {
|
||||||
|
this.$alert(this.$t('tip.pleaseSelect'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
type: 'warning'
|
||||||
|
}).catch(() => {})
|
||||||
|
} else if (hasReference) {
|
||||||
|
this.$message.error(this.$t('knowledgeBase.deleteReferenceObjects', { name: referenceKnowledge.name }))
|
||||||
|
} else {
|
||||||
|
this.toggleLoading(true)
|
||||||
|
axios.delete(this.url + '?knowledgeIds=' + ids).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.delFlag = true
|
||||||
|
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
||||||
|
this.secondBatchDeleteObjs.forEach((item) => {
|
||||||
|
this.$refs.delDataTable.toggleRowSelection(item, false)
|
||||||
|
})
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
// delete this.searchLabel.category
|
||||||
|
delete this.searchLabel.source
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
this.getTableData()
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.data.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.toggleLoading(false)
|
||||||
|
if (this.isSelectedStatus != undefined) {
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.disableDelete = true
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.showConfirmDialog = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submit () {
|
||||||
|
this.delBatchKnowledge()
|
||||||
|
this.showConfirmDialog = false
|
||||||
|
},
|
||||||
|
edit (u) {
|
||||||
|
axios.get(`${this.url}/${u.id}`).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.object = response.data.data.list[0]
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
console.error(e)
|
||||||
|
if (e.response.data && e.response.data.message) {
|
||||||
|
this.$message.error(e.response.data.message)
|
||||||
|
} else {
|
||||||
|
this.$message.error(this.$t('tip.somethingWentWrong'))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
reload (params, isAll, isClearType, checkedCategoryIds, checkedStatusIds) {
|
||||||
|
this.disableDelete = true
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.filterParams = params
|
||||||
|
this.checkedCategoryIds = checkedCategoryIds
|
||||||
|
this.checkedStatusIds = checkedStatusIds
|
||||||
|
params = {
|
||||||
|
...params,
|
||||||
|
name: this.keyWord
|
||||||
|
}
|
||||||
|
this.getTableData(params, isAll, isClearType)
|
||||||
|
},
|
||||||
|
clearList () {
|
||||||
|
this.disableDelete = true
|
||||||
|
this.isSelectedStatus = false
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.tableData = []
|
||||||
|
this.pageObj.total = 0
|
||||||
|
},
|
||||||
|
toSelect () {
|
||||||
|
this.$refs.dataTableCard.clearSelect()
|
||||||
|
this.isSelectedStatus = !this.isSelectedStatus
|
||||||
|
this.disableDelete = true
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
},
|
||||||
|
editSelectRecord () {
|
||||||
|
if (this.batchDeleteObjs.length === 0) {
|
||||||
|
this.$alert(this.$t('tip.pleaseSelectForEdit'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
type: 'warning'
|
||||||
|
}).catch(() => {})
|
||||||
|
} else {
|
||||||
|
this.jumpToEditPage(this.batchDeleteObjs[0].knowledgeId)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toDelete (data) {
|
||||||
|
if (data && data.knowledgeId) {
|
||||||
|
this.secondBatchDeleteObjs = []
|
||||||
|
this.batchDeleteObjs = []
|
||||||
|
this.secondBatchDeleteObjs.push(data)
|
||||||
|
this.batchDeleteObjs.push(data)
|
||||||
|
}
|
||||||
|
this.showDelDialog()
|
||||||
|
},
|
||||||
|
del (row) {
|
||||||
|
this.$confirm(this.$t('tip.confirmDelete'), {
|
||||||
|
confirmButtonText: this.$t('tip.yes'),
|
||||||
|
cancelButtonText: this.$t('tip.no'),
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.toggleLoading(true)
|
||||||
|
axios.delete(this.url + '?knowledgeIds=' + row.id).then(response => {
|
||||||
|
if (response.status === 200) {
|
||||||
|
this.delFlag = true
|
||||||
|
this.$message({ duration: 2000, type: 'success', message: this.$t('tip.deleteSuccess') })
|
||||||
|
// delete this.searchLabel.category
|
||||||
|
delete this.searchLabel.source
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
this.getTableData()
|
||||||
|
} else {
|
||||||
|
this.$message.error(response.data.message)
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
console.error(e)
|
||||||
|
if (e.response.data && e.response.data.message) {
|
||||||
|
this.$message.error(e.response.data.message)
|
||||||
|
} else {
|
||||||
|
this.$message.error(this.$t('tip.somethingWentWrong'))
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.toggleLoading(false)
|
||||||
|
})
|
||||||
|
}).catch(() => {})
|
||||||
|
},
|
||||||
|
jumpToEditPage (id) {
|
||||||
|
const pageNo = this.$router.currentRoute.value.query.pageNo
|
||||||
|
this.$router.push({
|
||||||
|
path: '/knowledgeBase/userDefined/edit',
|
||||||
|
query: {
|
||||||
|
t: +new Date(),
|
||||||
|
pageNoForTable: pageNo || 1,
|
||||||
|
id: id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
jumpToCreatePage () {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/knowledgeBase/userDefined/create',
|
||||||
|
query: {
|
||||||
|
t: +new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
this.filterParams = {}
|
||||||
|
this.searchLabel.category = knowledgeCategoryValue.userDefined
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user