1 files modified
1 files deleted
2 files added
| | |
| | | :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"> |
| | |
| | | }], |
| | | address: [{ |
| | | required: false, |
| | | message: '请选择居住地', |
| | | message: '请选择服务范围', |
| | | // 可以单个或者同时写两个触发验证方式 |
| | | trigger: ['change', 'blur'], |
| | | }], |
| | |
| | | }], |
| | | xq: [{ |
| | | required: false, |
| | | message: '请选择工作地点', |
| | | message: '请选择工作单位', |
| | | // 可以单个或者同时写两个触发验证方式 |
| | | trigger: ['change', 'blur'], |
| | | }], |
| | |
| | | ], |
| | | }; |
| | | }, |
| | | 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; |
| | |
| | | //判断是否必填警号和工作地点 |
| | | 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 == "有") { |
| | |
| | | } |
| | | }); |
| | | |
| | | |
| | | 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)) |
| | | // }); |
| | | // } |
| | | // }); |
| | | |
| | | }, |
| | | |
| | |
| | | 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 |
| | | }); |
| | | } |
| | | |
| | | } |
| | | }); |
| | | |
| New file |
| | |
| | | <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> |
| New file |
| | |
| | | <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> |