zhanghua
2022-12-14 f979c8991929e0e8372f86b34537172d77c3739e
src/views/operate/message/myIndex/index.vue
@@ -3,26 +3,29 @@
        <header>
            <div class="header-nav">
                <span class="nav-left">数据筛选</span>
                <span class="nav-right" @click="showMoreParamsDialog">高级搜索</span>
            </div>
            <div class="header-content">
                <div class="search">
                    <span>输入查询:</span>
                    <el-input placeholder="消息标题" v-model="context"></el-input>
                </div>
                <div class="message-status">
                <div class="search">
                    <span>消息状态:</span>
                    <el-select v-model="messageStatus" placeholder="请选择消息状态">
                        <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value">
                        </el-option>
                    </el-select>
                </div>
                <div class="message-kind">
                <div class="search">
                    <span>消息分类:</span>
                    <el-select v-model="messageType" placeholder="请选择消息分类">
                        <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id">
                        </el-option>
                    </el-select>
                </div>
                <div class="search">
                  <span>创建时间:</span>
                  <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
                </div>
                <div class="find">
                    <el-button type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
@@ -34,7 +37,7 @@
            <div class="mainContent">
                <div class="main-nav">
                    <span>数据列表</span>
                    <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">添加</el-button>
                    <el-button class="button-addition" type="primary" icon="el-icon-plus" @click="handleOpera(null, 'create')">添加</el-button>
                </div>
                <!-- 数据展示 -->
                <el-table ref="multipleTable"
@@ -48,28 +51,22 @@
                    </el-table-column>
                    <el-table-column prop="head" label="标题" min-width="10">
                    </el-table-column>
                    <el-table-column prop="updateTime" label="修改时间" min-width="10">
                        <template slot-scope="scope">
                            <span>{{changeTime(scope.row)}}</span>
                        </template>
                    <el-table-column prop="createTime" label="创建时间" min-width="10">
                    </el-table-column>
                    <el-table-column prop="targetFrom" label="发布人员" min-width="15">
                    <el-table-column prop="createUser" label="发布人员" min-width="15">
                    </el-table-column>
                    <el-table-column prop="channelCode" label="消息分类" min-width="10">
                        <template slot-scope="scope">
                            <span>{{ getMessageType(scope.row.channelCode) }}</span>
                        </template>
                    <el-table-column prop="messageTypeName" label="消息栏目" min-width="10">
                    </el-table-column>
                    <el-table-column prop="status" label="发布状态" min-width="5">
                        <template slot-scope="scope">
                        <template v-if="scope.row.status" slot-scope="scope">
                            {{scope.row.status === 0 ? '未发布' :'已发布'}}
                        </template>
                    </el-table-column>
                    <el-table-column prop="operation" label="操作" min-width="15">
                        <template slot-scope="scope">
                            <div class="operation">
                                <el-link icon="el-icon-view" :underline="false" @click="handleView(scope.row)">查看</el-link>
                                <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleEdit(scope.row)">编辑</el-link>
                                <el-link icon="el-icon-view" :underline="false" @click="handleOpera(scope.row, 'view')">查看</el-link>
                                <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleOpera(scope.row, 'update')">编辑</el-link>
                                <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false"
                                    @click="handleDelete([scope.row.id])">删除</el-link>
                            </div>
@@ -77,19 +74,8 @@
                    </el-table-column>
                </el-table>
                <!-- 新建消息 -->
                <el-dialog title="新建消息" :visible.sync="dialogCreate" width="80%"
                    :before-close="handleConfirmClose">
                    <MyEdit @closeMyDialog="closeDialog" :type="'create'" :myDataRow="null"></MyEdit>
                </el-dialog>
                <!-- 消息详情 -->
                <el-dialog title="消息详情" :visible.sync="dialogView" v-if="dialogView" width="45%"
                    :before-close="handleClose">
                    <MyView @closeDialog="closeDialog" :myDataRow="tableRowData">></MyView>
                </el-dialog>
                <!-- 编辑页面 -->
                <el-dialog title="编辑消息" :visible.sync="dialogEdit" width="80%"
                    :before-close="handleClose">
                    <MyEdit  @closeDialog="closeDialog" :myDataRow="tableRowData" :type="'update'"></MyEdit>
                <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" :visible.sync="isShowDialog" width="80%">
                    <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" :myDataRow="tableRowData"></my-edit>
                </el-dialog>
                <!-- tools -->
                <div class="tools">
@@ -115,34 +101,39 @@
                    </div>
                </div>
            </div>
            <el-dialog
                title="高级参数"
                :visible.sync="isShowMoreParams"
                width="30%"
                :before-close="handleClose">
            </el-dialog>
        </main>
    </div>
