Commit 9ecaf19a by 王立鹏

Merge branch '线上优化/线上优化第三版' into 'master'

线上优化/线上优化第三版

See merge request !8
parents 4c7cb11f cd16fba5
......@@ -165,8 +165,13 @@
</div>
<!-- 文章内容 -->
<div v-if="!isHtml" class="prose prose-lg max-w-none">
<div class="text-gray-700 leading-relaxed space-y-4 whitespace-pre-line text-17px">
{{ articleDetail?.content }}
<div class="text-gray-700 leading-relaxed space-y-1 text-17px">
<template v-for="(line, i) in (articleDetail?.content || '').split(/\n/)" :key="i">
<div v-if="line.trim()" class="indent-2em">
{{ line }}
</div>
<div v-else class="h-2" aria-hidden="true" />
</template>
</div>
<!-- 图片内容 -->
......
......@@ -233,7 +233,7 @@ const { play } = useAnimate(
},
)
const [form, resetForm] = useResetData({
const [form, , forReset] = useResetData({
title: '',
content: '',
imgUrl: '',
......@@ -296,7 +296,10 @@ const handlePublish = async (releaseStatus: ReleaseStatusTypeEnum) => {
await textMap[type].api(transformForm(releaseStatus))
loading.value = false
push.success(releaseStatus === ReleaseStatusTypeEnum.PUBLISH ? '发布成功' : '存草稿成功')
resetForm()
// resetForm()
forReset()
// form.value.imgUrl = ''
console.log(form.value)
} catch (error) {
console.error(error)
} finally {
......
export function useResetData<T>(initialValue: T) {
const state = ref(structuredClone(initialValue))
const reset = () => {
// state.value = structuredClone(initialValue)
// 优化 防止 出现类似toRef引用丢失问题
Object.assign(state.value, structuredClone(initialValue))
state.value = structuredClone(initialValue)
}
return [state, reset] as [Ref<T>, () => void]
const forReset = () => {
// for循环便利 重置 避免部分属性使用到toRef引用丢失问题
for (const key in initialValue) {
state.value[key] = initialValue[key]
}
}
return [state, reset, forReset] as [Ref<T>, () => void, () => void]
}
......@@ -248,10 +248,6 @@ const columns: ExportColumn<BackendShopItemDto>[] = [
return value === 0 ? '待发放' : value === 1 ? '已发放' : '已取消'
},
},
{
title: '发放人备注',
key: 'memo',
},
]
// 对话框
......
......@@ -203,7 +203,11 @@
v-model="form.pushTime"
type="datetime"
placeholder="选择推送时间"
format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
:disabled-date="(time: Date) => time.getTime() < Date.now() - 1000 * 60 * 60 * 24"
:disabled-minutes="disabledMinutesOnlyTens"
:disabled-seconds="disabledSecondsOnlyZero"
value-format="X"
/>
</el-form-item>
......@@ -258,7 +262,11 @@
v-model="form.pushTime"
type="datetime"
placeholder="选择推送时间"
format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
:disabled-date="(time: Date) => time.getTime() < Date.now() - 1000 * 60 * 60 * 24"
:disabled-minutes="disabledMinutesOnlyTens"
:disabled-seconds="disabledSecondsOnlyZero"
value-format="X"
/>
</el-form-item>
......@@ -285,7 +293,11 @@
v-model="form.sendTime"
type="datetime"
placeholder="选择发布时间"
format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
:disabled-date="(time: Date) => time.getTime() < Date.now() - 1000 * 60 * 60 * 24"
:disabled-minutes="disabledMinutesOnlyTens"
:disabled-seconds="disabledSecondsOnlyZero"
value-format="X"
/>
</el-form-item>
......@@ -389,6 +401,11 @@ const [form, resetForm] = useResetData({
articleVideoUrl: '',
})
// 时间选择只允许整十分(:00、:10、:20、:30、:40、:50),秒固定为 0
const disabledSecondsOnlyZero = () => Array.from({ length: 59 }, (_, i) => i + 1)
const disabledMinutesOnlyTens = () =>
Array.from({ length: 60 }, (_, i) => i).filter((m) => m % 10 !== 0)
const rules: Record<string, FormItemRule[]> = {
title: [{ required: true, message: '请输入文章标题', trigger: 'blur' }],
content: [{ required: true, message: '请输入文章内容', trigger: 'blur' }],
......@@ -615,6 +632,7 @@ onActivated(async () => {
selectedDepts.value = []
selectedUsers.value = []
} else {
form.value.isPushAll = BooleanFlag.NO
selectedDepts.value =
data.pushList
?.filter((item) => item.valueType === 1)
......
......@@ -180,11 +180,10 @@
type="datetime"
placeholder="请选择推送时间"
value-format="X"
:disabled-date="
(time: Date) => {
return time.getTime() < Date.now() - 1000 * 60 * 60 * 24
}
"
format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
:disabled-minutes="disabledMinutesOnlyTens"
:disabled-seconds="disabledSecondsOnlyZero"
/>
</div>
</el-form-item>
......@@ -239,11 +238,10 @@
placeholder="选择发布时间"
size="small"
value-format="X"
:disabled-date="
(time: Date) => {
return time.getTime() < Date.now() - 1000 * 60 * 60 * 24
}
"
format="YYYY-MM-DD HH:mm"
time-format="HH:mm"
:disabled-minutes="disabledMinutesOnlyTens"
:disabled-seconds="disabledSecondsOnlyZero"
style="width: 250px"
/>
<el-switch
......@@ -413,6 +411,11 @@ const [form, resetData] = useResetData({
summary: '',
})
// 时间选择只允许整十分(:00、:10、:20、:30、:40、:50),秒固定为 0
const disabledSecondsOnlyZero = () => Array.from({ length: 59 }, (_, i) => i + 1)
const disabledMinutesOnlyTens = () =>
Array.from({ length: 60 }, (_, i) => i).filter((m) => m % 10 !== 0)
const selectedDepts = ref<{ id: string; name: string }[]>([])
const selectedUsers = ref<{ id: string; name: string }[]>([])
const selectedText = computed(() => {
......@@ -592,7 +595,7 @@ const handleSubmit = async (releaseStatus: ReleaseStatusTypeEnum) => {
await formRef.value?.validate()
loading.value = true
try {
addOrUpdateArticle(tansformData(releaseStatus))
await addOrUpdateArticle(tansformData(releaseStatus))
push.success(releaseStatus === ReleaseStatusTypeEnum.PUBLISH ? '发布成功' : '存草稿成功')
resetPageData()
router.push('/')
......
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