Lou
2024-03-18 97d55d5b998dfaf4ed5e86c20fcb3fc1075d41b3
更新
7 files modified
204 ■■■■ changed files
components/caption/caption.vue 41 ●●●●● patch | view | raw | blame | history
components/tabBar/tabBar.vue 38 ●●●● patch | view | raw | blame | history
pages.json 14 ●●●● patch | view | raw | blame | history
pages/home/index.scss 7 ●●●● patch | view | raw | blame | history
pages/home/index.vue 74 ●●●●● patch | view | raw | blame | history
subPackage/house/member/add.vue 2 ●●●●● patch | view | raw | blame | history
subPackage/house/member/index.vue 28 ●●●●● patch | view | raw | blame | history
components/caption/caption.vue
@@ -2,50 +2,55 @@
    <view class="caption flex a-i-c j-c-s-b">
        <view class="flex a-i-c">
            <view class="line"></view>
            <text class="f-32 fw">{{title}}</text>
            <text class=" fw" :style="{fontSize:fontSize}">{{title}}</text>
        </view>
        <view class="caption-right"  v-if="isLink"    @click="navTo()">
        <view class="caption-right" v-if="isLink" @click="navTo()">
            <text class="f-26 c-99">更多</text>
            <u-icon name="arrow-right" color="#999"  size="14" ></u-icon>
            <u-icon name="arrow-right" color="#999" size="14"></u-icon>
        </view>
    </view>
