zengh
2022-06-08 60970c9cd58789e7faaca4bf45175400024f11b2
服务器配置
1 files modified
1 files deleted
2 files added
1852 ■■■■■ changed files
pages/registerUser/registerUser - 副本.vue 567 ●●●●● patch | view | raw | blame | history
pages/registerUser/registerUser.vue 217 ●●●●● patch | view | raw | blame | history
pages/registerUser/registerUserbf.vue 612 ●●●●● patch | view | raw | blame | history
pages/registerUser/registerUserbf1.vue 456 ●●●●● patch | view | raw | blame | history
pages/registerUser/registerUser - 副本.vue
File was deleted
pages/registerUser/registerUser.vue
@@ -14,35 +14,19 @@
                :required="true">
                <u-input v-model="form.signals" placeholder="请输入警号" />
            </u-form-item>
            <!-- <u-form-item label="工作单位" left-icon="home-fill" label-width="200" :required="true">
                <u-radio-group v-model="jobValue">
                    <u-radio v-for="(item, index) in jobList" :key="index" :name="item.name" :disabled="item.disabled">
                        {{item.name}}
                    </u-radio>
                </u-radio-group>
            </u-form-item> -->
            <u-form-item v-show="form.role == '民警'" label="单位名称" prop="jobUnit" label-width="200" left-icon="home"
            <u-form-item v-show="form.role == '民警'" label="工作单位" prop="xq" left-icon="map" label-width="200"
                :required="true">
                <u-input v-model="form.jobUnit" placeholder="请输入单位名称" />
                <u-input v-model="form.xq" type="select" placeholder="请选择工作单位" :border="true"
                    @click="showxq = 'true'" />
                <u-select v-model="showxq" mode="mutil-column-auto" :list="listxq" @confirm="confirmxq"></u-select>
            </u-form-item>
            <u-form-item v-show="form.role == '民警'" label="工作地点" prop="xq" left-icon="map-fill" label-width="200"
            <u-form-item v-show="form.role != '民警'" label="服务范围" prop="address" left-icon="map" label-width="200"
                :required="true">
                <u-field :disabled="true" style="width: 100%;" label-width="0" v-model="form.xq" type="textarea"
                    placeholder="请选择工作地点" :fixed="true">
                    <u-icon @click="regionClick" name="map-fill" slot="right" size="44" label="定位" label-pos="bottom"
                        label-color="#103289" color="#103289"></u-icon>
                </u-field>
            </u-form-item>
            <u-form-item v-show="form.role != '民警'" label="居住地" prop="address" left-icon="map" label-width="200" :required="true">
                <u-field :disabled="true" style="width: 100%;" label-width="0" v-model="form.address" type="textarea"
                    placeholder="请选择居住地" :fixed="true">
                    <u-icon @click="placeClick" name="map-fill" slot="right" size="44" label="定位" label-pos="bottom"
                        label-color="#103289" color="#103289"></u-icon>
                </u-field>
                <u-input v-model="form.address" type="select" placeholder="请选择服务范围" :border="true"
                    @click="showxq = 'true'" />
                <u-select v-model="showxq" mode="mutil-column-auto" :list="listxq" @confirm="confirmxq"></u-select>
            </u-form-item>
            <u-form-item label="性别" label-width="200" left-icon="man">
@@ -285,7 +269,7 @@
                    }],
                    address: [{
                        required: false,
                        message: '请选择居住地',
                        message: '请选择服务范围',
                        // 可以单个或者同时写两个触发验证方式 
                        trigger: ['change', 'blur'],
                    }],
@@ -303,7 +287,7 @@
                    }],
                    xq: [{
                        required: false,
                        message: '请选择工作地点',
                        message: '请选择工作单位',
                        // 可以单个或者同时写两个触发验证方式 
                        trigger: ['change', 'blur'],
                    }],
