Merge branch 'main' of http://114.55.169.15:3000/qiushanhe/ss-oa-manage-web into dev-cl
# Conflicts: # .env.basedev-cl
commit
1413ce44c7
@ -0,0 +1,5 @@ |
|||||||
|
{ |
||||||
|
"i18n-ally.localesPaths": [ |
||||||
|
"src/locales" |
||||||
|
] |
||||||
|
} |
@ -0,0 +1,120 @@ |
|||||||
|
<template> |
||||||
|
<div> |
||||||
|
<div class="flex items-center justify-between"> |
||||||
|
<el-row> |
||||||
|
<el-tree-select |
||||||
|
v-model="searchForm.nodeId" |
||||||
|
:data="peroidList" |
||||||
|
:props="defaultProps" |
||||||
|
:render-after-expand="false" |
||||||
|
:default-expand-all="false" |
||||||
|
style="width: 400px" |
||||||
|
@change="nodeChange" |
||||||
|
/> |
||||||
|
</el-row> |
||||||
|
<el-row> |
||||||
|
<el-button type="info" @click="handleShowOkr(searchForm.nodeId)"> 节点详情 </el-button> |
||||||
|
<el-button |
||||||
|
type="warning" |
||||||
|
v-if="currentUserId == searchForm.creatorId" |
||||||
|
@click="handleEditOkr(searchForm.nodeId)" |
||||||
|
> |
||||||
|
修改当前节点 |
||||||
|
</el-button> |
||||||
|
</el-row> |
||||||
|
</div> |
||||||
|
|
||||||
|
<OkrTable ref="okrTableRef" canEdit /> |
||||||
|
<DialogOkr ref="dialogOkr" @edit="handleEditOkr" /> |
||||||
|
<DialogOkrInfo ref="dialogOkrInfo" @success="handleSearchPeroid" /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup name="MySon"> |
||||||
|
import OkrTable from './OkrTable.vue' |
||||||
|
import DialogOkr from './DialogOkr.vue' |
||||||
|
import DialogOkrInfo from './DialogOkrInfo.vue' |
||||||
|
import { listToTree, findNode } from '@/utils/tree' |
||||||
|
import { useUserStore } from '@/store/modules/user' |
||||||
|
|
||||||
|
import { getMySonNodeTree, getMySonOkrPage } from '@/api/okr/okr' |
||||||
|
|
||||||
|
const props = defineProps({ |
||||||
|
userId: { |
||||||
|
type: Number, |
||||||
|
default: undefined |
||||||
|
} |
||||||
|
}) |
||||||
|
|
||||||
|
const defaultProps = { |
||||||
|
value: 'nodeId', |
||||||
|
label: 'nodeName', |
||||||
|
children: 'children' |
||||||
|
} |
||||||
|
|
||||||
|
const userStore = useUserStore() |
||||||
|
const currentUserId = userStore.getUser.id |
||||||
|
|
||||||
|
const okrTableRef = ref(null) |
||||||
|
const searchForm = ref({ |
||||||
|
nodeId: undefined |
||||||
|
}) |
||||||
|
|
||||||
|
const peroidList = ref([]) |
||||||
|
|
||||||
|
handleSearchPeroid() |
||||||
|
|
||||||
|
function handleSearchPeroid() { |
||||||
|
getMySonNodeTree({ userId: props.userId }).then((resp) => { |
||||||
|
peroidList.value = listToTree(resp.tree, { |
||||||
|
id: 'nodeId', |
||||||
|
pid: 'parentId', |
||||||
|
children: 'children' |
||||||
|
}) |
||||||
|
nodeChange(resp.nodeId) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
function getOkrList() { |
||||||
|
getMySonOkrPage({ |
||||||
|
...searchForm.value, |
||||||
|
userId: props.userId |
||||||
|
}).then((resp) => { |
||||||
|
nextTick(() => { |
||||||
|
okrTableRef.value.prepareData(resp) |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
function nodeChange(nodeId) { |
||||||
|
searchForm.value.nodeId = nodeId |
||||||
|
getOkrList() |
||||||
|
const currentNode = findNode(peroidList.value, (node) => { |
||||||
|
return node.nodeId == nodeId |
||||||
|
}) |
||||||
|
searchForm.value.creatorId = currentNode.creatorId |
||||||
|
} |
||||||
|
|
||||||
|
const dialogOkr = ref(null) |
||||||
|
function handleShowOkr(id) { |
||||||
|
dialogOkr.value.open({ |
||||||
|
nodeId: id, |
||||||
|
canEdit: true, |
||||||
|
queryType: 2 |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
const dialogOkrInfo = ref(null) |
||||||
|
function handleEditOkr(nodeId = undefined) { |
||||||
|
dialogOkr.value.close() |
||||||
|
dialogOkrInfo.value.open('update', nodeId || searchForm.value.nodeId, 2) |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
:deep(.el-overlay-dialog) { |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue