知识管理引入工作流程3
This commit is contained in:
parent
ec6b659a87
commit
61d25a40e8
195
src/views/bpm/knows/knowledge/KnowledgeDetail.vue
Normal file
195
src/views/bpm/knows/knowledge/KnowledgeDetail.vue
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <Dialog :title="dialogTitle" v-model="dialogVisible">-->
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="formRules"
|
||||||
|
label-width="100px"
|
||||||
|
v-loading="formLoading"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="知识标题" prop="knowTitle">
|
||||||
|
<el-input v-model="formData.knowTitle" placeholder="请输入知识标题" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="部门" prop="deptId">
|
||||||
|
<el-input v-model="formData.deptId" v-show="false" readonly />
|
||||||
|
<div class="pull-left" v-show="true" v-if="userInfo?.dept">{{ userInfo?.dept.name }} </div>
|
||||||
|
<div class="pull-left" v-show="true" v-if="deptInfo">{{ deptInfo?.name }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="知识状态" prop="status">
|
||||||
|
<el-radio-group v-model="formData.status" :disabled="isReadOnly" >
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in getStrDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>
|
||||||
|
{{ dict.label }}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="知识分类" prop="typeId">
|
||||||
|
<!-- <el-input v-model="formData.typeId" placeholder="请选择知识分类" />-->
|
||||||
|
<el-tree-select
|
||||||
|
v-model="formData.typeId"
|
||||||
|
:data="knowtypeTree"
|
||||||
|
:props="{...defaultProps, lable: 'name'}"
|
||||||
|
check-strictly
|
||||||
|
default-expand-all
|
||||||
|
placeholder="请选择上级分类"
|
||||||
|
:disabled="isReadOnly"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="作者" prop="content">
|
||||||
|
<el-input v-model="formData.userName" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="内容" prop="content">
|
||||||
|
<Editor v-model="formData.content" height="150px" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="文件路径" prop="filePath" readonly >
|
||||||
|
<UploadFile v-model="formData.filePath" :disabled="isReadOnly" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!-- 子表的表单 -->
|
||||||
|
<el-tabs v-model="subTabsName">
|
||||||
|
<el-tab-pane label="评论" name="comment">
|
||||||
|
<CommentForm ref="commentFormRef" :know-id="formData.id" readonly />
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<!-- <template #footer>-->
|
||||||
|
<!-- <el-button @click="dialogVisible = false">关 闭</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </Dialog>-->
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
|
import { KnowledgeApi, KnowledgeVO } from '@/api/bpm/knows/knowledge'
|
||||||
|
import CommentForm from './components/CommentDetail.vue'
|
||||||
|
import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
|
||||||
|
import {DeptVO, getDept} from "@/api/system/dept";
|
||||||
|
import {defaultProps, handleTree} from "@/utils/tree";
|
||||||
|
import {KnowtypeApi} from "@/api/bpm/knows/knowtype";
|
||||||
|
import {propTypes} from "@/utils/propTypes";
|
||||||
|
|
||||||
|
/** 知识发布 表单 */
|
||||||
|
defineOptions({ name: 'KnowledgeDetail1' })
|
||||||
|
const { query } = useRoute() // 查询参数
|
||||||
|
const queryId = query.id as unknown as number // 从 URL 传递过来的 id 编号
|
||||||
|
const props = defineProps({
|
||||||
|
id: propTypes.number.def(undefined)
|
||||||
|
})
|
||||||
|
const isReadOnly = ref(true); // 设置为 true 则组件为只读状态
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
// const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
|
const formData = ref({
|
||||||
|
id: undefined,
|
||||||
|
typeId: undefined,
|
||||||
|
deptId: '',
|
||||||
|
knowTitle: undefined,
|
||||||
|
userName:'',
|
||||||
|
content: undefined,
|
||||||
|
status: undefined,
|
||||||
|
filePath: undefined
|
||||||
|
})
|
||||||
|
const formRules = reactive({
|
||||||
|
typeId: [{ required: true, message: '类型id不能为空', trigger: 'blur' }],
|
||||||
|
knowTitle: [{ required: true, message: '知识标题不能为空', trigger: 'blur' }]
|
||||||
|
})
|
||||||
|
const formRef = ref() // 表单 Ref
|
||||||
|
const knowtypeTree = ref() // 树形结构
|
||||||
|
const userInfo = ref({} as ProfileVO )
|
||||||
|
const deptInfo = ref({} as DeptVO )
|
||||||
|
/** 子表的表单 */
|
||||||
|
const subTabsName = ref('comment')
|
||||||
|
const commentFormRef = ref()
|
||||||
|
const getUserInfo = async () => {
|
||||||
|
if ( formData.value.deptId == '' ){
|
||||||
|
const users = await getUserProfile()
|
||||||
|
userInfo.value = users
|
||||||
|
formData.value.deptId= users.dept.id
|
||||||
|
|
||||||
|
deptInfo.value = {} as DeptVO
|
||||||
|
}else{
|
||||||
|
const dept = await getDept(formData.value.deptId)
|
||||||
|
deptInfo.value = dept
|
||||||
|
userInfo.value = {} as ProfileVO
|
||||||
|
}
|
||||||
|
if (formData.value.userName == ''){
|
||||||
|
const users = await getUserProfile()
|
||||||
|
formData.value.userName= users.nickname
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/** 打开弹窗 */
|
||||||
|
// const open = async (type: string, id?: number) => {
|
||||||
|
// dialogVisible.value = true
|
||||||
|
// dialogTitle.value = t('action.' + type)
|
||||||
|
// formType.value = type
|
||||||
|
// resetForm()
|
||||||
|
// // 修改时,设置数据
|
||||||
|
// if (id) {
|
||||||
|
// formLoading.value = true
|
||||||
|
// try {
|
||||||
|
// formData.value = await KnowledgeApi.getKnowledge(id)
|
||||||
|
// } finally {
|
||||||
|
// formLoading.value = false
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// await getUserInfo()
|
||||||
|
// await getKnowtypeTree()
|
||||||
|
// }
|
||||||
|
// defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
|
||||||
|
/** 提交表单 */
|
||||||
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||||
|
|
||||||
|
/** 重置表单 */
|
||||||
|
const resetForm = () => {
|
||||||
|
formData.value = {
|
||||||
|
id: undefined,
|
||||||
|
typeId: undefined,
|
||||||
|
deptId: '',
|
||||||
|
knowTitle: undefined,
|
||||||
|
userName:'',
|
||||||
|
content: undefined,
|
||||||
|
status: '0',
|
||||||
|
filePath: undefined
|
||||||
|
}
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
const getKnowtypeTree = async () => {
|
||||||
|
knowtypeTree.value = []
|
||||||
|
const data = await KnowtypeApi.getKnowtypeList()
|
||||||
|
const root: Tree = { id: 0, name: 'ESG', children: [] }
|
||||||
|
root.children = handleTree(data, 'id', 'parentId')
|
||||||
|
knowtypeTree.value.push(root)
|
||||||
|
}
|
||||||
|
onMounted(async () => {
|
||||||
|
const id = props.id || queryId
|
||||||
|
if (id) {
|
||||||
|
formLoading.value = true
|
||||||
|
try {
|
||||||
|
formData.value = await KnowledgeApi.getKnowledge(id)
|
||||||
|
} finally {
|
||||||
|
formLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await getUserInfo()
|
||||||
|
await getKnowtypeTree()
|
||||||
|
})
|
||||||
|
</script>
|
175
src/views/bpm/model/KnowledgeDetail1.vue
Normal file
175
src/views/bpm/model/KnowledgeDetail1.vue
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
<template>
|
||||||
|
<!-- <Dialog :title="dialogTitle" v-model="dialogVisible">-->
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="formRules"
|
||||||
|
label-width="100px"
|
||||||
|
v-loading="formLoading"
|
||||||
|
>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="知识标题" prop="knowTitle">
|
||||||
|
<el-input v-model="formData.knowTitle" placeholder="请输入知识标题" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="部门" prop="deptId">
|
||||||
|
<el-input v-model="formData.deptId" v-show="false" />
|
||||||
|
<div class="pull-left" v-show="true" v-if="userInfo?.dept">{{ userInfo?.dept.name }} </div>
|
||||||
|
<div class="pull-left" v-show="true" v-if="deptInfo">{{ deptInfo?.name }} </div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="知识状态" prop="status">
|
||||||
|
<el-radio-group v-model="formData.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in getStrDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>
|
||||||
|
{{ dict.label }}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="知识分类" prop="typeId">
|
||||||
|
<!-- <el-input v-model="formData.typeId" placeholder="请选择知识分类" />-->
|
||||||
|
<el-tree-select
|
||||||
|
v-model="formData.typeId"
|
||||||
|
:data="knowtypeTree"
|
||||||
|
:props="{...defaultProps, lable: 'name'}"
|
||||||
|
check-strictly
|
||||||
|
default-expand-all
|
||||||
|
placeholder="请选择上级分类"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="作者" prop="content">
|
||||||
|
<el-input v-model="formData.userName" readonly />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="内容" prop="content">
|
||||||
|
<Editor v-model="formData.content" height="150px" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="文件路径" prop="filePath">
|
||||||
|
<UploadFile v-model="formData.filePath" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<!-- 子表的表单 -->
|
||||||
|
<el-tabs v-model="subTabsName">
|
||||||
|
<el-tab-pane label="评论" name="comment">
|
||||||
|
<CommentForm ref="commentFormRef" :know-id="formData.id" />
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<!-- <template #footer>-->
|
||||||
|
<!-- <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>-->
|
||||||
|
<!-- <el-button @click="dialogVisible = false">取 消</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </Dialog>-->
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
|
import { KnowledgeApi, KnowledgeVO } from '@/api/bpm/knows/knowledge'
|
||||||
|
import CommentForm from './components/CommentForm.vue'
|
||||||
|
import { getUserProfile, ProfileVO } from '@/api/system/user/profile'
|
||||||
|
import {DeptVO, getDept} from "@/api/system/dept";
|
||||||
|
import {defaultProps, handleTree} from "@/utils/tree";
|
||||||
|
import {KnowtypeApi} from "@/api/bpm/knows/knowtype";
|
||||||
|
import {propTypes} from "@/utils/propTypes";
|
||||||
|
|
||||||
|
/** 知识发布 表单 */
|
||||||
|
defineOptions({ name: 'KnowledgeForm' })
|
||||||
|
const { query } = useRoute() // 查询参数
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
id: propTypes.number.def(undefined)
|
||||||
|
})
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||||
|
const formData = ref({
|
||||||
|
id: undefined,
|
||||||
|
typeId: undefined,
|
||||||
|
deptId: '',
|
||||||
|
knowTitle: undefined,
|
||||||
|
userName:'',
|
||||||
|
content: undefined,
|
||||||
|
status: undefined,
|
||||||
|
filePath: undefined
|
||||||
|
})
|
||||||
|
const formRules = reactive({
|
||||||
|
typeId: [{ required: true, message: '类型id不能为空', trigger: 'blur' }],
|
||||||
|
knowTitle: [{ required: true, message: '知识标题不能为空', trigger: 'blur' }]
|
||||||
|
})
|
||||||
|
const formRef = ref() // 表单 Ref
|
||||||
|
const knowtypeTree = ref() // 树形结构
|
||||||
|
const userInfo = ref({} as ProfileVO )
|
||||||
|
const deptInfo = ref({} as DeptVO )
|
||||||
|
/** 子表的表单 */
|
||||||
|
const subTabsName = ref('comment')
|
||||||
|
const commentFormRef = ref()
|
||||||
|
const getUserInfo = async () => {
|
||||||
|
if ( formData.value.deptId == '' ){
|
||||||
|
const users = await getUserProfile()
|
||||||
|
userInfo.value = users
|
||||||
|
formData.value.deptId= users.dept.id
|
||||||
|
|
||||||
|
deptInfo.value = {} as DeptVO
|
||||||
|
}else{
|
||||||
|
const dept = await getDept(formData.value.deptId)
|
||||||
|
deptInfo.value = dept
|
||||||
|
userInfo.value = {} as ProfileVO
|
||||||
|
}
|
||||||
|
if (formData.value.userName == ''){
|
||||||
|
const users = await getUserProfile()
|
||||||
|
formData.value.userName= users.nickname
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** 重置表单 */
|
||||||
|
const resetForm = () => {
|
||||||
|
formData.value = {
|
||||||
|
id: undefined,
|
||||||
|
typeId: undefined,
|
||||||
|
deptId: '',
|
||||||
|
knowTitle: undefined,
|
||||||
|
userName:'',
|
||||||
|
content: undefined,
|
||||||
|
status: '0',
|
||||||
|
filePath: undefined
|
||||||
|
}
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
const getKnowtypeTree = async () => {
|
||||||
|
knowtypeTree.value = []
|
||||||
|
const data = await KnowtypeApi.getKnowtypeList()
|
||||||
|
const root: Tree = { id: 0, name: 'ESG', children: [] }
|
||||||
|
root.children = handleTree(data, 'id', 'parentId')
|
||||||
|
knowtypeTree.value.push(root)
|
||||||
|
}
|
||||||
|
const queryId = query.id as unknown as number // 从 URL 传递过来的 id 编号
|
||||||
|
onMounted(() => {
|
||||||
|
const id = props.id || queryId;
|
||||||
|
if (id) {
|
||||||
|
formLoading.value = true
|
||||||
|
try {
|
||||||
|
formData.value = KnowledgeApi.getKnowledge(id)
|
||||||
|
} finally {
|
||||||
|
formLoading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getUserInfo()
|
||||||
|
getKnowtypeTree()
|
||||||
|
})
|
||||||
|
</script>
|
Loading…
Reference in New Issue
Block a user