lin
2024-03-20 9e3f4c4a01122e0dc1211dcbf1fbded6abc76176
重点人员+关注人群
2 files modified
1 files deleted
1 files added
333 ■■■■■ changed files
api/police/police.js 9 ●●●●● patch | view | raw | blame | history
pages.json 41 ●●●●● patch | view | raw | blame | history
subPackage/people/people.vue 11 ●●●●● patch | view | raw | blame | history
subPackage/police/people.vue 272 ●●●●● patch | view | raw | blame | history
api/police/police.js
@@ -25,4 +25,13 @@
        method: 'post',
        data: data
    })
}
// 重点人员记录
export const gethouseholdPage = (params) => {
    return http.request({
        url: '/blade-household/household/page',
        method: 'get',
        params: params
    })
}
pages.json
@@ -99,7 +99,16 @@
            }
        }
    ],
        ,{
            "path" : "subPackage/police/people",
            "style" :
            {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false
            }
        }
    ],
    "subPackages": [
        //数据驾驶舱
        {
@@ -945,24 +954,24 @@
                    }
                }
            ]
        },
        {
            "root": "subPackage/people",
            "pages": [{
                "path": "people",
                "style": {
                    "navigationBarTitleText": "",
                    "navigationBarBackgroundColor": "#fff",
                    "navigationBarTextStyle": "black",
                    "enablePullDownRefresh": false
                }
            }]
        }
        // {
        //     "root": "subPackage/people",
        //     "pages": [{
        //         "path": "people",
        //         "style": {
        //             "navigationBarTitleText": "",
        //             "navigationBarBackgroundColor": "#fff",
        //             "navigationBarTextStyle": "black",
        //             "enablePullDownRefresh": false
        //         }
        //     }]
        // }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
subPackage/people/people.vue
File was deleted
subPackage/police/people.vue
New file
@@ -0,0 +1,272 @@
<template>
    <view>
        <u-sticky>
            <view class="bgc-ff">
                <view class="tab">
                    <!-- <u-tabs :list="tabList" :current="tabIndex" @click="changeTab" :inactiveStyle="{color:'#999999'}"
                        :activeStyle="{color:'#017BFC'}">
                    </u-tabs> -->
                    <view class="search flex j-c-s-b a-i-c">
                        <!-- <view class="tab-filter flex j-c-c a-i-c" @click="showDateModal">
                            <text class="f-28">时间筛选</text>
                            <u-icon name="arrow-down"></u-icon>
                        </view> -->
                        <u-search placeholder="请输入需要查询信息的名称" v-model="keyword" :clearabled="true" :showAction="true"
                            :animation="true" @search="searchConfirm" @clear="clearConfirm"></u-search>
                    </view>
                </view>
            </view>
        </u-sticky>
        <view class="list">
            <view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.id,i.status)">
                <view class="item-title flex a-i-c j-c-s-b mb-20">
                    <text class="f-32 fw">{{i.aoiName==null?'':i.aoiName}}</text>
                    <!-- <u-tag v-if="i.status == 1" text="待处置" type="warning" plain plainFill></u-tag> -->
                    <!-- <u-tag v-if="i.status == 2" text="已处置" type="success" plain plainFill></u-tag> -->
                </view>
                <view class="item-row flex a-i-c j-c-s-b">
                    <text class="f-28">名称:</text>
                    <text class="f-28 c-66">{{i.name}}</text>
                </view>
                <view class="item-row flex a-i-c j-c-s-b">
                    <text class="f-28">标签:</text>
                    <view v-for="(item,index) in i.householdLabelList" :key="index">
                        <text class="f-28 c-66">{{item.labelName}}</text>
                    </view>
                </view>
                <view class="item-row flex a-i-c j-c-s-b">
                    <text class="f-28">地址:</text>
                    <text class="address f-28 c-66">{{i.currentAddress || ""}}</text>
                </view>
            </view>
        </view>
        <u-toast ref="uToast"></u-toast>
        <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
        <date-range-modal ref="dateRane" @comfirm="handleComfirmDate" @rest="handleRestDate" />
    </view>
