党员认证
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 29 KiB | 
| @@ -1,247 +1,379 @@ | ||||
| <template> | ||||
|   <section class="partyAuthApply"> | ||||
|     <div class="card"> | ||||
|       <div class="item"> | ||||
|         <div class="label required" v-text="`是否户主`"/> | ||||
|         <div class="flex"> | ||||
|           <div class="radioBtn" v-for="op in ownerOps" :key="op.dictValue" v-text="op.dictName" | ||||
|                :class="{current:op.dictValue==form.householdName}" @click="form.householdName=op.dictValue"/> | ||||
|   <div class="partyAuthApply"> | ||||
|     <div class="tips">党员名单中未有你的信息,请完善资料等待审核。</div> | ||||
|     <div class="form-item__group"> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>党员姓名</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <input placeholder="请输入" v-model="form.name" :maxlength="20"/> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <template v-if="form.householdName==0"> | ||||
|         <div class="flex item"> | ||||
|           <div class="label required" required v-text="`户主身份证号`"/> | ||||
|           <u-input v-model="form.householdIdNumber" input-align="right" maxlength="18"/> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>身份证号</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <input placeholder="请输入" v-model="form.idNumber" :maxlength="18"/> | ||||
|           </div> | ||||
|         </div> | ||||
|         <div class="flex item"> | ||||
|           <div class="label required" required v-text="`与户主关系`"/> | ||||
|           <AiSelect v-model="form.householdRelation" dict="householdRelation"/> | ||||
|       </div> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>手机号码</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <input placeholder="请输入" v-model="form.idNumber" :maxlength="11"/> | ||||
|           </div> | ||||
|         </div> | ||||
|       </template> | ||||
|       </div> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>党组织</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <input placeholder="请输入" v-model="form.idNumber" :maxlength="50"/> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>入党时间</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <div class="ai-area" @click="isShowDate = true"> | ||||
|               <div class="ai-area__wrapper"> | ||||
|                 <span class="label" v-if="form.nucleicAcidDate">{{ form.nucleicAcidDate }}</span> | ||||
|                 <i v-else>请选择</i> | ||||
|                 <u-icon name="arrow-right" color="#ddd"/> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="form-item"> | ||||
|         <div class="form-item__wrapper"> | ||||
|           <div class="form-item__title"> | ||||
|             <i>*</i> | ||||
|             <h2>党员类型</h2> | ||||
|           </div> | ||||
|           <div class="form-item__right"> | ||||
|             <input placeholder="请输入" v-model="form.idNumber" disabled :maxlength="20"/> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="card"> | ||||
|       <view class="item flex spb" v-for="row in baseInfo" :key="row.prop"> | ||||
|         <span class="label" :class="{required:row.required}" v-text="row.label"/> | ||||
|         <AiSelect v-if="row.dict" v-model="form[row.prop]" :dict="row.dict" :disabled="row.disabled"/> | ||||
|         <AiDate v-else-if="row.type=='time'" @change="v=>$set(form,row.prop,v)" :value="form[row.prop]"/> | ||||
|         <u-input v-else-if="row.type=='idNumber'" v-model="form[row.prop]" input-align="right" maxlength="18"/> | ||||
|         <u-input v-else-if="row.type=='phone'" v-model="form[row.prop]" input-align="right" maxlength="11"/> | ||||
|         <u-input v-else v-model="form[row.prop]" input-align="right"/> | ||||
|       </view> | ||||
|  | ||||
|     <u-picker mode="time" :params="dataParams" v-model="isShowDate" @confirm="onDateChange"></u-picker> | ||||
|  | ||||
|     <div class="btn-wrapper"> | ||||
|       <div class="btn" hover-class="text-hover" @click="submit">提交</div> | ||||
|     </div> | ||||
|     <div class="card"> | ||||
|       <view class="item" :class="{spb:!row.topLabel,flex:!row.topLabel}" v-for="row in contract" :key="row.prop"> | ||||
|         <span class="label" :class="{required:row.required}" v-text="row.label"/> | ||||
|         <AiAreaPicker v-if="row.type=='area'" @input="v=>$set(form,row.prop,v)" :fullName.sync="form.currentAreaName" :selectRoot="false"> | ||||
|           <u-icon name="arrow-right" :label="form.currentAreaName||'请选择'" label-pos="left" color="#ddd"/> | ||||
|         </AiAreaPicker> | ||||
|         <textarea v-else v-model="form[row.prop]" input-align="right" placeholder="请输入" placeholder-style="color:#999" | ||||
|                   maxlength="50"/> | ||||
|       </view> | ||||
|     </div> | ||||
|     <div class="card"> | ||||
|       <view class="item" :class="{spb:!row.topLabel,flex:!row.topLabel}" v-for="row in household" :key="row.prop"> | ||||
|         <span class="label" :class="{required:row.required}" v-text="row.label"/> | ||||
|         <AiAreaPicker v-if="row.prop=='householdAreaId'" all @input="v=>$set(form,row.prop,v)" v-model="form[row.prop]" | ||||
|                       :fullName.sync="form.householdAreaName" valueLevel="5" isForm :selectRoot="false"/> | ||||
|         <textarea v-else v-model="form[row.prop]" input-align="right" placeholder="请输入" placeholder-style="color:#999" | ||||
|                   maxlength="50"/> | ||||
|       </view> | ||||
|     </div> | ||||
|     <div class="card"> | ||||
|       <view class="item flex spb" v-for="row in extra" :key="row.prop"> | ||||
|         <span class="label" :class="{required:row.required}" v-text="row.label"/> | ||||
|         <AiSelect v-if="row.dict" v-model="form[row.prop]" :dict="row.dict"/> | ||||
|         <AiDate v-else-if="row.type=='time'" v-model="form[row.prop]"/> | ||||
|         <AiAreaPicker v-else-if="row.type=='area'" all v-model="form[row.prop]" | ||||
|                       :fullName.sync="form.birthplaceAreaName"> | ||||
|           <u-icon name="arrow-right" :label="form.birthplaceAreaName||'请选择'" label-pos="left" color="#ddd"/> | ||||
|         </AiAreaPicker> | ||||
|         <u-input v-else v-model="form[row.prop]" input-align="right"/> | ||||
|       </view> | ||||
|     </div> | ||||
|     <div class="fixed-bottom"> | ||||
|       <u-button type="primary" @click="submit"> | ||||
|         <text style="font-size: 16px" v-text="`提交`"/> | ||||
|       </u-button> | ||||
|     </div> | ||||
|   </section> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import {mapState} from "vuex"; | ||||
| import {mapState} from 'vuex' | ||||
|  | ||||
| export default { | ||||
|   name: "partyAuthApply", | ||||
|   appName: "居民档案申请", | ||||
|   data() { | ||||
|     return { | ||||
|       isShowDate: false, | ||||
|       dataParams: { | ||||
|         year: true, | ||||
|         month: true, | ||||
|         day: true | ||||
|       }, | ||||
|       form: { | ||||
|         name: '', | ||||
|         idNumber: '', | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|  | ||||
|   computed: { | ||||
|     ...mapState(['user']) | ||||
|   }, | ||||
|   data() { | ||||
|     let required = true | ||||
|     return { | ||||
|       ownerOps: [], | ||||
|       form: { | ||||
|         householdName: "1", | ||||
|         currentAreaName: "", | ||||
|         householdAreaName: "", | ||||
|         birthplaceAreaName: "" | ||||
|       }, | ||||
|       baseInfo: [ | ||||
|         {label: "姓名", prop: "name", required}, | ||||
|         {label: "身份证号", prop: "idNumber", required, type: "idNumber"}, | ||||
|         {label: "性别", prop: "sex", required, dict: "sex", disabled: true}, | ||||
|         {label: "出生日期", prop: "birthDate", required, type: "time", disabled: true}, | ||||
|         {label: "联系方式", prop: "phone", type: "phone"}, | ||||
|       ], | ||||
|       contract: [ | ||||
|         {label: "现住址", prop: "currentAreaId", type: "area", required}, | ||||
|         {label: "详细住址", prop: "currentAddress", type: 'textarea', topLabel: true}, | ||||
|       ], | ||||
|       household: [ | ||||
|         {label: "户籍地址", prop: "householdAreaId", type: "area"}, | ||||
|         {label: "详细地址", prop: "householdAddress", type: 'textarea', topLabel: true}, | ||||
|       ], | ||||
|       extra: [ | ||||
|         {label: "籍贯", prop: "birthplaceAreaId", type: "area"}, | ||||
|         {label: "民族", prop: "nation", dict: "nation"}, | ||||
|         {label: "文化程度", prop: "education", dict: "education"}, | ||||
|         {label: "婚姻状况", prop: "maritalStatus", dict: "maritalStatus"}, | ||||
|         {label: "政治面貌", prop: "politicsStatus", dict: "politicsStatus"}, | ||||
|         {label: "兵役状况", prop: "militaryStatus", dict: "militaryStatus"}, | ||||
|         {label: "宗教信仰", prop: "faithType", dict: "faithType"}, | ||||
|         {label: "职业", prop: "job", dict: "job"}, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   onLoad() { | ||||
|     this.$dict.load("yesOrNo", "householdRelation").then(() => { | ||||
|       this.ownerOps = this.$dict.getDict("yesOrNo") | ||||
|  | ||||
|   onLoad(query) { | ||||
|     this.$dict.load(['epidemicTouchInFourteen','EP_healthType','EP_nucleicAcidResult','EP_jkmType','EP_vaccinationCount']).then(()=> { | ||||
|       this.form.reportUserId = query.id | ||||
|       this.form.name = query.name | ||||
|       this.form.idNumber = query.idNumber | ||||
|     }) | ||||
|     this.getResident() | ||||
|   }, | ||||
|   watch: { | ||||
|     'form.idNumber'(v) { | ||||
|       let {birthday: birthDate, sex} = this.$idCardNoUtil.getIdCardInfo(v), | ||||
|           age = this.$calcAge(v) | ||||
|       this.form = {...this.form, birthDate, sex, age} | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|   methods: { | ||||
|     getResident() { | ||||
|       let {residentId: id} = this.user | ||||
|       if (id) { | ||||
|         this.$instance.post("/app/appresident/detailForWx", null, { | ||||
|           params: {id} | ||||
|         }).then(res => { | ||||
|           if (res?.data) { | ||||
|             this.form = res.data.resident | ||||
|           } | ||||
|         }) | ||||
|       } else if (uni.getStorageSync("authForm")) { | ||||
|         let info = uni.getStorageSync("authForm"), | ||||
|             {birthday: birthDate, sex} = this.$idCardNoUtil.getIdCardInfo(info.idNumber) | ||||
|         uni.removeStorageSync("authForm") | ||||
|         this.form = {...this.form, ...info, birthDate, sex} | ||||
|       } | ||||
|     onDateChange(e) { | ||||
|       this.form.nucleicAcidDate = `${e.year}-${e.month}-${e.day}` | ||||
|     }, | ||||
|  | ||||
|     submit() { | ||||
|       let {baseInfo, contract, household, extra, form: {householdName, householdIdNumber, householdRelation}} = this | ||||
|       if (householdName == 0) { | ||||
|         if (!householdIdNumber) return this.$u.toast("请输入户主身份证号") | ||||
|         else if (!this.$idCardNoUtil.checkIdCardNo(householdIdNumber)) return this.$u.toast("请输入正确的身份证号") | ||||
|         if (!householdRelation) return this.$u.toast("请输入与户主关系") | ||||
|  | ||||
|       if (!this.form.temperature) { | ||||
|         return this.$toast('请输入当前体温') | ||||
|       } | ||||
|       let flag = [baseInfo, contract, household, extra].flat().reverse().some(e => { | ||||
|         if (e.required && !this.form[e.prop]) { | ||||
|           if (!e.dict && (['textarea', 'idNumber'].includes(e.type) || !e.type)) return this.$u.toast("请输入" + e.label) || true | ||||
|           else return this.$u.toast("请选择" + e.label) || true | ||||
|         } else if (e.type == 'idNumber' && !this.$idCardNoUtil.checkIdCardNo(this.form[e.prop])) { | ||||
|           return this.$u.toast("请输入正确的身份证号") || true | ||||
|  | ||||
|       if (!this.form.contactPatients) { | ||||
|         return this.$toast('请选择14天内是否接触新冠确诊或疑似患者') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.healthList.length) { | ||||
|         return this.$toast('请选择当前健康状况') | ||||
|       } else { | ||||
|         this.form.health = this.form.healthList.toString() | ||||
|       } | ||||
|  | ||||
|       if(!this.form.nucleicAcidDate) { | ||||
|         return this.$toast('请选择核酸检测日期') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.nucleicAcidResult) { | ||||
|         return this.$toast('请选择核酸检测结果') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.jkmType) { | ||||
|         return this.$toast('请选择健康码类型') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.vaccinationCount) { | ||||
|         return this.$toast('请选择已接种疫苗次数') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.jkmUrlArr.length) { | ||||
|         return this.$toast('请上传健康码截图') | ||||
|       } | ||||
|  | ||||
|       if (!this.form.nucleicAcidUrlArr.length) { | ||||
|         return this.$toast('请上核酸检测结果截图') | ||||
|       } | ||||
|  | ||||
|  | ||||
|       this.$loading() | ||||
|       this.$instance.post(`/app/appepidemicpreventionhealthreportinfo/addReportInfo`, { | ||||
|         ...this.form, | ||||
|         jkmUrl: this.form.jkmUrlArr[0].url, | ||||
|         nucleicAcidUrl: this.form.nucleicAcidUrlArr[0].url, | ||||
|         nucleicAcidDate: this.form.nucleicAcidDate + ' 00:00:00' | ||||
|       }).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           uni.$emit('update') | ||||
|           this.$toast('提交成功') | ||||
|           setTimeout(() => { | ||||
|             uni.navigateBack() | ||||
|           }, 400) | ||||
|         } | ||||
|         this.$hideLoading() | ||||
|       }) | ||||
|       if (!flag) { | ||||
|         this.$instance.post("/app/appresident/addOrUpdate", this.form).then(res => { | ||||
|           if (res?.code == 0) { | ||||
|             this.$u.toast("提交成功!") | ||||
|             setTimeout(() => uni.switchTab({url: "/pages/AppMine/AppMine"}), 1000) | ||||
|             // uni.redirectTo({url: "./authSuccess"}) | ||||
|           } | ||||
|         }) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| <style lang="scss"> | ||||
| .partyAuthApply { | ||||
|   background: #F3F6F9; | ||||
|   min-height: 100vh; | ||||
|   padding-bottom: 280px; | ||||
|   padding-bottom: 140px; | ||||
|  | ||||
|   .card { | ||||
|   .title { | ||||
|     padding: 16px 32px 0 32px; | ||||
|     box-sizing: border-box; | ||||
|     background: #fff; | ||||
|     padding-left: 32px; | ||||
|     font-size: 36px; | ||||
|     font-weight: 600; | ||||
|   } | ||||
|  | ||||
|   .tips { | ||||
|     line-height: 1.3; | ||||
|     padding: 32px 32px; | ||||
|     color: #FF883C; | ||||
|     font-size: 30px; | ||||
|     text-align: justify; | ||||
|     background: #FFF8F3; | ||||
|   } | ||||
|  | ||||
|   .form-item__group { | ||||
|     margin-bottom: 24px; | ||||
|     background: #fff; | ||||
|   } | ||||
|  | ||||
|   .form-item { | ||||
|     padding-left: 32px; | ||||
|  | ||||
|     .label { | ||||
|       font-size: 34px; | ||||
|       font-family: PingFangSC-Medium, PingFang SC; | ||||
|       color: #666; | ||||
|       font-weight: bold; | ||||
|       line-height: 112px; | ||||
|       position: relative; | ||||
|     .form-item__checkbox { | ||||
|       width: 100%; | ||||
|  | ||||
|       &.required:before { | ||||
|         content: "*"; | ||||
|         color: #FF4466; | ||||
|         position: absolute; | ||||
|         left: 0; | ||||
|         transform: translateX(-100%); | ||||
|       div { | ||||
|         width: 100%; | ||||
|         height: 80px; | ||||
|         line-height: 80px; | ||||
|         margin-bottom: 24px; | ||||
|         text-align: center; | ||||
|         background: #FFFFFF; | ||||
|         border-radius: 16px; | ||||
|         color: #333333; | ||||
|         font-size: 28px; | ||||
|         border: 1px solid #CCCCCC; | ||||
|  | ||||
|         &.active { | ||||
|           background: #4181FF; | ||||
|           color: #fff; | ||||
|           border-color: #4181FF; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .item { | ||||
|       width: 100%; | ||||
|       min-height: 128px; | ||||
|       color: #333; | ||||
|       box-shadow: inset 0px -1px 0px 0px #DDDDDD; | ||||
|       padding-right: 32px; | ||||
|       box-sizing: border-box; | ||||
|     // .form-item__radio { | ||||
|     //   display: flex; | ||||
|     //   align-items: center; | ||||
|     //   flex-wrap: wrap; | ||||
|  | ||||
|     //   div { | ||||
|     //     width: 212px; | ||||
|     //     height: 80px; | ||||
|     //     line-height: 80px; | ||||
|     //     margin-right: 16px; | ||||
|     //     margin-bottom: 8px; | ||||
|     //     text-align: center; | ||||
|     //     background: #FFFFFF; | ||||
|     //     border-radius: 16px; | ||||
|     //     color: #333333; | ||||
|     //     font-size: 28px; | ||||
|     //     border: 1px solid #CCCCCC; | ||||
|  | ||||
|     //     &:nth-of-type(3n) { | ||||
|     //       margin-right: 0; | ||||
|     //     } | ||||
|  | ||||
|     //     &.active { | ||||
|     //       background: #4181FF; | ||||
|     //       color: #fff; | ||||
|     //       border-color: #4181FF; | ||||
|     //     } | ||||
|     //   } | ||||
|     // } | ||||
|  | ||||
|     .ai-area__wrapper { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|       padding-left: 100px; | ||||
|  | ||||
|       span { | ||||
|         color: #333; | ||||
|         font-size: 30px; | ||||
|       } | ||||
|  | ||||
|       i { | ||||
|         color: #999; | ||||
|         font-size: 30px; | ||||
|       } | ||||
|  | ||||
|       image { | ||||
|         width: 16px; | ||||
|         height: 8px; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .form-item__wrapper { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|       justify-content: space-between; | ||||
|       height: 128px; | ||||
|       padding-right: 28px; | ||||
|       border-bottom: 1px solid #DDDDDD; | ||||
|       box-sizing: border-box; | ||||
|  | ||||
|       input { | ||||
|         flex: 1; | ||||
|         height: 100%; | ||||
|         text-align: right; | ||||
|         color: #333; | ||||
|         padding-right: 10px; | ||||
|       } | ||||
|  | ||||
|       .form-item__right { | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         font-size: 32px; | ||||
|  | ||||
|         span { | ||||
|           max-width: 400px; | ||||
|           margin-right: 8px; | ||||
|           color: #333333; | ||||
|           overflow: hidden; | ||||
|           white-space: nowrap; | ||||
|           text-overflow: ellipsis; | ||||
|         } | ||||
|  | ||||
|         i { | ||||
|           margin-right: 8px; | ||||
|           color: #999999; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .radioBtn { | ||||
|     width: 218px; | ||||
|     height: 80px; | ||||
|     background: #FFFFFF; | ||||
|     border-radius: 16px; | ||||
|     border: 1px solid #CCC; | ||||
|     margin-right: 16px; | ||||
|     text-align: center; | ||||
|     line-height: 80px; | ||||
|     margin-bottom: 48px; | ||||
|  | ||||
|     &.current { | ||||
|       background: #4181FF; | ||||
|       color: #fff; | ||||
|       border-color: #4181ff; | ||||
|     &:last-child { | ||||
|       .form-item__wrapper { | ||||
|         border-bottom: none; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .fixed-bottom { | ||||
|     width: 100vw; | ||||
|     height: 120px; | ||||
|     padding: 16px 32px; | ||||
|     box-sizing: border-box; | ||||
|     background: inherit; | ||||
|   } | ||||
|     .form-item__title { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|  | ||||
|   textarea { | ||||
|     width: 100%; | ||||
|       i { | ||||
|         font-size: 32px; | ||||
|         color: #FF4466; | ||||
|       } | ||||
|  | ||||
|       span { | ||||
|         font-size: 28px; | ||||
|         color: #999999; | ||||
|       } | ||||
|  | ||||
|       h2 { | ||||
|         padding: 0 4px; | ||||
|         font-weight: 400; | ||||
|         font-size: 32px; | ||||
|         color: #333333; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     // &.form-item__imgs, &.form-item__textarea { | ||||
|     //   .form-item__wrapper { | ||||
|     //     display: block; | ||||
|     //     height: auto; | ||||
|     //     padding-bottom: 32px; | ||||
|     //   } | ||||
|  | ||||
|     //   textarea { | ||||
|     //     width: 100%; | ||||
|     //     height: 90px; | ||||
|     //   } | ||||
|  | ||||
|     //   .form-item__title { | ||||
|     //     padding: 32px 0; | ||||
|     //   } | ||||
|  | ||||
|     //   .form-item__right { | ||||
|     //     padding-left: 18px; | ||||
|     //   } | ||||
|     // } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -40,7 +40,6 @@ import {mapState} from "vuex"; | ||||
|  | ||||
| export default { | ||||
|   name: "partyAuthInfo", | ||||
|   appName: "我的档案", | ||||
|   data() { | ||||
|     return { | ||||
|       detail: {}, | ||||
|   | ||||
| @@ -1,34 +1,22 @@ | ||||
| <template> | ||||
|   <div class="partyAuthSuccess"> | ||||
|     <template v-if="isSuccess"> | ||||
|       <!-- <image src="https://cdn.cunwuyun.cn/img/authSuccess.png"/> --> | ||||
|       <image src="./img/success.png"/> | ||||
|       <image src="https://cdn.cunwuyun.cn/pingchang/success.png"/> | ||||
|       <h2 v-text="`认证成功!`"/> | ||||
|       <div class="btn" @click="gotoInfo" v-text="`前往查看`"/> | ||||
|       <div class="btn" @click="goBack" v-text="`返回`"/> | ||||
|     </template> | ||||
|     <template v-else-if="isFail"> | ||||
|       <image src="https://cdn.cunwuyun.cn/img/authFail.png"/> | ||||
|       <h2 v-text="`认证失败!`"/> | ||||
|       <span class="flex">请先填写<div class="blue" v-text="`居民档案`"/> 进行申请</span> | ||||
|       <div class="btn" @click="apply">居民档案申请</div> | ||||
|       <div class="btn plain" @click="backToHome">返回</div> | ||||
|       <image src="https://cdn.cunwuyun.cn/pingchang/fail.png"/> | ||||
|       <h2 v-text="`党员认证审核未通过!`"/> | ||||
|       <div class="feedback"> | ||||
|         审核意见:{{}} | ||||
|       </div> | ||||
|       <div class="btn" @click="rewrite">重新提交</div> | ||||
|     </template> | ||||
|     <div class="authing" v-else> | ||||
|       <div class="result" v-text="`你发起的申请/修改`"/> | ||||
|       <div class="result" v-text="authingResult"/> | ||||
|       <div class="failReason" v-if="authFail"> | ||||
|         <div class="title flex spb"> | ||||
|           <b v-text="`审核结果`"/> | ||||
|           <b class="red" v-text="`未通过`"/> | ||||
|         </div> | ||||
|         <b v-text="`原因`"/> | ||||
|         <div v-html="info.resident.auditOpinion"/> | ||||
|       </div> | ||||
|       <div class="fixed-bottom"> | ||||
|         <u-button type="primary" @click="$linkTo('./authInfo')"> | ||||
|           <text style="font-size: 16px" v-text="`查看填报内容`"/> | ||||
|         </u-button> | ||||
|       </div> | ||||
|     <div class="isReview" v-else-if="isReview"> | ||||
|       <image src="https://cdn.cunwuyun.cn/pingchang/review.png"/> | ||||
|       <div class="result" v-text="`认证正在审核中,请耐心等待`"/> | ||||
|       <div class="btn" @click="rewrite">重新提交</div> | ||||
|     </div> | ||||
|   </div> | ||||
| </template> | ||||
| @@ -36,40 +24,57 @@ | ||||
| import {mapState} from "vuex"; | ||||
|  | ||||
| export default { | ||||
|   appName: "实名身份认证", | ||||
|   data() { | ||||
|     return { | ||||
|       info: {} | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     // 0未认证 1认证中 2已认证 3认证失败 | ||||
|     ...mapState(['user']), | ||||
|     isSuccess() { | ||||
|       return this.user.partyStatusForWX == 2 | ||||
|     }, | ||||
|     isFail() { | ||||
|       return this.user.partyStatusForWX == 3 | ||||
|     }, | ||||
|     isReview() { | ||||
|       return this.user.partyStatusForWX == 0 | ||||
|     }, | ||||
|     // isFail() { | ||||
|     //   return this.user.partyStatusForWX == 0 | ||||
|     // }, | ||||
|     authFail() { | ||||
|       return this.user.status == -1 | ||||
|     }, | ||||
|     authingResult() { | ||||
|       return this.authFail ? "审核未通过" : "正在审核中" | ||||
|     } | ||||
|   }, | ||||
|   onShow() { | ||||
|     // let titles = '' | ||||
|     // if(this.user.partyStatusForWX == 1){ | ||||
|     //   titles = '认证中' | ||||
|     // } else if(this.user.partyStatusForWX == 2) { | ||||
|     //   titles = '认证成功' | ||||
|     // } else if(this.user.partyStatusForWX == 3) { | ||||
|     //   titles = '认证失败' | ||||
|     // } | ||||
|     uni.setNavigationBarTitle({ | ||||
|       title: '党员认证' | ||||
|     }); | ||||
|   }, | ||||
|   onLoad() { | ||||
|     if (!this.isSuccess && !this.isFail) this.getAuthResult() | ||||
|     let title = '' | ||||
|     if(this.user.partyStatusForWX == 1){ | ||||
|       title = '认证中' | ||||
|     } else if(this.user.partyStatusForWX == 2) { | ||||
|       title = '认证成功' | ||||
|     } else if(this.user.partyStatusForWX == 3) { | ||||
|       title = '认证失败' | ||||
|     } | ||||
|     uni.setNavigationBarTitle({ | ||||
|       title: title | ||||
|     }); | ||||
|   }, | ||||
|   methods: { | ||||
|     backToHome() { | ||||
|     rewrite() { | ||||
|       uni.redirectTo({url: "./partyAuthApply"}) | ||||
|     }, | ||||
|     goBack() { | ||||
|       uni.navigateBack({}) | ||||
|     }, | ||||
|     apply() { | ||||
|       uni.redirectTo({url: "./authApply"}) | ||||
|     }, | ||||
|     gotoInfo() { | ||||
|       uni.redirectTo({url: "./authInfo"}) | ||||
|     }, | ||||
|     getAuthResult() { | ||||
|       this.$instance.post(`/app/appresident/detailForWx`, null, { | ||||
|         params: {id: this.user.residentId} | ||||
| @@ -106,6 +111,19 @@ export default { | ||||
|     font-weight: 700; | ||||
|   } | ||||
|  | ||||
|   .feedback { | ||||
|     width: 80vw; | ||||
|     margin-left: 10vw; | ||||
|     min-height: 192px; | ||||
|     background: #EFF5FA; | ||||
|     border-radius: 0 8px 8px 0; | ||||
|     text-align: left; | ||||
|     padding: 24px; | ||||
|     box-sizing: border-box; | ||||
|     font-size: 26px; | ||||
|     color: #999999; | ||||
|   } | ||||
|  | ||||
|   span { | ||||
|     font-size: 28px; | ||||
|     font-family: PingFangSC-Medium, PingFang SC; | ||||
| @@ -137,58 +155,24 @@ export default { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .authing { | ||||
|   .isReview { | ||||
|     margin-top: -272px; | ||||
|     padding: 224px 32px 0; | ||||
|     box-sizing: border-box; | ||||
|     height: calc(100vh + 272px); | ||||
|     background-image: url("https://cdn.cunwuyun.cn/shandong10086/authInfoHbg.png"); | ||||
|     background-size: 100vw; | ||||
|     background-repeat: no-repeat; | ||||
|     background-color: #f3f6f9; | ||||
|     background-color: #fff; | ||||
|  | ||||
|     .image { | ||||
|       width: 240px; | ||||
|       height: 240px; | ||||
|       margin-bottom: 16px; | ||||
|     } | ||||
|  | ||||
|     .result { | ||||
|       font-size: 56px; | ||||
|       font-family: PingFangSC-Semibold, PingFang SC; | ||||
|       font-weight: bold; | ||||
|       color: #000; | ||||
|       line-height: 88px; | ||||
|       text-align: left; | ||||
|     } | ||||
|  | ||||
|     .failReason { | ||||
|       margin-top: 160px; | ||||
|       background: #FFFFFF; | ||||
|       box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.02); | ||||
|       border-radius: 16px; | ||||
|       padding: 0 32px 34px; | ||||
|       font-size: 32px; | ||||
|       text-align: left; | ||||
|  | ||||
|       .title { | ||||
|         height: 112px; | ||||
|         box-shadow: inset 0px -1px 0px 0px #DDDDDD; | ||||
|       } | ||||
|  | ||||
|       b { | ||||
|         font-size: inherit; | ||||
|         color: #999; | ||||
|         line-height: 112px; | ||||
|  | ||||
|         &.red { | ||||
|           color: #f46; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .fixed-bottom { | ||||
|       position: fixed; | ||||
|       bottom: 16px; | ||||
|       width: 100vw; | ||||
|       height: 120px; | ||||
|       padding: 16px 32px; | ||||
|       box-sizing: border-box; | ||||
|       background-color: inherit; | ||||
|       margin-bottom: 16px; | ||||
|       color: #333333; | ||||
|       font-size: 40px; | ||||
|       font-weight: 700; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user