</template>
<script>
import helper from '@/utils/mydate'
import MyView from './myview'
import MyEdit from './update'
import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement";
import {SUCCESS_CODE} from "@/utils";
export default {
    components: { MyView, MyEdit },
    computed: {
      getDialogTitle() {
        if (this.dialogType === 'create') {
          return '创建';
        }
        if (this.dialogType === 'update') {
          return '更新';
        }
        if (this.dialogType === 'view') {
          return '查看';
        }
      }
    },
    data() {
        return {
            tableData: [],
            tableRowData: null,
            isShowMoreParams: false,
            context: '',
            dialogEdit: false,
            dialogCreate: false,
            dialogView: false,
            context: null,
            isShowDialog: false,
            dialogType: false,
            totalNum: null,
            pageSize: 10,
            currentPage: 1,
@@ -150,20 +141,21 @@
            unsame: false,
            myIdx: 0,
            preMyIdx: 0,
            datetime: null,
            options: [
                {
                    value: 0,
                    label: '批量操作',
                    disabled: true,
                },
                {
                    value: 1,
                    label: '批量启用',
                },
                {
                    value: 2,
                    label: '批量禁用',
                },
                // {
                //     value: 1,
                //     label: '批量启用',
                // },
                // {
                //     value: 2,
                //     label: '批量禁用',
                // },
                {
                    value: 3,
                    label: '批量删除',
@@ -196,11 +188,11 @@
                    columnName:'站内信',
                },
                {
                    id:'02',
                    id:'03',
                    columnName:'邮件',
                },
                {
                    id:'03',
                    id:'02',
                    columnName:'短信',
                }
            ]
@@ -221,32 +213,24 @@
          this.messageStatus = 2;
          this.messageType = '00';
          this.context = '';
          this.getMessageList();
        },
        // 查看
        handleView(data){
        handleOpera(data, type){
            this.tableRowData = data;
            this.dialogView = true;
        },
         // 编辑
        handleEdit(data){
            this.tableRowData = data;
            this.dialogEdit = true;
            this.dialogType = type;
            this.isShowDialog = true;
        },
        // 删除信息
        handleDelete(idarr) {
            this.$confirm('确认删除?')
                .then(() => {
                  deleteMessage(idarr)
                      .then(({ code, message }) => {
                        if (code === SUCCESS_CODE) {
                          this.getMessageList();
                          this.$message({ type: 'success', message });
                        } else {
                          this.$message({ type: 'error', message });
                        }
                  deleteMessage({ ids: idarr.join(',') })
                      .then(() => {
                        this.getMessageList();
                        this.$message.success('操作成功');
                      })
                      .catch(err => { this.$message({ type: 'error', message: err }) });
                })
@@ -256,14 +240,19 @@
        getMessageList() {
          const messageParam = {
            current: this.currentPage,
            size: this.pageSize,
            channelCode: this.messageType,
            status: this.messageStatus,
            head: this.context
            pageSize: this.pageSize,
            channelCode: this.messageType === '00' ? null : this.messageType,
            status: this.messageStatus === 2 ? null : this.messageStatus,
            head: this.context,
            startTime: this.datetime ? this.datetime[0] : null,
            endTime: this.datetime ? this.datetime[1] : null
          }
          getMessageList(messageParam)
              .then(({ data }) => {
                this.tableData = [];
              .then(({ records, total ,size}) => {
                this.tableData = records;
                this.totalNum = total;
                this.pageSize=size;
              })
              .catch(err => {
                this.$message({ type: 'error', message: err });
@@ -314,7 +303,7 @@
                            }
                        })
                })
                .catch(err => { console.log(err) })
                .catch(err => {  })
        },
        // 表格监听
@@ -325,12 +314,6 @@
            })
            this.all = list.length === this.tableData.length;
        },
        // 修改时间格式
        changeTime({ updateTime }) {
            return helper(updateTime);
        },
        // 全选
        selectAll() {
            this.$refs.multipleTable.toggleAllSelection();
@@ -358,38 +341,10 @@
            this.getMessageList();
        },
        showMoreParamsDialog() {
          this.isShowMoreParams = true;
        },
        // 关闭弹窗
        handleClose(done) {
            done();
        },
        // 确认关闭弹窗
        handleConfirmClose(done) {
            this.$confirm('确认关闭?')
                .then(_ => {
                    done();
                })
                .catch(err => {
                    console.log(err);
                })
        },
        // 自定义关闭弹窗
        closeDialog({ flag, index }) {
            this.dialogCreate = flag;
            this.dialogView = flag;
            if (index === 1) {
                this.getMessageList();
            }
        },
        getMessageType(id) {
          const result = this.typeList.find(item => item.id === id);
          return result.columnName;
        closeDialog() {
          this.isShowDialog = false;
          this.getMessageList();
        }
    }
}
@@ -418,20 +373,16 @@
            justify-content: space-between;
            align-items: center;
            .search,
            .message-status,
            .message-kind {
            .search {
                display: flex;
                justify-content: flex-start;
                justify-content: space-between;
                align-items: center;
                span {
                    flex: 1;
                }
                .el-input {
                    flex: 2;
                    color: #1d3f57;
                    &::v-deep .el-input__inner {
                        background-color: #09152f;
                        border: 1px solid #17324c;
@@ -632,11 +583,13 @@
    &::v-deep .el-dialog__close {
        width: 20px;
        height: 20px;
        // color: #fff;
    }
    &::v-deep .el-dialog__body {
        padding: 0;
    }
  :deep(.el-range-input) {
    background-color: #09152f;
  }
}
</style>