Lou
2024-01-05 47909ab7f1991adb2d5c92ac00a8b0ea41764caa
更新
4 files modified
244 ■■■■■ changed files
subPackage/house/family/index.vue 4 ●●●● patch | view | raw | blame | history
subPackage/house/list/auditList.vue 5 ●●●● patch | view | raw | blame | history
subPackage/house/member/index.vue 188 ●●●●● patch | view | raw | blame | history
subPackage/user/role/index.vue 47 ●●●● patch | view | raw | blame | history
subPackage/house/family/index.vue
@@ -122,8 +122,8 @@
                        </view> -->
                        <view class="sp-list-box">
                            <view class="house-list-box flex" v-for="(item, index) in shopList" :name="index"
                                :key="index" @click="pushShopPage" :data-code="i.addressCode"
                                :data-type="i.addressType">
                                :key="index" @click="pushShopPage" :data-code="item.addressCode"
                                :data-type="item.addressType">
                                <view class="l">
                                    <u-icon name="/static/icon/store.png" width="15" height="18"></u-icon>
                                </view>
subPackage/house/list/auditList.vue
@@ -74,9 +74,6 @@
                        status: ""
                    },
                    {
                        name: "待审核",
                        status: 0
                    },
@@ -177,7 +174,7 @@
                    content: "是否要通过该住户?",
                    success: (res) => {
                        if (res.confirm) {
                            item.confirmFlag = 2;
                            item.confirmFlag = 1;
                            this.auditResidentRequest(item);
                        }
                    }
subPackage/house/member/index.vue
@@ -15,10 +15,10 @@
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item> -->
                        <u-form-item @click="showSelectBus('角色关系','relationship')" class="form-item" labelWidth="100"
                            label="角色关系" required prop="relationship">
                        <u-form-item @click="showSelectBus('与业主关系','relationship')" class="form-item" labelWidth="100"
                            label="与业主关系" required prop="relationship">
                            <u--input border="none" v-model="selectDefaultName.relationship" disabled
                                disabledColor="#ffffff" placeholder="请选择角色关系">
                                disabledColor="#ffffff" placeholder="请选择与业主关系">
                            </u--input>
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
@@ -28,6 +28,13 @@
                            </u--input>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="出生日期" prop="birthday"
                            @click="showSelectBirthday = true">
                            <u--input border="none" v-model="form.birthday" disabled disabledColor="#ffffff"
                                placeholder="请选择出生日期">
                            </u--input>
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item @click="showSelectBus('证件类型','cardType')" class="form-item" labelWidth="100"
                            label="证件类型" prop="gender">
@@ -38,13 +45,13 @@
                        </u-form-item>
                        <u-form-item v-if="selectDefaultIndex.cardType == 0" class="form-item" labelWidth="100"
                            label="身份证号码" prop="idCard">
                        <u-form-item v-if="form.cardType == 111" class="form-item" labelWidth="100" label="身份证号码"
                            prop="idCard">
                            <u--input border="none" type="idcard " v-model="form.idCard" placeholder="请输入身份证号码">
                            </u--input>
                        </u-form-item>
                        <u-form-item v-if="selectDefaultIndex.cardType == 1" class="form-item" labelWidth="100"
                        <u-form-item v-if="form.cardType && form.cardType != 111" class="form-item" labelWidth="100"
                            label="证件号码" prop="cardNo">
                            <u--input border="none" v-model="form.cardNo" placeholder="请输入证件号码">
                            </u--input>
@@ -59,7 +66,7 @@
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber">
                        <u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber" required>
                            <u--input border="none" type="number" v-model="form.phoneNumber" placeholder="请输入手机号码">
                            </u--input>
                        </u-form-item>
@@ -105,7 +112,7 @@
                        </u-form-item>
                        <u-form-item class="form-item" labelWidth="100" label="籍贯地区" prop="nativePlaceAdcode">
                            <view class="region">
                                <picker mode="region" @change="changeNativeRegion">
                                <picker mode="region" :value="navtivePlaceDefault" @change="changeNativeRegion">
                                    <view class="region-picker c-c0" v-if="!nativePlace">
                                        请选择籍贯地区
                                    </view>