</template>
<script>
    import {
        gethouseholdPage
    } from "@/api/police/police"
    import dateRangeModal from '@/components/dateRangeModal/modal.vue';
    export default {
        components: {
            dateRangeModal
        },
        data() {
            return {
                tabList: [{
                        name: "全部",
                        status: "",
                    },
                    {
                        name: "待处置",
                        status: 1,
                    },
                    {
                        name: "已处置",
                        status: 2
                    }
                ],
                tabIndex: 0,
                currentStatus: "",
                list: [],
                loadingStatus: 'nomore',
                currentPage: 1,
                frequency: '',
                reportType: "",
                selectDate: [],
                houseCode: "",
                keyword: "",
                labelType: ''
            }
        },
        onLoad(option) {
            console.log(option);
            if (option.type == 1) {
                this.labelType = option.type
                uni.setNavigationBarTitle({
                    title: '重点人员管理'
                })
            } else {
                this.labelType = option.type
                uni.setNavigationBarTitle({
                    title: '关注人群'
                })
            }
            // this.getList()
        },
        onShow() {
            this.resetParams();
            this.getList()
        },
        onReachBottom() {
            this.currentPage++
            this.getList()
        },
        methods: {
            searchConfirm() {
                this.resetParams()
                this.getList()
            },
            clearConfirm() {
                this.keyword = ''
                this.searchConfirm()
            },
            changeTab(e) {
                this.tabIndex = e.index;
                this.currentStatus = e.status;
                this.resetParams();
                this.getList();
            },
            resetParams() {
                this.list = [];
                this.currentPage = 1;
            },
            getList() {
                this.$nextTick(() => {
                    this.loadingStatus = 'loadingmore'
                    this.$refs.uToast.show({
                        type: 'loading',
                        message: '正在加载',
                        duration: 9999999
                    })
                })
                let params = {
                    current: this.currentPage,
                    size: 20,
                    status: this.currentStatus,
                    searchKey: this.keyword
                }
                if (this.selectDate.length) {
                    params.startTime = this.selectDate[0],
                        params.endTime = this.selectDate[1]
                }
                params.labelType = this.labelType
                gethouseholdPage(params).then(res => {
                    if (res.code != 200) {
                        uni.showToast({
                            title: '数据请求失败',
                            icon: 'error'
                        })
                        return
                    }
                    let records = res.data.records;
                    this.list = [...this.list, ...records]
                    this.$nextTick(() => {
                        this.$refs.uToast.isShow = false
                    })
                    this.loadingStatus = 'nomore'
                })
            },
            navTo(id, status) {
                uni.navigateTo({
                    url: `./policeSituationDetail?id=${id}`,
                    complete: (res) => {
                        console.log(res)
                    }
                })
                // this.navToDetail(reportType, id)
            },
            navToEdit(reportType, id, type) {
                if (reportType == 1) {
                    this.$u.func.globalNavigator(`/subPackage/label/bail?id=${id}`)
                } else if (reportType == 2) {
                    this.$u.func.globalNavigator(`/subPackage/label/check?id=${id}`)
                } else if (reportType == 5) {
                    this.$u.func.globalNavigator(`/subPackage/label/form?id=${id}`)
                }
            },
            navToDetail(reportType, id, type) {
                if (reportType == 1) {
                    this.$u.func.globalNavigator(`bailReportDetail?id=${id}`)
                } else if (reportType == 7) {
                    this.$u.func.globalNavigator(`selfCheckDetail?id=${id}`)
                } else if (reportType == 5) {
                    this.$u.func.globalNavigator(`labelReportDetail?id=${id}`)
                } else {
                    this.$u.func.globalNavigator(`checkReform?id=${id}`)
                }
            },
            showDateModal() {
                this.$refs.dateRane.open();
            },
            handleRestDate() {
                this.selectDate = [];
                this.resetParams();
                this.getList()
            },
            handleComfirmDate(val) {
                this.selectDate = val;
                this.resetParams();
                this.getList()
            }
        }
    }
</script>
<style lang="scss">
    page {
        background-color: #F5F5F5;
    }
    .tab {
        // width: 100%;
    }
    .search {
        padding: 20rpx 20rpx;
    }
    // .tab /deep/.u-tabs__wrapper__nav__item {
    //     flex: 1;
    // }
    .tab-filter {
        padding: 0 20rpx;
    }
    .list {
        margin: 20rpx 30rpx 0;
    }
    .list-item {
        padding: 0 30rpx 20rpx;
        border-radius: 8rpx;
        .item-title {
            padding: 30rpx 0;
            border-bottom: 1px solid #F5F5F5;
        }
        .item-row {
            padding: 10rpx 0;
            .address {
                width: 65%;
                text-align: right;
            }
        }
    }
</style>