standard.vue 6.0 KB
Newer Older
宋雄's avatar
宋雄 committed
1 2 3 4 5 6 7 8
<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="收费类型">
何忠建's avatar
何忠建 committed
9 10 11 12
              <a-select style="width: 100%" v-model="queryParam.chargeTypeId" placeholder="请选择收费类型">
                <a-select-option v-for="item in chargeList" :key="item.id"
                  :value="item.id">{{item.typeName}}</a-select-option>
              </a-select>
宋雄's avatar
宋雄 committed
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
            </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>

    <!-- 操作按钮区域 -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
何忠建's avatar
何忠建 committed
29
      <!-- <a-button type="primary" icon="download" @click="handleExportXls('t_property_settled')">导出</a-button> -->
宋雄's avatar
宋雄 committed
30 31
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
何忠建's avatar
何忠建 committed
32
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
宋雄's avatar
宋雄 committed
33 34 35 36 37 38 39 40 41 42 43 44 45
        </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>已选择&nbsp;<a style="font-weight: 600">{{
        selectedRowKeys.length }}</a>&nbsp;&nbsp;
        <a style="margin-left: 24px" v-if="selectedRowKeys.length > 0" @click="onClearSelected">清空</a>
      </div>

何忠建's avatar
何忠建 committed
46 47 48 49
      <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">
宋雄's avatar
宋雄 committed
50
        <span slot="chargeItem" slot-scope="text, record">
何忠建's avatar
何忠建 committed
51 52 53 54 55 56 57
          <span
            :style="{'color': record.chargeItem === '1' ? 'green' : 'red'}">{{record.chargeItem === '1' ? '在职' : '离职'}}</span>
        </span>
        <span slot="designFormulas" slot-scope="text, record">
          <span v-if="record.designFormulas === 1">固定金额</span>
          <span v-if="record.designFormulas === 2">建筑面积 × 单价</span>
          <span v-if="record.designFormulas === 3">(本期度数 - 上期度数) × 单价</span>
宋雄's avatar
宋雄 committed
58 59
        </span>
        <span slot="action" slot-scope="text, record">
宋雄's avatar
宋雄 committed
60
          <a @click="onHandle(record, 'edit')">编辑</a>
宋雄's avatar
宋雄 committed
61

何忠建's avatar
何忠建 committed
62
          <a-divider type="vertical" />
宋雄's avatar
宋雄 committed
63 64
          <a-dropdown>
            <a class="ant-dropdown-link">
何忠建's avatar
何忠建 committed
65
              更多 <a-icon type="down" />
宋雄's avatar
宋雄 committed
66 67 68
            </a>
            <a-menu slot="overlay">
              <a-menu-item>
宋雄's avatar
宋雄 committed
69
                <a href="javascript:;" @click="onHandle(record)">详情</a>
宋雄's avatar
宋雄 committed
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
              </a-menu-item>

              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" placement="topLeft">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>

    </div>
    <!-- table区域-end -->

    <notice-modal ref="modalForm" @ok="modalFormOk"></notice-modal>
  </a-card>
</template>

<script>
何忠建's avatar
何忠建 committed
90 91 92 93
import { getChargeListApi } from '@/api/api'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import NoticeModal from './modules/NoticeModal'
import { filterDictTextByCache } from '@/components/dict/JDictSelectUtil'
宋雄's avatar
宋雄 committed
94

何忠建's avatar
何忠建 committed
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
const columns = [
  {
    title: '收费项目编码',
    dataIndex: 'ruleCode',
    key: 'ruleCode',
    align: 'center',
  },
  {
    title: '所属小区',
    dataIndex: 'communityNames',
    key: 'communityNames',
    align: 'center',
  },
  {
    title: '收费类型',
    dataIndex: 'chargeTypeName',
    key: 'chargeTypeName',
    align: 'center',
  },
  {
    title: '收费项目',
    dataIndex: 'chargeItem',
    key: 'chargeItem',
    align: 'center',
  },
  {
    title: '付费周期 (月)',
    dataIndex: 'chargeCycle',
    key: 'chargeCycle',
    align: 'center',
    customRender: function (text) {
      return filterDictTextByCache('chargingCycle', text)
宋雄's avatar
宋雄 committed
127
    },
何忠建's avatar
何忠建 committed
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
  },
  {
    title: '计费方式',
    dataIndex: 'designFormulas',
    scopedSlots: { customRender: 'designFormulas' },
    key: 'designFormulas',
    align: 'center',
  },
  {
    title: '单价(元)',
    dataIndex: 'amount',
    key: 'amount',
    align: 'center',
  },
  {
    title: '操作',
    dataIndex: 'action',
    scopedSlots: { customRender: 'action' },
    align: 'center',
    width: 150,
  },
]

export default {
  name: 'PermissionListAsync',
  mixins: [JeecgListMixin],
  components: { NoticeModal },
  data() {
    return {
      // 表头
      columns: columns,
      url: {
        list: '/property-company/system/companyChargerule/list',
        delete: '/property-company/system/companyChargerule/delete',
        deleteBatch: '/property-company/system/companyChargerule/deleteBatch',
      },
      chargeList: [],
    }
  },
  created() {
    this.getChargeList()
  },
  methods: {
    async getChargeList() {
      let { result } = await getChargeListApi()
      this.chargeList = result
宋雄's avatar
宋雄 committed
174
    },
何忠建's avatar
何忠建 committed
175 176 177 178 179 180 181
    onHandle(record, flag) {
      if (record.communityCodes === 'ALL') {
        record['type'] = 'ALL'
        record['communityList'] = []
      } else {
        record['type'] = 'POINT'
        record['communityList'] = record.communityCodes.split(',')
宋雄's avatar
宋雄 committed
182
      }
何忠建's avatar
何忠建 committed
183 184 185 186
      if (flag === 'edit') {
        this.handleEdit(record)
      } else {
        this.handleDetail(record)
宋雄's avatar
宋雄 committed
187 188
      }
    },
何忠建's avatar
何忠建 committed
189 190
  },
}
宋雄's avatar
宋雄 committed
191 192
</script>
<style scoped>
何忠建's avatar
何忠建 committed
193
@import '~@assets/less/common.less';
宋雄's avatar
宋雄 committed
194
</style>