新申购车

This commit is contained in:
a0049873 2022-06-28 21:49:50 +08:00
parent 107be0c3f4
commit c53e96d0c3
4 changed files with 627 additions and 357 deletions

View File

@ -189,3 +189,19 @@ export function getCategoryTreePage(params) {
params, params,
}) })
} }
//
export function selectResourceCarGroupByDept(params) {
return request({
url: '/resourcecar/selectResourceCarGroupByDept',
method: 'get',
params,
})
}
//
export function selectResourceListByDept(params) {
return request({
url: '/resourcecar/selectResourceListByDept',
method: 'get',
params,
})
}

View File

@ -10,12 +10,16 @@
<span></span> <span></span>
{{ item.deptName }} {{ item.deptName }}
</div> </div>
<template v-for="val in item.children" :key="val.resourceId">
<div class="item">
<div class="name"> <div class="name">
<span>{{ item.name }}</span> <span>{{ val.resourceName }}</span>
<span>{{ item.type }}</span> <span>{{ val.type }}</span>
</div> </div>
<div class="description">{{ item.description }}</div> <div class="description">{{ val.description || '--' }}</div>
<div class="remove" @click="removeFunction(item)"></div> <div class="remove" @click="removeFunction(val)"></div>
</div>
</template>
</div> </div>
</div> </div>
</template> </template>
@ -28,6 +32,7 @@
dataList: { type: Array, default: null }, dataList: { type: Array, default: null },
}) })
let dataForm = ref([]) let dataForm = ref([])
// eslint-disable-next-line vue/no-setup-props-destructure
dataForm.value = props.dataList dataForm.value = props.dataList
const router = useRouter() const router = useRouter()
const arr = const arr =
@ -66,9 +71,9 @@
margin-bottom: 0.2rem; margin-bottom: 0.2rem;
} }
.ability-to-apply-for-content { .ability-to-apply-for-content {
margin-bottom: 0.3rem; // margin-bottom: 0.3rem;
border-bottom: 0.01rem #dddee1 solid; // border-bottom: 0.01rem #dddee1 solid;
padding-bottom: 0.3rem; // padding-bottom: 0.3rem;
padding-right: 0.5rem; padding-right: 0.5rem;
position: relative; position: relative;
.dep-name { .dep-name {
@ -87,6 +92,12 @@
margin-right: 0.05rem; margin-right: 0.05rem;
} }
} }
.item {
padding-bottom: 0.1rem;
margin-bottom: 0.1rem;
border-bottom: 1px solid #dddee1;
position: relative;
}
.name { .name {
margin-bottom: 0.2rem; margin-bottom: 0.2rem;
span:first-child { span:first-child {
@ -103,6 +114,7 @@
} }
} }
.description { .description {
width: 10rem;
color: rgba(0, 0, 0, 0.45); color: rgba(0, 0, 0, 0.45);
} }
.remove { .remove {

View File

@ -7,7 +7,7 @@
</aside> --> </aside> -->
<article> <article>
<div class="from-card" v-if="applySuccess"> <div class="from-card" v-if="applySuccess">
<AbilityToApplyFor :dataList="dataList"></AbilityToApplyFor> <AbilityToApplyFor :dataList="list"></AbilityToApplyFor>
</div> </div>
<div class="form-container"> <div class="form-container">
<div v-if="applySuccess"> <div v-if="applySuccess">
@ -280,23 +280,29 @@
formName.unit = res.data.data.deptName formName.unit = res.data.data.deptName
}) })
}) })
console.log( const list = ref(JSON.parse(localStorage.getItem('applyList')))
'router传参==================>', console.log('本地存储====================》', list.value)
router.currentRoute.value.query.name // console.log(
) // 'router==================>',
let arr = // router.currentRoute.value.query.name
router.currentRoute.value.query.name instanceof Array // )
? router.currentRoute.value.query.name // let arr =
: [router.currentRoute.value.query.name] // router.currentRoute.value.query.name instanceof Array
console.log(router.currentRoute.value.query.ids) // ? router.currentRoute.value.query.name
const ids = router.currentRoute.value.query.ids // : [router.currentRoute.value.query.name]
let dataResourceId = router.currentRoute.value.query.resourceId // const ids = router.currentRoute.value.query.ids
dataResourceId.map((item) => { // console.log(
selectOne(item).then((res) => { // 'ids==========================>',
dataList.value.push(res.data.data) // ids,
console.log('dataResourceId', dataList.value) // router.currentRoute.value.query.ids
}) // )
}) // let dataResourceId = router.currentRoute.value.query.resourceId
// dataResourceId.map((item) => {
// selectOne(item).then((res) => {
// dataList.value.push(res.data.data)
// console.log('dataResourceId', dataList.value)
// })
// })
const businessKey = ref(router.currentRoute.value.query.id) const businessKey = ref(router.currentRoute.value.query.id)
const taskId = ref(router.currentRoute.value.query.taskId) const taskId = ref(router.currentRoute.value.query.taskId)
if (businessKey.value) { if (businessKey.value) {
@ -365,65 +371,65 @@
if (!formName) { if (!formName) {
return message.error('请设置表单名称') return message.error('请设置表单名称')
} }
if (arr && arr.length !== 0) { // if (arr && arr.length !== 0) {
console.log('提交') // console.log('')
const obj = ref({}) // const obj = ref({})
for (const key in formName) { // for (const key in formName) {
if (key !== 'formNameSystem') { // if (key !== 'formNameSystem') {
obj.value[key] = formName[key] // obj.value[key] = formName[key]
} // }
} // }
submitApply(obj.value).then((res) => { // submitApply(obj.value).then((res) => {
applySuccess.value = false // applySuccess.value = false
message.success('操作成功!') // message.success('')
console.log('能力申请================>', res) // console.log('================>', res)
if (ids) { // if (ids) {
sgcDel({ ids: ids }).then((res) => { // sgcDel({ ids: ids }).then((res) => {
if (res.data.msg === 'success') { // if (res.data.msg === 'success') {
mybus.emit('getSgcNum') // mybus.emit('getSgcNum')
} // }
})
}
})
} else {
lastestPage({
key: dataForm.processDefinitionKey,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return message.error(res.msg)
}
if (!res.data.list || res.data.list.length <= 0) {
return message.error('没有查询到流程,请先设计流程')
}
// proxy.$http['post'](formUrl, rootObj[formName])
tabilityapplication(formName)
.then(({ data: res }) => {
if (res.code !== 0) {
message.error(res.msg)
if (callbacks.formSaveErrorCallback) {
callbacks.formSaveErrorCallback(res)
}
}
if (callbacks.formSaveSuccessCallback) {
callbacks.formSaveSuccessCallback(res)
}
if (!res.data.businessKey) {
return message.error('业务KEY为空无法启动流程')
// startProcess(dataForm.processDefinitionKey, null, rootObj[formName])
} else {
startProcess(
dataForm.processDefinitionKey,
res.data.businessKey
// rootObj[formName]
)
}
})
.catch(() => {})
})
.catch(() => {})
// }) // })
} // }
// })
// } else {
// lastestPage({
// key: dataForm.processDefinitionKey,
// })
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return message.error(res.msg)
// }
// if (!res.data.list || res.data.list.length <= 0) {
// return message.error('')
// }
// // proxy.$http['post'](formUrl, rootObj[formName])
// tabilityapplication(formName)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// message.error(res.msg)
// if (callbacks.formSaveErrorCallback) {
// callbacks.formSaveErrorCallback(res)
// }
// }
// if (callbacks.formSaveSuccessCallback) {
// callbacks.formSaveSuccessCallback(res)
// }
// if (!res.data.businessKey) {
// return message.error('KEY')
// // startProcess(dataForm.processDefinitionKey, null, rootObj[formName])
// } else {
// startProcess(
// dataForm.processDefinitionKey,
// res.data.businessKey
// // rootObj[formName]
// )
// }
// })
// .catch(() => {})
// })
// .catch(() => {})
// // })
// }
}) })
} }
} }
@ -528,31 +534,31 @@
} }
const fileList = ref([]) const fileList = ref([])
//arr //arr
mybus.on('reomveOldData', (item) => { // mybus.on('reomveOldData', (item) => {
debugger // debugger
arr = [] // arr = []
formName.system = [] // formName.system = []
record.value = record.value + '1' // record.value = record.value + '1'
arr = item.Name // arr = item.Name
dataResourceId = item.depID // // dataResourceId = item.depID
if (arr && arr.length !== 0) { // if (arr && arr.length !== 0) {
disabled.value = true // disabled.value = true
let str = '' // let str = ''
arr.forEach((val, index) => { // arr.forEach((val, index) => {
str += val // str += val
if (index < arr.length - 1) { // if (index < arr.length - 1) {
str += '、' // str += ''
} // }
}) // })
formName.formNameSystem = str // formName.formNameSystem = str
} // }
arr.forEach((val, index) => { // arr.forEach((val, index) => {
formName.system.push({ // formName.system.push({
resourceName: val, // resourceName: val,
resourceId: dataResourceId[index], // // resourceId: dataResourceId[index],
}) // })
}) // })
}) // })
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('reomveOldData') mybus.off('reomveOldData')
}) })
@ -566,6 +572,7 @@
startProcess, startProcess,
options, options,
fileList, fileList,
list,
headers: { headers: {
authorization: 'authorization-text', authorization: 'authorization-text',
}, },
@ -585,7 +592,7 @@
// background-color: #f5f8fc; // background-color: #f5f8fc;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin: 130px auto 0; margin: 0.8rem auto 0;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
aside { aside {

View File

@ -1,18 +1,13 @@
<template> <template>
<div class="bottom"> <div class="top">
<div class="left"> <div class="left">
<a-checkbox v-model:checked="checkAll" @change="onCheckAllChange"> <a-checkbox v-model:checked="checkAll" @change="onCheckAllChange">
全选 全选
</a-checkbox> </a-checkbox>
<a-checkbox <div @click="reverseSelection" class="reverseSelection">反选</div>
v-model:checked="reverseSelectionFalg"
@change="reverseSelection"
>
反选
</a-checkbox>
<p> <p>
已选 已选
<span class="num">{{ checkedList.length }}</span> <span class="num">{{ checkedListAbility.length || 0 }}</span>
</p> </p>
</div> </div>
<div class="right"> <div class="right">
@ -22,8 +17,7 @@
placeholder="请输入关键词" placeholder="请输入关键词"
enter-button="搜索" enter-button="搜索"
size="large" size="large"
@change="onSearch" @search="getList('init')"
@search="getList"
/> />
</div> </div>
<a-popconfirm <a-popconfirm
@ -74,40 +68,46 @@
</a-button> </a-button>
</div> </div>
</div> </div>
<!-- <div class="tab"> <div class="items">
<span>筛选</span> <div class="item" v-for="val in list" :key="val.id">
<div <div class="item-top" @click="showBottom(val)">
:class="tabIndex == index ? 'tabclass' : ' '" <div>
@click="changeTab(index)" <a-checkbox
v-for="(item, index) in tabList" :checked="val.checked"
:key="index" @click.stop="checkedDept(val)"
> ></a-checkbox>
{{ item }} <span style="margin-left: 0.2rem">
{{ val.deptName + '(' + val.count + ')' }}
</span>
</div> </div>
</div> --> <DownOutlined v-show="!val.show" />
<UpOutlined v-show="val.show" />
</div>
<div class="item-bottom" v-show="val.show">
<a-list <a-list
class="demo-loadmore-list" class="demo-loadmore-list"
:loading="initLoading" :loading="val.initLoading"
item-layout="horizontal" item-layout="horizontal"
:data-source="list" :data-source="val.children"
:key="showKey" :key="showKey"
> >
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<a-list-item> <a-list-item>
<a-skeleton avatar :title="false" :loading="!!item.loading" active> <a-skeleton avatar :title="false" :loading="item.loading" active>
<a-list-item-meta <a-list-item-meta
:description="item.description || '--'" :description="item.description || '--'"
style="position: relative" style="position: relative"
> >
<template #title> <template #title>
<span <span
@click="showItem(item.resourceId, item.type, item.delFlag)" @click="
showItem(item.resourceId, item.type, item.delFlag)
"
style="cursor: pointer" style="cursor: pointer"
class="name" class="name"
> >
{{ item.name }} {{ item.resourceName }}
</span> </span>
<!-- <span class="time">加购时间{{ item.updateDate }}</span> -->
<span class="type">{{ item.type }}</span> <span class="type">{{ item.type }}</span>
<svg <svg
t="1652233950228" t="1652233950228"
@ -151,8 +151,7 @@
<template #avatar> <template #avatar>
<a-checkbox <a-checkbox
:checked="item.checked" :checked="item.checked"
@click.stop="checkedItem(item)" @click.stop="checkedItem(val, item)"
@change="checkedItem(item)"
></a-checkbox> ></a-checkbox>
</template> </template>
</a-list-item-meta> </a-list-item-meta>
@ -160,52 +159,64 @@
</a-list-item> </a-list-item>
</template> </template>
</a-list> </a-list>
<a-pagination <!-- <a-pagination
v-model:current="val.pageNum"
v-model:page-size="val.pageSize"
:total="val.count"
@change="pageChange2(val)"
:key="showKey"
:hideOnSinglePage="true"
></a-pagination> -->
</div>
</div>
</div>
<!-- <a-pagination
v-model:current="pageNum" v-model:current="pageNum"
v-model:page-size="pageSize" v-model:page-size="pageSize"
:page-size-options="pageSizeOptions" :page-size-options="pageSizeOptions"
:total="total" :total="total"
show-size-changer show-size-changer
@showSizeChange="onShowSizeChange"
@change="pageChange" @change="pageChange"
:key="showKey" :key="showKey"
> >
<template #buildOptionText="props"> <template #buildOptionText="props">
<span>{{ props.value }}/</span> <span>{{ props.value }}/</span>
</template> </template>
</a-pagination> </a-pagination> -->
</template> </template>
<script setup> <script setup>
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { import {
getSgcList,
sgcDel, sgcDel,
getTopCategory,
scInsert, scInsert,
selectResourceCarGroupByDept,
selectResourceListByDept,
} from '@/api/personalCenter' } from '@/api/personalCenter'
const router = useRouter() const router = useRouter()
// //
const pageNum = ref('1') const pageNum = ref('1')
const pageSize = ref('5') const pageSize = ref('99999')
const pageSizeOptions = ref(['5', '10', '20']) // const pageSizeOptions = ref(['5', '10', '20'])
const total = ref(0) const total = ref(0)
const load = ref(0)
// //
const checkedList = ref([]) const checkedList = ref([])
const checkedListAll = ref([])
const checkedListAbility = ref([])
const checkAll = ref(false) const checkAll = ref(false)
const initLoading = ref(true) const checkNum = ref(0)
const showKey = ref(0) const showKey = ref(0)
// //
const name = ref('') const name = ref('')
const type = ref('') const type = ref('')
const list = ref([]) const list = ref([])
const tabList = ref([])
// //
onMounted(() => { onMounted(() => {
getList() getList('init')
getCategory()
}) })
// //
const collection = () => { const collection = () => {
@ -220,7 +231,7 @@
message.error('请选择需要收藏的数据') message.error('请选择需要收藏的数据')
} else { } else {
list.value.forEach((val) => { list.value.forEach((val) => {
if (checkedList.value.indexOf(val.id) !== -1) { if (checkedList.value.indexOf(val.deptId) !== -1) {
if (val.delFlag == 0) { if (val.delFlag == 0) {
scArr.push({ resourceId: val.resourceId }) scArr.push({ resourceId: val.resourceId })
} }
@ -238,44 +249,59 @@
} }
} }
} }
//
const getCategory = () => {
getTopCategory().then((res) => {
console.log('编目一级=============>', res.data)
res.data.data.forEach((val) => {
if (val.name == '应用资源' || val.name == '组件服务') {
tabList.value.push(val.name)
}
})
})
}
// //
const onCheckAllChange = () => { const onCheckAllChange = () => {
// console.log(checkedList)
if (checkAll.value) { if (checkAll.value) {
// checkedList.value = []
list.value.forEach((val) => { list.value.forEach((val) => {
console.log(val) if (checkedList.value.indexOf(val.deptId) == -1) {
if (checkedList.value.indexOf(val.id) != -1) { checkedList.value.push(val.deptId)
checkedList.value.splice(checkedList.value.indexOf(val.id), 1) checkedListAll.value.push(val.deptId)
}
if (val.children.length > 0) {
val.children.map((item) => {
if (checkedListAbility.value.indexOf(item.resourceId) == -1) {
checkedListAbility.value.push(item.resourceId)
val.checkedList.push(item.resourceId)
checkNum.value++
}
item.checked = true
})
} else {
getListByDeptId(val)
} }
val.checked = true val.checked = true
checkedList.value.push(val.id)
dataResourceId.value.push(val.resourceId)
arr.value.push(val.name)
}) })
// console.log(checkAll.value) console.log(checkAll.value, checkedList.value)
} else { } else {
list.value.forEach((val) => { list.value.forEach((val) => {
val.checked = false val.checked = false
if (checkedList.value.indexOf(val.id) != -1) { checkNum.value -= Number(val.count)
checkedList.value.splice(checkedList.value.indexOf(val.id), 1) if (checkedList.value.indexOf(val.deptId) != -1) {
checkedList.value.splice(checkedList.value.indexOf(val.deptId), 1)
checkedListAll.value.splice(
checkedListAll.value.indexOf(val.deptId),
1
)
handleChild(val)
}
})
console.log(checkAll.value, checkedList.value)
}
}
// child
const handleChild = (val) => {
if (val.children.length > 0) {
val.children.map((item) => {
console.log('child=============>', checkedListAbility.value, item)
if (checkedListAbility.value.indexOf(item.resourceId) > -1) {
item.checked = false
checkedListAbility.value.splice(
checkedListAbility.value.indexOf(item.resourceId),
1
)
val.checkedList.splice(val.checkedList.indexOf(item.resourceId), 1)
} }
}) })
// checkedList.value = []
dataResourceId.value = []
arr.value = []
console.log(checkAll.value)
} }
} }
// //
@ -291,21 +317,42 @@
if (checkAll.value) { if (checkAll.value) {
checkAll.value = false checkAll.value = false
list.value.map((val) => { list.value.map((val) => {
if (checkedList.value.indexOf(val.id) > -1) { checkNum.value -= Number(val.count)
if (checkedList.value.indexOf(val.deptId) > -1) {
val.checked = false val.checked = false
checkedList.value.splice(checkedList.value.indexOf(val.id), 1) checkedList.value.splice(checkedList.value.indexOf(val.deptId), 1)
checkedListAll.value.splice(
checkedListAll.value.indexOf(val.deptId),
1
)
handleChild(val)
} }
}) })
} else { } else {
const arr = [] const arr = []
list.value.map((val) => { list.value.map((val) => {
if (val.checked) {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1)
} else {
checkedList.value.push(val.id)
arr.push(val.id)
}
val.checked = !val.checked val.checked = !val.checked
if (val.checked) {
checkNum.value += Number(val.count)
checkedList.value.push(val.deptId)
checkedListAll.value.push(val.deptId)
if (val.children.length > 0) {
val.children.map((item) => {
item.checked = true
checkedListAbility.value.push(item.resourceId)
val.checkedList.push(item.resourceId)
})
}
arr.push(val.deptId)
} else {
checkNum.value -= Number(val.count)
checkedList.value.splice(checkedList.value.indexOf(val.deptId), 1)
checkedListAll.value.splice(
checkedListAll.value.indexOf(val.deptId),
1
)
handleChild(val)
}
if (arr.length == list.value.length) { if (arr.length == list.value.length) {
checkAll.value = true checkAll.value = true
} }
@ -318,109 +365,262 @@
name.value = '' name.value = ''
type.value = '' type.value = ''
pageNum.value = '1' pageNum.value = '1'
pageSize.value = '5' pageSize.value = '99999'
checkedList.value = [] checkedList.value = []
checkedListAll.value = []
checkAll.value = false checkAll.value = false
showKey.value++ showKey.value++
getList() getList()
} }
// //
const getList = () => { const getList = (type) => {
getSgcList({ if (type == 'init') {
pageNum.value = 1
pageSize.value = 99999
}
selectResourceCarGroupByDept({
pageNum: pageNum.value, pageNum: pageNum.value,
pageSize: pageSize.value, pageSize: pageSize.value,
name: name.value, name: name.value,
type: type.value,
}).then((res) => { }).then((res) => {
console.log('申购车列表================>', res.data.data.records) let statistics = 0
checkAll.value = true res.data.data.list.map((val) => {
initLoading.value = false val.initLoading = true
list.value = [] val.show = false
total.value = res.data.data.total if (checkedList.value.indexOf(val.deptId) > -1) {
res.data.data.records.forEach((val) => { val.checked = true
const obj = { statistics++
loading: false,
name: val.resourceDTO.name,
id: val.id,
checked: false,
type: val.resourceDTO.type,
resourceId: val.resourceId,
updateDate: val.updateDate,
description: val.resourceDTO.description,
delFlag: val.resourceDTO.delFlag,
}
if (checkedList.value.indexOf(val.id) == -1) {
checkAll.value = false
} else { } else {
obj.checked = true val.checked = false
} }
list.value.push(obj) val.checkedList = []
val.children = []
val.pageNum = '1'
val.pageSize = '99999'
}) })
if (statistics == res.data.data.list.length) {
checkAll.value = true
}
if (list.value.length == 0) {
load.value = 1
}
if (load.value < Number(pageNum.value)) {
load.value = Number(pageNum.value)
}
console.log('整体页面加载次数===============>', load.value)
list.value = res.data.data.list
total.value = res.data.data.deptCount
showKey.value++
if (type == 'init' || type == 'changePage') {
getListByDeptId(list.value[0])
}
}) })
} }
const onShowSizeChange = (current, pageSize) => { // deptid
console.log(current, pageSize) const getListByDeptId = (item) => {
// pageNum.value = current if (item.children.length == 0) {
// pageSize.value = pageSize selectResourceListByDept({
// getList() pageNum: item.pageNum,
pageSize: item.pageSize,
deptId: item.deptId,
}).then((res) => {
console.log(
'根据部门查询=============>',
item,
checkedListAbility.value
)
res.data.data.map((val) => {
if (
(!item.load || item.load < Number(item.pageNum)) &&
load.value <= Number(pageNum.value)
) {
if (
item.checkAll == true ||
checkedList.value.indexOf(item.deptId) > -1
) {
if (checkedListAbility.value.indexOf(val.resourceId) == -1) {
checkedListAbility.value.push(val.resourceId)
item.checkedList.push(val.resourceId)
}
val.checked = true
checkNum.value++
} else if (checkedListAbility.value.indexOf(val.resourceId) == -1) {
val.checked = false
}
} else {
console.log(
'第二次加载++++++++++++++',
checkedListAbility.value,
val.resourceId
)
if (
checkedListAbility.value.indexOf(val.resourceId) > -1 ||
(item.load < Number(item.pageNum) &&
checkedListAll.value.indexOf(item.deptId) > -1)
) {
val.checked = true
} else {
val.checked = false
}
}
val.loading = false
})
if (item.children.length == 0) {
item.load = 1
}
if (item.load < Number(item.pageNum)) {
item.load = Number(item.pageNum)
}
console.log('加载次数==============>>', item.load)
item.children = res.data.data
item.show = true
item.initLoading = false
})
}
}
//
const showBottom = (item) => {
item.show = !item.show
if (item.show) {
getListByDeptId(item)
}
} }
// //
const pageChange = (val) => { const pageChange = (val) => {
checkAll.value = false
pageNum.value = val pageNum.value = val
pageNum.value = val getList('changePage')
// checkedList.value = []
getList()
} }
// //
// const onSearch = (name) => { const pageChange2 = (item) => {
// name.value = name getListByDeptId(item)
// console.log(name.value) }
// } //
const checkedDept = (item) => {
//id console.log(
const dataResourceId = ref([]) '点击部门多选框==================>',
item,
const arr = ref([]) checkedList.value,
// checkAll.value
const checkedItem = (item) => { )
item.checked = !item.checked
if (item.checked) {
if (item.children.length > 0) {
item.children.map((val) => {
if (checkedListAbility.value.indexOf(val.resourceId) == -1) {
checkedListAbility.value.push(val.resourceId)
item.checkedList.push(val.resourceId)
}
val.checked = true
})
}
item.checkAll = true
checkedList.value.push(item.deptId)
checkedListAll.value.push(item.deptId)
judgeAll(item)
checkNum.value += Number(item.count)
if (checkedList.value.length == list.value.length) {
checkAll.value = true checkAll.value = true
list.value.forEach((val) => { }
if (val.id === item.id) {
console.log(val)
val.checked = !val.checked
if (val.checked) {
checkedList.value.push(val.id)
dataResourceId.value.push(val.resourceId)
arr.value.push(val.name)
} else { } else {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1) if (item.children.length > 0) {
dataResourceId.value.splice( item.children.map((val) => {
checkedList.value.indexOf(val.resourceId), if (checkedListAbility.value.indexOf(val.resourceId) > -1) {
checkedListAbility.value.splice(
checkedListAbility.value.indexOf(val.resourceId),
1 1
) )
arr.value.splice(arr.value.indexOf(val.name), 1) item.checkedList.splice(item.checkedList.indexOf(val.resourceId), 1)
} val.checked = false
}
if (checkedList.value.indexOf(val.id) == -1) {
checkAll.value = false
} }
}) })
console.log(checkedList.value)
showKey.value++
} }
// item.checkAll = false
// const tabIndex = ref(-1) checkedList.value.splice(checkedList.value.indexOf(item.deptId), 1)
// const changeTab = (index) => { checkedListAll.value.splice(checkedListAll.value.indexOf(item.deptId), 1)
// console.log('tabIndex', tabIndex.value, index, tabList) judgeAll(item)
// if (tabIndex.value == index) { if (checkedList.value.length !== list.value.length) {
// tabIndex.value = -1 checkAll.value = false
// type.value = '' }
// } else { checkNum.value -= Number(item.count)
// tabIndex.value = index }
// type.value = tabList.value[index] }
// } //
// getList() const judgeAll = (item, val) => {
// } console.log(
'判断是否全选============>',
item,
val,
list.value,
checkedList.value
)
if (!val) {
let all = true
list.value.map((val) => {
if (val.checkedList.length !== val.children.length) {
all = false
}
})
if (all) {
checkAll.value = true
} else {
checkAll.value = false
}
} else {
let all = true
item.children.map((child) => {
if (checkedListAbility.value.indexOf(child.resourceId) == -1) {
all = false
}
})
if (all) {
item.checked = true
} else {
item.checked = false
}
}
}
//
const checkedItem = (val, item) => {
console.log('点击能力===========>', val, item, checkedListAbility.value)
item.checked = !item.checked
if (item.checked) {
checkNum.value++
if (checkedListAbility.value.indexOf(item.resourceId) == -1) {
checkedListAbility.value.push(item.resourceId)
val.checkedList.push(item.resourceId)
}
} else {
checkNum.value--
checkedListAbility.value.splice(
checkedListAbility.value.indexOf(item.resourceId),
1
)
val.checkedList.splice(val.checkedList.indexOf(item.resourceId), 1)
}
console.log('判断是否全选===============>', val, checkedListAll.value)
if (val.checkedList.length == val.count) {
val.checked = true
checkedList.value.push(val.deptId)
checkedListAll.value.push(val.deptId)
console.log(
'全选===========================>',
checkedList.value,
list.value
)
if (checkedList.value.length == list.value.length) {
checkAll.value = true
}
} else {
val.checked = false
if (checkedList.value.indexOf(val.deptId) > -1) {
checkedList.value.splice(checkedList.value.indexOf(val.deptId), 1)
}
if (checkedList.value.length !== list.value.length) {
checkAll.value = false
}
}
}
// //
const delList = () => { const delList = () => {
if (checkedList.value.length == 0) { if (checkedList.value.length == 0) {
@ -456,39 +656,32 @@
} }
// //
const apply = () => { const apply = () => {
list.value.forEach((val) => { // list.value.forEach((val) => {
if (checkedList.value.indexOf(val.id) !== -1) { // if (checkedList.value.indexOf(val.deptId) !== -1) {
if (val.delFlag != 0) { // if (val.delFlag != 0) {
checkedList.value.splice(checkedList.value.indexOf(val.id), 1) // checkedList.value.splice(checkedList.value.indexOf(val.deptId), 1)
console.log('已下架======================>', arr) // val.checked = false
arr.value.splice(arr.value.indexOf(val.name), 1) // message.error('')
val.checked = false // }
message.error('已下架的能力无法申请!') // }
} // })
}
})
if (checkedList.value.length == 0) { if (checkedList.value.length == 0) {
message.error('请先选择需要申请的数据!') message.error('请先选择需要申请的数据!')
} else { } else {
console.log('一键申请===================>', arr) console.log('一键申请===================>', list.value)
localStorage.setItem('applyList', JSON.stringify(list.value))
router.push({ router.push({
path: '/apply', path: '/apply',
query: {
name: arr.value,
ids: checkedList.value,
resourceId: dataResourceId.value,
},
}) })
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.ant-list { .ant-list {
height: 7.23rem; // max-height: 5.3rem;
overflow-y: scroll;
.ant-list-item { .ant-list-item {
width: 10.5rem; width: 100%;
padding: 0.24rem 0; padding: 0.24rem 0.2rem;
.ant-list-item-meta { .ant-list-item-meta {
align-items: center; align-items: center;
:deep(.ant-list-item-meta-avatar) { :deep(.ant-list-item-meta-avatar) {
@ -508,7 +701,7 @@
} }
:deep(.ant-list-item-meta-description) { :deep(.ant-list-item-meta-description) {
margin-top: 0.1rem; margin-top: 0.1rem;
max-height: 0.44rem; max-height: 0.22rem;
margin-right: 0.1rem; margin-right: 0.1rem;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -522,7 +715,7 @@
.ant-list::-webkit-scrollbar { .ant-list::-webkit-scrollbar {
width: 0 !important; width: 0 !important;
} }
.bottom { .top {
margin: 0.1rem; margin: 0.1rem;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -538,6 +731,13 @@
margin-bottom: 0; margin-bottom: 0;
border-left: 1px solid #212121; border-left: 1px solid #212121;
} }
.reverseSelection {
margin-right: 0.1rem;
cursor: pointer;
}
.reverseSelection:hover {
color: #0058e1;
}
span { span {
margin-left: 0.1rem; margin-left: 0.1rem;
} }
@ -555,7 +755,7 @@
margin-bottom: 0.1rem; margin-bottom: 0.1rem;
} }
.sousuokuang { .sousuokuang {
width: 3.2rem; width: 3.25rem;
margin: 0.1rem 0rem 0.21rem 0.2rem; margin: 0.1rem 0rem 0.21rem 0.2rem;
.ant-input-search { .ant-input-search {
max-width: 3rem; max-width: 3rem;
@ -571,7 +771,7 @@
display: inline-block; display: inline-block;
margin-left: 0.1rem; margin-left: 0.1rem;
.ant-input-search-button { .ant-input-search-button {
width: 0.6rem; width: 0.65rem;
height: 0.36rem; height: 0.36rem;
border-radius: 2px; border-radius: 2px;
font-size: 0.14rem; font-size: 0.14rem;
@ -613,4 +813,39 @@
.name:hover { .name:hover {
color: #0087ff; color: #0087ff;
} }
.items {
height: 7.25rem;
padding: 0 0.3rem;
overflow-y: scroll;
.item {
.item-top {
width: 100%;
height: 0.6rem;
font-size: 20px;
font-weight: 600;
background: rgba(0, 135, 225, 0.1);
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.1rem;
margin-top: 0.08rem;
}
.item-top:hover {
cursor: pointer;
// 0058e1 0.5
background: rgba(0, 88, 225, 0.8);
color: white;
:deep(.anticon) {
color: white;
}
}
.item-bottom {
padding: 0 0.2rem;
border: 1px solid rgba(0, 135, 225, 0.1);
}
}
}
.ant-pagination {
margin-bottom: 0.2rem;
}
</style> </style>