CN-1410 Detections模块中,无法根据面包屑导航进行跳转页面

This commit is contained in:
hyx
2023-11-15 22:22:53 +08:00
parent 9103c454c2
commit 07dd16f2c2
6 changed files with 665 additions and 417 deletions

View File

@@ -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){
}
if (breadcrumb[1]) {
if (breadcrumb[1].route && breadcrumb[1].route.indexOf('/panel/') === 0) {
breadcrumb[1].clickable = true breadcrumb[1].clickable = true
}else {// 除panel外的菜单是否可以点击跳转:除了新增、编辑,其它均可点击
breadcrumb.forEach(item => {
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 = ''

View File

@@ -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')

View File

@@ -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')) {

View File

@@ -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')"
@@ -128,7 +71,6 @@
<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'
@@ -137,8 +79,7 @@ import axios from 'axios'
export default { export default {
name: 'knowledgeBase', name: 'knowledgeBase',
components: { components: {
KnowledgeBaseTableForCard, KnowledgeBaseTableForCard
KnowledgeBaseTableForRow
}, },
mixins: [dataListMixin], mixins: [dataListMixin],
data () { data () {
@@ -153,28 +94,12 @@ export default {
keyWord: '', keyWord: '',
showConfirmDialog: false, showConfirmDialog: false,
delItemList: [], delItemList: [],
secondBatchDeleteObjs: [], secondBatchDeleteObjs: []
dataType: 'builtInList' // userDefinedList|builtInList
} }
}, },
watch: { watch: {
}, },
methods: { methods: {
onSearch () {
const params = {
...this.filterParams,
name: this.keyWord
}
if (this.dataType === 'userDefinedList') {
params.category = knowledgeCategoryValue.userDefined
}
this.clearList()
this.search(params)
},
reloadRowList () {
this.searchLabel.category = knowledgeCategoryValue.userDefined
this.getTableData()
},
categoryFormat (row, column) { categoryFormat (row, column) {
const category = row.category const category = row.category
const t = knowledgeBaseCategory.find(t => t.value === category) const t = knowledgeBaseCategory.find(t => t.value === category)
@@ -352,12 +277,10 @@ export default {
} }
}, },
changeToUserDefinedList () { changeToUserDefinedList () {
this.dataType = 'userDefinedList'
this.$router.push({ this.$router.push({
path: '/knowledgeBase/userDefined', path: '/knowledgeBase/userDefined',
query: { query: {
t: +new Date(), t: +new Date()
dataType: 'userDefinedList'
} }
}) })
}, },
@@ -370,19 +293,6 @@ export default {
} }
this.showDelDialog() this.showDelDialog()
}, },
modeChange (mode) {
this.disableDelete = true
this.isSelectedStatus = false
this.batchDeleteObjs = []
this.secondBatchDeleteObjs = []
this.dataType = mode
if (this.$refs.dataTableCard) {
this.$refs.dataTableCard.clearSelect()
}
const { query } = this.$route
const newUrl = urlParamsHandler(window.location.href, query, { dataType: mode })
overwriteUrl(newUrl)
},
del (row) { del (row) {
this.$confirm(this.$t('tip.confirmDelete'), { this.$confirm(this.$t('tip.confirmDelete'), {
confirmButtonText: this.$t('tip.yes'), confirmButtonText: this.$t('tip.yes'),
@@ -413,27 +323,6 @@ export default {
}) })
}).catch(() => {}) }).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 () { getBuiltInData () {
this.isNoData = false this.isNoData = false
this.toggleLoading(true) this.toggleLoading(true)
@@ -462,16 +351,8 @@ export default {
} }
}, },
mounted () { mounted () {
const curMode = this.$router.currentRoute.value.query.dataType
this.dataType = curMode || 'builtInList'
this.filterParams = {} this.filterParams = {}
if (this.dataType === 'builtInList') {
this.getBuiltInData() this.getBuiltInData()
} else if (this.dataType === 'userDefinedList') {
this.searchLabel.category = knowledgeCategoryValue.userDefined
}
},
computed: {
} }
} }
</script> </script>

View File

@@ -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
} }
}) })
}) })

View 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>