Lou
2024-01-12 2de7b174c8048aa19a47033f89a5b0693bf20928
新增走访任务页面,场所任务跳转, 调整部分样式
8 files modified
340 ■■■■■ changed files
api/workLog/workLog.js 10 ●●●●● patch | view | raw | blame | history
pages.json 2 ●●● patch | view | raw | blame | history
pages/home/index.vue 10 ●●●● patch | view | raw | blame | history
subPackage/house/member/index.vue 32 ●●●●● patch | view | raw | blame | history
subPackage/house/roomDetails/index.vue 40 ●●●● patch | view | raw | blame | history
subPackage/task/index.vue 2 ●●●●● patch | view | raw | blame | history
subPackage/task/workLogList.vue 235 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/audit.vue 9 ●●●● patch | view | raw | blame | history
api/workLog/workLog.js
@@ -7,4 +7,14 @@
        method: 'POST',
        data
    })
}
export const getWorkLogList = (params) => {
    return http.request({
        url: '/blade-gridWorkLog/gridWorkLog/page',
        method: 'GET',
        params: {
            ...params
        }
    })
}
pages.json
@@ -343,7 +343,7 @@
                {
                    "path": "workLogList",
                    "style": {
                        "navigationBarTitleText": "日志列表",
                        "navigationBarTitleText": "走访任务",
                        "enablePullDownRefresh": false,
                        "navigationBarBackgroundColor": "#fff",
                        "navigationBarTextStyle": "black"
pages/home/index.vue
@@ -118,7 +118,6 @@
            </view>
            <view class="bgc-ff mb-20 p-20 pb-20" v-if="(roleType == 2) && (curSelectSite.addressType == 2)">
                <caption-row title="工作台" />
                <u-grid :border="false" col="4">
                    <u-grid-item @click="navigatorPage('/subPackage/workbench/views/editExamine')"
@@ -129,7 +128,7 @@
                            <text class="grid-text f-24 fw mt-10">场所维护</text>
                        </view>
                    </u-grid-item>
                    <u-grid-item @click="navigatorPage('')" :customStyle="{paddingTop:20+'rpx'}">
                    <u-grid-item @click="navToSiteList()" :customStyle="{paddingTop:20+'rpx'}">
                        <view class="grid-item flex f-d-c a-i-c"
                            style="background:linear-gradient(133deg, #F9FAFE 0%, rgba(249,250,254,0) 100%)">
                            <u-icon name="/static/icon/menu-02.png" width="60rpx" height="60rpx"></u-icon>
@@ -731,6 +730,13 @@
                        })
                    }
                })
            },
            //场所任务跳转
            navToSiteList() {
                uni.navigateTo({
                    url: `/subPackage/workbench/views/audit?code=${uni.getStorageSync("siteInfo").houseCode}`
                })
            }
        }
    }
subPackage/house/member/index.vue
@@ -103,6 +103,11 @@
                            </u--input>
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item class="form-item  address-row" labelWidth="100" label="现居住地" prop="currentAddress">
                            <u-textarea border="none" :disabled="form.source ==1?true:false" disabledColor="#ffffff"
                                v-model="form.currentAddress" placeholder="请输入现居住地">
                            </u-textarea>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="籍贯地区" prop="nativePlaceAdcode">
                            <view class="region">
                                <picker mode="region" :value="navtivePlaceDefault" @change="changeNativeRegion">
@@ -133,11 +138,7 @@
                        </u-form-item>
                        <u-form-item class="form-item  address-row" labelWidth="100" label="现居住地" prop="currentAddress">
                            <u--input border="none" :disabled="form.source ==1?true:false" disabledColor="#ffffff"
                                v-model="form.currentAddress" placeholder="请输入现居住地">
                            </u--input>
                        </u-form-item>
                        <u-form-item @click="showSelectBus('户籍类型','residentType')" class="form-item" labelWidth="100"
                            label="户籍类型" prop="residentType">
                            <u--input border="none" v-model="selectDefaultName.residentType" disabled