</template>
<script>
    export default {
        name:"captionRow",
        props:{
            title:String,     //左侧标题
            isLink:{          //是否展示右侧箭头并开启点击反馈
                type:Boolean,
                default:false
        name: "captionRow",
        props: {
            title: String, //左侧标题
            isLink: { //是否展示右侧箭头并开启点击反馈
                type: Boolean,
                default: false
            },
            url:String       //点击后跳转的URL地址
            url: String, //点击后跳转的URL地址
            fontSize: {
                type: String,
                value: '32rpx'
            }
        },
        methods:{
            navTo(){
        methods: {
            navTo() {
                uni.navigateTo({
                    url:this.url
                    url: this.url
                })
            }
        }
    }
</script>
<style lang="scss"  scoped>
<style lang="scss" scoped>
    .caption {
        width: 100%;
        padding: 30rpx 0 0;
        .line {
            width: 6rpx;
            height: 28rpx;
            background-color: #017BFC;
            margin-right: 14rpx;
        }
        .caption-right{
            width:120rpx;
        .caption-right {
            width: 120rpx;
            display: flex;
            justify-content: flex-end;
            align-items: center;
components/tabBar/tabBar.vue
@@ -1,6 +1,6 @@
<template>
    <view>
        <u-tabbar class="custom-tabbar" zIndex="100" :value="currentTab" :fixed="true" :active-color="activeColor"
        <u-tabbar class="custom-tabbar" zIndex="100" :value="current" :fixed="true" :active-color="activeColor"
            :inactive-color="inactiveColor" @change='change'>
            <u-tabbar-item v-for="(item,index) in curTabList" :icon="item.icon" :key="index" :text="item.name">
            </u-tabbar-item>
@@ -11,7 +11,7 @@
<script>
    export default {
        props: {
            currentTab: {},
            current: Number,
        },
        data() {
            return {
@@ -21,16 +21,33 @@
                curTabList: [{
                        name: '首页',
                        iconPathSelected: '',
                        iconPath: '',
                        icon: "home",
                        iconPathSelected: '/static/img/tabbar-01-selected.png',
                        iconPath: '/static/img/tabbar-01.png',
                        // icon: "home",
                        url: '/pages/home/index'
                    },
                    {
                        name: '圈子',
                        iconPathSelected: 'static/img/tabbar-02-selected.png',
                        iconPath: 'static/img/tabbar-02.png',
                        // icon: "home",
                        url: '/pages/home/index'
                    },
                    {
                        name: '驾驶舱',
                        iconPathSelected: 'static/img/tabbar-02-selected.png',
                        iconPath: 'static/img/tabbar-02.png',
                        // icon: "home",
                        url: '/pages/statistics/index'
                    },
                    {
                        name: '个人中心',
                        iconPathSelected: '',
                        iconPath: '',
                        icon: "account-fill",
                        iconPathSelected: '/static/img/tabbar-03-selected.png',
                        iconPath: '/static/img/tabbar-03.png',
                        // icon: "account-fill",
                        url: '/pages/user/center'
                    }
                ]
@@ -62,7 +79,10 @@
        },
        methods: {
            change(e) {
                this.$emit("change", this.curTabList[e].url)
                uni.switchTab({
                    url: '/' + this.curTabList[e].path
                })
                // this.$emit("change", this.curTabList[e].url)
            },
        }
pages.json
@@ -931,7 +931,7 @@
        "backgroundColor": "#4586FE"
    },
    "tabBar": {
        // "custom": true,
        "custom": true,
        "color": "#AFB8C3",
        "selectedColor": "#5086FA",
        "borderStyle": "white",
@@ -942,12 +942,12 @@
                "iconPath": "static/img/tabbar-01.png",
                "text": "首页"
            },
            // {
            //     "pagePath": "pages/circle/index",
            //     "iconPath": "static/img/tabbar-02.png",
            //     "selectedIconPath": "static/img/tabbar-02-selected.png",
            //     "text": "圈子"
            // },
            {
                "pagePath": "pages/circle/index",
                "iconPath": "static/img/tabbar-02.png",
                "selectedIconPath": "static/img/tabbar-02-selected.png",
                "text": "圈子"
            },
            {
                "pagePath": "pages/statistics/index",
                "iconPath": "static/img/tabbar-02.png",
pages/home/index.scss
@@ -109,7 +109,7 @@
        }
        .item-text {
            height: 65rpx;
            height: 70rpx;
            margin-left: 20rpx;
            color: #fff;
        }
@@ -136,6 +136,8 @@
        height: 153rpx;
        border-radius: 16rpx 16rpx 16rpx 16rpx;
        justify-content: center;
        background:linear-gradient(133deg, #F9FAFE 0%, rgba(249,250,254,0) 100%)
    }
    .row {
@@ -170,6 +172,7 @@
            flex: 1;
            text-align: center;
            padding: 20rpx 0;
            font-size:34rpx;
        }
        .tabs-active {
@@ -192,7 +195,7 @@
    }
    /deep/.u-cell__title-text {
        font-size: 32rpx;
        font-size: 34rpx !important;
        font-weight: bold;
        color: #000;
        position: relative;
pages/home/index.vue
@@ -20,20 +20,20 @@
                        <view class="item-box">
                            <view class="f-28">{{i.title}}</view>
                            <view class="flex j-c-s-b">
                                <text class="f-22">{{i.name}}</text>
                                <text class="f-26 fw">{{i.name}}</text>
                                <u-icon :name="i.icon" @click.stop="callPhone(i.phone)"></u-icon>
                            </view>
                        </view>
                    </view>
                </view>
                <view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 1 || roleType == 3">
                <view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 1">
                    <view @click="scan" class="block-item">
                        <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
                        <view class="block-item-box flex a-i-c ">
                            <u-icon name="/static/icon/nav-05.png" width="68rpx" height="68rpx"></u-icon>
                            <u-icon name="/static/icon/nav-05.png" width="70rpx" height="70rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b">
                                <text class="f-26 fw">扫一扫</text>
                                <text class="f-28 fw">扫一扫</text>
                                <text class="f-24 opacity">场所采集</text>
                            </view>
                        </view>
@@ -41,30 +41,49 @@
                    <view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
                        <image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
                        <view class="block-item-box flex a-i-c">
                            <u-icon name="/static/icon/nav-06.png" width="68rpx" height="68rpx"></u-icon>
                            <u-icon name="/static/icon/nav-06.png" width="70rpx" height="70rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b">
                                <text class="f-26 fw">打卡登记</text>
                                <text class="f-28 fw">打卡登记</text>
                                <text class="f-24 opacity">在线打卡</text>
                            </view>
                        </view>
                    </view>
                    <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')"
                        v-if="roleType == 1">
                    <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')">
                        <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
                        <view class="block-item-box flex a-i-c">
                            <u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
                            <u-icon name="/static/icon/nav-12.png" width="70rpx" height="70rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b">
                                <text class="f-26 fw">驾驶舱</text>
                                <text class="f-28 fw">驾驶舱</text>
                                <text class="f-24 opacity">数据统计</text>
                            </view>
                        </view>
                    </view>
                    <view class="block-item" @click="navigatorPage('/subPackage/task/index')" v-if="roleType == 3">
                        <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
                        <view class="block-item-box flex a-i-c">
                            <u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b">
                </view>
                <view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 3">
                    <view @click="scan" class="block-item" style="width:47%; background:#5673B7">
                        <!--     <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill"
                            style="width:100%;" /> -->
                        <view class="block-item-box flex a-i-c j-c-c " style="width:100%;">
                            <u-icon name="/static/icon/nav-05.png" width="72rpx" height="72rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b" style="margin-left: 20rpx;">
                                <text class="f-28 fw">扫一扫</text>
                                <text class="f-24 opacity">场所采集</text>
                            </view>
                        </view>
                    </view>
                    <view class="block-item" @click="navigatorPage('/subPackage/task/index')"
                        style="width:47%;background:#5673B7">
                        <!-- <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill"
                            style="width:100%;" /> -->
                        <view class="block-item-box flex a-i-c j-c-c" style="width:100%;">
                            <u-icon name="/static/icon/nav-12.png" width="72rpx" height="72rpx"></u-icon>
                            <view class="item-text flex f-d-c j-c-s-b" style="margin-left: 20rpx;">
                                <text class="f-26 fw">待办事项</text>
                                <text class="f-24 opacity">我的任务</text>
                            </view>
@@ -73,7 +92,6 @@
                            </view>
                        </view>
                    </view>
                </view>
                <!-- <view class="nav bgc-ff" v-if="liveList.length || roleType == 2">
@@ -172,7 +190,7 @@
                            <view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
                                @click.native="pushPage(item)" :key="index">
                                <u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
                                <text class="cell-text f-26 c-ff">{{item.title}}</text>
                                <text class="cell-text f-26 fw c-ff">{{item.title}}</text>
                            </view>
                        </view>
                    </u-collapse-item>
@@ -191,7 +209,7 @@
                        <u-grid-item @click="navigatorPage(item.path)"
                            v-for="(item, index) in sectionList[menuTabIndex].children" :index="index" :key="index"
                            :customStyle="{paddingTop:20+'rpx'}">
                            <view class="grid-item flex f-d-c a-i-c" :style="{background:item.background}">
                            <view class="grid-item flex f-d-c a-i-c">
                                <u-icon :name="item.pictureImg" width="64rpx" height="64rpx"></u-icon>
                                <text class="grid-text f-26 fw mt-10">{{item.name}}</text>
                            </view>
@@ -236,7 +254,7 @@
            </view> -->
            <view class="p-20 bgc-ff mb-20" v-if="isShowNotice">
                <caption-row title="通知公告" :is-link="true" url="/subPackage/article/list" />
                <caption-row title="通知公告" font="34rpx" :is-link="true" url="/subPackage/article/list" />
                <notice-list :data="notice" />
            </view>
@@ -274,6 +292,9 @@
    import {
        getCountTypeNumber
    } from "@/api/task/task.js"
    export default {
        components: {
            noticeList,
@@ -707,14 +728,21 @@
                    type = 1
                    this.roleType = 1;
                    this.roleTypeName = "街道社区网格"
                    this.$set(this.background, "top", "#017BFC");
                    this.$set(this.background, "banner",
                        "linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%)");
                } else if (roleName == '居民') {
                    type = 2
                    this.roleType = 2
                    this.roleTypeName = "居民"
                    uni.setTabBarItem({
                        index: 1,
                        visible: false
                    })
                    this.$set(this.background, "top", "#017BFC");
                    this.$set(this.background, "banner",
                        "linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%)");
                } else if (roleName == '民警') {
                    type = 1
                    this.roleType = 3
subPackage/house/member/add.vue
@@ -721,6 +721,8 @@
                this.volunteerOrg = result;
                if (result != "其他") {
                    this.form.volunteerOrg = result;
                } else {
                    this.form.volunteerOrg = "";
                }
                this.showVolunteerOrg = false;
subPackage/house/member/index.vue
@@ -94,6 +94,18 @@
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item v-if="form.currentAddress" @click="navToHouseTag" class="form-item"
                            labelWidth="110" label="房屋标签" prop="gender">
                            <view class="">
                                <text style="color: #c0c4cc;"
                                    v-if="!form.userHouseLabelVOList || !form.userHouseLabelVOList.length">请选择标签</text>
                                <text class="f-28" v-else>{{showLabel()}}</text>
                            </view>
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item class="form-item" @click="showVolunteerOrg = true" labelWidth="120" label="志愿者组织"
                            prop="volunteerOrg">
@@ -509,6 +521,7 @@
                volunteerOrgTypeIndex: [0],
                volunteerOrg: "",
                showVolunteerOrg: false,
                houseTag: ""
            }
        },
        created() {
@@ -576,6 +589,9 @@
                    console.log("===>", this.getHouseRegion(res.data.townStreetName));
                    this.form.homeAdcode = this.getHouseRegion(res.data.townStreetName).code;
                    this.homeIndex = this.getHouseRegion(res.data.townStreetName).index;
                    if (res.data.userHouseLabelVOList.length) {
                        this.houseTag = res.data.userHouseLabelVOList[0].labelName
                    }
                })
            },
@@ -663,6 +679,8 @@
                this.volunteerOrg = result;
                if (result != "其他") {
                    this.form.volunteerOrg = result;
                } else {
                    this.form.volunteerOrg = "";
                }
                this.showVolunteerOrg = false;
@@ -855,6 +873,9 @@
                        }
                    }
                }
                delete this.form.userHouseLabelVOList;
                const res = await saveOrUpdateHousehold(this.form)
                if (res.code !== 200) {
                    uni.showToast({
@@ -942,8 +963,15 @@
                        })
                    }
                })
            },
            navToHouseTag() {
                uni.navigateTo({
                    url: `/subPackage/house/roomControl/index?code=${this.houseCode}&from=house`
                })
            }
        }
    }
</script>