Lou
2024-03-21 06cab8159f023ee2c7386cf32397985b94332b00
更新
15 files modified
1 files added
475 ■■■■ changed files
api/placeExp/placeExp.js 9 ●●●●● patch | view | raw | blame | history
api/police/police.js 9 ●●●●● patch | view | raw | blame | history
api/reside/reside.js 11 ●●●●● patch | view | raw | blame | history
pages.json 89 ●●●● patch | view | raw | blame | history
pages/home/index.vue 3 ●●●● patch | view | raw | blame | history
subPackage/police/people.vue 16 ●●●●● patch | view | raw | blame | history
subPackage/police/peopleDetail.vue 85 ●●●●● patch | view | raw | blame | history
subPackage/reside/detail.vue 41 ●●●● patch | view | raw | blame | history
subPackage/reside/edit.vue 124 ●●●●● patch | view | raw | blame | history
subPackage/reside/record.vue 2 ●●● patch | view | raw | blame | history
subPackage/task/index.vue 6 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 2 ●●● patch | view | raw | blame | history
subPackage/workbench/views/cshw.vue 13 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/editCscj.vue 2 ●●● patch | view | raw | blame | history
subPackage/workbench/views/editExamine.vue 2 ●●● patch | view | raw | blame | history
subPackage/workbench/views/examine.vue 61 ●●●●● patch | view | raw | blame | history
api/placeExp/placeExp.js
@@ -33,4 +33,13 @@
        method: 'GET',
        params
    })
}
//审核场所从业人员
export const auditPlacePeople = (data) => {
    return http.request({
        url: '/blade-placePractitioner/placePractitioner/auditing',
        method: 'POST',
        data
    })
}
api/police/police.js
@@ -34,4 +34,13 @@
        method: 'get',
        params: params
    })
}
// 重点人员详情
export const gethouseholdDetail = (params) => {
    return http.request({
        url: '/blade-household/household/detail',
        method: 'get',
        params: params
    })
}
api/reside/reside.js
@@ -20,6 +20,17 @@
    })
}
//编辑居住证申请
export const updateResideApply = (data) => {
    return http.request({
        url: '/blade-taskResidencePermitApply/taskResidencePermitApply/update',
        method: 'POST',
        data: data
    })
}
//获取居住证申请详情
export const getResideApplyDetail = (params) => {
pages.json
@@ -75,36 +75,6 @@
                "navigationBarBackgroundColor": "#fff",
                "navigationBarTextStyle": "black"
            }
        }, {
            "path": "subPackage/police/policeSituation",
            "style": {
                "navigationBarTitleText": "警情处置",
                // "enablePullDownRefresh": false
                "navigationBarBackgroundColor": "#fff",
                "navigationBarTextStyle": "black"
            }
        }, {
            "path": "subPackage/police/policeSituationDetail",
            "style": {
                "navigationBarTitleText": "警情处置",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "subPackage/police/onLine",
            "style": {
                "navigationBarTitleText": "巡逻打卡",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "subPackage/police/people",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false
            }
        }
    ],
    "subPackages": [
@@ -290,7 +260,6 @@
                        "navigationBarTextStyle": "black"
                    }
                }
            ]
        },
        //便民热线