@@ -146,12 +147,13 @@
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="户籍地址" prop="hukouRegistration">
                            <u--input border="none" v-model="form.hukouRegistration" placeholder="请输入户籍地址">
                            </u--input>
                            <u-textarea border="none" v-model="form.hukouRegistration" placeholder="请输入户籍地址">
                            </u-textarea>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="标签" @click="navTo">
                        <u-form-item v-if="from != 'family'" class="form-item" labelWidth="100" label="标签"
                            @click="navTo">
                            <view class="">
                                <text style="color: #c0c4cc;"
                                    v-if="!form.householdLabelList || !form.householdLabelList.length">请选择标签</text>
@@ -193,8 +195,8 @@
                            </u--input>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="工作单位地址" prop="cmpyRegAddr">
                            <u--input border="none" v-model="form.cmpyRegAddr" placeholder="请输入工作单位地址">
                            </u--input>
                            <u-textarea border="none" v-model="form.cmpyRegAddr" placeholder="请输入工作单位地址">
                            </u-textarea>
                        </u-form-item>
                        <u-form-item @click="showSelectBus('工作状态','workStatus')" class="form-item" labelWidth="100"
                            label="工作状态" prop="workStatus">
@@ -229,8 +231,8 @@
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="外出详址" prop="goOutAddr">
                            <u--input border="none" v-model="form.goOutAddr" placeholder="请输入外出详址">
                            </u--input>
                            <u-textarea border="none" v-model="form.goOutAddr" placeholder="请输入外出详址">
                            </u-textarea>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="外出原因" prop="goOutReason  ">
@@ -287,7 +289,7 @@
            keyName="name" @confirm="typeSelect"></u-picker>
        <u-datetime-picker :show="showSelectDate" v-model="currentTime" mode="date" :formatter="formatter"
            @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
            @confirm="confirmDate" @cancel="showSelectDate = false" :minDate="goOutMinDate"></u-datetime-picker>
        <u-datetime-picker :show="showSelectBirthday" v-model="currentTime" mode="date" @confirm="confirmBirthday"
            @cancel="showSelectBirthday = false" :minDate="minDate"></u-datetime-picker>
@@ -486,7 +488,8 @@
                id: "",
                showSelectBirthday: false,
                currentTime: Number(new Date()),
                minDate: ""
                minDate: "",
                goOutMinDate: ""
            }
        },
        created() {
@@ -497,6 +500,7 @@
        },
        async onLoad(option) {
            this.minDate = Number(new Date('1900-01-01')); //设置出生日期选择器最小值
            this.goOutMinDate = Number(new Date('1970-01-01')); //设置外出时间选择器最小值
            const data = JSON.parse(option.data)
            console.log("data==>", data)
            this.houseCode = data.houseCode;
subPackage/house/roomDetails/index.vue
@@ -75,19 +75,21 @@
                        </view>
                    </view>
                    <view class="flex a-i-c j-c-s-b btm-box">
                        <view class="l flex">
                        <view class="l flex" style="width:90%;">
                            <u-icon name="/static/icon/selected.png" size="16"></u-icon>
                            <!-- u-icon name="photo"></u-icon> -->
                            <view class="owner-img-box" v-if="item.relationship == 1">主</view>
                            <view class="flex flex-wrap ml-20" v-if="item.householdLabelList.length">
                            <scroll-view class="label-wrap" :scroll-x="true" v-if="item.householdLabelList.length">
                                <block v-for="i in item.householdLabelList">
                                    <view class=" mr-10" v-if="i.labelName">
                                        <u-tag :text="i.labelName" :bgColor="i.color" :borderColor="i.color"
                                    <view class="label-tag mr-10 c-ff" v-if="i.labelName"
                                        :style="{backgroundColor:i.color}" @click="showTag(i.labelName)">
                                        {{i.labelName}}
                                        <!-- <u-tag :text="i.labelName" :bgColor="i.color" :borderColor="i.color"
                                            size="mini">
                                        </u-tag>
                                        </u-tag> -->
                                    </view>
                                </block>
                            </view>
                            </scroll-view>
                        </view>
                        <view class="r">
                            <u-icon name="/static/icon/delete.png" size="16" @click="removeHouseholdSub(item)"></u-icon>
@@ -452,6 +454,13 @@
                })
                return res.name
            },
            showTag(labelName) {
                uni.showToast({
                    title: labelName,
                    icon: "none"
                })
            }
        }
    }
