能力挂接 组件服务 置顶功能

This commit is contained in:
a0049873 2022-11-08 17:16:19 +08:00
parent a5be25cec4
commit 7ba6767cda
2 changed files with 198 additions and 148 deletions

View File

@ -2,7 +2,7 @@ import Cookies from 'js-cookie'
import qs from 'qs'
import { deepClone } from '@/utils/form-generator/index'
export default {
data() {
data () {
/* eslint-disable */
return {
// 设置属性
@ -38,99 +38,132 @@ export default {
}
/* eslint-enable */
},
created() {
created () {
if (this.mixinViewModuleOptions.createdIsNeed) {
this.query()
}
},
activated() {
activated () {
if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query()
}
},
methods: {
// 获取数据列表
query() {
query () {
this.dataListLoading = true
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '组件服务',
name: '',
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
})
if (this.mixinViewModuleOptions.getDataListURL !== '/resource/pageWithAttrs') {
this.$http.get(
this.mixinViewModuleOptions.getDataListURL + '?' + qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '组件服务',
name: '',
page: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
limit: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
})
).then(({ data: res }) => {
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.dataList.map((item, index) => {
if (this.dataList[index].type != null) {
switch (item.type) {
case 1: this.dataList[index].type = '省'; break
case 2: this.dataList[index].type = '市'; break
case 3: this.dataList[index].type = '区'; break
case 4: this.dataList[index].type = '企业'; break
}
).then(({ data: res }) => {
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
}
if (item.children != null) {
item.children.map((item2, index2) => {
switch (item2.type) {
case 1: this.dataList[index].children[index2].type = '省'; break
case 2: this.dataList[index].children[index2].type = '市'; break
case 3: this.dataList[index].children[index2].type = '区'; break
case 4: this.dataList[index].children[index2].type = '企业'; break
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.dataList.map((item, index) => {
if (this.dataList[index].type != null) {
switch (item.type) {
case 1: this.dataList[index].type = '省'; break
case 2: this.dataList[index].type = '市'; break
case 3: this.dataList[index].type = '区'; break
case 4: this.dataList[index].type = '企业'; break
}
}
if (item.children != null) {
item.children.map((item2, index2) => {
switch (item2.type) {
case 1: this.dataList[index].children[index2].type = '省'; break
case 2: this.dataList[index].children[index2].type = '市'; break
case 3: this.dataList[index].children[index2].type = '区'; break
case 4: this.dataList[index].children[index2].type = '企业'; break
}
})
}
})
// 我的代办特殊处理
if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') {
this.$http.get('/sys/user/info').then(userRes => {
console.log('当前用户信息===========>', userRes.data.data.id)
const userId = userRes.data.data.id
// this.dataList = this.dataList.filter(item => {
// // userId creator
// console.log(item.params.creator)
// if (!(item.params.creator === userId) && !(item.params.userId === userId)) {
// return item
// }
// })
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
})
} else {
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
}
console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL)
if (this.dataList[0].type === '组件服务') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域' || item.attrType === '组件类型')
})
} else if (this.dataList[0].type === '应用资源') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域')
})
}
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
}
this.dataListLoading = false
}).catch(() => {
this.dataListLoading = false
})
// 我的代办特殊处理
if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') {
this.$http.get('/sys/user/info').then(userRes => {
console.log('当前用户信息===========>', userRes.data.data.id)
const userId = userRes.data.data.id
// this.dataList = this.dataList.filter(item => {
// // userId creator
// console.log(item.params.creator)
// if (!(item.params.creator === userId) && !(item.params.userId === userId)) {
// return item
// }
// })
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
})
} else {
} else {
this.$http.post(
this.mixinViewModuleOptions.getDataListURL, {
pageNum: this.mixinViewModuleOptions.getDataListIsPage ? this.page : null,
pageSize: this.mixinViewModuleOptions.getDataListIsPage ? this.limit : null,
...this.dataForm
}
).then(({ data: res }) => {
if (res.code !== 0) {
this.dataList = []
this.total = 0
return this.$message.error(res.msg)
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.records : res.data
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
}
console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL)
if (this.dataList[0].type === '组件服务') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域' || item.attrType === '组件类型')
})
} else if (this.dataList[0].type === '应用资源') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域')
})
}
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
}
this.dataListLoading = false
}).catch(() => {
this.dataListLoading = false
})
if (this.dataList[0].type === '组件服务') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域' || item.attrType === '组件类型')
})
} else if (this.dataList[0].type === '应用资源') {
this.dataList.map(val => {
val.infoList2 = val.infoList.filter(item => item.attrType === '应用领域')
})
}
if (this.mixinViewModuleOptions.requestCallback) {
this.mixinViewModuleOptions.requestCallback(res.data)
}
this.dataListLoading = false
}).catch(() => {
this.dataListLoading = false
})
}
},
// 多选
dataListSelectionChangeHandle(val) {
dataListSelectionChangeHandle (val) {
this.dataListSelections = val
},
// 排序
dataListSortChangeHandle(data) {
dataListSortChangeHandle (data) {
if (!data.order || !data.prop) {
this.order = ''
this.orderField = ''
@ -141,13 +174,13 @@ export default {
this.query()
},
// 分页, 每页条数
pageSizeChangeHandle(val) {
pageSizeChangeHandle (val) {
this.page = 1
this.limit = val
this.query()
},
// 分页, 当前页
pageCurrentChangeHandle(val) {
pageCurrentChangeHandle (val) {
this.page = val
this.query()
},
@ -156,7 +189,7 @@ export default {
this.query()
},
// 新增
addOrUpdateHandle(id) {
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
this.disabled = false
this.$nextTick(() => {
@ -167,7 +200,7 @@ export default {
},
// 组件服务新增
addOrUpdateHandleAI(id) {
addOrUpdateHandleAI (id) {
// const infoList = []
let showList = []
this.$http.get('category/getCategoryTree').then(({ data: res }) => {
@ -225,7 +258,7 @@ export default {
}, 100)
},
// 应用资源新增
addOrUpdateHandleServe(id) {
addOrUpdateHandleServe (id) {
// const infoList = []
let showList = []
this.$http.get('category/getCategoryTree').then(({ data: res }) => {
@ -283,7 +316,7 @@ export default {
}, 100)
},
// 修改
UpdateHandle(val) {
UpdateHandle (val) {
this.addOrUpdateVisible = true
this.disabled = false
const cloneVal = deepClone(val)
@ -308,7 +341,7 @@ export default {
})
},
// 关闭当前窗口
closeCurrentTab(data) {
closeCurrentTab (data) {
var tabName = this.$store.state.contentTabsActiveName
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName)
if (this.$store.state.contentTabs.length <= 0) {
@ -320,7 +353,7 @@ export default {
}
},
// 删除
deleteHandle(id) {
deleteHandle (id) {
if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) {
return this.$message({
message: this.$t('prompt.deleteBatch'),
@ -354,46 +387,46 @@ export default {
}).catch(() => { })
},
deleteHandle2(id) {
if(id==undefined && this.dataListSelections.length < 1){
deleteHandle2 (id) {
if (id == undefined && this.dataListSelections.length < 1) {
this.$message({
type: 'info',
message: '请选择要删除的数据'
})
}else{
this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const ids = []
if (id) {
ids.push(id)
} else {
if (this.dataListSelections.length > 0) {
this.dataListSelections.forEach(item => {
ids.push(item.id)
})
} else {
this.$confirm('确认是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const ids = []
if (id) {
ids.push(id)
} else {
if (this.dataListSelections.length > 0) {
this.dataListSelections.forEach(item => {
ids.push(item.id)
})
}
}
}
this.$http.post('/resource/delete', { ids: ids }).then(res => {
console.log('删除成功', res)
this.$message({
type: 'success',
message: '删除成功!'
});
this.getDataList()
})
}).catch(() => {
this.$http.post('/resource/delete', { ids: ids }).then(res => {
console.log('删除成功', res)
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
})
}).catch(() => {
// this.$message({
// type: 'info',
// message: '已取消删除'
// });
});
}
})
}
},
// 导出
exportHandle() {
exportHandle () {
var params = qs.stringify({
token: Cookies.get('ucsToken'),
...this.dataForm

View File

@ -130,7 +130,14 @@
>
<template slot-scope="scope">
<el-button
v-if="scope.row.infoList.filter(val=>val.attrType=='组件类型')[0].attrValue == '智能算法'"
v-if="scope.row.infoList.filter(val=>val.attrType=='组件类型')[0].attrValue == '智能算法' && scope.row.pinTop == 1"
type="text"
size="small"
@click="noToppingCapacity(scope.row)"
>取消置顶</el-button
>
<el-button
v-if="scope.row.infoList.filter(val=>val.attrType=='组件类型')[0].attrValue == '智能算法' &&scope.row.pinTop != 1"
type="text"
size="small"
@click="toppingCapacity(scope.row)"
@ -268,7 +275,7 @@ export default {
]
},
mixinViewModuleOptions: {
getDataListURL: '/resource/page',
getDataListURL: '/resource/pageWithAttrs',
getDataListIsPage: true,
exportURL: '/ability/bsabilityai/export',
deleteURL: '/resource/delete',
@ -279,11 +286,12 @@ export default {
fieldArr: dictionaries.fieldArr,
shareFormArr: dictionaries.shareFormArr,
dataForm: {
name: '',
creator: '',
orderField: 'pin_top',
orderType: 'DESC',
infoList: [],
delFlag: 0,
selectType: 0,
type: '组件服务'
type: '组件服务',
name: ''
},
// qp: false,
//
@ -323,31 +331,45 @@ export default {
message: '置顶成功',
type: 'success'
})
this.reset()
} else {
this.$message({
message: '置顶失败',
type: 'warning'
})
this.reset()
}
})
},
noToppingCapacity (item) {
this.$http.put('/resource/cancel_pin_top/' + item.id).then(res => {
if (res.data.code == 0) {
this.$message({
message: '取消置顶成功',
type: 'success'
})
this.reset()
} else {
this.$message({
message: '取消置顶失败',
type: 'warning'
})
this.reset()
}
})
},
reset () {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
'?' +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
page: 1,
limit: 10,
creator: '',
selectType: 0,
delFlag: 0,
type: '组件服务',
name: ''
})
.post(
this.mixinViewModuleOptions.getDataListURL, {
pageNum: 1,
pageSize: 10,
orderType: 'DESC',
infoList: [],
delFlag: 0,
type: '组件服务',
name: ''
}
)
.then(({ data: res }) => {
this.dataForm.name = ''
@ -357,7 +379,7 @@ export default {
return this.$message.error(res.msg)
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list
? res.data.records
: res.data
this.dataList.map((item, index) => {
const dataListSinforList = []
@ -492,21 +514,16 @@ export default {
getDataList2 (names) {
if (names != null) {
this.$http
.get(
this.mixinViewModuleOptions.getDataListURL +
'?' +
qs.stringify({
// order: this.order,
// orderField: this.orderField,
// type: '',
pageNum: 1,
pageSize: this.limit,
type: '组件服务',
creator: '',
selectType: 0,
delFlag: 0,
name: names
})
.post(
this.mixinViewModuleOptions.getDataListURL, {
pageNum: 1,
pageSize: 10,
orderType: 'DESC',
infoList: [],
delFlag: 0,
type: '组件服务',
name: names
}
)
.then(({ data: res }) => {
if (res.code !== 0) {
@ -514,8 +531,8 @@ export default {
this.total = 0
return this.$message.error(res.msg)
}
if (res.data.list.length >= 0) {
this.dataList = res.data.list
if (res.data.records.length >= 0) {
this.dataList = res.data.records
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0