@@ -120,7 +127,7 @@
                        <u-form-item class="form-item" labelWidth="100" label="户籍地区" prop="residentAdcode">
                            <view class="region">
                                <picker mode="region" @change="changeHouseholdRegion">
                                <picker mode="region" :value="residentadDefault" @change="changeHouseholdRegion">
                                    <view class="region-picker c-c0" v-if="!residentad">
                                        请选择户籍地区
                                    </view>
@@ -155,8 +162,7 @@
                            <view class="">
                                <text style="color: #c0c4cc;"
                                    v-if="!form.householdLabelList || !form.householdLabelList.length">请选择标签</text>
                                <text class="f-28" v-else style="margin-right:5rpx;"
                                    v-for="i in form.householdLabelList">{{i.labelName}}</text>
                                <text class="f-28" v-else>{{showLabel()}}</text>
                            </view>
                            <u-icon slot="right" name="arrow-right"></u-icon>
                        </u-form-item>
@@ -258,11 +264,6 @@
                            <u--input border="none" v-model="form.remark" placeholder="补充说明">
                            </u--input>
                        </u-form-item>
                    </view>
                </u-form>
            </view>
@@ -292,8 +293,11 @@
            :show="typeShow" :columns="[selectBusList]" @close="typeShow = false" @cancel="typeShow = false"
            keyName="name" @confirm="typeSelect"></u-picker>
        <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="goOutTime" mode="date"
            :formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
        <u-datetime-picker :show="showSelectDate" v-model="currentTime" mode="date" :formatter="formatter"
            @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
        <u-datetime-picker :show="showSelectBirthday" v-model="currentTime" mode="date" @confirm="confirmBirthday"
            @cancel="showSelectBirthday = false"></u-datetime-picker>
        <u-picker :defaultIndex="[homeIndex]" :closeOnClickOverlay="true" :show="showRegion" :columns="[regionList]"
            @close="showRegion = false" @cancel="showRegion = false" keyName="name" @confirm="regionSelect"></u-picker>
@@ -338,14 +342,49 @@
                    description: "",
                },
                rules: {
                    // roleType: [{
                    //     required: true,
                    //     message: '请选择角色'
                    // }],
                    name: [{
                    'selectDefaultName.relationship': {
                        required: true,
                        message: '请填写姓名'
                    }],
                        message: '请选择与业主关系',
                        trigger: ['change', 'blur'],
                    },
                    'name': {
                        type: 'string',
                        required: true,
                        message: '请填写姓名',
                        trigger: ['change', 'blur'],
                    },
                    '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']
                        }
                    ],
                    'phoneNumber': [{
                            required: true,
                            message: '请输入手机号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                return uni.$u.test.mobile(value);
                            },
                            message: '手机号码不正确',
                            trigger: ['change', 'blur']
                        }
                    ]
                },
                typeShow: false,
                roleName: "",
@@ -400,16 +439,6 @@
                    healthStatus: [],
                    cardType: []
                },
                roleTypeName: '',
                relationshipName: '',
                genderName: '',
                residentialStatusName: "",
                isPrimaryContactName: '',
                ethnicityName: '',
                educationName: '',
                partyEmberName: '',
                workStatusName: '',
                maritalStatusName: '',
                // 下拉变量
                selectBusList: [],
                selectBusVal: '',
@@ -428,7 +457,8 @@
                    maritalStatus: 0,
                    cardType: 0,
                    healthStatus: 0,
                    residentType: 0
                    residentType: 0,
                    residentialStatus: 0
                },
                selectDefaultName: {
                    roleType: "",
@@ -440,9 +470,10 @@
                    partyEmber: "",
                    workStatus: "",
                    maritalStatus: "",
                    cardType: "身份证",
                    cardType: "",
                    healthStatus: "",
                    residentType: ""
                    residentType: "",
                    residentialStatus: ""
                },
                showSelectDate: false,
                regionList: [],
