<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.chargingName"></j-input> </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 style="text-align:right;margin-bottom:10px;"> <a-button type="primary" @click="visible = true">新增就收费标准</a-button> </div> --> <!-- 操作按钮区域 --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button type="primary" icon="download" @click="handleExportXls('t_property_chargrule')">导出</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="pagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap" @change="handleTableChange"> <span slot="auditStatus" slot-scope="text, record"> <span v-if="record.auditStatus === 'waitAudit'">待审核</span> <span v-if="record.auditStatus === 'auditPass'">审核通过</span> <span v-if="record.auditStatus === 'refuse'">审核拒绝</span> </span> <span slot="chargingStatus" slot-scope="text, record"> <span v-if="record.chargingStatus === 'normal'">正常</span> <span v-if="record.chargingStatus === 'freeze'">冻结</span> </span> <span slot="action" slot-scope="text, record"> <a @click="handleDetail(record)">详情</a> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> <a-menu slot="overlay"> <a-menu-item v-if="record.auditStatus != 'waitAudit'"> <a @click="handleEdit(record)">编辑</a> </a-menu-item> <a-menu-item v-if="record.auditStatus === 'auditPass'"> <a href="javascript:;" @click="onChargingStatus(record)">{{record.chargingStatus === 'normal' ? '冻结' : '解冻'}}</a> </a-menu-item> <a-menu-item v-if="record.auditStatus === 'waitAudit'"> <a-popconfirm title="确定审核吗?" ok-text="通过" cancel-text="驳回" @cancel="() => handleVerify(record.id, 'refuse')" @confirm="() => handleVerify(record.id, 'auditPass')"> <a>审核</a> </a-popconfirm> </a-menu-item> <a-menu-item> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a>删除</a> </a-popconfirm> </a-menu-item> </a-menu> </a-dropdown> </span> </a-table> </div> <!-- table区域-end --> <property-chargrule-modal ref="modalForm" @ok="modalFormOk"></property-chargrule-modal> </a-card> </template> <script> import { AuditUpdateCostApi, proPertyChargruleApi } from '@/api/api' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { filterDictTextByCache } from '@/components/dict/JDictSelectUtil' import PropertyChargruleModal from './modules/PropertyChargruleModal' const columns = [ { title: '收费名称', dataIndex: 'chargingName', key: 'chargingName', align: 'center' }, { title: '收费方式', dataIndex: 'chargingCycle', key: 'chargingCycle', customRender: function (text) { return filterDictTextByCache('chargingCycle', text) }, align: 'center' }, // { // title: '授权物业数量', // dataIndex: 'empowerNum', // key: 'empowerNum', // align: 'center' // }, { title: '授权天数', dataIndex: 'empowerDays', key: 'empowerDays', align: 'center' }, { title: '添加人', dataIndex: 'createBy', key: 'createBy', align: 'center' }, { title: '收费金额(元)', dataIndex: 'chargingMoney', key: 'chargingMoney', align: 'center' }, { title: '创建时间', dataIndex: 'createTime', key: 'createTime', align: 'center' }, { title: '审核状态', dataIndex: 'auditStatus', scopedSlots: { customRender: 'auditStatus' }, key: 'auditStatus', align: 'center' }, { title: '冻结状态', dataIndex: 'chargingStatus', scopedSlots: { customRender: 'chargingStatus' }, key: 'chargingStatus', align: 'center', }, { title: '操作', dataIndex: 'action', scopedSlots: { customRender: 'action' }, align: 'center', width: 150, }, ] export default { name: 'costListAsync', components: { PropertyChargruleModal, }, mixins: [JeecgListMixin], data() { return { // 表头 columns: columns, loading: false, pagination: { total: 0, current: 1, pageSize: 10, showSizeChanger: true, }, url: { list: '/property-central/property/propertyChargrule/list', delete: '/property-central/property/propertyChargrule/delete', deleteBatch: '/property-central/property/propertyChargrule/deleteBatch', exportXlsUrl: '/property-central/property/propertyChargrule/exportXls', }, dictOptions: [], } }, methods: { handleVerify(id, auditStatus) { AuditUpdateCostApi({ id, auditStatus, }).then(() => { this.$message.success(`${auditStatus === 'auditPass' ? '审核成功' : '驳回成功'}`) this.loadData() }) }, onChargingStatus(record) { let that = this this.$confirm({ title: `确认${record.chargingStatus === 'normal' ? '冻结' : '解冻'}?`, closable: true, okText: `${record.chargingStatus === 'normal' ? '冻结' : '解冻'}`, onOk() { return proPertyChargruleApi({ id: record.id, status: `${record.chargingStatus === 'normal' ? 'freeze' : 'normal'}`, }).then((res) => { that.searchQuery() }) }, onCancel() {}, }) }, }, } </script> <style scoped> @import '~@assets/less/common.less'; </style>