</script>
@@ -644,4 +653,23 @@
        padding: 10rpx 0;
        border-bottom: 1rpx solid #f6f6f6;
    }
    .label-wrap {
        white-space: nowrap;
        margin-left: 20rpx;
        width: 80%;
    }
    .label-tag {
        width: 110rpx;
        padding: 2rpx 10rpx;
        box-sizing: border-box;
        display: inline-block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 22rpx;
        border-radius: 4rpx;
        text-align: center;
    }
</style>
subPackage/task/index.vue
@@ -209,6 +209,8 @@
                                i.count = data.bqsj
                            } else if (i.name == "租房管理") {
                                i.count = data.czsh
                            } else if (i.name == "走访任务") {
                                i.count = data.zfrw;
                            }
                        }
                        this.bailCount = data.qbhs
subPackage/task/workLogList.vue
@@ -1,8 +1,241 @@
<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'}" :scrollable="false">
                    </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">
                <view class="item-title flex a-i-c j-c-s-b mb-20">
                    <text class="f-32 fw">{{i.name}}</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.createTime}}</text>
                </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.phone}}</text>
                </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.address || ""}}</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 {
        getWorkLogList
    } from "@/api/workLog/workLog.js"
    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: ""
            }
        },
        onLoad(option) {
            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 = {
                    page: this.currentPage,
                    size: 20,
                    status: this.currentStatus,
                    frequency: this.frequency
                }
                if (this.selectDate.length) {
                    params.startTime = this.selectDate[0]
                    params.endTime = this.selectDate[1]
                }
                if (this.houseCode) {
                    params.houseCode = this.houseCode;
                }
                if (this.reportType) {
                    params.reportType = this.reportType
                }
                if (this.keyword) {
                    params.name = this.keyword;
                }
                getWorkLogList(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(name, id, type) {
                if (type == 1) {
                    this.$u.func.globalNavigator(`bailReportDetail?id=${id}`)
                } else if (type == 2) {
                    this.$u.func.globalNavigator(`hotelReportDetail?id=${id}`)
                } else if (type == 3 || type == 4 || type == 5) {
                    this.$u.func.globalNavigator(`labelReportDetail?id=${id}`)
                } else if (type == 6) {
                    this.$u.func.globalNavigator(`schoolReportDetail?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>
<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>
subPackage/workbench/views/audit.vue
@@ -24,6 +24,7 @@
                @click="navTo(i.name,i.id,i.reportType)">
                <view class="item-title flex a-i-c j-c-s-b mb-20">
                    <text class="f-32 fw">{{i.name}}</text>
                    <u-tag v-if="i.status == 4" text="待接收" type="warning" plain plainFill></u-tag>
                    <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>
                    <u-tag v-if="i.status == 3" text="审核拒绝" type="error" plain plainFill></u-tag>
@@ -63,6 +64,10 @@
                        status: "",
                    },
                    {
                        name: "待接收",
                        status: 4,
                    },
                    {
                        name: "待审核",
                        status: 1
                    },
@@ -73,7 +78,7 @@
                    {
                        name: "已拒绝",
                        status: 3
                    },
                    }
                ],
                tabIndex: 0,
                currentStatus: "",
@@ -216,7 +221,7 @@
    .tab {
        width: 100%;
        // width: 100%;
    }