@@ -457,11 +488,15 @@
                from: "",
                type: "",
                id: "",
                goOutTime: Number(new Date())
                showSelectBirthday: false,
                currentTime: Number(new Date()),
            }
        },
        created() {
            this.getHeader()
        },
        onReady() {
            this.$refs.form.setRules(this.rules)
        },
        onLoad(option) {
            const data = JSON.parse(option.data)
@@ -495,21 +530,28 @@
        onShow() {
            console.log(this.form);
            if (this.id) {
                this.getHouseholdInfo()
            }
            // if (this.id) {
            //     this.getHouseholdInfo()
            // }
        },
        methods: {
            showLabel() {
                let arr = []
                for (let i of this.form.householdLabelList) {
                    arr.push(i.labelName)
                }
                return arr.join(",")
            },
            //选择籍贯
            changeNativeRegion(e) {
                console.log(e);
                let {
                    code,
                    value
                } = e.detail;
                this.nativePlace = `${value[0]}${value[1]}${value[2]}`
                this.nativePlace = `${value[0]}-${value[1]}-${value[2]}`
                this.form.nativePlaceAdcode = code[2];
            },
@@ -520,7 +562,7 @@
                    code,
                    value
                } = e.detail;
                this.residentad = `${value[0]}${value[1]}${value[2]}`
                this.residentad = `${value[0]}-${value[1]}-${value[2]}`
                this.form.residentAdcode = code[2];
            },
