<template> <a-card :bordered="false"> <!-- 查询区域 --> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :md="6" :sm="8"> <a-form-item label="广告名称"> <j-input placeholder="请输入广告名称" v-model="queryParam.advName"></j-input> </a-form-item> </a-col> <a-col :md="6" :sm="8"> <a-form-item label="广告状态"> <a-select style="width: 100%" v-model="queryParam.status" placeholder="请选择广告状态"> <a-select-option v-for="item in dictOptions" :key="item.value" :value="item.value">{{item.label}}</a-select-option> </a-select> </a-form-item> </a-col> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-col :md="6" :sm="24"> <a-button type="primary" @click="searchQuery">查询</a-button> <a-button style="margin-left: 8px" @click="searchReset">重置</a-button> </a-col> </span> </a-row> </a-form> </div> <!-- 查询区域-END --> <!-- 操作按钮区域 --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button type="primary" icon="download" @click="handleExportXls('t_property_adv')">导出</a-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item> </a-menu> <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> </a-dropdown> </div> <!-- table区域-begin --> <div> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 <a style="margin-left: 24px" v-if="selectedRowKeys.length > 0" @click="onClearSelected">清空</a> </div> <a-table ref="table" size="middle" :scroll="{x:true}" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap" @change="handleTableChange"> <template slot="htmlSlot" slot-scope="text"> <div v-html="text"></div> </template> <span slot="onshelfStatus" slot-scope="text, record"> <a-tag v-if="record.onshelfStatus === 'onShelf'" color="green">上架</a-tag> <a-tag v-if="record.onshelfStatus === 'offShelf'" color="red">下架</a-tag> </span> <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)" v-if="record.onshelfStatus == 'offShelf'">编辑</a> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> <a-menu slot="overlay"> <a-menu-item> <a @click="handleDetail(record)">详情</a> </a-menu-item> <a-menu-item v-if="record.onshelfStatus == 'offShelf' && record.status !='expire'"> <a @click="handleAShelves(record.id,1)">上架</a> </a-menu-item> <a-menu-item v-if="record.onshelfStatus == 'onShelf' && record.status !='expire'"> <a @click="handleAShelves(record.id,2)">下架</a> </a-menu-item> <a-menu-item v-if="record.onshelfStatus == 'offShelf'"> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a>删除</a> </a-popconfirm> </a-menu-item> </a-menu> </a-dropdown> </span> </a-table> </div> <property-adv-modal ref="modalForm" @ok="modalFormOk"></property-adv-modal> </a-card> </template> <script> import { getPropertyAdvEditApi, getDictItemsFromCache } from '@/api/api' import '@/assets/less/TableExpand.less' import { mixinDevice } from '@/utils/mixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import PropertyAdvModal from './modules/PropertyAdvModal' import { filterDictTextByCache } from '@/components/dict/JDictSelectUtil' export default { name: 'PropertyAdvList', mixins: [JeecgListMixin, mixinDevice], components: { PropertyAdvModal, }, data() { return { description: 't_property_adv管理页面', // 表头 columns: [ // { // title: '#', // dataIndex: '', // key:'rowIndex', // width:60, // align:"center", // customRender:function (t,r,index) { // return parseInt(index)+1; // } // }, { title: '广告编号', align: 'center', dataIndex: 'id', }, { title: '广告名称', align: 'center', dataIndex: 'advName', }, { title: '广告位置', align: 'center', dataIndex: 'advPosition', customRender: function (text) { return filterDictTextByCache('advPosition', text) }, }, { title: '有效时间', align: 'center', dataIndex: 'advStartDate', customRender: function (text, rocord) { return text ? text + '至' + rocord.advEndDate : '' }, }, { title: '广告链接', align: 'center', dataIndex: 'advUrl', }, { title: '添加时间', align: 'center', dataIndex: 'createTime', // customRender:function (text) { // return !text?"":(text.length>10?text.substr(0,10):text) // } }, { title: '添加人', align: 'center', dataIndex: 'createBy', }, { title: '上架/下架', dataIndex: 'onshelfStatus', scopedSlots: { customRender: 'onshelfStatus' }, key: 'onshelfStatus', align: 'center', }, { title: '状态', align: 'center', dataIndex: 'status', customRender: function (text) { return filterDictTextByCache('advStatus', text) }, }, { title: '操作', dataIndex: 'action', align: 'center', fixed: 'right', width: 147, scopedSlots: { customRender: 'action' }, }, ], url: { list: '/property-central/property/propertyAdv/list', delete: '/property-central/property/propertyAdv/delete', deleteBatch: '/property-central/property/propertyAdv/deleteBatch', exportXlsUrl: '/property-central/property/propertyAdv/exportXls', }, dictOptions: [] } }, created() { //备份model原始值 this.dictOptions = getDictItemsFromCache('advStatus') }, methods: { handleAShelves(id, type) { let that = this var msg = '' var status = '' if (type == 1) { msg = '上架' status = 'onShelf' } else if (type == 2) { msg = '下架' status = 'offShelf' } this.$confirm({ title: `确认${msg}?`, closable: true, okText: `${msg}`, onOk() { return getPropertyAdvEditApi({ id: id, onshelfStatus: status, }).then((res) => { that.searchQuery() }) }, onCancel() {}, }) }, }, } </script> <style scoped> @import '~@assets/less/common.less'; </style>