@@ -353,11 +337,101 @@
                ],
            };
        },
        onLoad() {
            this.deplxq();
        },
        methods: {
            agreement(e) {
                uni.navigateTo({
                    url: '/pages/registerUser/agreement?e=' + e
                });
            },
            confirmxq(e) {
                var arr = "";
                var data = [];
                // for (var i = 0; i < e.length; i++) {
                //     if (e[i].value != "0") {
                //         arr += e[i].value + ",";
                //         data.push(e[i]);
                //     }
                // }
                // var obj = arr.substr(0, arr.length - 1);
                // this.form.xqobjId = e[2].value;
                if (this.form.role == "民警") {
                    this.form.xq = e[2].label;
                    this.form.workjurisdiction = e[2].value;
                    this.form.address = "";
                    this.form.jurisdiction = "";
                } else {
                    this.form.address = e[2].label;
                    this.form.jurisdiction = e[2].value;
                    this.form.xq = "";
                    this.form.workjurisdiction = "";
                }
                console.log(this.form.xqobjId)
            },
            deplxq() {
                var that = this;
                uni.request({
                    url: that.$store.state.piAPI + "/jurisdiction/tree",
                    method: 'get',
                    success: (res) => {
                        var routerArr = res.data.data;
                        var arr = that.formatRoutes(routerArr);
                        var list = [];
                        list.push(arr);
                        // for (var i = 0; i < arr.length; i++) {
                        //     arr[i].children.unshift({
                        //         label: '--请选择--',
                        //         value: 0,
                        //         children: []
                        //     })
                        //     for (var j = 0; j < arr[i].children.length; j++) {
                        //         arr[i].children[j].children.unshift({
                        //             label: '--请选择--',
                        //             value: 0,
                        //         })
                        //     }
                        // }
                        that.listxq = arr;
                    }
                })
            },
            formatRoutes(routerArr) {
                var that = this;
                const arr = [];
                let obj = {};
                routerArr.forEach(router => {
                    const tmp = {
                        ...router
                    };
                    if (tmp.hasChildren == true) {
                        tmp.children = that.formatRoutes(tmp.children);
                        const {
                            id,
                            title
                        } = router;
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                            children: tmp.children
                        }
                    } else if (tmp.hasChildren == false || typeof(tmp.hasChildren) == 'undefined') {
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                            // children: []
                        }
                    }
                    arr.push(obj);
                })
                return arr;
            },
            regionClick() {
                let that = this;
@@ -409,11 +483,12 @@
                //判断是否必填警号和工作地点
                if (that.form.role == "民警") {
                    that.rules.signals[0].required = true;
                    that.rules.jobUnit[0].required = true;
                    // that.rules.jobUnit[0].required = true;
                    that.rules.xq[0].required = true;
                    that.rules.address[0].required = false;
                }else{
                } else {
                    that.rules.address[0].required = true;
                    that.rules.xq[0].required = false;
                }
                // if (that.jobValue == "有") {
@@ -429,39 +504,16 @@
                    }
                });
                uni.request({
                    url: that.$store.state.piAPI + '/zc/inspect',
                    method: 'GET',
                    data: {
                        username: this.form.user
                    },
                    success: (res) => {
                        if (res.data.code == 400) {
                            uni.showToast({
                                title: res.data.msg,
                                icon: 'none',
                                duration: 2000
                            });
                            return
                        }
                        // that.$refs.uForm.validate(valid => {
                        //     if (valid) {
                        //         var d = that.form;
                        //         uni.navigateTo({
                        //             url: '/pages/registerUser/idphoto?data= ' +
                        //                 encodeURIComponent(JSON.stringify(
                        //                     d))
                        //         });
                        //     }
                        // });
                    }
                });
                // that.$refs.uForm.validate(valid => {
                //     if (valid) {
                //         var d = that.form;
                //         uni.navigateTo({
                //             url: '/pages/registerUser/idphoto?data= ' +
                //                 encodeURIComponent(JSON.stringify(
                //                     d))
                //         });
                //     }
                // });
            },
@@ -496,16 +548,39 @@
                    method: 'POST',
                    data: data,
                    success: (result) => {
                        uni.showToast({
                            title: '注册成功,请等待审核',
                            icon: 'none',
                            duration: 2000
                        });
                        setTimeout(function() {
                            uni.navigateTo({
                                url: '/pages/loging/loging'
                            })
                        }, 2000);
                        if (result.data.code == 400) {
                            uni.showToast({
                                title: result.data.msg,
                                icon: 'none',
                                duration: 2000
                            });
                            return
                        }
                        if (result.data.code == 200) {
                            uni.showToast({
                                title: '注册成功,请等待审核',
                                icon: 'none',
                                duration: 2000
                            });
                            setTimeout(function() {
                                uni.navigateTo({
                                    url: '/pages/loging/loging'
                                })
                            }, 2000);
                        }else{
                            uni.showToast({
                                title: '注册失败,请确认信息后重试',
                                icon: 'none',
                                duration: 2000
                            });
                        }
                    }
                });
pages/registerUser/registerUserbf.vue
New file
@@ -0,0 +1,612 @@
<template>
    <view class="registerUser">
        <u-form :model="form" ref="uForm">
            <u-form-item :label="item.title" :prop="item.froms" label-width="200" :left-icon="item.img"
                :required="item.requireds" v-for="(item, index) in list" :key="index">
                <u-input v-model="form[item.froms]" :placeholder="item.placeholder" :type="item.type" />
            </u-form-item>
            <u-form-item label="角色" prop="role" left-icon="account-fill" label-width="200" :required="true">
                <u-input v-model="form.role" type="select" placeholder="请选择角色" :border="true" @click="depl" />
                <u-select v-model="show" mode="mutil-column-auto" :list="roleList" @confirm="radioGroupChange">
                </u-select>
            </u-form-item>
            <u-form-item v-show="form.role == '民警'" label="警号" prop="signals" left-icon="edit-pen" label-width="200"
                :required="true">
                <u-input v-model="form.signals" placeholder="请输入警号" />
            </u-form-item>
            <!-- <u-form-item label="工作单位" left-icon="home-fill" label-width="200" :required="true">
                <u-radio-group v-model="jobValue">
                    <u-radio v-for="(item, index) in jobList" :key="index" :name="item.name" :disabled="item.disabled">
                        {{item.name}}
                    </u-radio>
                </u-radio-group>
            </u-form-item> -->
            <u-form-item v-show="form.role == '民警'" label="单位名称" prop="jobUnit" label-width="200" left-icon="home"
                :required="true">
                <u-input v-model="form.jobUnit" placeholder="请输入单位名称" />
            </u-form-item>
            <u-form-item v-show="form.role == '民警'" label="工作地点" prop="xq" left-icon="map-fill" label-width="200"
                :required="true">
                <u-field :disabled="true" style="width: 100%;" label-width="0" v-model="form.xq" type="textarea"
                    placeholder="请选择工作地点" :fixed="true">
                    <u-icon @click="regionClick" name="map-fill" slot="right" size="44" label="定位" label-pos="bottom"
                        label-color="#103289" color="#103289"></u-icon>
                </u-field>
            </u-form-item>
            <u-form-item v-show="form.role != '民警'" label="居住地" prop="address" left-icon="map" label-width="200" :required="true">
                <u-field :disabled="true" style="width: 100%;" label-width="0" v-model="form.address" type="textarea"
                    placeholder="请选择居住地" :fixed="true">
                    <u-icon @click="placeClick" name="map-fill" slot="right" size="44" label="定位" label-pos="bottom"
                        label-color="#103289" color="#103289"></u-icon>
                </u-field>
            </u-form-item>
            <u-form-item label="性别" label-width="200" left-icon="man">
                <u-radio-group v-model="form.sex">
                    <u-radio v-for="(item, index) in sex" :key="index" :name="item.name" :disabled="item.disabled">
                        {{ item.name }}
                    </u-radio>
                </u-radio-group>
            </u-form-item>
            <!-- <u-form-item label="是否人脸登录" label-width="240" left-icon="server-man">
                <u-radio-group v-model="radioValue">
                    <u-radio v-for="(item, index) in radioList" :key="index" :name="item.name"
                        :disabled="item.disabled">
                        {{item.name}}
                    </u-radio>
                </u-radio-group>
                (功能研发中)
            </u-form-item> -->
        </u-form>
        <view class="agree">
            <u-checkbox v-model="userConsent" shape="circle">
                我已阅读并同意
                <text class="a" @click="agreement(0)">用户协议</text>
                和
                <text class="a" @click="agreement(1)">隐私政策</text>
            </u-checkbox>
        </view>
        <u-button class="submit" @click="zc">
            注册</u-button>
    </view>
</template>
<script>
    export default {
        data() {
            var validateUser = (rule, value, callback) => {
                var phone = /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
                var identity =
                    /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;
                // if (value.length <= 11) {
                //     if (phone.test(value)) {
                //         this.form.phone = value;
                //         return true
                //     } else {
                //         return callback(new Error('手机号格式不正确'));
                //     }
                // }
                if (identity.test(value)) {
                    this.form.carId = value;
                    return true
                } else {
                    return callback(new Error('身份证号格式不正确'));
                }
                // if (value.length > 11) {
                // }
            };
            return {
                // 工作地点经纬度
                jobLng: '',
                jobLat: '',
                // 居住地经纬度
                liveLng: '',
                liveLat: '',
                userConsent: false,
                jobValue: '无',
                jobList: [{
                        name: '有',
                        disabled: false
                    },
                    {
                        name: '无',
                        disabled: false
                    }
                ],
                radioList: [{
                        name: '是',
                        disabled: false
                    },
                    {
                        name: '否',
                        disabled: false
                    }
                ],
                radioValue: '否',
                show: false,
                showxq: false,
                listbm: [],
                listxq: [],
                deptXb: "",
                flag: false,
                list: [{
                        title: '账号',
                        img: 'man-add-fill',
                        froms: 'user',
                        requireds: true,
                        placeholder: '请输入身份证号'
                    },
                    {
                        title: '密码',
                        type: 'password',
                        img: 'lock-fill',
                        froms: 'pass',
                        requireds: true,
                        placeholder: '请输入6~16位密码'
                    },
                    {
                        title: '确认密码',
                        type: 'password',
                        img: 'lock-fill',
                        froms: 'passTwo',
                        requireds: true,
                        placeholder: '请确认密码'
                    },
                    {
                        title: '姓名',
                        img: 'account',
                        froms: 'name',
                        requireds: true,
                        placeholder: '请输入真实姓名'
                    },
                    {
                        title: '手机号',
                        img: 'phone-fill',
                        froms: 'phone',
                        requireds: true,
                        placeholder: '请输入真实手机号'
                    },
                    // {
                    //     title: '部门',
                    //     img: 'phone-fill',
                    //     froms: 'depl',
                    //     placeholder: '请选择部门'
                    // },
                ],
                sex: [{
                        name: '男',
                        disabled: false
                    },
                    {
                        name: '女',
                        disabled: false
                    },
                ],
                form: {
                    user: '',
                    pass: '',
                    passTwo: '',
                    name: '',
                    carId: '',
                    phone: '',
                    sex: '男',
                    xq: '',
                    jurisdiction: '',
                    jsid: '',
                    address: '',
                    jobUnit: '',
                    signals: '',
                    workjurisdiction: ''
                },
                rules: {
                    user: [{
                        /*
                         u-form提供的可直接调用的js验证,
                         具体有哪些可以观看官方文档,这里就不在赘述了。
                        */
                        validator: validateUser,
                        trigger: ['change', 'blur'],
                    }, ],
                    pass: [{
                        required: true,
                        message: '请输入6~16位密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        min: 6,
                        message: '密码不能少于6位',
                        trigger: ['change', 'blur']
                    }, {
                        max: 16,
                        message: '密码不能超出16位',
                        trigger: ['change', 'blur']
                    }],
                    passTwo: [{
                        required: true,
                        message: '请再次输入密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        validator: (rule, value, callback) => {
                            if (this.form.pass == value) {
                                return true
                            } else {
                                return false
                            }
                            // return this.$u.test.code(this.form.pass,value);
                        },
                        message: '两次输入密码不正确',
                        trigger: ['change', 'blur'],
                    }],
                    name: [{
                        required: true,
                        message: '请输入真实姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    phone: [{
                        required: true,
                        message: '请输入正确的手机号',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        validator: (rule, value, callback) => {
                            var phone = /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
                            if (phone.test(value)) {
                                this.form.phone = value;
                                return true
                            } else {
                                return callback(new Error('手机号格式不正确'));
                            }
                        },
                        trigger: ['change', 'blur'],
                    }],
                    jobUnit: [{
                        required: false,
                        message: '请输入单位名称',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    address: [{
                        required: false,
                        message: '请选择居住地',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    role: [{
                        required: true,
                        message: '请选择角色',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    signals: [{
                        required: false,
                        message: '请输入警号',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    xq: [{
                        required: false,
                        message: '请选择工作地点',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    depts: [{
                        required: true,
                        message: '请输入真实姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                },
                showGetFace: false,
                faceState: -2,
                facebc: '#fff',
                faceco: '#000',
                faceMsg: '',
                roleList: [{
                        label: '平安志愿者',
                        value: "1416225906918195201"
                    }, {
                        label: '民警',
                        value: "1417092295132561409"
                    },
                    {
                        label: '治保会队伍',
                        value: "1495714130024673282"
                    },
                    {
                        label: '内保干部队伍',
                        value: "1495714221926068225"
                    },
                    {
                        label: '治安巡防队伍',
                        value: "1495714272471625729"
                    },
                    {
                        label: '信息员队伍',
                        value: "1495714309071122434"
                    },
                    {
                        label: '保安员队伍',
                        value: "1495714343888039937"
                    },
                    {
                        label: '警务辅助队伍',
                        value: "1495714378025480193"
                    }
                ],
            };
        },
        methods: {
            agreement(e) {
                uni.navigateTo({
                    url: '/pages/registerUser/agreement?e=' + e
                });
            },
            regionClick() {
                let that = this;
                //监听事件
                uni.$on('getLocation', (res) => {
                    that.form.xq = res.mapLocationName
                    that.form.workjurisdiction = res.regionID
                    that.jobLng = res.mapLocationLongitude
                    that.jobLat = res.mapLocationLatitude
                    //清除监听,不清除会消耗资源
                    uni.$off('getLocation');
                })
                uni.navigateTo({
                    url: '/pages/registerUser/map?lng=' + that.jobLng + '&lat=' + that.jobLat,
                });
            },
            placeClick() {
                let that = this;
                //监听事件
                uni.$on('getLocation', (res) => {
                    that.form.address = res.mapLocationName
                    that.form.jurisdiction = res.regionID
                    that.liveLng = res.mapLocationLongitude
                    that.liveLat = res.mapLocationLatitude
                    //清除监听,不清除会消耗资源
                    uni.$off('getLocation');
                })
                uni.navigateTo({
                    // url: '/pages/registerUser/map'
                    url: '/pages/registerUser/map?lng=' + that.liveLng + '&lat=' + that.liveLat
                });
            },
            zc() {
                if (this.userConsent == false) {
                    uni.showToast({
                        title: "请先阅读并同意协议",
                        icon: 'none',
                        duration: 2000
                    });
                    return
                }
                var that = this;
                //判断是否必填警号和工作地点
                if (that.form.role == "民警") {
                    that.rules.signals[0].required = true;
                    that.rules.jobUnit[0].required = true;
                    that.rules.xq[0].required = true;
                    that.rules.address[0].required = false;
                }else{
                    that.rules.address[0].required = true;
                }
                // if (that.jobValue == "有") {
                //     that.rules.jobUnit[0].required = true;
                //     that.rules.xq[0].required = true;
                // }
                that.$refs.uForm.validate(valid => {
                    if (valid) {
                        that.registerEvent()
                    } else {
                        return
                    }
                });
                uni.request({
                    url: that.$store.state.piAPI + '/zc/inspect',
                    method: 'GET',
                    data: {
                        username: this.form.user
                    },
                    success: (res) => {
                        if (res.data.code == 400) {
                            uni.showToast({
                                title: res.data.msg,
                                icon: 'none',
                                duration: 2000
                            });
                            return
                        }
                        // that.$refs.uForm.validate(valid => {
                        //     if (valid) {
                        //         var d = that.form;
                        //         uni.navigateTo({
                        //             url: '/pages/registerUser/idphoto?data= ' +
                        //                 encodeURIComponent(JSON.stringify(
                        //                     d))
                        //         });
                        //     }
                        // });
                    }
                });
            },
            registerEvent() {
                var that = this;
                var d = that.form;
                var url = that.$store.state.piAPI + '/zc/inster',
                    data = {
                        // deptid: ,
                        password: d.pass,
                        password2: d.passTwo,
                        phone: d.phone,
                        sex: d.sex == '男' ? 1 : 2,
                        sname: d.name,
                        username: d.user,
                        parentId: d.jsid,
                        cardid: d.carId,
                        // 居住地址
                        address: d.address,
                        // 单位名称
                        jobUnit: d.jobUnit,
                        // 居住辖区
                        jurisdiction: d.jurisdiction,
                        // 工作地址
                        workaddress: d.xq,
                        // 工作辖区
                        workjurisdiction: d.workjurisdiction,
                        signals: d.signals
                    }
                uni.request({
                    url: url,
                    method: 'POST',
                    data: data,
                    success: (result) => {
                        uni.showToast({
                            title: '注册成功,请等待审核',
                            icon: 'none',
                            duration: 2000
                        });
                        setTimeout(function() {
                            uni.navigateTo({
                                url: '/pages/loging/loging'
                            })
                        }, 2000);
                    }
                });
            },
            depl() {
                this.show = true;
            },
            // 选中任一radio时,由radio-group触发
            radioGroupChange(e) {
                this.form.role = e[0].label
                this.form.jsid = e[0].value
                this.show = false;
            }
        },
        onReady() {
            this.$refs.uForm.setRules(this.rules);
        },
        watch: {
            faceState() {
                if (this.faceState == -1) {
                    this.facebc = '#ff7f29';
                    this.faceco = '#fff';
                    this.faceMsg = '(信息有误!请重新验证)';
                } else if (this.faceState == 1) {
                    this.facebc = '#15dd55';
                    this.faceMsg = '(验证成功!)';
                    this.faceco = '#fff';
                } else if (this.faceState == 0) {
                    this.facebc = '#f7f7f7';
                    this.faceco = '#000';
                    this.faceMsg = '(服务连接失败!)';
                }
            }
        }
    };
</script>
</script>
<style lang="scss" scoped>
    .warp {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
    }
    .rect {
        text-align: center;
        width: 120px;
        height: 120px;
    }
    .submit {
        margin: 30rpx 50rpx 50rpx;
        border: none;
        width: 572rpx;
        height: 86rpx;
        line-height: 86rpx;
        box-sizing: border-box;
        border-radius: 15rpx;
        background-color: #103289;
        color: #ffffff;
        &::after {
            content: none;
        }
        &::before {
            content: none;
        }
        &[disabled='true'] {
            background: #e4e4e4;
            font-size: 36rpx;
            font-family: Source Han Sans CN;
            font-weight: 500;
            color: #ffffff;
        }
    }
    .registerUser {
        padding: 0 1.2rem;
    }
    .agree {
        margin-top: 28rpx;
        font-size: 22rpx;
        font-family: Adobe Heiti Std;
        font-weight: normal;
        color: #cacaca;
        line-height: 34rpx;
        text-align: center;
        .a {
            margin: 0 10rpx;
            color: #103289;
        }
    }
</style>
pages/registerUser/registerUserbf1.vue
New file
@@ -0,0 +1,456 @@
<template>
    <view class="registerUser">
        <u-form :model="form" ref="uForm">
            <u-form-item :label="item.title" :prop="item.froms" label-width="200" :left-icon="item.img"
                :required="item.requireds" v-for="(item, index) in list" :key="index">
                <u-input v-model="form[item.froms]" :placeholder="item.placeholder" />
            </u-form-item>
            <u-form-item label="角色" prop="role" left-icon="account-fill" label-width="200" :required="true">
                <u-input v-model="form.role" type="select" placeholder="请选择角色" :border="true" @click="depl" />
                <u-select v-model="show" mode="mutil-column-auto" :list="roleList" @confirm="radioGroupChange"></u-select>
            </u-form-item>
            <u-form-item label="工作单位" prop="obj" left-icon="account-fill" label-width="200" :required="true"
                v-if="xqShow">
                <u-input v-model="form.obj" placeholder="请输入工作单位" />
            </u-form-item>
            <u-form-item label="辖区" prop="xq" left-icon="account-fill" label-width="200" :required="true">
                <u-input v-model="form.xq" type="select" placeholder="请选择辖区" :border="true" @click="deplxq" />
                <u-select v-model="showxq" mode="mutil-column-auto" :list="listxq" @confirm="confirmxq"></u-select>
            </u-form-item>
            <u-form-item label="性别" label-width="200" left-icon="man">
                <u-radio-group v-model="form.sex">
                    <u-radio v-for="(item, index) in sex" :key="index" :name="item.name" :disabled="item.disabled">
                        {{ item.name }}
                    </u-radio>
                </u-radio-group>
            </u-form-item>
        </u-form>
        <u-button class="submit" @click="zc">
            下一步</u-button>
        <!-- <u-button class="submit" @click="submit">提交</u-button> -->
    </view>
</template>
<script>
    export default {
        data() {
            return {
                show: false,
                showxq: false,
                xqShow: true,
                listbm: [],
                listxq: [],
                deptXb: "",
                flag: false,
                list: [{
                        title: '账号',
                        img: 'man-add-fill',
                        froms: 'user',
                        requireds: true,
                        placeholder: '请输入身份证号'
                    },
                    {
                        title: '密码',
                        img: 'lock-fill',
                        froms: 'pass',
                        requireds: true,
                        placeholder: '请输入6~16位密码'
                    },
                    {
                        title: '确认密码',
                        img: 'lock-fill',
                        froms: 'passTwo',
                        requireds: true,
                        placeholder: '请确认密码'
                    },
                    {
                        title: '姓名',
                        img: 'account',
                        froms: 'name',
                        requireds: true,
                        placeholder: '请输入姓名'
                    },
                    {
                        title: '身份证',
                        img: 'fingerprint',
                        froms: 'carId',
                        requireds: true,
                        placeholder: '请输入身份证'
                    },
                    {
                        title: '手机号',
                        img: 'phone-fill',
                        froms: 'phone',
                        requireds: false,
                        placeholder: '请输入手机号'
                    },
                    // {
                    //     title: '部门',
                    //     img: 'phone-fill',
                    //     froms: 'depl',
                    //     placeholder: '请选择部门'
                    // },
                ],
                sex: [{
                        name: '男',
                        disabled: false
                    },
                    {
                        name: '女',
                        disabled: false
                    },
                ],
                form: {
                    user: '',
                    pass: '',
                    passTwo: '',
                    name: '',
                    carId: '',
                    phone: '',
                    sex: '男',
                    obj: '',
                    objId: '',
                    xq: '',
                    xqobjId: '',
                    jsid: ''
                },
                rules: {
                    user: [{
                        required: true,
                        message: '请输入身份证号',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
                        message: '证件号码格式有误!',
                        trigger: 'blur'
                    }],
                    pass: [{
                        required: true,
                        message: '请输入6~16位密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        min: 6,
                        message: '密码不能少于6位',
                        trigger: ['change', 'blur']
                    }, {
                        min: 16,
                        message: '密码不能超出16位',
                        trigger: ['change', 'blur']
                    }],
                    passTwo: [{
                        required: true,
                        message: '请再次输入密码',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }, {
                        validator: (rule, value, callback) => {
                            console.log(this.form.pass, value)
                            if (this.form.pass == value) {
                                return true
                            } else {
                                return false
                            }
                            // return this.$u.test.code(this.form.pass,value);
                        },
                        message: '两次输入密码不正确',
                        trigger: ['change', 'blur'],
                    }],
                    name: [{
                        required: true,
                        message: '请输入姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    obj: [{
                        required: true,
                        message: '请输入工作单位',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    xq: [{
                        required: true,
                        message: '请选择辖区',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    role: [{
                        required: true,
                        message: '请选择角色',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    depts: [{
                        required: true,
                        message: '请输入姓名',
                        // 可以单个或者同时写两个触发验证方式
                        trigger: ['change', 'blur'],
                    }],
                    carId: [{
                            required: true,
                            message: '请输入身份证',
                            // 可以单个或者同时写两个触发验证方式
                            trigger: ['change', 'blur'],
                        },
                        {
                            validator: (rule, value, callback) => {
                                return this.$u.test.idCard(value);
                            },
                            message: '身份证号码不正确',
                            trigger: ['change', 'blur'],
                        }
                    ],
                    // phone: [{
                    //     required: false,
                    //     message: '请输入手机号',
                    //     // 可以单个或者同时写两个触发验证方式
                    //     trigger: ['change', 'blur'],
                    // }, {
                    //     validator: (rule, value, callback) => {
                    //         return this.$u.test.mobile(value);
                    //     },
                    //     message: '手机号码不正确',
                    //     trigger: ['change', 'blur'],
                    // }],
                },
                showGetFace: false,
                faceState: -2,
                facebc: '#fff',
                faceco: '#000',
                faceMsg: '',
                roleList: [
                    {label: '民警', value: 1417092295132561409},
                    {label: '治保会队伍', value: 1424615693403414529},
                    {label: '内保干部队伍', value: 1424615773594312705},
                    {label: '治安巡防队伍', value: 1424615835435130881},
                    {label: '信息员队伍', value: 1424615909959524354},
                    {label: '保安员队伍', value: 1424615972718895106},
                    {label: '警务辅助队伍', value: 1424616047083905026},
                    {label: '平安志愿者', value: 1494565079268491266}
                ]
            };
        },
        methods: {
            zc() {
                var that = this;
                this.$refs.uForm.validate(valid => {
                    if (valid) {
                        var d = this.form;
                        uni.navigateTo({
                            url: '/pages/registerUser/idphoto?data= ' + encodeURIComponent(JSON.stringify(
                                d))
                        });
                    }
                });
            },
            depl() {
                var that = this;
                that.show = true;
            },
            // depl() {
            //     var that = this;
            //     uni.request({
            //         url: that.$store.state.piAPI + "/blade-system/dept/trees",
            //         method: 'get',
            //         success: (res) => {
            //             var routerArr = res.data.data;
            //             var arr = that.formatRoutes(routerArr);
            //             var list = [];
            //             if (that.deptXb != "") {
            //                 list.push(arr[that.deptXb]);
            //                 for (var i = 0; i < list.length; i++) {
            //                     list[i].children.unshift({
            //                         label: '--请选择--',
            //                         value: 0,
            //                         children: []
            //                     })
            //                     for (var j = 0; j < list[i].children.length; j++) {
            //                         list[i].children[j].children.unshift({
            //                             label: '--请选择--',
            //                             value: 0,
            //                         })
            //                     }
            //                 }
            //                 that.listbm = list;
            //                 that.show = true;
            //             } else {
            //                 uni.showToast({
            //                     title: '请选择角色',
            //                     icon: "none",
            //                     duration: 1000
            //                 });
            //             }
            //         }
            //     })
            // },
            deplxq() {
                var that = this;
                uni.request({
                    url: that.$store.state.piAPI + "/jurisdiction/tree",
                    method: 'get',
                    success: (res) => {
                        var routerArr = res.data.data;
                        var arr = that.formatRoutes(routerArr);
                        var list = [];
                        list.push(arr);
                        for (var i = 0; i < arr.length; i++) {
                            arr[i].children.unshift({
                                label: '--请选择--',
                                value: 0,
                                children: []
                            })
                            for (var j = 0; j < arr[i].children.length; j++) {
                                arr[i].children[j].children.unshift({
                                    label: '--请选择--',
                                    value: 0,
                                })
                            }
                        }
                        that.listxq = arr;
                        that.showxq = true;
                    }
                })
            },
            confirmxq(e) {
                var arr = "";
                var data = [];
                for (var i = 0; i < e.length; i++) {
                    if (e[i].value != "0") {
                        arr += e[i].value + ",";
                        data.push(e[i]);
                    }
                }
                var obj = arr.substr(0, arr.length - 1);
                this.form.xq = data[data.length - 1].label;
                this.form.xqobjId = obj;
                console.log(obj)
            },
            formatRoutes(routerArr) {
                var that = this;
                const arr = [];
                let obj = {};
                routerArr.forEach(router => {
                    const tmp = {
                        ...router
                    };
                    if (tmp.hasChildren == true) {
                        tmp.children = that.formatRoutes(tmp.children);
                        const {
                            id,
                            title
                        } = router;
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                            children: tmp.children
                        }
                    } else if (tmp.hasChildren == false || typeof(tmp.hasChildren) == 'undefined') {
                        obj = {
                            label: tmp.title,
                            value: tmp.id,
                            children: []
                        }
                    }
                    arr.push(obj);
                })
                return arr;
            },
            startRecord() {
                this.flag = true;
                // this.$message.success('开始录制')
                this.$refs.video.startRecord();
            },
            stopRecord() {
                this.flag = false;
                // this.$message.success('请看控制台视频文件的base64')
                this.$refs.video.stopRecord();
            },
            dataChange(data) {
                console.log(data);
            },
            // 选中任一radio时,由radio-group触发
            radioGroupChange(e) {
                this.form.role = e[0].label
                this.form.jsid = e[0].value
                this.show = false;
            }
        },
        onReady() {
            this.$refs.uForm.setRules(this.rules);
        },
        watch: {
            faceState() {
                // console.log(this.faceState);
                if (this.faceState == -1) {
                    this.facebc = '#ff7f29';
                    this.faceco = '#fff';
                    this.faceMsg = '(信息有误!请重新验证)';
                } else if (this.faceState == 1) {
                    this.facebc = '#15dd55';
                    this.faceMsg = '(验证成功!)';
                    this.faceco = '#fff';
                } else if (this.faceState == 0) {
                    this.facebc = '#f7f7f7';
                    this.faceco = '#000';
                    this.faceMsg = '(服务连接失败!)';
                }
            }
        }
    };
</script>
</script>
<style lang="scss" scoped>
    .warp {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
    }
    .rect {
        text-align: center;
        width: 120px;
        height: 120px;
    }
    .submit {
        margin: 30rpx 50rpx 50rpx;
        border: none;
        width: 572rpx;
        height: 86rpx;
        line-height: 86rpx;
        box-sizing: border-box;
        border-radius: 15rpx;
        background-color: #103289;
        color: #ffffff;
        &::after {
            content: none;
        }
        &::before {
            content: none;
        }
        &[disabled='true'] {
            background: #e4e4e4;
            font-size: 36rpx;
            font-family: Source Han Sans CN;
            font-weight: 500;
            color: #ffffff;
        }
    }
    .registerUser {
        padding: 0 1.2rem;
    }
</style>