| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- <template>
- <view class="">
- <u--form labelPosition="left" :model="policyHolderInfo" :rules="policyRules" ref="policyForm" labelWidth="80"
- errorType="message">
- <u-form-item label="姓名" prop="name" borderBottom>
- <u-input v-model="policyHolderInfo.name" border="none" clearable placeholder="请输入姓名"
- placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item label="投保人类型" borderBottom @click="propertyShow=true">
- <u-input v-model="policyHolderInfos.property" border="none" clearable placeholder=""
- placeholderStyle="text-align:right;" suffixIcon='arrow-down'
- suffixIconStyle="color:#333;font-size:30rpx" style="pointer-events: none"></u-input>
- </u-form-item>
- <u-form-item label="证件类型" borderBottom @click="identifyTypeShow=true">
- <u-input v-model="policyHolderInfos.identifyType" border="none" clearable placeholder=""
- placeholderStyle="text-align:right;" suffixIcon='arrow-down'
- suffixIconStyle="color:#333;font-size:30rpx" style="pointer-events: none"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==1" label="证件号" prop="identifyNumber" borderBottom>
- <u-input v-model="policyHolderInfo.identifyNumber" border="none" maxlength="18" clearable
- placeholder="请输入证件号" placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==2" label="证件号码" prop="organizationCode" borderBottom>
- <u-input v-model="policyHolderInfo.organizationCode" border="none" clearable maxlength="18"
- placeholder="请输入证件号码" placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==2" label="注册资金" borderBottom>
- <u--input v-model="policyHolderInfo.registeredCapital" border="none" clearable placeholder="请输入注册资金"
- placeholderStyle="text-align:right;">
- </u--input>
- <text class="suffixClass">万元</text>
- </u-form-item>
- <u-form-item label="手机号" prop="mobile" borderBottom>
- <u-input v-model="policyHolderInfo.mobile" border="none" clearable placeholder="请输入手机号" maxlength="11"
- placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==2" label="车主座机" borderBottom>
- <u-input v-model="policyHolderInfo.tel" border="none" clearable placeholder="请输入车主座机"
- placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==2" label="投保人联系人" borderBottom>
- <u-input v-model="policyHolderInfo.legalPerson" border="none" clearable placeholder="请输入车主联系人"
- placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item v-if="policyHolderInfo.property==2" label="联系人证件号码" borderBottom labelWidth="120">
- <u-input v-model="policyHolderInfo.leaderIdentifyNumber" border="none" clearable
- placeholder="请输入联系人证件号码" placeholderStyle="text-align:right;"></u-input>
- </u-form-item>
- <u-form-item label="联系人有效期止期" v-if="policyHolderInfo.property==2" prop="leaderOtherEffectiveDate"
- borderBottom labelWidth="150" @click="leaderOtherEffectiveDateShow = true; ">
- <u--input v-model="policyHolderInfo.leaderOtherEffectiveDate" disabled disabledColor="#ffffff" clearable
- suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx" placeholder="选择有效期止期"
- placeholderStyle="text-align:right;" border="none" style="pointer-events: none"></u--input>
- </u-form-item>
- <u-form-item label="省市区" v-if="policyHolderInfo.property==2" borderBottom @click="addressPickershow=true">
- <u-input v-model="policyHolderInfos.fullAddress" border="none" clearable placeholder="请选择省市区"
- placeholderStyle="text-align:right;" suffixIcon='arrow-down'
- suffixIconStyle="color:#333;font-size:30rpx" style="pointer-events: none"></u-input>
- </u-form-item>
- <u-form-item label="地址" prop="addr" borderBottom>
- <u--textarea v-model="policyHolderInfo.addr" border="none" placeholder="请输入地址" autoHeight></u--textarea>
- </u-form-item>
- <u-form-item label="证件起期" prop="identifyValidDate" borderBottom @click="identifyValidDateShow = true; ">
- <u--input v-model="policyHolderInfo.identifyValidDate" disabled disabledColor="#ffffff" clearable
- suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx" placeholder="请选择证件起期 "
- placeholderStyle="text-align:right;" border="none" style="pointer-events: none"></u--input>
- </u-form-item>
- <u-form-item label="证件止期" prop="identifyValidEndDate" @click="identifyValidEndDateShow = true; ">
- <u--input v-model="policyHolderInfo.identifyValidEndDate" disabled disabledColor="#ffffff" clearable
- suffixIcon='calendar' suffixIconStyle="color:#333;font-size:40rpx;margin-right:20px"
- placeholder="请选择证件止期 " placeholderStyle="text-align:right;" border="none"
- style="pointer-events: none">
- </u--input>
- <u-checkbox-group v-model="ownerlongTerm" iconPlacement="right" @change="ownerlongTermChange">
- <u-checkbox activeColor="#FDE935" iconColor="#333" labelSize="15px" shape="circle" label="长期有效"
- name="长期有效"></u-checkbox>
- </u-checkbox-group>
- </u-form-item>
- </u--form>
- <!-- 车主类型 -->
- <u-picker :show="propertyShow" :columns="propertylist" keyName="label" @cancel="propertyShow=false"
- @confirm="propertyConfirm($event,'property','propertyShow')" @close="propertyShow=false"
- :closeOnClickOverlay="true"></u-picker>
- <u-datetime-picker :show="identifyValidDateShow" v-model="identifyValidDatevalue" mode="date"
- :formatter="formatter" @cancel="identifyValidDateShow=false" @close="identifyValidDateShow=false"
- :closeOnClickOverlay="true" @confirm="identifyValidDateconfirm" confirmText="确定"></u-datetime-picker>
- <u-datetime-picker :show="identifyValidEndDateShow" mode="date" v-model="identifyValidEndDatevalue"
- :formatter="formatter" @cancel="identifyValidEndDateShow=false" @confirm="identifyValidEndDateconfirm"
- :closeOnClickOverlay="true" @close="identifyValidEndDateShow=false" confirmText="确定"></u-datetime-picker>
- <!-- 有效期止期 -->
- <u-datetime-picker :show="leaderOtherEffectiveDateShow" v-model="leaderOtherEffectiveDatevalue" mode="date"
- :formatter="formatter" @cancel="leaderOtherEffectiveDateShow=false"
- @close="leaderOtherEffectiveDateShow=false" :closeOnClickOverlay="true"
- @confirm="leaderOtherEffectiveDateconfirm" confirmText="确定"></u-datetime-picker>
- <!-- 身份证止期 -->
- <!-- 省市区组件 -->
- <uni-areaCascadePicker :show="addressPickershow" @confirm="addressConfirm" @close="addressPickershow=false"
- @cancel="addressPickershow=false"></uni-areaCascadePicker>
- </view>
- </template>
- <script>
- export default {
- props: {
- policyHolderInfo: Object,
- policyHolderInfos: Object,
- },
- data() {
- return {
- leaderOtherEffectiveDatevalue: Number(new Date()),
- identifyValidDatevalue: Number(new Date()), //证件起期
- identifyValidEndDatevalue: Number(new Date()), //证件止期
- propertyShow: false, //证件类型
- identifyValidDateShow: false, //证件起期
- identifyValidEndDateShow: false, //证件止期
- leaderOtherEffectiveDateShow: false, //有效期止期
- addressPickershow: false, //省市区
- ownerlongTerm: [], //车主长期
- propertylist: [
- [{
- label: "法人",
- value: "2",
- },
- {
- label: "个人",
- value: "1",
- }
- ]
- ],
- policyRules: {
- name: [{
- required: true,
- message: '请输入车主姓名',
- trigger: ['blur', 'change'],
- },
- {
- minLength: 2,
- maxLength: 5,
- message: '车主姓名长度在 {minLength} 到 {maxLength} 个字符',
- },
- {
- pattern: /^([\u4e00-\u9fa5]{1,6}|[a-zA-Z\.\s]{1,6})$/,
- message: '请输入正确的车主姓名',
- }
- ],
- identifyNumber: [{
- required: true,
- message: '请输入车主证件号',
- trigger: ['blur', 'change'],
- },
- {
- 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]$/,
- message: '请输入正确的车主证件号',
- }
- ],
- mobile: [{
- required: true,
- message: '请输入车主手机号',
- trigger: ['blur', 'change'],
- },
- {
- pattern: /^1[3-9]\d{9}$/,
- message: '请输入正确的手机号',
- }
- ],
- addr: [{
- required: true,
- message: '请输入车主地址',
- trigger: ['blur', 'change'],
- },
- {
- minLength: 8,
- maxLength: 40,
- message: '车主地址长度在 {minLength} 到 {maxLength} 个字符',
- },
- ],
- identifyValidDate: [{
- required: true,
- message: '请选择身份证起期',
- trigger: ['blur', 'change'],
- }, {
- pattern: /^\d{4}-\d{2}-\d{2}$/,
- message: '身份证起期格式错误',
- }],
- identifyValidEndDate: [{
- required: true,
- message: '请选择身份证止期',
- trigger: ['blur', 'change'],
- }, {
- pattern: /^\d{4}-\d{2}-\d{2}$/,
- message: '身份证止期格式错误',
- }]
- },
- }
- },
- methods: {
- //省市区选择回调
- addressConfirm(value) {
- if (value) {
- console.log(value);
- this.policyHolderInfos.fullAddress = value.fullAddress;
- this.policyHolderInfo.provinceCode = value.codes[0];
- this.policyHolderInfo.cityCode = value.codes[1];
- this.policyHolderInfo.countyCode = value.codes[2];
- }
- this.addressPickershow = false;
- },
- propertyConfirm(value, name, showName) {
- this.policyHolderInfo[name] = value.value[0].value;
- this.policyHolderInfos[name] = value.value[0].label;
- this[showName] = false;
- if (value.value[0].value == '1') { //个人
- this.policyHolderInfos.identifyType = "身份证";
- this.policyHolderInfo.identifyType = "01";
- } else {
- this.policyHolderInfos.identifyType = "统一社会信用代码";
- this.policyHolderInfo.identifyType = "10";
- }
- },
- ownerlongTermChange(e) {
- if (e.length) {
- this.policyHolderInfo.identifyValidEndDate = '9999-12-31';
- } else {
- this.policyHolderInfo.identifyValidEndDate = '';
- }
- },
- identifyValidDateconfirm(e) {
- this.policyHolderInfo.identifyValidDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
- this.identifyValidDateShow = false;
- },
- identifyValidEndDateconfirm(e) {
- this.policyHolderInfo.identifyValidEndDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
- this.identifyValidEndDateShow = false;
- },
- leaderOtherEffectiveDateconfirm(e) {
- this.ownerInfo.leaderOtherEffectiveDate = uni.$u.timeFormat(e.value, 'yyyy-mm-dd');
- this.leaderOtherEffectiveDateShow = false;
- },
- formatter(type, value) {
- if (type === 'year') {
- return `${value}年`
- }
- if (type === 'month') {
- return `${value}月`
- }
- if (type === 'day') {
- return `${value}日`
- }
- return value
- },
- validate(callback) {
- this.$refs.policyForm.setRules(this.policyRules)
- this.$refs.policyForm.validate().then(res => {
- callback(res)
- }).catch(errors => {
- callback(errors)
- })
- }
- },
- }
- </script>
- <style scoped lang="scss">
- ::v-deep {
- .u-textarea {
- text-align: right;
- padding: 0;
- color: #303133;
- }
- .uni-textarea-placeholder {
- color: grey !important;
- text-align: right;
- }
- }
- /* 添加样式 */
- .search {
- width: 112rpx;
- height: 60rpx;
- background: #FDE935;
- border-radius: 100rpx 100rpx 100rpx 100rpx;
- }
- .suffixClass {
- margin-left: 10rpx;
- font-size: 30rpx;
- }
- </style>
|