@@ -963,6 +932,7 @@
            ]
        },
        //居住证
        {
            "root": "subPackage/reside",
            "pages": [{
@@ -1002,24 +972,51 @@
                        "enablePullDownRefresh": false
                    }
                }
            ]
        },
        {
            "root": "subPackage/police",
            "pages": [{
                    "path": "policeSituation",
                    "style": {
                        "navigationBarTitleText": "警情处置",
                        // "enablePullDownRefresh": false
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
                    }
                }, {
                    "path": "policeSituationDetail",
                    "style": {
                        "navigationBarTitleText": "警情处置",
                        "enablePullDownRefresh": false
                    }
                }, {
                    "path": "onLine",
                    "style": {
                        "navigationBarTitleText": "巡逻打卡",
                        "enablePullDownRefresh": false
                    }
                }, {
                    "path": "people",
                    "style": {
                        "navigationBarTitleText": "重点人员管理",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "peopleDetail",
                    "style": {
                        "navigationBarTitleText": "重点人员",
                        "enablePullDownRefresh": false
                    }
                }
            ]
        }
        // {
        //     "root": "subPackage/people",
        //     "pages": [{
        //         "path": "people",
        //         "style": {
        //             "navigationBarTitleText": "",
        //             "navigationBarBackgroundColor": "#fff",
        //             "navigationBarTextStyle": "black",
        //             "enablePullDownRefresh": false
        //         }
        //     }]
        // }
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
pages/home/index.vue
@@ -658,7 +658,8 @@
                    // console.log(res);
                    let data = res.data;
                    let count = 0;
                    count += Number(data.bqsj) + Number(data.xfzc) + Number(data.xfyhzg) + Number(data.qbhs);
                    count += Number(data.bqsj) + Number(data.xfzc) + Number(data.xfyhzg) + Number(data.qbhs) +
                        Number(data.cssh) + Number(data.czsh) + Number(data.jzzsq);
                    this.taskCount = count
                })
            },
subPackage/police/people.vue
@@ -21,22 +21,23 @@
        <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>
                    <text class="f-32 fw">{{i.name}}</text>
                    <!-- <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>
                    <text class="f-28">手机号:</text>
                    <text class="f-28 c-66">{{i.phoneNumber}}</text>
                </view>
                <view class="item-row flex a-i-c j-c-s-b">
                <!-- <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> -->
                <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>
