Commit 0f477de8 by lijiabin

【需求 20331】 feat: 优化案例库相关内容

1:后台的案例库应用状态[已使用],禁止用户在前台编辑
2:[审核通过]的案例库,用户在前台编辑提交时二次提示
parent c8a47b69
/** /**
* 添加或更新案例库DTO * 添加或更新案例库DTO
*/ */
import { TagTypeEnum, TagLevelEnum, BooleanFlag, ReleaseStatusTypeEnum } from '@/constants' import {
TagTypeEnum,
TagLevelEnum,
BooleanFlag,
ReleaseStatusTypeEnum,
AuditStatusEnum,
} from '@/constants'
type TagItemDto = { type TagItemDto = {
tagId: number tagId: number
...@@ -31,4 +37,5 @@ export interface CaseDetailDto { ...@@ -31,4 +37,5 @@ export interface CaseDetailDto {
cultureKeywordSub: string[] cultureKeywordSub: string[]
sceneKeywordMain: string sceneKeywordMain: string
sceneKeywordSub: string[] sceneKeywordSub: string[]
isAudit: AuditStatusEnum
} }
...@@ -96,6 +96,7 @@ ...@@ -96,6 +96,7 @@
class="px-6 py-2 bg-blue-500 hover:bg-blue-600 rounded-lg text-white text-sm font-medium shadow-sm hover:shadow-md transition-all duration-200" class="px-6 py-2 bg-blue-500 hover:bg-blue-600 rounded-lg text-white text-sm font-medium shadow-sm hover:shadow-md transition-all duration-200"
type="primary" type="primary"
@click="handleSubmit(ReleaseStatusTypeEnum.PUBLISH)" @click="handleSubmit(ReleaseStatusTypeEnum.PUBLISH)"
:loading="loading"
> >
提交 提交
</el-button> </el-button>
...@@ -113,7 +114,13 @@ import type { AddOrUpdateCaseDto } from '@/api' ...@@ -113,7 +114,13 @@ import type { AddOrUpdateCaseDto } from '@/api'
import SelectTags from '@/components/common/SelectTags/index.vue' import SelectTags from '@/components/common/SelectTags/index.vue'
import type { FormInstance } from 'element-plus' import type { FormInstance } from 'element-plus'
import type { TagItemDto } from '@/api' import type { TagItemDto } from '@/api'
import { TagTypeEnum, TagLevelEnum, BooleanFlag, ReleaseStatusTypeEnum } from '@/constants' import {
TagTypeEnum,
TagLevelEnum,
BooleanFlag,
ReleaseStatusTypeEnum,
AuditStatusEnum,
} from '@/constants'
import { selectDepOrUser } from '@/utils' import { selectDepOrUser } from '@/utils'
import { useUserStore } from '@/stores' import { useUserStore } from '@/stores'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
...@@ -122,7 +129,7 @@ const router = useRouter() ...@@ -122,7 +129,7 @@ const router = useRouter()
const userStore = useUserStore() const userStore = useUserStore()
const { userInfo } = storeToRefs(userStore) const { userInfo } = storeToRefs(userStore)
const formRef = useTemplateRef<FormInstance>('formRef') const formRef = useTemplateRef<FormInstance>('formRef')
const loading = ref(false)
const rules = { const rules = {
title: [{ required: true, message: '请输入标题', trigger: 'blur' }], title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
content: [{ required: true, message: '请输入内容', trigger: 'blur' }], content: [{ required: true, message: '请输入内容', trigger: 'blur' }],
...@@ -164,14 +171,7 @@ const handleCancel = () => { ...@@ -164,14 +171,7 @@ const handleCancel = () => {
router.back() router.back()
} }
// 预览 // 保存
// const handlePreview = () => {
// console.log('预览', form)
// ElMessage.success('预览功能待实现')
// }
// 保存草稿
const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto => { const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto => {
const { const {
mainTagId, mainTagId,
...@@ -224,15 +224,30 @@ const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto ...@@ -224,15 +224,30 @@ const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto
return obj return obj
} }
const showSubmitGuide = ref(false)
// 提交 // 提交
const handleSubmit = async (releaseStatus: ReleaseStatusTypeEnum) => { const handleSubmit = async (releaseStatus: ReleaseStatusTypeEnum) => {
await formRef.value?.validate() await formRef.value?.validate()
console.log('form', { ...transformData(releaseStatus) })
const res = await addOrUpdateCase({ ...transformData(releaseStatus) }) if (showSubmitGuide.value) {
if (res) { await ElMessageBox.confirm('该案例库已审核通过,修改后需重新审核,确定提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
}
loading.value = true
try {
await addOrUpdateCase({ ...transformData(releaseStatus) })
ElMessage.success('提交成功') ElMessage.success('提交成功')
resetForm() resetForm()
router.back() router.back()
} catch (error) {
console.log('error', error)
} finally {
loading.value = false
} }
} }
...@@ -340,6 +355,13 @@ onActivated(async () => { ...@@ -340,6 +355,13 @@ onActivated(async () => {
} }
form.value = obj form.value = obj
console.log('form', form.value) console.log('form', form.value)
// 已经同意的案例库 二次修改需要提示
if (data.isAudit === AuditStatusEnum.AGREED) {
showSubmitGuide.value = true
} else {
showSubmitGuide.value = false
}
} else { } else {
showSubmissionGuide() showSubmissionGuide()
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment