qsh 2 weeks ago
parent e45cf7db0c
commit 15f83f7193
  1. 4
      .env.base
  2. 20
      src/router/modules/remaining.ts
  3. 51
      src/views/OKR/Analysis/index.vue
  4. 27
      src/views/OKR/Meeting/MeetingInfo.vue

@ -6,9 +6,9 @@ VITE_DEV=true
# 请求路径
# VITE_BASE_URL='http://localhost:48080'
VITE_BASE_URL='http://47.98.161.246:48080'
# VITE_BASE_URL='http://47.98.161.246:48080'
# VITE_BASE_URL='http://114.55.169.15:48080'
# VITE_BASE_URL='http://114.215.207.150:48080'
VITE_BASE_URL='http://114.215.207.150:48080'
# 上传路径
VITE_UPLOAD_URL='http://47.98.161.246:48080/admin-api/system/file/upload'

@ -50,16 +50,16 @@ const remainingRouter: AppRouteRecordRaw[] = [
noTagsView: true
}
},
// {
// path: '',
// component: Layout,
// redirect: '/Home/index',
// name: '',
// meta: {
// title: '首页',
// hidden: true
// }
// },
{
path: '',
component: Layout,
redirect: '/Home/index',
name: '',
meta: {
title: '首页',
hidden: true
}
},
{
path: '/swagger',
component: () => import('@/views/Basic/Swagger/index.vue'),

@ -47,6 +47,7 @@
:data="originList"
border
:span-method="objectSpanMethod"
:show-summary="!!tableKeywords"
@cell-click="handleClickCell"
>
<el-table-column prop="objectInfo.objectiveName" label="目标">
@ -57,7 +58,26 @@
<!-- <el-table-column prop="objectiveId" label="占比" width="100px">
<template #default> 0 </template>
</el-table-column> -->
<el-table-column prop="keyResultShowName" label="关键成果">
<el-table-column prop="keyResultShowName">
<template #header>
<div class="flex items-center justify-center">
<div class="flex-1 mr-10px">
<el-input
v-if="showTableSearch"
v-model="tableKeywords"
placeholder="请输入关键字"
size="small"
style="width: 100%"
clearable
@change="handleTableFilter"
/>
<div v-else>关键成果</div>
</div>
<el-button type="primary" size="small" @click="handleFilterTableClick">
{{ showTableSearch ? '取消' : '筛选' }}
</el-button>
</div>
</template>
<template #default="{ row }">
{{ row.sourceName ? `${row.sourceName}` : '' }} {{ row.keyResultShowName }}
</template>
@ -302,6 +322,9 @@ const customColors = [
const peroidList = ref([])
const showTableSearch = ref(false)
const tableKeywords = ref('')
handleSearchPeroid()
getOptions()
@ -327,6 +350,8 @@ function handleSearchPeroid() {
const showCountPop = ref(false)
function nodeChange(nodeId) {
if (nodeId) {
showTableSearch.value = false
tableKeywords.value = ''
searchForm.value.nodeId = nodeId
getOkrList()
getCountInfo()
@ -343,6 +368,7 @@ function nodeChange(nodeId) {
}
const originList = ref([])
const defaultTableList = ref([])
const spanObj = ref([])
function getOkrList() {
getAllOkrPage(searchForm.value).then((resp) => {
@ -363,6 +389,7 @@ function getOkrList() {
originList.value = [...originList.value, ...arr]
}
})
defaultTableList.value = [...originList.value]
}
})
}
@ -548,6 +575,28 @@ function handleSaveComment() {
function handleExport() {
exportTableWithVue('#okrAnalysisTable', `OKR分析报表-${currentNode.value.nodeName}`)
}
function handleTableFilter() {
console.log('tableKeywords', tableKeywords.value)
if (tableKeywords.value) {
originList.value = defaultTableList.value.filter(
(item) =>
item.keyResultName.includes(tableKeywords.value) ||
item.sourceName.includes(tableKeywords.value)
)
} else {
originList.value = [...defaultTableList.value]
}
}
function handleFilterTableClick() {
showTableSearch.value = !showTableSearch.value
if (!showTableSearch.value) {
tableKeywords.value = ''
originList.value = [...defaultTableList.value]
}
}
</script>
<style lang="scss" scoped></style>

@ -113,16 +113,25 @@
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
<el-form-item label="会议内容:" prop="meetingContent">
<el-col :xl="16" :lg="16" :md="24" :sm="24" :xs="24">
<el-form-item label="会议内容" prop="meetingContent">
<div v-if="!!isDetail" v-dompurify-html="form.meetingContent" class="w-full"></div>
<Editor v-else v-model="form.meetingContent" height="500px" />
<Editor v-else v-model="form.meetingContent" height="500px" style="width: 100%" />
</el-form-item>
</el-col>
<el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24" v-if="!!form.meetingId">
<el-form-item label="会议纪要:" prop="meetingSummary">
<div v-if="!!isDetail" v-dompurify-html="form.meetingSummary" class="w-full"></div>
<Editor v-else v-model="form.meetingSummary" height="500px" />
<el-col :xl="8" :lg="8" :md="24" :sm="24" :xs="24" v-if="!!form.meetingId">
<el-form-item label="会议纪要" prop="meetingSummary" label-width="80px">
<!-- <div v-if="!!isDetail" v-dompurify-html="form.meetingSummary" class="w-full"></div>
<Editor v-else v-model="form.meetingSummary" height="500px" /> -->
<div v-if="!!isDetail" class="w-full">{{ form.meetingSummary }}</div>
<el-input
v-else
type="textarea"
placeholder="请输入会议纪要"
:maxlength="-1"
:show-word-limit="false"
:autosize="{ minRows: 20 }"
/>
</el-form-item>
</el-col>
</el-row>
@ -250,7 +259,9 @@ function handleUserChange() {
expectUserOptions.value = userOptions.value.filter((user) =>
form.value.expectUsers.some((it) => it == user.id)
)
form.value.actualUsers = [...form.value.expectUsers]
if (!isDetail) {
form.value.actualUsers = [...form.value.expectUsers]
}
}
const router = useRouter()

Loading…
Cancel
Save