Lou
2023-12-08 d34e5c0dbf6b5b0963e55c4db5e6f42d50f480e6
Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_app
6 files modified
443 ■■■■ changed files
http/api.js 34 ●●●● patch | view | raw | blame | history
pages/home/index.vue 14 ●●●● patch | view | raw | blame | history
pages/login/login-account.vue 99 ●●●● patch | view | raw | blame | history
subPackage/bs/views/zhsb.vue 290 ●●●● patch | view | raw | blame | history
subPackage/house/member/index.vue 4 ●●●● patch | view | raw | blame | history
subPackage/user/family/edit.vue 2 ●●● patch | view | raw | blame | history
http/api.js
@@ -121,25 +121,25 @@
        const currentPage = pages[pages.length - 1]
        uni.setStorageSync("responIndex", 0)
        uni.clearStorageSync()
        uni.redirectTo({
            url: `/pages/login/login-account?redirect=/${currentPage.route}`
        })
        // uni.redirectTo({
        //     url: `/pages/login/login-account?redirect=/${currentPage.route}`
        // })
        
         
        // uni.showModal({
        //     title: "提示",
        //     content: "请登录",
        //     showCancel: false,
        //     success: res => {
        //         if (res.confirm) {
        //             uni.redirectTo({
        //                 url: `/pages/login/login-account?redirect=/${currentPage.route}`
        //             })
        //         } else if (res.cancel) {
        //             console.log('用户点击取消');
        //         }
        //     }
        // })
        uni.showModal({
            title: "提示",
            content: "请登录",
            showCancel: false,
            success: res => {
                if (res.confirm) {
                    uni.redirectTo({
                        url: `/pages/login/login-account?redirect=/${currentPage.route}`
                    })
                } else if (res.cancel) {
                    console.log('用户点击取消');
                }
            }
        })
    }else {
        uni.showToast({
            title: '系统繁忙,请稍后再试',
pages/home/index.vue
@@ -257,7 +257,7 @@
                liveList: [], //生活菜单
                contactList: [], //便民服务联系方式
                isShowHouse: false, //显示楼盘表
                isShowNotice: false, //显示通知公告
                isShowNotice: true, //显示通知公告
                isShowContact: false,
                bannerList: [],
                navList: [{
@@ -298,11 +298,11 @@
        },
        onReady() {
            if (!uni.getStorageSync("userInfo")) {
                uni.redirectTo({
                    url: "/pages/login/login-account"
                })
            }
            // if (!uni.getStorageSync("userInfo")) {
            //     uni.redirectTo({
            //         url: "/pages/login/login-account"
            //     })
            // }
        },
        computed: {
@@ -357,7 +357,7 @@
                this.selectRole = uni.getStorageSync("activeRole")
                this.getMenuList()
                this.getSiteList()
                // this.getNoticeList()
                this.getNoticeList()
            },
            getBanner() {
pages/login/login-account.vue
@@ -10,27 +10,28 @@
        <image class="bg" src="/static/img/login-bg.png" :style="{height:screenHeight}" mode="aspectFill"></image>
         <view class="content"  v-if="!loginType">
             <image class="title-img" src="/static/icon/login-title.png" mode="aspectFill"></image>
             <view  class="flex f-d-c a-i-c"  style="margin-bottom:60rpx;">
                 <view class="f-28">登录后即可展示自己</view>
                 <view class="fw" style="font-size:56rpx;margin:40rpx 0 38rpx;">185****1647</view>
                 <view class="f-22">认证服务由中国移动提供</view>
             </view>
             <button class="submit-btn f-28">本机号码一键登录</button>
            <button class="btn bgc-ff f-28 mt-30"  @click="accountLogin()">账号登录</button>
            <view class="agreement flex">
                <u-checkbox-group  v-model="isAgreement">
                    <u-checkbox shape="circle"  size="16" ></u-checkbox>
                </u-checkbox-group>
                <view class="f-22">我已阅读并同意<text class="c-main">用户协议</text>和<text class="c-main">隐私政策</text>以及 <text class="c-main">《中国移动认证服务条款》</text>·同时登录并使用基层智治综合协同平台</view>
        <view class="content" v-if="!loginType">
            <image class="title-img" src="/static/icon/login-title.png" mode="aspectFill"></image>
            <view class="flex f-d-c a-i-c" style="margin-bottom:60rpx;">
                <view class="f-28">登录后即可展示自己</view>
                <view class="fw" style="font-size:56rpx;margin:40rpx 0 38rpx;">185****1647</view>
                <view class="f-22">认证服务由中国移动提供</view>
            </view>
         </view>
        <view class="content"  v-if="loginType == 1">
            <button class="submit-btn f-28">本机号码一键登录</button>
            <button class="btn bgc-ff f-28 mt-30" @click="accountLogin()">账号登录</button>
            <view class="agreement flex">
                <u-checkbox-group v-model="isAgreement">
                    <u-checkbox shape="circle" size="16"></u-checkbox>
                </u-checkbox-group>
                <view class="f-22">我已阅读并同意<text class="c-main">用户协议</text>和<text class="c-main">隐私政策</text>以及 <text
                        class="c-main">《中国移动认证服务条款》</text>·同时登录并使用基层智治综合协同平台</view>
            </view>
        </view>
        <view class="content" v-if="loginType == 1">
            <image class="title-img" src="/static/icon/login-title.png" mode="aspectFill"></image>
@@ -40,15 +41,17 @@
                        <u-input placeholder="请输入用户名" prefixIcon="account"
                            prefixIconStyle="font-size: 28px;color: #017BFC"
                            placeholderStyle="font-size:28rpx;color:#ABABAB;"
                            customStyle="background:#fff;width:634rpx;height:120rpx;"  v-model="form.phone"></u-input>
                            customStyle="background:#fff;width:634rpx;height:120rpx;" v-model="form.phone"></u-input>
                    </u-form-item>
                    <u-form-item prop="password" borderBottom ref="password">
                        <u-input placeholder="请输入密码" prefixIcon="lock" prefixIconStyle="font-size: 28px;color: #017BFC"
                            placeholderStyle="font-size:28rpx;color:#ABABAB;"
                            customStyle="background:#fff;width:634rpx;height:120rpx;"  :type="passwordProps.passwordType" v-model="form.password">
                            customStyle="background:#fff;width:634rpx;height:120rpx;" :type="passwordProps.passwordType"
                            v-model="form.password">
                            <template slot="suffix">
                                <u-icon @click="showPassword" :name="passwordProps.passwordIcon" size="24" color="#9FA5C0"></u-icon>
                                <u-icon @click="showPassword" :name="passwordProps.passwordIcon" size="24"
                                    color="#9FA5C0"></u-icon>
                            </template>
                        </u-input>
                    </u-form-item>
@@ -121,8 +124,8 @@
                form: {
                    phone: "",
                    password: "",
                },
                rules: {
                    'phone': [{
@@ -153,31 +156,33 @@
                    passwordType: "password"
                },
                screenHeight: "",
                loginType:1  ,//登录类型 1账号密码   2 一键登录
                isAgreement:true
                loginType: 1, //登录类型 1账号密码   2 一键登录
                isAgreement: true
            }
        },
        onLoad() {
            this.screenHeight = `${uni.getSystemInfoSync().screenHeight}px`;
            this.form.phone = uni.getStorageSync("phoneNmber");
        },
        methods: {
            accountLogin(){
            accountLogin() {
                // if(!this.isAgreement){
                // }
                console.log(111);
                this.loginType = 1;
            },
            submit() {
                const that = this
                this.$refs.form.validate().then(res => {
                    this.$u.api
                        .token(this.tenantId, this.form.phone, md5(this.form.password))
                        .then(data => {
                            uni.setStorageSync("phoneNmber", this.form.phone)
                            this.$u.func.login(data)
                        })
                        .catch(err => {
@@ -437,26 +442,30 @@
            justify-content: space-evenly;
        }
    }
    .submit-btn{
        width:634rpx;
        height:94rpx;
    .submit-btn {
        width: 634rpx;
        height: 94rpx;
        line-height: 94rpx;
        background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
        border-radius: 8rpx 8rpx 8rpx 8rpx;
        color:#fff;
        color: #fff;
    }
    .mt-190{
        margin-top:190rpx;
    .mt-190 {
        margin-top: 190rpx;
    }
    .btn{
        width:634rpx;
        height:94rpx;
    .btn {
        width: 634rpx;
        height: 94rpx;
        line-height: 94rpx;
        margin-top:30rpx;
        margin-top: 30rpx;
    }
    .agreement{
        width:634rpx;
        margin:37rpx auto 0;
    .agreement {
        width: 634rpx;
        margin: 37rpx auto 0;
    }
</style>
</style>
subPackage/bs/views/zhsb.vue
@@ -2,8 +2,8 @@
    <view class="container">
        <view class="content-box">
            <view class="info">
                <view class="item location">
                    <u-icon name="map" color="#AAAAAA" size="15"></u-icon>
                <view class="item location">
                    <u-icon name="map" color="#AAAAAA" size="15"></u-icon>
                    <text>当前小区:</text>
                    <view class="location">
                        {{ location }}{{ room }}{{ `(共${num}人)` }}
@@ -13,7 +13,7 @@
            <view class="box-title">
                <view class="line"></view>
                <view class="line"></view>
                <view class="title">出租管理</view>
            </view>
            <view class="list">
@@ -27,157 +27,167 @@
                <u-button @click="addRent" type="primary" :plain="true" text="添加租赁信息"></u-button>
            </view>
        </view> -->
        <footer-btn @click="addRent"  text="添加租赁信息" />
        <footer-btn @click="addRent" text="添加租赁信息" />
    </view>
</template>
<script>
import rentList from "@/subPackage/bs/components/list/rentList.vue"
import {
    getHouseRentInfo
} from "@/api/doorplateAddress/doorplateAddress";
import {
    logAdd
} from "../../../api/system/logManage";
export default {
    components: {
        rentList
    },
    data() {
        return {
            houseCode: '',
            location: "",
            room: "",
            num: 0,
            //出租列表
            rentList: []
        }
    },
    onLoad(option) {
        const {
            houseCode
        } = option
        this.houseCode = houseCode
    },
    onShow() {
        this.getHouseRent()
    },
    methods: {
        async getHouseRent() {
            const res = await getHouseRentInfo(this.houseCode)
            const {
                aoiName,
                subAoi,
                buildingName,
                doorplateName,
                unitName,
                houseRentalList
            } = res.data
            this.rentList = []
            this.location = (!!aoiName ? aoiName : subAoi) + buildingName
            this.room = (!!unitName ? unitName : '') + doorplateName + "室"
            this.num = 0
            houseRentalList !== 0 && houseRentalList.forEach(item => {
                const { houseTenantVOList, dueTime, rentalTime } = item
                item.num = houseTenantVOList.length
                this.num += item.num
                if (item.num !== 0) {
                    item.name = houseTenantVOList[0].name
                    item.housingRentalId = houseTenantVOList[0].housingRentalId
                }
                this.rentList = houseRentalList
            })
    import rentList from "@/subPackage/bs/components/list/rentList.vue"
    import {
        getHouseRentInfo
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        logAdd
    } from "../../../api/system/logManage";
    export default {
        components: {
            rentList
        },
        addRent() {
            this.$u.func.globalNavigator("/subPackage/bs/views/rentDetail?houseCode=" + this.houseCode)
        },
        refreshData() {
            this.getHouseRent()
        data() {
            return {
                houseCode: '',
                location: "",
                room: "",
                num: 0,
                //出租列表
                rentList: []
            }
        },
        onLoad(option) {
            const {
                houseCode
            } = option
            this.houseCode = houseCode
        },
        onShow() {
            this.getHouseRent()
        },
        methods: {
            async getHouseRent() {
                if (!this.houseCode) {
                    this.houseCode = uni.getStorageSync("siteInfo").houseCode
                }
                const res = await getHouseRentInfo(this.houseCode)
                const {
                    aoiName,
                    subAoi,
                    buildingName,
                    doorplateName,
                    unitName,
                    houseRentalList
                } = res.data
                this.rentList = []
                this.location = (!!aoiName ? aoiName : subAoi) + buildingName
                this.room = (!!unitName ? unitName : '') + doorplateName + "室"
                this.num = 0
                houseRentalList !== 0 && houseRentalList.forEach(item => {
                    const {
                        householdVOList,
                        dueTime,
                        rentalTime
                    } = item
                    item.num = householdVOList.length
                    this.num += item.num
                    if (item.num !== 0) {
                        item.name = householdVOList[0].name
                        item.housingRentalId = householdVOList[0].housingRentalId
                    }
                    this.rentList = houseRentalList
                })
            },
            addRent() {
                this.$u.func.globalNavigator("/subPackage/bs/views/rentDetail?houseCode=" + this.houseCode)
            },
            refreshData() {
                this.getHouseRent()
            }
        }
    }
}
</script>
<style>
    page {
        background-color: #F5F5F5;
    }
</style>
<style>
    page {
        background-color: #F5F5F5;
    }
</style>
<style scoped lang="scss">
.container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #F6F6F6;
    .content-box {
        height: 0;
        flex: 1;
        overflow-y: auto;
        margin: 20rpx 30rpx;
    }
    .list {
        // padding-bottom: 20px;
    }
    .item {
    .container {
        position: relative;
        width: 100%;
        height: 100%;
        display: flex;
        padding: 30rpx 20rpx;
        background-color: #ffffff;
        border-bottom: 1px solid #eff1f3;
        flex-direction: column;
        background: #F6F6F6;
        .content-box {
            height: 0;
            flex: 1;
            overflow-y: auto;
            margin: 20rpx 30rpx;
        }
        .list {
            // padding-bottom: 20px;
        }
        .item {
            display: flex;
            padding: 30rpx 20rpx;
            background-color: #ffffff;
            border-bottom: 1px solid #eff1f3;
        }
        .location {
            font-weight: 700;
            font-size: 27rpx;
            text {
                color: #AAAAAA;
            }
        }
        .room {
            font-weight: 700;
        }
        .bottom {
            padding: 20rpx;
            background-color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            position: fixed;
            left: 0;
            bottom: 0;
            width: calc(100% - 40rpx);
            .btn {
                // width: calc(100% - 40rpx);
            }
        }
    }
    .location {
        font-weight: 700;
        font-size: 27rpx;
        text {
            color: #AAAAAA;
    .box-title {
        margin: 25rpx 0;
        display: flex;
        .line {
            width: 8rpx;
            margin-right: 10rpx;
            background-color: #2978FF;
        }
        .title {
            font-weight: 700;
        }
    }
    .room {
        font-weight: 700;
    view {
        font-size: 32rpx;
    }
    .bottom {
        padding: 20rpx;
        background-color: #ffffff;
        display: flex;
        justify-content: center;
        align-items: center;
        position: fixed;
        left: 0;
        bottom: 0;
        width: calc(100% - 40rpx);
        .btn {
            // width: calc(100% - 40rpx);
        }
    }
}
.box-title {
    margin: 25rpx 0;
    display: flex;
    .line {
        width: 8rpx;
        margin-right: 10rpx;
        background-color: #2978FF;
    }
    .title {
        font-weight: 700;
    }
}
view {
    font-size: 32rpx;
}
</style>
</style>
subPackage/house/member/index.vue
@@ -194,7 +194,7 @@
                    relationName: '',
                    location: "",
                    title: "",
                    roleType:null,
                    // roleType:null,
                    description: "",
                },
                rules: {
@@ -383,7 +383,7 @@
                const workStatusIndex = this.dataList.workStatusList.findIndex(item => item.name === this.workStatusName)
                const maritalStatusIndex = this.dataList.maritalStatusList.findIndex(item => item.name === this.maritalStatusName)
                
                this.form['roleType'] = roleTypeIndex >0 ? this.dataList.roleList[roleTypeIndex].value : ""
                this.form['roleType'] = roleTypeIndex >=0 ? this.dataList.roleList[roleTypeIndex].value : ""
                this.form['relationship'] = relationshipIndex >0 ? this.dataList.relationshipList[relationshipIndex].value: ""
                this.form['gender'] = genderIndex >0 ?this.dataList.genderList[genderIndex].value: ""
                this.form['isPrimaryContact'] = isPrimaryContactIndex >0 ?this.dataList.isPrimaryContactList[isPrimaryContactIndex].value: ""
subPackage/user/family/edit.vue
@@ -368,7 +368,7 @@
            },
            //类型选择确认
            typeSelect(item) {
                const [ result ] = e.value
                const [ result ] = item.value
                this[this.selectBusModel] = result.name
                this.form[this.selectBusKey] = result.value
                this.typeShow = !this.typeShow