行业动态模块:为editNews添加了show模式,为NewsList添加了点标题就show详情的功能

This commit is contained in:
高子兴 2024-07-06 02:26:45 +08:00
parent 2fb294878f
commit 7a11813958
2 changed files with 33 additions and 14 deletions

View File

@ -234,6 +234,12 @@ onMounted(() => {
modeTitle.value = '修改资讯'; modeTitle.value = '修改资讯';
fetchNewsDetail(); fetchNewsDetail();
} }
else if (props.mode === 'show'){
createMode.value = false;
id.value = props.id;
modeTitle.value = '资讯详情';
fetchNewsDetail();
}
} }
else if (route.query.mode === 'create' || route.params.mode === 'create') { else if (route.query.mode === 'create' || route.params.mode === 'create') {
createMode.value = true; createMode.value = true;
@ -441,7 +447,7 @@ onMounted(() => {
<ElForm :model="form" label-width="120px" @submit.prevent="handleCommit"> <ElForm :model="form" label-width="120px" @submit.prevent="handleCommit">
<h2>{{ modeTitle }}</h2> <h2>{{ modeTitle }}</h2>
<ElFormItem label="新闻标题" required> <ElFormItem label="新闻标题" required>
<ElInput v-model="form.title" placeholder="请输入新闻标题" required></ElInput> <ElInput v-model="form.title" placeholder="请输入新闻标题" :disabled="props.mode === 'show'" required></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="新闻图片路径" required> <ElFormItem label="新闻图片路径" required>
<el-upload <el-upload
@ -455,6 +461,7 @@ onMounted(() => {
list-type="picture-card" list-type="picture-card"
auto-upload auto-upload
v-model:file-list="fileList" v-model:file-list="fileList"
:disabled="props.mode === 'show'"
required required
> >
<template #file="{ file }"> <template #file="{ file }">
@ -470,6 +477,7 @@ onMounted(() => {
<span <span
class="el-upload-list__item-delete" class="el-upload-list__item-delete"
@click="handleRemove(file)" @click="handleRemove(file)"
v-if="props.mode !== 'show'"
> >
<el-icon><Delete/></el-icon> <el-icon><Delete/></el-icon>
</span> </span>
@ -492,19 +500,19 @@ onMounted(() => {
ref="editorContainerElement"> ref="editorContainerElement">
<div class="editor-container__editor"> <div class="editor-container__editor">
<div ref="editorElement"> <div ref="editorElement">
<ckeditor v-if="isLayoutReady" v-model="form.content" :editor="editor" :config="config"/> <ckeditor v-if="isLayoutReady" v-model="form.content" :editor="editor" :config="config" :disabled="props.mode === 'show'"/>
</div> </div>
</div> </div>
</div> </div>
</ElFormItem> </ElFormItem>
<ElFormItem label="作者" required> <ElFormItem label="作者" required>
<ElInput v-model="form.author" placeholder="请输入作者" required></ElInput> <ElInput v-model="form.author" placeholder="请输入作者" :disabled="props.mode === 'show'" required></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="新闻简介" required> <ElFormItem label="新闻简介" required>
<ElInput v-model="form.summary" placeholder="请输入新闻简介" required></ElInput> <ElInput v-model="form.summary" placeholder="请输入新闻简介" :disabled="props.mode === 'show'" required></ElInput>
</ElFormItem> </ElFormItem>
<ElFormItem label="选择租户" required> <ElFormItem label="选择租户" required>
<ElSelect v-model="form.tenant" placeholder="请选择" class="dynamic-width-select"> <ElSelect v-model="form.tenant" placeholder="请选择" class="dynamic-width-select" :disabled="props.mode === 'show'">
<ElOption <ElOption
v-for="option in options" v-for="option in options"
:key="option" :key="option"
@ -513,9 +521,9 @@ onMounted(() => {
></ElOption> ></ElOption>
</ElSelect> </ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem> <ElFormItem v-if="props.mode !== 'show'">
<ElButton type="primary" native-type="submit">确定</ElButton> <ElButton type="primary" native-type="submit">确定</ElButton>
<ElButton @click="handleCancel">取消</ElButton> <ElButton @click="handleCancel">{{ props.mode === 'show' ? '返回' : '取消' }}</ElButton>
</ElFormItem> </ElFormItem>
</ElForm> </ElForm>
</div> </div>

View File

@ -168,9 +168,9 @@ const handleSelectionChange = (newSelections) => {
const handleEditInTable = async (index) => { const handleEditInTable = async (index) => {
// router.push({name: 'editNews', query: {mode: 'edit', id: newsData.value[index].id}}) // router.push({name: 'editNews', query: {mode: 'edit', id: newsData.value[index].id}})
editNewsDialogMode.value = 'edit' editNewsDialogMode.value = 'edit'
editId.value = newsData.value[index].id editId.value = newsData.value[index].id
openEditNewsDialog() openEditNewsDialog()
}; };
const handleDeleteInTable = async (index) => { const handleDeleteInTable = async (index) => {
@ -199,10 +199,16 @@ const openEditNewsDialog = () => {
const setNewsDialogInvisible = (changed) => { const setNewsDialogInvisible = (changed) => {
editNewsDialogVisible.value = false; editNewsDialogVisible.value = false;
if (changed){ if (changed) {
refreshNewsList(); refreshNewsList();
} }
} }
const handleShowDetail = (index) => {
editNewsDialogMode.value = 'show'
editId.value = newsData.value[index].id
openEditNewsDialog()
}
</script> </script>
<template> <template>
@ -239,10 +245,15 @@ const setNewsDialogInvisible = (changed) => {
<el-button type="danger" @click="handleDeleteButton">删除</el-button> <el-button type="danger" @click="handleDeleteButton">删除</el-button>
</div> </div>
<el-table :data="newsData" style="width: 100%;" <el-table :data="newsData" style="width: 100%;" @selection-change="handleSelectionChange">
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="title" label="新闻标题" align="center"></el-table-column> <el-table-column prop="title" label="新闻标题" align="center">
<template #default="scope">
<div @click="handleShowDetail(scope.$index)" style="cursor: pointer;">
{{ scope.row.title }}
</div>
</template>
</el-table-column>
<el-table-column prop="author" label="作者" align="center"></el-table-column> <el-table-column prop="author" label="作者" align="center"></el-table-column>
<el-table-column prop="summary" label="新闻简介" align="center"></el-table-column> <el-table-column prop="summary" label="新闻简介" align="center"></el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">