模版--查看页dialog

82 阅读1分钟

一. 编辑页代码

<template>
    <el-dialog width="55%" :visible.sync="open" :close-on-click-modal="false" title="消息公告详情" append-to-body :before-close="closePage">
        <!-- 表单 -->
        <el-form ref="formOne" :model="formData" label-width="120px">
            <el-row>
                <el-col :span="12">
                    <el-form-item label="信息类型">
                        <el-select v-model="formData.messageType" placeholder="请选择" style="width: 200px" clearable>
                            <el-option value="1" label="系统公告"></el-option>
                            <el-option value="2" label="业务流程信息"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="阅读状态">
                        <el-select v-model="formData.isRead" placeholder="请选择" style="width: 200px" clearable>
                            <el-option value="1" label="已读"></el-option>
                            <el-option value="2" label="未读"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="处理状态">
                        <el-select v-model="formData.isDeal" placeholder="请选择" style="width: 200px" clearable>
                            <el-option value="1" label="已处理"></el-option>
                            <el-option value="2" label="未处理"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="信息标题">
                        <el-input v-model="formData.messageTitle" placeholder="请输入" style="width: 200px" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="平台">
                        <el-select v-model="formData.platform" placeholder="请选择" style="width: 200px" clearable>
                            <el-option value="1" label="小程序"></el-option>
                            <el-option value="2" label="web端"></el-option>
                            <el-option value="3" label="官网"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="通知时间">
                        <el-input v-model="formData.createTime" placeholder="请输入" style="width: 200px" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item :label="$t('system_notice_index_520')">
                        <editor v-model="formData.content" :min-height="192" />
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <span slot="footer" class="dialog-footer" style="text-align: center">
            <el-button type="primary" size="mini" icon="el-icon-tickets" @click="saveInfo">确定</el-button>
            <el-button  size="mini" icon="el-icon-close" @click="closePage">关闭</el-button>
        </span>
    </el-dialog>
</template>

<script>
import { viewData } from '@/api/system/newsBulletin';

export default {
    name: 'edit',
    data() {
        return {
            formData: {},
            open: false
        };
    },
    created() {},
    methods: {
        //打开查看dialog
        openPage(id) {
            console.log('111', id);
            this.open = true;
            viewData(id).then(res => {
                this.formData = res.data;
                console.log('data', this.formData);
            });
        },

        //保存按钮
        saveInfo() {
            this.$refs['formOne'].validate(valid => {
                if (valid) {
                    this.closePage();
                }
            });
        },
        //关闭按钮
        closePage() {
            this.open = false;
        }
    }
};
</script>

二.主页代码

[1] 主页查看按钮事件

主页ref调编辑页打开事件

        //查看
        handleView(row) {
            this.$refs.editInfo.openPage(row.messageId);
        },

[2] 全部代码

<template>
    <div class="app-container">
        <div>
            <!-- 表单 -->
            <el-form ref="formOne" :model="formData" label-width="80px" :inline="true">
                <el-form-item label="阅读状态">
                    <el-select v-model="formData.isRead" placeholder="请选择" style="width: 200px" clearable>
                        <el-option value="1" label="已读"></el-option>
                        <el-option value="2" label="未读"></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="处理状态">
                    <el-select v-model="formData.isDeal" placeholder="请选择" style="width: 200px" clearable>
                        <el-option value="1" label="已处理"></el-option>
                        <el-option value="2" label="未处理"></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="信息标题">
                    <el-input v-model="formData.messageTitle" placeholder="请输入" style="width: 200px" clearable></el-input>
                </el-form-item>
                <!-- 操作 -->
                <el-form-item>
                    <SeaButton :label="$t('znBtn.search')" @seaClick="handleQuery" />
                    <ResButton :label="$t('znBtn.reset')" @resClick="resetQuery" />
                </el-form-item>
            </el-form>
            <!-- 表格 -->
            <el-table :data="tableData" style="width: 100%" v-loading="loading" highlight-current-row @sort-change="handleSortChange">
                <el-table-column prop="messageType" label="信息类型" align="center" :formatter="conversion"></el-table-column>
                <el-table-column prop="isRead" label="阅读状态" align="center" :formatter="conversion"></el-table-column>
                <el-table-column prop="isDeal" label="处理状态" align="center" :formatter="conversion"></el-table-column>
                <el-table-column prop="messageTitle" label="信息标题" align="center"></el-table-column>
                <el-table-column prop="platform" label="平台" align="center" :formatter="conversion"></el-table-column>
                <el-table-column header-align="center" align="center" prop="createTime" label="通知时间"></el-table-column>
                <el-table-column show-overflow-tooltip label="操作" fixed="right" min-width="100" align="center">
                    <template v-slot="{ row }">
                        <el-button size="mini" type="text" icon="el-icon-edit" @click="handleView(row)">查看</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <!--分页查询-->
            <pagination v-show="total > 0" :total="total" :page.sync="formData.pageNum" :limit.sync="formData.pageSize" @pagination="getTable" />
        </div>
        <EditInfo ref="editInfo" />
    </div>
</template>

<script>
import { listData } from '@/api/system/newsBulletin';
export default {
    components: {
        EditInfo: () => import('./edit.vue')
    },
    data() {
        return {
            loading: false, //遮罩层
            formData: this.queryForm(), //表单参数
            tableData: [], //表格参数
            total: 0 // 总条数
        };
    },
    created() {
        this.getTable();
    },
    methods: {
        // 初始化表单
        queryForm() {
            return {
                pageNum: 1,
                pageSize: 10,
                orderColumn: 'createTime',
                orderTurn: 'DESC'
            };
        },
        //获取表格
        getTable() {
            this.loading = true;
            listData(this.formData).then(res => {
                this.tableData = res.rows;
                this.total = res.total;
                this.loading = false;
            });
        },
        /************************************按钮*****************************************/
        //搜索按钮操作
        handleQuery() {
            this.getTable();
        },
        //重置按钮
        resetQuery() {
            this.formData = this.queryForm();
            this.getTable();
        },
        //查看
        handleView(row) {
            this.$refs.editInfo.openPage(row.messageId);
        },
        //排序
        handleSortChange() {}
    }
};
</script>