@@ -172,6 +173,11 @@
                })
            },
            navTo(id, status) {
                uni.navigateTo({
                    url: `peopleDetail?id=${id}`
                })
                // uni.navigateTo({
                //     url: `./policeSituationDetail?id=${id}`,
                //     complete: (res) => {
subPackage/police/peopleDetail.vue
New file
@@ -0,0 +1,85 @@
<template>
    <view class="">
        <view class="item-row flex j-c-s-b a-i-c">
            <text>姓名</text>
            <text>{{info.name}}</text>
        </view>
        <view class="item-row flex j-c-s-b a-i-c">
            <text>电话号码</text>
            <text>{{info.phoneNumber}}</text>
        </view>
        <view class="item-row flex j-c-s-b a-i-c">
            <text>地址</text>
            <text class="item-content">{{info.currentAddress}}</text>
        </view>
        <view class="item-row flex j-c-s-b a-i-c">
            <text>标签</text>
            <text class="item-content">{{label}}</text>
        </view>
    </view>
</template>
<script>
    import {
        gethouseholdDetail
    } from "@/api/police/police.js"
    export default {
        data() {
            return {
                info: {},
                roleType: 1,
                label: ""
            }
        },
        onLoad(option) {
            this.getDetail(option.id)
        },
        methods: {
            getDetail(id) {
                gethouseholdDetail({
                    id
                }).then(res => {
                    this.info = res.data;
                    if (res.data.householdLabelList.length) {
                        let lebelList = res.data.householdLabelList;
                        let label = []
                        for (let i of lebelList) {
                            label.push(i.labelName);
                        }
                        this.label = label.join("、")
                    }
                })
            }
        }
    }
</script>
<style lang="scss">
    page {
        background-color: #f5f5f5;
    }
    .item-row {
        width: 100%;
        padding: 30rpx;
        box-sizing: border-box;
        border-bottom: 1px solid #f5f5f5;
        font-size: 28rpx;
        background-color: #fff;
        .item-content {
            width: 70%;
            text-align: right;
        }
        .item-left {
            width: 70%;
        }
    }
</style>
subPackage/reside/detail.vue
@@ -19,7 +19,14 @@
        </view>
        <view class="item-row flex j-c-s-b a-i-c">
            <text>申请事由</text>
            <text class="item-content">{{info.remark}}</text>
            <text class="item-content">{{info.remak}}</text>
        </view>
        <view class="item-row flex j-c-s-b a-i-c">
            <text>审核状态</text>
            <text class="item-content" v-if="info.confirmFlag == 1">待审核</text>
            <text class="item-content" v-if="info.confirmFlag == 3">审核通过</text>
            <text class="item-content" v-if="info.confirmFlag == 4">审核驳回</text>
        </view>
        <view class="item-row flex j-c-s-b a-i-c" v-if="info.confirmFlag == 4">
@@ -34,6 +41,8 @@
        <audit-action @handle="submit" v-if="roleType == 2 && info.confirmFlag == 1"></audit-action>
        <footer-btn v-if="roleType == 1  && info.confirmFlag == 4" text="编辑" @click="navToEdit" />
    </view>
@@ -53,7 +62,8 @@
        data() {
            return {
                info: {},
                roleType: 1
                roleType: 1,
                id: ""
            }
        },
@@ -61,11 +71,20 @@
        onLoad(option) {
            if (uni.getStorageSync("activeRole").roleName == "民警") {
                this.roleType = 2;
            } else {
                this.roleType = 1;
            }
            this.getDetail(option.id)
            if (uni.getStorageSync("activeRole").roleName == "居民") {
                this.roleType == 1;
            }
            this.id = option.id;
        },
        onShow() {
            this.getDetail(this.id)
        },
        methods: {
            getDetail(id) {
@@ -78,12 +97,13 @@
            submit(val) {
                let data = {
                    id: this.info.id,
                    confirmFlag: val.type == 2 ? 3 : 4,
                }
                if (val.type == 3) {
                    data.confirmNotion = val.remark;
                }
                auditResideApply(val).then(res => {
                auditResideApply(data).then(res => {
                    if (res.code == 200) {
                        this.$showTips("操作成功", "success");
                        setTimeout(() => {
@@ -91,7 +111,14 @@
                        }, 300)
                    }
                })
            }
            },
            navToEdit() {
                uni.navigateTo({
                    url: `edit?id=${this.info.id}`
                })
            },
        }
    }
subPackage/reside/edit.vue
@@ -3,28 +3,28 @@
        <view class="content bgc-ff">
            <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
                :labelStyle="{fontSize:'28rpx'}">
                <u-form-item label="姓名" prop="info.name" borderBottom>
                <u-form-item label="姓名" prop="name" borderBottom required>
                    <u-input v-model="info.name" border="none" placeholder="请输入姓名" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="电话" prop="info.phone" borderBottom>
                <u-form-item label="电话" prop="phone" borderBottom required>
                    <u-input v-model="info.phone" type="number" border="none" placeholder="请输入电话"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="身份证号码" prop="info.name" borderBottom>
                <u-form-item label="身份证号码" prop="idCard" borderBottom required>
                    <u-input v-model="info.idCard" type="idcard" border="none" placeholder="请输入身份证号码"
                        placeholderClass="f-28 c-99" inputAlign="right"></u-input>
                </u-form-item>
                <u-form-item label="地址" prop="info.address" borderBottom>
                <u-form-item label="地址" prop="address" borderBottom required>
                    <u-textarea v-model="info.address" border="none" placeholder="请输入地址" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-textarea>
                </u-form-item>
                <u-form-item label="申请事由" prop="info.workContent" :borderBottom="false" ref="item1">
                    <u-textarea v-model="info.remark" border="none" placeholder="请输入申请事由" placeholderClass="f-28 c-99"
                <u-form-item label="申请事由" prop="remak" :borderBottom="false">
                    <u-textarea v-model="info.remak" border="none" placeholder="请输入申请事由" placeholderClass="f-28 c-99"
                        inputAlign="right"></u-textarea>
                </u-form-item>
            </u-form>
@@ -41,85 +41,127 @@
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import {
        saveResideApply
        saveResideApply,
        getResideApplyDetail,
        updateResideApply
    } from "@/api/reside/reside.js"
    export default {
        mixins: [uploadMixin],
        data() {
            return {
                info: {
                    name: "",
                    phone: "",
                    idCard: "",
                    address: ""
                },
                form: {
                    images: []
                    address: "",
                    remak: "",
                    houseCode: ""
                },
                rules: {
                    'name': {
                    name: [{
                        type: 'string',
                        required: true,
                        message: '请输入姓名',
                        trigger: ['blur', 'change']
                    },
                    'phone': [{
                    }],
                    phone: [{
                            type: 'string',
                            required: true,
                            message: '请输入手机号',
                            trigger: ['blur', 'change']
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码不正确',
                            trigger: ['change', 'blur']
                        }
                    ],
                    'address': {
                    idCard: [{
                            type: 'string',
                            required: false,
                            message: '请输入身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                    address: [{
                        type: 'string',
                        required: true,
                        message: '请选择地址',
                        trigger: ['blur', 'change']
                    },
                    }],
                },
                isEdit: false
            }
        },
        onLoad(option) {
            if (option.id) {
                this.isEdit = true;
                this.getDetail(option.id)
            } else {
                this.$set(this.info, "houseCode", uni.getStorageSync("siteInfo").houseCode)
            }
        },
        onReady() {
            //onReady 为uni-app支持的生命周期之一
            this.$refs.form.setRules(this.rules)
        },
        methods: {
            getLocation() {
                uni.chooseLocation({
                    success: (res) => {
                        this.$set(this.info, "address", res.address);
                        this.$set(this.info, "lat", res.latitude);
                        this.$set(this.info, "lng", res.longitude)
            getDetail(id) {
                getResideApplyDetail({
                    id
                }).then(res => {
                    if (res.code == 200) {
                        for (let i in this.info) {
                            this.info[i] = res.data[i];
                        }
                    }
                })
            },
            sumitInfo() {
                this.$refs.form.validate().then(valid => {
                    let data = this.info;
                    data.houseCode = uni.getStorageSync("siteInfo").houseCode
                    saveResideApply(data).then(res => {
                        if (res.code == 200) {
                            this.$showTips("提交成功", "success")
                            setTimeout(() => {
                                uni.navigateBack();
                            }, 300)
                        }
                    })
                    if (this.id) {
                        this.updateInfoRequest();
                    } else {
                        this.addInfoRequst();
                    }
                })
            },
            addInfoRequst() {
                saveResideApply(this.info).then(res => {
                    if (res.code == 200) {
                        this.$showTips("提交成功", "success")
                        setTimeout(() => {
                            uni.navigateBack();
                        }, 300)
                    }
                })
            },
            updateInfoRequest() {
                updateResideApply(this.info).then(res => {
                    if (res.code == 200) {
                        this.$showTips("提交成功", "success")
                        setTimeout(() => {
                            uni.navigateBack();
                        }, 300)
                    }
                })
            },
subPackage/reside/record.vue
@@ -1,7 +1,7 @@
<template>
    <view class="">
        <view class="list">
            <view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.taskId)">
            <view class="list-item bgc-ff mb-20" v-for="(i,k) in list" :key="k" @click="navTo(i.id)">
                <view class="item-title flex a-i-c j-c-s-b mb-20">
                    <!-- <text class="f-32 fw" v-if="i.type == 7">消防检查</text> -->
                    <text class="f-32 fw">{{i.name}}</text>
subPackage/task/index.vue
@@ -229,12 +229,14 @@
                                i.count = data.xfzc;
                            } else if (i.name.trim() == "消防隐患整改") {
                                i.count = data.xfyhzg;
                            } else if (i.name.trim() == "居住证申请") {
                                i.count = data.jzzsq;
                            } else if (i.name.trim() == "从业人员审核") {
                                i.count = data.cssh;
                            } else {
                                i.count = data.qbhs;
                            }
                        }
                    }
                })
            },
subPackage/workbench/views/cscj.vue
@@ -1001,7 +1001,7 @@
                                this.$refs.formItemRef[index].nationTypeIndex = obj.index;
                            }
                            if (item.gender !== "" || item.gender != null) {
                            if (typeof(item.gender) == 'number') {
                                let obj = this.$getIndex(this.$refs.formItemRef[index]
                                    .gender, item.gender, "value", "name")
                                this.$refs.formItemRef[index].genderValue = obj.name;
subPackage/workbench/views/cshw.vue
@@ -100,6 +100,7 @@
                clickInfo: {},
                currentRole: {},
                selectDate: [],
                type: ""
            }
        },
@@ -112,6 +113,11 @@
            if (option.placeId) {
                this.pagingParams.placeId = option.placeId
            }
            if (option.type) {
                this.type = option.type;
            }
        },
        onShow() {
@@ -215,7 +221,12 @@
                if (roleAlias === "inhabitant") {
                    return
                }
                this.$u.func.globalNavigator(`/subPackage/workbench/views/examine?id=${id}&placeId=${placeId}`)
                if (this.type) {
                    this.$u.func.globalNavigator(
                        `/subPackage/workbench/views/examine?id=${id}&placeId=${placeId}&type=${this.type}`)
                } else {
                    this.$u.func.globalNavigator(`/subPackage/workbench/views/examine?id=${id}&placeId=${placeId}`)
                }
            },
            handleRestDate() {
subPackage/workbench/views/editCscj.vue
@@ -953,7 +953,7 @@
                                this.$refs.formItemRef[index].nationTypeIndex = obj.index;
                            }
                            if (item.gender !== "" || item.gender != null) {
                            if (typeof(item.gender) == 'number') {
                                let obj = this.$getIndex(this.$refs.formItemRef[index]
                                    .gender, item.gender, "value", "name")
                                this.$refs.formItemRef[index].genderValue = obj.name;
subPackage/workbench/views/editExamine.vue
@@ -443,7 +443,7 @@
                                this.$refs.formItemRef[index].nationTypeIndex = obj.index;
                            }
                            if (item.gender !== "" || item.gender != null) {
                            if (typeof(item.gender) == 'number') {
                                let obj = this.$getIndex(this.$refs.formItemRef[index].gender, item
                                    .gender, "value", "name")
                                this.$refs.formItemRef[index].genderValue = obj.name;
subPackage/workbench/views/examine.vue
@@ -31,7 +31,7 @@
                <lineItem :dataInfo="landlordData"></lineItem>
            </view>
        </view>
        <view class="personnel">
        <view class="personnel" v-if="type == 1">
            <box-title title="从业人员" class="box-title"></box-title>
            <view class="info">
                <view class="f-30" v-if="!placePersonList.length">
@@ -155,7 +155,8 @@
    import lineItem from '../components/lineItem.vue'
    import {
        checkPlaceExtData,
        getPlaceDetail
        getPlaceDetail,
        auditPlacePeople
    } from '@/api/placeExp/placeExp.js'
    import {
        minioBaseUrl
@@ -258,7 +259,9 @@
                        name: "landlordWxAccount",
                        value: '未完善'
                    },
                ]
                ],
                type: 1 //1从业人员  、2场所
            }
        },
        onLoad(option) {
@@ -270,6 +273,11 @@
                placeId,
                id
            }
            if (option.type) {
                this.type = option.type;
            }
        },
        onShow() {
@@ -410,6 +418,40 @@
                    }
                })
            },
            async checkPlacePeople() {
                let data = {
                    placeId: this.currentData.id,
                    confirmFlag: this.form.confirmFlag
                }
                if (this.form.confirmNotion) {
                    data.confirmNotion = this.form.confirmNotion;
                }
                const res = await checkPlaceExtData(data)
                if (res.code !== 200) {
                    uni.showToast({
                        title: '更新失败',
                        icon: 'error'
                    })
                    return
                }
                this.isShowModal = false;
                uni.showToast({
                    title: '审核成功',
                    icon: 'success',
                    duration: 1500,
                    complete() {
                        setTimeout(() => {
                            uni.navigateBack()
                        }, 1000)
                    }
                })
            },
            handleConfirm(e) {
                console.log(e);
                this.defaultColumns = e.indexs[0];
@@ -428,7 +470,11 @@
                if (type == 3) {
                    this.isShowModal = true;
                } else {
                    this.checkPlaceExt()
                    if (this.type == 2) {
                        this.checkPlaceExt()
                    } else {
                        this.checkPlacePeople()
                    }
                }
            },
            findObjValue(value, obj) {
@@ -447,7 +493,12 @@
                    return
                }
                this.form.confirmFlag = 3
                this.checkPlaceExt()
                if (this.type == 2) {
                    this.checkPlaceExt()
                } else {
                    this.checkPlacePeople()
                }
            }