Commit 0f477de8 by lijiabin

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

1:后台的案例库应用状态[已使用],禁止用户在前台编辑
2:[审核通过]的案例库,用户在前台编辑提交时二次提示
parent c8a47b69
/**
* 添加或更新案例库DTO
*/
import { TagTypeEnum, TagLevelEnum, BooleanFlag, ReleaseStatusTypeEnum } from '@/constants'
import {
TagTypeEnum,
TagLevelEnum,
BooleanFlag,
ReleaseStatusTypeEnum,
AuditStatusEnum,
} from '@/constants'
type TagItemDto = {
tagId: number
......@@ -31,4 +37,5 @@ export interface CaseDetailDto {
cultureKeywordSub: string[]
sceneKeywordMain: string
sceneKeywordSub: string[]
isAudit: AuditStatusEnum
}
......@@ -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"
type="primary"
@click="handleSubmit(ReleaseStatusTypeEnum.PUBLISH)"
:loading="loading"
>
提交
</el-button>
......@@ -113,7 +114,13 @@ import type { AddOrUpdateCaseDto } from '@/api'
import SelectTags from '@/components/common/SelectTags/index.vue'
import type { FormInstance } from 'element-plus'
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 { useUserStore } from '@/stores'
import { storeToRefs } from 'pinia'
......@@ -122,7 +129,7 @@ const router = useRouter()
const userStore = useUserStore()
const { userInfo } = storeToRefs(userStore)
const formRef = useTemplateRef<FormInstance>('formRef')
const loading = ref(false)
const rules = {
title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
content: [{ required: true, message: '请输入内容', trigger: 'blur' }],
......@@ -164,14 +171,7 @@ const handleCancel = () => {
router.back()
}
// 预览
// const handlePreview = () => {
// console.log('预览', form)
// ElMessage.success('预览功能待实现')
// }
// 保存草稿
// 保存
const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto => {
const {
mainTagId,
......@@ -224,15 +224,30 @@ const transformData = (releaseStatus: ReleaseStatusTypeEnum): AddOrUpdateCaseDto
return obj
}
const showSubmitGuide = ref(false)
// 提交
const handleSubmit = async (releaseStatus: ReleaseStatusTypeEnum) => {
await formRef.value?.validate()
console.log('form', { ...transformData(releaseStatus) })
const res = await addOrUpdateCase({ ...transformData(releaseStatus) })
if (res) {
if (showSubmitGuide.value) {
await ElMessageBox.confirm('该案例库已审核通过,修改后需重新审核,确定提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
}
loading.value = true
try {
await addOrUpdateCase({ ...transformData(releaseStatus) })
ElMessage.success('提交成功')
resetForm()
router.back()
} catch (error) {
console.log('error', error)
} finally {
loading.value = false
}
}
......@@ -340,6 +355,13 @@ onActivated(async () => {
}
form.value = obj
console.log('form', form.value)
// 已经同意的案例库 二次修改需要提示
if (data.isAudit === AuditStatusEnum.AGREED) {
showSubmitGuide.value = true
} else {
showSubmitGuide.value = false
}
} else {
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