Commit 9ecaf19a by 王立鹏

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

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

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