@@ -595,26 +637,27 @@
                                index,
                                name
                            } = this.findObjValue(data[i], this.dataList[i])
                            this.selectDefaultIndex[i] = index;
                            this.selectDefaultIndex[i] = index || 0;
                            this.selectDefaultName[i] = name;
                        }
                        if (data.idCard && !data.cardType) {
                            this.$set(this.form, "cardType", this.dataList.cardType[0].dictKey)
                            this.$set(this.selectDefaultIndex, "cardType", 0)
                            this.$set(this.selectDefaultName, "cardType", "身份证")
                            this.$set(this.selectDefaultName, "cardType", "居民身份证")
                        }
                        if (data.nativePlaceAdName) {
                            this.nativePlace =
                                `${data.nativePlaceProvinceAdName}${data.nativePlaceCityAdName}${data.nativePlaceAdName}`
                                `${data.nativePlaceProvinceAdName}-${data.nativePlaceCityAdName}-${data.nativePlaceAdName}`
                            this.navtivePlaceDefault = [data.nativePlaceProvinceAdName, data
                                .nativePlaceCityAdName, data.nativePlaceAdName
                            ]
                        }
                        if (data.residentAdName) {
                            this.residentad =
                                `${data.residentProvinceAdName}${data.residentCityAdName}${data.residentAdName}`
                            this.residentadDefault = [data.residentProvinceAdName, data.residentCityAdName,
                                `${data.residentProvinceAdName}-${data.residentCityAdName}-${data.residentAdName}`
                            this.residentadDefault = [data.residentProvinceAdName, data
                                .residentCityAdName,
                                data.residentAdName
                            ]
                        }
@@ -656,25 +699,23 @@
            // 新增更新操作
            async saveOrUpdate() {
                this.form['houseCode'] = this.houseCode
                const idCardRegex = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; // 支持15位、18位或者17位加上最后一位为数字或小写"X"的身份证号码
                const telRegex = /^1[3456789]\d{9}$/;
                if (this.form.idCard) {
                    if (!idCardRegex.test(this.form.idCard)) {
                        uni.showToast({
                            title: "身份证号格式有误",
                            icon: "none"
                        })
                        return;
                    }
                }
                if (this.form.phoneNumber) {
                    if (!telRegex.test(this.form.phoneNumber)) {
                        uni.showToast({
                            title: "手机号格式有误",
                            icon: "none"
                        })
                        return;
                if (this.form.cardType) {
                    if (this.form.cardType == 111) {
                        if (!this.form.idCard) {
                            uni.showToast({
                                title: "请输入身份证号",
                                icon: "none"
                            })
                            return;
                        }
                    } else {
                        if (!this.form.cardNo) {
                            uni.showToast({
                                title: "请输入证件号",
                                icon: "none"
                            })
                            return;
                        }
                    }
                }
                const res = await saveOrUpdateHousehold(this.form)
@@ -699,8 +740,13 @@
            },
            confirmDate(e) {
                this.showSelectDate = false;
                this.form.goOutTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                this.showSelectDate = false;
            },
            confirmBirthday(e) {
                this.form.birthday = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
                this.showSelectBirthday = false;
            },
            findObjValue(value, obj, key = "value") {
@@ -723,6 +769,8 @@
            navTo() {
                let data = JSON.parse(JSON.stringify(this.form));
                // this.$u.func.globalNavigator(
                //     `householdLabel?data=${JSON.stringify(data)}&from=add`)
                if (!this.isEdit) {
                    this.$u.func.globalNavigator(
                        `householdLabel?data=${JSON.stringify(data)}&from=add`)
subPackage/user/role/index.vue
@@ -1,15 +1,15 @@
<template>
    <view class="container">
        <view>
            <role-list :roleData="roleData"  :current-id="selectRole.id"  @select="select"></role-list>
            <role-list :roleData="roleData" :current-id="selectRole.id" @select="select"></role-list>
        </view>
        <!-- <view class="cur-btn"  v-if="roleData.length">
            <u-button @click="submit" type="primary" text="确定"></u-button>
        </view> -->
        <footer-btn  v-if="roleData.length"  text="确定"  @click="submit"  />
        <footer-btn v-if="roleData.length" text="确定" @click="submit" />
        <u-loading-page :loading="loading"></u-loading-page>
    </view>
@@ -31,7 +31,6 @@
            return {
                roleData: [],
                selectRole: {},
                loading: false,
            }
        },
@@ -50,17 +49,17 @@
                })
                let data = res.data
                console.log(data)
                data.forEach((item,index) => {
                    if(item.roleName == "居民"){
                data.forEach((item, index) => {
                    if (item.roleName == "居民") {
                        item.icon = "/static/icon/user-01.png"
                    }else if (item.roleName == "场所负责人"){
                    } else if (item.roleName == "场所负责人") {
                        item.icon = "/static/icon/user-02.png"
                    }else {
                    } else {
                        item.icon = "/static/icon/user-03.png"
                    }
                    if(item.roleName == "物业管理员"){
                        data.splice(index,1);
                    }
                    if (item.roleName == "物业管理员") {
                        data.splice(index, 1);
                    }
                    // this.roleData.push({
                    //     id: e.id,
@@ -69,10 +68,9 @@
                    //     active: e.id == this.selectRole.id ? true : false
                    // })
                })
                this.roleData = data;
                this.loading = !this.loading
            },
            select(item) {
@@ -88,21 +86,21 @@
                // const appMenu = data.filter(e => e.name == 'app')[0].children
                // console.log("菜单:", appMenu)
                // store.commit("SET_MENU", appMenu)
                this.$store.dispatch("getMenuList").then(res=>{
                this.$store.dispatch("getMenuList").then(res => {
                    uni.showToast({
                        title: "切换身份成功",
                        icon: "success",
                        duration:1500,
                        duration: 1500,
                        success: () => {
                            uni.$emit("refresh")
                            setTimeout(() => {
                                this.$u.func.globalNavigator("/pages/home/index", "switchTab")
                            }, 1000)
                                this.$u.func.globalNavigator("/pages/home/index",
                                    "switchTab")
                            }, 500)
                        }
                    })
                });
            }
        }
    }
@@ -117,16 +115,17 @@
        flex-direction: column;
        // background: #F9F9FA;
    }
    .cur-btn {
        width: 100%;
        padding:20rpx;
        padding: 20rpx;
        position: fixed;
        bottom: 0;
        left: 0;
        box-sizing: border-box;
        z-index: 10;
    }
</style>