|
@@ -4,7 +4,7 @@
|
|
|
left-arrow fixed />
|
|
|
<van-cell-group>
|
|
|
<!-- <van-button class="btn" @click='submit' size="large"
|
|
|
- type="primary">提交</van-button> -->
|
|
|
+ type="primary">提交</van-button> -->
|
|
|
<!-- 姓名: name -->
|
|
|
<van-field required clearable v-model="user.name"
|
|
|
label="姓名" placeholder="请输入姓名" autosize />
|
|
@@ -16,12 +16,62 @@
|
|
|
<!-- 手机: mobilePhone -->
|
|
|
<van-field required clearable v-model="user.mobilePhone"
|
|
|
label="手机" placeholder="请输入手机号码" autosize />
|
|
|
- <h-phone ref='hPhone' :phone='user.mobilePhone'
|
|
|
- @isPhone='vPhone' />
|
|
|
-
|
|
|
+ <h-phone ref='hPhone' :phone='user.mobilePhone' />
|
|
|
|
|
|
+ <!-- 身份证: IDcard -->
|
|
|
+ <van-field required clearable v-model="user.IDcard"
|
|
|
+ label="身份证" placeholder="请输入身份证" autosize />
|
|
|
+ <!-- 电话: phone -->
|
|
|
+ <van-field required clearable v-model="user.phone"
|
|
|
+ label="电话" placeholder="请输入电话号码" autosize />
|
|
|
+ <!-- 邮箱: email -->
|
|
|
+ <van-field required clearable type='email' v-model="user.email"
|
|
|
+ label="邮箱" placeholder="请输入邮箱" autosize />
|
|
|
+ <!-- 户籍地址: address1 -->
|
|
|
+ <van-field required clearable v-model="user.address1"
|
|
|
+ label="户籍地址" placeholder="请输入户籍地址" autosize />
|
|
|
+ <!-- 居住地址: address2 -->
|
|
|
+ <van-field required clearable v-model="user.address2"
|
|
|
+ label="居住地址" placeholder="请输入居住地址" autosize />
|
|
|
+ <!-- <van-button class="btn" @click='submit' size="large"
|
|
|
+ type="primary">提交</van-button> -->
|
|
|
+ <!-- 通讯地址: address3 -->
|
|
|
+ <van-field required clearable v-model="user.address3"
|
|
|
+ label="通讯地址" placeholder="请输入通讯地址" autosize />
|
|
|
+ <!-- 邮编: ZIPcode -->
|
|
|
+ <van-field required clearable v-model="user.ZIPcode"
|
|
|
+ label="邮编" placeholder="请输入邮编" autosize />
|
|
|
+ <!-- 证书(图片): certificate -->
|
|
|
+ <div>
|
|
|
+ <!-- <video class="my-video" src="../../../assets/02.mp4"></video> -->
|
|
|
+ <!-- <video id="my-player" class="my-video video-js" controls
|
|
|
+ preload="auto" autoplay="autoplay" data-setup='{}'>
|
|
|
+ <source src="../../../assets/02.mp4" type="video/mp4">
|
|
|
+ </source>
|
|
|
+ </video> -->
|
|
|
+ </div>
|
|
|
+ <div class="certificate-wrapper">
|
|
|
+ <h-title required text='添加证书'></h-title>
|
|
|
+ <div class="add">
|
|
|
+ <uploader @imgSrc='getImgSrc' />
|
|
|
+ <!-- <uploader @imgSrc='getImgSrc' title='添加证书(反面)' /> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 护理机构: nurse -->
|
|
|
+ <van-field required clearable v-model="user.nurse"
|
|
|
+ label="护理机构" placeholder="请输入护理机构" autosize />
|
|
|
+ <!-- 状态: status -->
|
|
|
+ <!-- <van-field required clearable v-model="user.status"
|
|
|
+ label="护理状态" placeholder="请输入状态" autosize /> -->
|
|
|
+ <!-- 备注: desc -->
|
|
|
+ <van-field clearable v-model="user.desc" label="备注"
|
|
|
+ placeholder="请输入备注" autosize />
|
|
|
<van-button class="btn" @click='submit' size="large"
|
|
|
- type="primary">提交</van-button>
|
|
|
+ type="primary">提交
|
|
|
+ </van-button>
|
|
|
+ <!-- <van-button class="btn" @click='testIDCard' size="large"
|
|
|
+ type="primary">testIDCard
|
|
|
+ </van-button> -->
|
|
|
</van-cell-group>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -32,37 +82,139 @@
|
|
|
* 生日: birthday
|
|
|
* 身份证: IDcard
|
|
|
* 手机: mobile
|
|
|
+ * 电话: phone
|
|
|
+ * 邮箱: email
|
|
|
+ * 户籍地址: address1
|
|
|
+ * 居住地址: address2
|
|
|
+ * 通讯地址: address3
|
|
|
+ * 邮编: ZIPcode
|
|
|
+ * 证书(图片): certificate
|
|
|
+ * 护理机构: nurse
|
|
|
+ * 状态: status
|
|
|
+ * 备注: desc
|
|
|
*/
|
|
|
// import { Cell, CellGroup, Field, RadioGroup, Radio } from 'vant';
|
|
|
import Bscroll from 'better-scroll';
|
|
|
// eslint-disable-next-line
|
|
|
-import { isPhone } from '@/util/index';
|
|
|
-import phoneComponents from '@/components/phone';
|
|
|
+import { testIDCard, IdCard, isEmail, isPhone, isZIPCode } from '@/util/index';
|
|
|
+import uploader from './uploader.vue';
|
|
|
+import phoneComponents from '@/components/phone.vue';
|
|
|
+import { addCare, getSMS, userId } from '@/util/api';
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ vPhone: '',
|
|
|
user: {
|
|
|
name: '',
|
|
|
mobilePhone: '',
|
|
|
+ IDcard: '',
|
|
|
+ phone: '',
|
|
|
+ email: '',
|
|
|
+ address1: '',
|
|
|
+ address2: '',
|
|
|
+ address3: '',
|
|
|
+ ZIPcode: '',
|
|
|
+ certificate: '',
|
|
|
+ nurse: '',
|
|
|
+ status: '',
|
|
|
+ desc: '',
|
|
|
+ },
|
|
|
+ err: {
|
|
|
+ phone: '电话',
|
|
|
+ email: '邮箱',
|
|
|
+ address1: '户籍地址',
|
|
|
+ address2: '居住地址',
|
|
|
+ address3: '通讯地址',
|
|
|
+ ZIPcode: '邮编',
|
|
|
+ certificate: '证书',
|
|
|
+ nurse: '护理机构',
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ // ...mapState({
|
|
|
+ // // eslint-disable-next-line
|
|
|
+ // user_id: (state) => state.user_id,
|
|
|
+ // }),
|
|
|
+ },
|
|
|
components: {
|
|
|
- [phoneComponents.name]: phoneComponents,
|
|
|
+ uploader,
|
|
|
+ 'h-phone': phoneComponents,
|
|
|
},
|
|
|
methods: {
|
|
|
submit() {
|
|
|
- console.log(this.$refs.hPhone);
|
|
|
- // this.isUndefined();
|
|
|
+ const self = this;
|
|
|
+ // console.log(userId());
|
|
|
+ // return;
|
|
|
+ // 基本错误判断
|
|
|
+ if (self.isUndefined()) {
|
|
|
+ // 手机号码验证
|
|
|
+ if (
|
|
|
+ `${this.$refs.hPhone.sms.input}` === `${this.$refs.hPhone.sms.create}`
|
|
|
+ ) {
|
|
|
+ // console.log(this.$refs.hPhone.sms.input);
|
|
|
+ console.log(154);
|
|
|
+ addCare({
|
|
|
+ user_id: userId(),
|
|
|
+ name: self.user.name,
|
|
|
+ mobile: self.user.mobilePhone,
|
|
|
+ phone: self.user.phone,
|
|
|
+ email: self.user.email,
|
|
|
+ birth: IdCard(self.user.IDcard, 1),
|
|
|
+ sex: IdCard(self.user.IDcard, 2),
|
|
|
+ address1: self.user.address1,
|
|
|
+ address2: self.user.address2,
|
|
|
+ address3: self.user.address3,
|
|
|
+ address_number: self.user.ZIPcode,
|
|
|
+ card_number: self.user.IDcard,
|
|
|
+ certificate: self.user.certificate,
|
|
|
+ people: '居委会',
|
|
|
+ care_institutions: self.user.nurse,
|
|
|
+ desc: self.user.nurse,
|
|
|
+ }).then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // if (self.user.name === '') {
|
|
|
+ // self.$toast.fail({
|
|
|
+ // // mask: true,
|
|
|
+ // forbidClick: true, // 禁用背景点击
|
|
|
+ // message: '请输入姓名',
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // if (self.user.mobilePhone === '') {
|
|
|
+ // self.$toast.fail({
|
|
|
+ // // mask: true,
|
|
|
+ // forbidClick: true, // 禁用背景点击
|
|
|
+ // message: '请输入手机号码',
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+
|
|
|
+ // console.log(this.$refs.hPhone.sms.input);
|
|
|
+ // console.log(this.$refs.hPhone.sms.create);
|
|
|
+ // if (this.$refs.hPhone.sms.input === this.$refs.hPhone.sms.create) {
|
|
|
+ // console.log(this.$refs.hPhone.sms.input);
|
|
|
+ // addCare({
|
|
|
+ // user_id: self.userID,
|
|
|
+ // }).then((res) => {
|
|
|
+ // console.log(res);
|
|
|
+ // });
|
|
|
+ // }
|
|
|
},
|
|
|
// 手机号码验证
|
|
|
// eslint-disable-next-line
|
|
|
- vPhone(isPhone) {
|
|
|
- console.log(isPhone);
|
|
|
+ getCode(isPhone) {
|
|
|
+ this.vPhone = isPhone;
|
|
|
+ },
|
|
|
+ testIDCard() {
|
|
|
+ getSMS().then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ });
|
|
|
},
|
|
|
-
|
|
|
- testIDCard() {},
|
|
|
initScroll() {
|
|
|
if (!this.scroll) {
|
|
|
this.scroll = new Bscroll(this.$refs.login, {
|
|
@@ -72,13 +224,76 @@ export default {
|
|
|
this.scroll.refresh();
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
onClickLeft() {},
|
|
|
+ isUndefined() {
|
|
|
+ const self = this;
|
|
|
+ // eslint-disable-next-line
|
|
|
+ for (let key in self.user) {
|
|
|
+ if (self.user[key] === '' && key !== 'desc' && key !== 'status') {
|
|
|
+ // eslint-disable-next-line
|
|
|
+ const msg =
|
|
|
+ key === 'certificate'
|
|
|
+ ? '请添加证书照片!'
|
|
|
+ : `${self.err[key]}不为空!`;
|
|
|
+ self.$toast.fail(msg);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ switch (key) {
|
|
|
+ case 'IDcard': {
|
|
|
+ const msg = testIDCard(self.user[key]);
|
|
|
+ if (msg !== '验证通过!') {
|
|
|
+ return self.$toast.fail(msg);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 'email': {
|
|
|
+ if (!isEmail(self.user[key])) {
|
|
|
+ return self.$toast.fail('邮箱格式错误!');
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case 'ZIPcode': {
|
|
|
+ const msg = isZIPCode(self.user[key]);
|
|
|
+ if (!msg && typeof msg !== 'boolean') {
|
|
|
+ return self.$toast.fail(msg);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default: {
|
|
|
+ // self.$toast.fail('default!');
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ onRead(file) {
|
|
|
+ const maxSize = 1024 * 1024 * 2;
|
|
|
+ // eslint-disable-next-line
|
|
|
+ console.log(file);
|
|
|
+ if (maxSize < file.file.size) {
|
|
|
+ const errorToast = this.$toast.fail({
|
|
|
+ duration: 0, // 持续展示 toast
|
|
|
+ message: '上传文件不小于2M',
|
|
|
+ });
|
|
|
+ setTimeout(() => {
|
|
|
+ errorToast.clear();
|
|
|
+ }, 3000);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // eslint-disable-next-line
|
|
|
+ this.user.certificate.push(file.content);
|
|
|
+ },
|
|
|
+ getImgSrc(src) {
|
|
|
+ this.user.certificate = src;
|
|
|
+ console.log(this.user.certificate);
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
@import '../../../assets/style/vant.less';
|
|
|
+
|
|
|
.login-wrapper {
|
|
|
padding: 46px 10px 0;
|
|
|
height: 100%;
|
|
@@ -97,6 +312,7 @@ export default {
|
|
|
margin: 30px auto;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.van-button,
|
|
|
.van-cell {
|
|
|
font-size: @inputSize;
|