<template> <a-card :bordered="false"> <div class="table-page-search-wrapper"> <a-form layout="inline"> <a-row :gutter="48"> <a-col :md="6" :sm="24"> <a-form-item label="村组"> <a-select :allowClear="true" v-model="queryParam.village" style="width: 100%" placeholder="请选择村组"> <a-select-option v-for="(item, index) in villageData" :key="index" :value="item.value" :lable="item.name"> {{ item.name }} </a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-form-item label="年龄区间"> <a-select v-model="queryParam.ageRange" placeholder="请选择年龄区间" default-value="null" style="width: 100%"> <a-select-option value="1">50岁以下</a-select-option> <a-select-option value="2">50岁-59岁</a-select-option> <a-select-option value="3">60岁-69岁</a-select-option> <a-select-option value="4">70岁-79岁</a-select-option> <a-select-option value="5">80岁-89岁</a-select-option> <a-select-option value="6">90岁以上</a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-form-item label="性别"> <a-select v-model="queryParam.gender" placeholder="请选择性别" default-value="null" style="width: 100%"> <a-select-option value="1">男</a-select-option> <a-select-option value="0">女</a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-form-item label="供养方式"> <a-select :allowClear="true" v-model="queryParam.supportType" style="width: 100%" placeholder="请选择供养方式"> <a-select-option v-for="(item, index) in supportTypeData" :key="index" :value="item.value" :lable="item.name"> {{ item.name }} </a-select-option> </a-select> </a-form-item> </a-col> </a-row> <a-row :gutter="48"> <a-col :md="6" :sm="24"> <a-form-item label="护理等级"> <a-select :allowClear="true" v-model="queryParam.nursingLevel" style="width: 100%" placeholder="请选择护理等级"> <a-select-option v-for="(item, index) in nursingLevelData" :key="index" :value="item.value" :lable="item.name"> {{ item.name }} </a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-form-item label="是否在院"> <a-select v-model="queryParam.isInHospital" placeholder="请选择" default-value="null" style="width: 100%"> <a-select-option value="1">是</a-select-option> <a-select-option value="0">否</a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-form-item label="是否精准扶贫"> <a-select v-model="queryParam.ifHelpPoor" placeholder="请选择" default-value="null" style="width: 100%"> <a-select-option value="1">是</a-select-option> <a-select-option value="0">否</a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="24"> <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> <a-button style="margin-left: 8px" @click="() => {queryParam = {}, $refs.table.refresh(true)}">重置</a-button> </a-col> </a-row> </a-form> <s-table ref="table" :columns="columns" :data="loadData" :rowKey="(record) => record.id"> <template slot="bringTime" slot-scope="text, record"> {{ record.bringTime | moment('YYYY-MM-DD') }} </template> <template slot="sex" slot-scope="text, record"> {{ record.sex == 1 ? '男' : '女' }} </template> <template slot="isInHospital" slot-scope="text, record"> {{ record.isInHospital == 1 ? '是' : '否' }} </template> <template slot="title" style="font-weight: bold;"> 合计人数:{{ totalCount }} </template> </s-table> </div> </a-card> </template> <script> import { STable } from '@/components' import { personPage } from '@/api/person/personSupport' import { dictionaryDropDown } from '@/api/sys/dictionaryItem' export default { components: { STable }, data() { return { // 查询参数 queryParam: { village: this.$route.params.village, ageRange: this.$route.params.ageRange, gender: this.$route.params.gender, nursingLevel: this.$route.params.nursingLevel, ifHelpPoor: this.$route.params.ifHelpPoor, supportType: this.$route.params.supportType, isInHospital: this.$route.params.isInHospital }, type: 1, villageData: [], nursingLevelData: [], supportTypeData: [], totalCount: 0, // 表头 columns: [{ title: '姓名', width: 200, dataIndex: 'name' }, { title: '年龄', dataIndex: 'age' }, { title: '村组', dataIndex: 'villageName' }, { title: '护理等级', dataIndex: 'nursingLevelName' }, { title: '供养方式', dataIndex: 'supportTypeName' }, { title: '性别', dataIndex: 'sex', scopedSlots: { customRender: 'sex' } }, { title: '入院时间', dataIndex: 'bringTime', scopedSlots: { customRender: 'bringTime' } }, { title: '居住房间', dataIndex: 'roomBed' }, { title: '是否在院', dataIndex: 'isInHospital', scopedSlots: { customRender: 'isInHospital' } } ], // 加载数据方法 必须为 Promise 对象 loadData: (parameter) => { return personPage(Object.assign(parameter, this.queryParam, { type: this.type })).then((res) => { this.totalCount = res.total return res }) } } }, // 生命周期 - 创建完成 created() { this.dictionaryDropDown() console.log(this.$route.params) console.log(this.$route.params.gender) }, // 生命周期 - 销毁完成 destroyed() {}, // 监控data中的数据变化 watch: { $route(to, from) { // to是前往的路由 from是去往的路由 同一个组件只会渲染一次 this.$refs.table.refresh(true) } }, methods: { // 详情 handleDetail(record) { this.$router.push({ path: '/person/support/detail', query: { type: this.type, id: record.id } }) }, /** * 获取字典数据 */ dictionaryDropDown() { // 所在村 dictionaryDropDown({ dictionaryCode: '0040' }).then(res => { this.villageData = res.data }) // 护理等级 dictionaryDropDown({ dictionaryCode: '0021' }).then(res => { this.nursingLevelData = res.data }) // 供养方式 dictionaryDropDown({ dictionaryCode: '0020' }).then(res => { this.supportTypeData = res.data }) } } } </script>