Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		| @@ -20,7 +20,7 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '三务公开', |           name: '三务公开', | ||||||
|           icon: require('./img/shgk.png'), |           icon: require('./img/shgk.png'), | ||||||
|           url: '../AppServicePublic/AppServicePublic?moduleId=b03d1ea68c8449ecb00685644e3f0192' |           url: '../AppServicePublic/AppServicePublic?moduleId=b03d1ea68c8449ecb00685644e3f0192&listName=三务公开' | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -20,12 +20,12 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '好人好事', |           name: '好人好事', | ||||||
|           icon: require('./img/hrhs.png'), |           icon: require('./img/hrhs.png'), | ||||||
|           url: '../AppServicePublic/AppServicePublic?moduleId=5da220f3182047aba92d64ac08b93b55' |           url: '../AppServicePublic/AppServicePublic?moduleId=5da220f3182047aba92d64ac08b93b55&listName=好人好事' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '五好家庭', |           name: '五好家庭', | ||||||
|           icon: require('./img/whjt.png'), |           icon: require('./img/whjt.png'), | ||||||
|           url: '../AppServicePublic/AppServicePublic?moduleId=6afadf4cd44f4b73be29390b30ca88bb' |           url: '../AppServicePublic/AppServicePublic?moduleId=6afadf4cd44f4b73be29390b30ca88bb&listName=五好家庭' | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '问卷表单', |           name: '问卷表单', | ||||||
|           icon: require('./img/wjbd.png'), |           icon: require('./img/wjbd.png'), | ||||||
|           url: '../AppAskForm/AppForm' |           url: '../AppAskForm/AppAskForm' | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '党建要闻', |           name: '党建要闻', | ||||||
|           icon: require('./img/djyw.png'), |           icon: require('./img/djyw.png'), | ||||||
|           url: '../AppServicePublic/AppServicePublic?moduleId=95f0f1c509e44d528069bc9f9dc19e53' |           url: '../AppServicePublic/AppServicePublic?moduleId=95f0f1c509e44d528069bc9f9dc19e53&listName=党建要闻' | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           name: '党员学习', |           name: '党员学习', | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '居民信息管理', |           name: '居民信息管理', | ||||||
|           icon: require('./img/jmxxgl.png'), |           icon: require('./img/jmxxgl.png'), | ||||||
|           url: '../AppResidentFile/AppResidentFile?tabIndex=0' |           url: '../AppResidentFile/AppResidentFile' | ||||||
|         }, |         }, | ||||||
|         // { |         // { | ||||||
|         //   name: '居民群管理', |         //   name: '居民群管理', | ||||||
| @@ -25,7 +25,7 @@ export default { | |||||||
|         { |         { | ||||||
|           name: '居民档案', |           name: '居民档案', | ||||||
|           icon: require('./img/jmda.png'), |           icon: require('./img/jmda.png'), | ||||||
|           url: '../AppResidentFile/AppResidentFile?tabIndex=1' |           url: '../AppResidentDocument/AppResidentDocument' | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   | |||||||
							
								
								
									
										164
									
								
								src/apps/AppResidentDocument/AppResidentDocument.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								src/apps/AppResidentDocument/AppResidentDocument.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="AppResidentDocument"> | ||||||
|  |     <u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bg-color="#3975C6" inactive-color="#fff" active-color="#fff" @change="change"></u-tabs> | ||||||
|  |  | ||||||
|  |     <!-- <AiAreaPicker v-model="areaId"  :areaId="areaId" @select="areaSelect"></AiAreaPicker> --> | ||||||
|  |  | ||||||
|  |     <div class="line"></div> | ||||||
|  |  | ||||||
|  |     <div class="seachObj"> | ||||||
|  |       <u-search v-model="keyword" :clearabled="true" placeholder="搜索" :show-action="false" bg-color="#F5F5F5" search-icon-color="#E2E8F1" color="#666" height="58" @search="handerSearch" @clear="handerClear"></u-search> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="datas" v-if="datas.length > 0"> | ||||||
|  |       <div class="datass" v-for="(item, iindex) in datas" :key="iindex" @click="toDetailCard(item)"> | ||||||
|  |         <div class="left"> | ||||||
|  |           <img :src="item.photo" alt="" v-if="item.photo" /> | ||||||
|  |           <img src="./components/img/4.png" alt="" v-else /> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="right"> | ||||||
|  |           <div class="rightTop">{{ item.name }}</div> | ||||||
|  |           <div class="rightBottom"> | ||||||
|  |             <span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }}</span> | ||||||
|  |  | ||||||
|  |             <span>{{ item.phone }}</span> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <!-- <div class="left"> | ||||||
|  |           <img :src="item.avatar" alt="" v-if="item.photo" /> | ||||||
|  |           <img src="./components/img/4.png" alt="" v-else /> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="right"> | ||||||
|  |           <div class="rightTop"> | ||||||
|  |             {{ item.corpName }} | ||||||
|  |             <span v-if="item.corpFullName" style="margin-left: 4px">@{{ item.corpFullName }}</span> | ||||||
|  |           </div> | ||||||
|  |           <div class="rightBottom"> | ||||||
|  |             <span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }}</span> | ||||||
|  |  | ||||||
|  |             <span>{{ item.phone }}</span> | ||||||
|  |           </div> | ||||||
|  |         </div> --> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <AiEmpty v-else></AiEmpty> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { mapState } from 'vuex' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: 'AppResidentDocument', | ||||||
|  |   appName: '居民档案', | ||||||
|  |   components: {}, | ||||||
|  |   props: {}, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       keyword: '', | ||||||
|  |       datas: [], | ||||||
|  |       current: 1, | ||||||
|  |       size: 10, | ||||||
|  |       tabList: [ | ||||||
|  |         { | ||||||
|  |           name: '本地居民', | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '流动人员', | ||||||
|  |         }, | ||||||
|  |       ], | ||||||
|  |       currentTabs: 0, | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   computed: { | ||||||
|  |     ...mapState(['user', 'global']), | ||||||
|  |   }, | ||||||
|  |   watch: {}, | ||||||
|  |   onLoad() { | ||||||
|  |     this.getList() | ||||||
|  |   }, | ||||||
|  |   onShow() {}, | ||||||
|  |   methods: { | ||||||
|  |     getList() { | ||||||
|  |       this.$http | ||||||
|  |         .post('/app/appresident/list', null, { | ||||||
|  |           params: { | ||||||
|  |             size: this.size, | ||||||
|  |             current: this.current, | ||||||
|  |             con: this.keyword, | ||||||
|  |             residentType: this.currentTabs == 0 ? '0' : '1', | ||||||
|  |           }, | ||||||
|  |         }) | ||||||
|  |         .then((res) => { | ||||||
|  |           if (res.code == 0) { | ||||||
|  |             this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records | ||||||
|  |  | ||||||
|  |             this.pages = res.data.pages | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |     }, | ||||||
|  |  | ||||||
|  |     change(index) { | ||||||
|  |       this.currentTabs = index | ||||||
|  |       this.getList() | ||||||
|  |     }, | ||||||
|  |  | ||||||
|  |     toDetailCard(item) { | ||||||
|  |       uni.navigateTo({ url: `./DetailCard?id=${item.id}` }) | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   onReachBottom() { | ||||||
|  |     this.current = this.current + 1 | ||||||
|  |     this.getList() | ||||||
|  |   }, | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped lang="scss"> | ||||||
|  | .AppResidentDocument { | ||||||
|  |   height: 100%; | ||||||
|  |   background: #fff; | ||||||
|  |   .line { | ||||||
|  |     height: 16px; | ||||||
|  |     background: #f5f5f5; | ||||||
|  |   } | ||||||
|  |   .seachObj { | ||||||
|  |     border-bottom: 2px solid #f5f5f5; | ||||||
|  |     border-top: 2px solid #f5f5f5; | ||||||
|  |     padding: 20px 32px; | ||||||
|  |   } | ||||||
|  |   .datas { | ||||||
|  |     .datass { | ||||||
|  |       display: flex; | ||||||
|  |       padding: 24px 32px; | ||||||
|  |       .left { | ||||||
|  |         img { | ||||||
|  |           width: 80px; | ||||||
|  |           height: 80px; | ||||||
|  |           border-radius: 50%; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       .right { | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         margin-left: 32px; | ||||||
|  |         width: 100%; | ||||||
|  |         .rightTop { | ||||||
|  |           font-size: 32px; | ||||||
|  |           font-weight: 500; | ||||||
|  |           color: #333333; | ||||||
|  |         } | ||||||
|  |         .rightBottom { | ||||||
|  |           display: flex; | ||||||
|  |           justify-content: space-between; | ||||||
|  |           margin-top: 8px; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										193
									
								
								src/apps/AppResidentDocument/DetailCard.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								src/apps/AppResidentDocument/DetailCard.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,193 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="DetailCard"> | ||||||
|  |     <div class="top"></div> | ||||||
|  |  | ||||||
|  |     <div class="middle"> | ||||||
|  |       <div class="hint">家庭地址</div> | ||||||
|  |  | ||||||
|  |       <div class="areaHint"> | ||||||
|  |         <u-icon name="map-fill" color="#73ABFF"></u-icon> | ||||||
|  |         <span>{{ currentAreaName }}</span> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="bottom"> | ||||||
|  |       <div class="hints">家庭成员</div> | ||||||
|  |  | ||||||
|  |       <div v-if="data.family && data.family.length > 0"> | ||||||
|  |         <div class="card" v-for="(item, i) in data.family" :key="i" @click="toDetailPeople(item)"> | ||||||
|  |           <div class="photos"> | ||||||
|  |             <img :src="item.photo" alt="" v-if="item.photo" /> | ||||||
|  |             <img src="./components/img/2.png" alt="" v-else /> | ||||||
|  |           </div> | ||||||
|  |  | ||||||
|  |           <div class="right"> | ||||||
|  |             <div class="rightTop"> | ||||||
|  |               <div class="rightTop-lefts"> | ||||||
|  |                 <span class="names">{{ item.name }}</span> | ||||||
|  |                 <span class="householdNames" v-if="item.householdName == 1">户主</span> | ||||||
|  |                 <span class="householdNames" v-else> | ||||||
|  |                   {{ $dict.getLabel('householdRelation', item.householdName) }} | ||||||
|  |                 </span> | ||||||
|  |               </div> | ||||||
|  |  | ||||||
|  |               <div class="rightTop-rights"> | ||||||
|  |                 <u-section :show-line="false" sub-title="详情"></u-section> | ||||||
|  |               </div> | ||||||
|  |             </div> | ||||||
|  |  | ||||||
|  |             <div class="rightBottom"> | ||||||
|  |               <span>身份证号:</span> | ||||||
|  |               <span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }}</span> | ||||||
|  |             </div> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |  | ||||||
|  |       <AiEmpty v-else></AiEmpty> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | export default { | ||||||
|  |   name: 'DetailCard', | ||||||
|  |   components: {}, | ||||||
|  |   props: {}, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       id: '', | ||||||
|  |       data: [], | ||||||
|  |       currentAreaName: '', | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   computed: {}, | ||||||
|  |   watch: {}, | ||||||
|  |   onLoad(o) { | ||||||
|  |     this.id = o.id | ||||||
|  |     this.$dict.load('householdRelation').then(() => { | ||||||
|  |       this.getDetail() | ||||||
|  |     }) | ||||||
|  |   }, | ||||||
|  |   onShow() {}, | ||||||
|  |   methods: { | ||||||
|  |     getDetail() { | ||||||
|  |       this.$http.post(`/app/appresident/detail?id=${this.id}`).then((res) => { | ||||||
|  |         if (res.code == 0) { | ||||||
|  |           this.data = res.data | ||||||
|  |           this.$nextTick(() => { | ||||||
|  |             this.currentAreaName = res.data.resident.currentAreaName | ||||||
|  |           }) | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |  | ||||||
|  |     toDetailPeople(item) { | ||||||
|  |       uni.navigateTo({ url: `./DetailPeople?id=${item.id}` }) | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped lang="scss"> | ||||||
|  | .DetailCard { | ||||||
|  |   height: 100%; | ||||||
|  |   .top { | ||||||
|  |     height: 112px; | ||||||
|  |     background: #3975c6; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .middle { | ||||||
|  |     margin: -80px 32px 0 32px; | ||||||
|  |     padding: 38px 30px 78px 28px; | ||||||
|  |     background: #ffffff; | ||||||
|  |     box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.02); | ||||||
|  |     border-radius: 16px; | ||||||
|  |     z-index: 999; | ||||||
|  |     .hint { | ||||||
|  |       font-size: 32px; | ||||||
|  |       font-weight: 500; | ||||||
|  |       color: #333333; | ||||||
|  |     } | ||||||
|  |     .areaHint { | ||||||
|  |       margin-top: 38px; | ||||||
|  |       span { | ||||||
|  |         margin-left: 14px; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .bottom { | ||||||
|  |     margin: 32px 30px 48px 30px; | ||||||
|  |     background: #fff; | ||||||
|  |     padding: 38px 30px 30px 30px; | ||||||
|  |     .hints { | ||||||
|  |       margin-bottom: 38px; | ||||||
|  |     } | ||||||
|  |     .card { | ||||||
|  |       display: flex; | ||||||
|  |       box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.08); | ||||||
|  |       border-radius: 16px; | ||||||
|  |       padding: 48px 32px; | ||||||
|  |       margin-bottom: 32px; | ||||||
|  |       .photos { | ||||||
|  |         img { | ||||||
|  |           width: 96px; | ||||||
|  |           height: 96px; | ||||||
|  |           border-radius: 50%; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       .right { | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         margin-left: 40px; | ||||||
|  |         width: 100%; | ||||||
|  |         .rightTop { | ||||||
|  |           display: flex; | ||||||
|  |           justify-content: space-between; | ||||||
|  |           .rightTop-lefts { | ||||||
|  |             .names { | ||||||
|  |               font-size: 32px; | ||||||
|  |               font-weight: 600; | ||||||
|  |             } | ||||||
|  |             .householdNames { | ||||||
|  |               margin-left: 30px; | ||||||
|  |               font-size: 26px; | ||||||
|  |               font-weight: 500; | ||||||
|  |               color: #5aad6a; | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |           .rightTop-rights { | ||||||
|  |             ::v-deep .u-section { | ||||||
|  |               .u-section__right-info { | ||||||
|  |                 color: #3975c6 !important; | ||||||
|  |                 .u-section__right-info__icon-arrow { | ||||||
|  |                   .u-icon { | ||||||
|  |                     .u-icon__icon { | ||||||
|  |                       color: #3975c6 !important; | ||||||
|  |                     } | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         .rightBottom { | ||||||
|  |           margin-top: 20px; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .card:nth-child(2n-1) { | ||||||
|  |       // background: royalblue; | ||||||
|  |       background: url(http://respub.sinoecare.net/20211222/装饰-20211222162743.png) no-repeat; | ||||||
|  |       background-size: 100% 100%; | ||||||
|  |     } | ||||||
|  |     .card:nth-child(2n) { | ||||||
|  |       // background: pink; | ||||||
|  |       background: url(http://respub.sinoecare.net/20211222/装饰2-20211222162934.png) no-repeat; | ||||||
|  |       background-size: 100% 100%; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										215
									
								
								src/apps/AppResidentDocument/DetailPeople.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								src/apps/AppResidentDocument/DetailPeople.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,215 @@ | |||||||
|  | <template> | ||||||
|  |   <div class="DetailPeople"> | ||||||
|  |     <div class="top"> | ||||||
|  |       <div class="photos"> | ||||||
|  |         <img :src="data.resident.photo" alt="" v-if="data.resident.photo" /> | ||||||
|  |         <img src="./components/img/2.png" alt="" v-else /> | ||||||
|  |       </div> | ||||||
|  |  | ||||||
|  |       <div class="right"> | ||||||
|  |         <div class="rightTop"> | ||||||
|  |           <span class="names">{{ data.resident.name }}</span> | ||||||
|  |  | ||||||
|  |           <span class="householdNames" v-if="data.resident.name == 1">户主</span> | ||||||
|  |           <span class="householdNames" v-else> | ||||||
|  |             {{ $dict.getLabel('householdRelation', data.resident.householdName) }} | ||||||
|  |           </span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="rightBottom">{{ data.resident.phone }}</div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="line"></div> | ||||||
|  |  | ||||||
|  |     <div class="middle"> | ||||||
|  |       <div class="hint">个人基本信息</div> | ||||||
|  |  | ||||||
|  |       <div class="contents"> | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>家庭地址</span> | ||||||
|  |           <span>{{ data.resident.birthplaceAreaName }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>身份证号</span> | ||||||
|  |           <span>{{ data.resident.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>民族</span> | ||||||
|  |           <span> {{ $dict.getLabel('nation', data.resident.householdName) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>文化程度</span> | ||||||
|  |           <span>{{ $dict.getLabel('education', data.resident.education) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>婚姻状况</span> | ||||||
|  |           <span>{{ $dict.getLabel('maritalStatus', data.resident.maritalStatus) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>政治面貌</span> | ||||||
|  |           <span>{{ $dict.getLabel('politicsStatus', data.resident.politicsStatus) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>兵役状况</span> | ||||||
|  |           <span>{{ $dict.getLabel('militaryStatus', data.resident.militaryStatus) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>宗教信仰</span> | ||||||
|  |           <span>{{ $dict.getLabel('faithType', data.resident.faithType) }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>职业</span> | ||||||
|  |           <span>{{ $dict.getLabel('job', data.resident.job) }}</span> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |     <div class="lines"></div> | ||||||
|  |  | ||||||
|  |     <div class="bottom"> | ||||||
|  |       <div class="hint">联络信息</div> | ||||||
|  |  | ||||||
|  |       <div class="contents"> | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>联系方式</span> | ||||||
|  |           <span class="phones">{{ data.resident.phone }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>现住址</span> | ||||||
|  |           <span>{{ data.resident.currentAreaName }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>现住详细地址</span> | ||||||
|  |           <span>{{ data.resident.currentAddress }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>户籍地址</span> | ||||||
|  |           <span>{{ data.resident.householdAreaName }}</span> | ||||||
|  |         </div> | ||||||
|  |  | ||||||
|  |         <div class="item"> | ||||||
|  |           <span>户籍详细地址</span> | ||||||
|  |           <span>{{ data.resident.householdAddress }}</span> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | export default { | ||||||
|  |   name: 'DetailPeople', | ||||||
|  |   components: {}, | ||||||
|  |   props: {}, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       id: '', | ||||||
|  |       data: [], | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   computed: {}, | ||||||
|  |   watch: {}, | ||||||
|  |   onLoad(o) { | ||||||
|  |     this.id = o.id | ||||||
|  |     this.$dict.load('householdRelation', 'nation', 'education', 'maritalStatus', 'politicsStatus', 'militaryStatus', 'faithType', 'job').then(() => { | ||||||
|  |       this.getDetail() | ||||||
|  |     }) | ||||||
|  |   }, | ||||||
|  |   onShow() {}, | ||||||
|  |   methods: { | ||||||
|  |     getDetail() { | ||||||
|  |       this.$http.post(`/app/appresident/detail?id=${this.id}`).then((res) => { | ||||||
|  |         if (res.code == 0) { | ||||||
|  |           this.data = res.data | ||||||
|  |           // this.$nextTick(() => { | ||||||
|  |           //   this.currentAreaName = res.data.resident.currentAreaName | ||||||
|  |           // }) | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style scoped lang="scss"> | ||||||
|  | .DetailPeople { | ||||||
|  |   height: 100%; | ||||||
|  |   background: #fff; | ||||||
|  |   .top { | ||||||
|  |     display: flex; | ||||||
|  |     padding: 48px 32px 32px 32px; | ||||||
|  |     .photos { | ||||||
|  |       img { | ||||||
|  |         width: 112px; | ||||||
|  |         height: 112px; | ||||||
|  |         border-radius: 50%; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .right { | ||||||
|  |       display: flex; | ||||||
|  |       flex-direction: column; | ||||||
|  |       width: 100%; | ||||||
|  |       margin-left: 24px; | ||||||
|  |       .rightTop { | ||||||
|  |         display: flex; | ||||||
|  |         justify-content: space-between; | ||||||
|  |         .names { | ||||||
|  |           font-size: 32px; | ||||||
|  |           font-weight: 600; | ||||||
|  |         } | ||||||
|  |         .householdNames { | ||||||
|  |           margin-left: 30px; | ||||||
|  |           font-size: 26px; | ||||||
|  |           font-weight: 500; | ||||||
|  |           color: #5aad6a; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       .rightBottom { | ||||||
|  |         margin-top: 16px; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .line { | ||||||
|  |     height: 8px; | ||||||
|  |     background: #f5f5f5; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .middle, | ||||||
|  |   .bottom { | ||||||
|  |     padding: 0 32px; | ||||||
|  |  | ||||||
|  |     .hint { | ||||||
|  |       padding: 32px 0; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .contents { | ||||||
|  |       .item { | ||||||
|  |         display: flex; | ||||||
|  |         justify-content: space-between; | ||||||
|  |         padding: 14px 0; | ||||||
|  |         .phones { | ||||||
|  |           color: #3d94fb; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .lines { | ||||||
|  |     height: 4px; | ||||||
|  |     background: #f5f5f5; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </style> | ||||||
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 740 B | 
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/11.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/11.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 888 B | 
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/22.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/22.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/4.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/44.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/apps/AppResidentDocument/components/img/44.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.7 KiB | 
| @@ -76,6 +76,26 @@ | |||||||
|         <div class="datas" v-if="data.length > 0"> |         <div class="datas" v-if="data.length > 0"> | ||||||
|           <div class="datass" v-for="(item, iindex) in data" :key="iindex" @click="toDetailCard(item)"> |           <div class="datass" v-for="(item, iindex) in data" :key="iindex" @click="toDetailCard(item)"> | ||||||
|             <div class="left"> |             <div class="left"> | ||||||
|  |               <img :src="item.avatar" alt="" v-if="item.photo" /> | ||||||
|  |               <img src="./components/img/4.png" alt="" v-else /> | ||||||
|  |             </div> | ||||||
|  |  | ||||||
|  |             <div class="right"> | ||||||
|  |               <div class="rightTop"> | ||||||
|  |                 {{ item.corpName }} | ||||||
|  |                 <span v-if="item.corpFullName" style="color: #3c7fc8; margin-left: 4px">@{{ item.corpFullName }}</span> | ||||||
|  |               </div> | ||||||
|  |               <div class="rightBottom"> | ||||||
|  |                 <span> | ||||||
|  |                   <span>{{ item.name }}</span> | ||||||
|  |                   <!-- {{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }} --> | ||||||
|  |                 </span> | ||||||
|  |  | ||||||
|  |                 <!-- <span>{{ item.phone }}</span> --> | ||||||
|  |               </div> | ||||||
|  |             </div> | ||||||
|  |  | ||||||
|  |             <!-- <div class="left"> | ||||||
|               <img :src="item.photo" alt="" v-if="item.photo" /> |               <img :src="item.photo" alt="" v-if="item.photo" /> | ||||||
|               <img src="./components/img/4.png" alt="" v-else /> |               <img src="./components/img/4.png" alt="" v-else /> | ||||||
|             </div> |             </div> | ||||||
| @@ -87,7 +107,7 @@ | |||||||
|  |  | ||||||
|                 <span>{{ item.phone }}</span> |                 <span>{{ item.phone }}</span> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> --> | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|  |  | ||||||
| @@ -131,12 +151,11 @@ import { mapState } from 'vuex' | |||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   name: 'AppResidentFile', |   name: 'AppResidentFile', | ||||||
|   appName: '居民档案', |   appName: '居民信息管理', | ||||||
|   components: {}, |   components: {}, | ||||||
|   props: {}, |   props: {}, | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       indexBar: '', |  | ||||||
|       lists: [ |       lists: [ | ||||||
|         { |         { | ||||||
|           iconPath: 'home', |           iconPath: 'home', | ||||||
| @@ -199,16 +218,8 @@ export default { | |||||||
|     ...mapState(['user', 'global']), |     ...mapState(['user', 'global']), | ||||||
|   }, |   }, | ||||||
|   watch: {}, |   watch: {}, | ||||||
|   onLoad(o) { |   onLoad() { | ||||||
|     if (o.tabIndex) { |  | ||||||
|       this.indexBar = o.tabIndex |  | ||||||
|     } |  | ||||||
|     this.getEchart1() |     this.getEchart1() | ||||||
|     this.getEchart2() |  | ||||||
|     this.getList() |  | ||||||
|     this.getList2() |  | ||||||
|  |  | ||||||
|     this.currentTabBar = this.indexBar |  | ||||||
|     this.areaId = this.user.areaId |     this.areaId = this.user.areaId | ||||||
|   }, |   }, | ||||||
|   mounted() { |   mounted() { | ||||||
| @@ -249,12 +260,12 @@ export default { | |||||||
|  |  | ||||||
|     getList() { |     getList() { | ||||||
|       this.$http |       this.$http | ||||||
|         .post('/app/appresident/list', null, { |         .post('/app/wxcp/wxcustomer/list', null, { | ||||||
|           params: { |           params: { | ||||||
|             size: 10, |             size: 10, | ||||||
|             current: this.current, |             current: this.current, | ||||||
|             areaId: this.areaId, |             areaId: this.areaId, | ||||||
|             con: this.keyword, |             name: this.keyword, | ||||||
|             residentType: this.currentPeople == 0 ? '0' : '1', |             residentType: this.currentPeople == 0 ? '0' : '1', | ||||||
|           }, |           }, | ||||||
|         }) |         }) | ||||||
|   | |||||||
| @@ -6,18 +6,20 @@ | |||||||
|           <u-input v-model="forms.title" placeholder="请输入标题(30字以内)" type="textarea" auto-height height="60" maxlength="30" /> |           <u-input v-model="forms.title" placeholder="请输入标题(30字以内)" type="textarea" auto-height height="60" maxlength="30" /> | ||||||
|         </u-form-item> |         </u-form-item> | ||||||
|  |  | ||||||
|         <u-form-item label="公开类型" prop="status" required style="position: relative"> |         <u-form-item label="类别" prop="status" required> | ||||||
|           <u-input v-model="forms.status" disabled placeholder="请选择公开类型" @click="showStstus = true" /> |           <div class="right" @click="showStstus=true"> | ||||||
|  |             <span v-if="forms.showIndex === ''" class="color-999">请选择类别</span> | ||||||
|           <u-select v-model="showStstus" :list="$dict.getDict('realityStatus')" value-name="dictValue" label-name="dictName" @confirm="selectStatus"></u-select> |             <span v-else>{{selectList[forms.showIndex].categoryName}}</span> | ||||||
|  |             <u-icon name="arrow-right" color="#CCCCCC" class="right-icon"></u-icon> | ||||||
|           <u-icon name="arrow-right" color="#CCCCCC" style="position: absolute; top: 25px; right: 30px"></u-icon> |           </div> | ||||||
|  |           <u-select v-model="showStstus" :list="selectList" value-name="showIndex" label-name="categoryName" @confirm="selectStatus"></u-select> | ||||||
|         </u-form-item> |         </u-form-item> | ||||||
|  |  | ||||||
|         <u-form-item label="发布地区" prop="areaId" required style="position: relative"> |         <u-form-item label="发布地区" prop="areaId" required > | ||||||
|           <AiAreaPicker v-model="forms.areaId" :areaId="areaIdProps" @select="areaSelect"></AiAreaPicker> |           <div class="right"> | ||||||
|  |             <AiAreaPicker v-model="forms.areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker> | ||||||
|           <u-icon name="arrow-right" color="#CCCCCC" style="position: absolute; top: 25px; right: 30px"></u-icon> |             <u-icon name="arrow-right" color="#CCCCCC" class="right-icon area-right-icon"></u-icon> | ||||||
|  |           </div> | ||||||
|         </u-form-item> |         </u-form-item> | ||||||
|  |  | ||||||
|         <u-form-item label="正文" prop="content" required label-position="top"> |         <u-form-item label="正文" prop="content" required label-position="top"> | ||||||
| @@ -48,16 +50,17 @@ export default { | |||||||
|       id: '', |       id: '', | ||||||
|       forms: { |       forms: { | ||||||
|         title: '', |         title: '', | ||||||
|         status: '', |  | ||||||
|         statusValue: '', |  | ||||||
|         content: '', |         content: '', | ||||||
|         fileIds: [], |         fileIds: [], | ||||||
|         areaId: '', |         areaId: '', | ||||||
|  |         showIndex: '', | ||||||
|       }, |       }, | ||||||
|       showStstus: false, |       showStstus: false, | ||||||
|       flag: false, |       flag: false, | ||||||
|       areaIdProps: '', |       areaIdProps: '', | ||||||
|       moduleId: '' |       moduleId: '', | ||||||
|  |       listName: '', | ||||||
|  |       selectList: [] | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   computed: { ...mapState(['user']) }, |   computed: { ...mapState(['user']) }, | ||||||
| @@ -65,27 +68,42 @@ export default { | |||||||
|     console.log(o) |     console.log(o) | ||||||
|     this.id = o.id |     this.id = o.id | ||||||
|     this.moduleId = o.moduleId |     this.moduleId = o.moduleId | ||||||
|     this.areaIdProps = this.user.areaId |     this.forms.areaId = this.user.areaId | ||||||
|     this.$dict.load('realityStatus').then(() => { |     this.listName = o.listName | ||||||
|       this.getDetail() |     this.getType() | ||||||
|     }) |  | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   mounted() {}, |   mounted() {}, | ||||||
|   methods: { |   methods: { | ||||||
|     // getDetail() { |     getDetail() { | ||||||
|     //   this.$http.post(`/app/appvisitvondolence/queryDetailById?id=${this.id}`).then((res) => { |       this.$http.post(`/app/appcontentinfo/queryDetailById?id=${this.id}`).then((res) => { | ||||||
|     //     if (res?.data) { |         if (res?.data) { | ||||||
|     //       this.forms = res.data |           this.forms = {...res.data} | ||||||
|     //       this.forms.statusValue = res.data.status |           if(this.selectList.length) { | ||||||
|     //       this.forms.status = this.$dict.getLabel('realityStatus', res.data.status) |             this.selectList.map((item, index) => { | ||||||
|     //       if (res.data.images) { |               if(item.id == res.data.categoryId) { | ||||||
|     //         this.forms.images = JSON.parse(res.data.images || '[]') |                 this.forms.showIndex = index | ||||||
|     //       } |               } | ||||||
|     //     } |             }) | ||||||
|     //   }) |           } | ||||||
|     // }, |           if (res.data.images) { | ||||||
|  |             this.forms.images = JSON.parse(res.data.images || '[]') | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     getType() { | ||||||
|  |       this.$http.post(`/app/appcontentmoduleinfo/listByName?names=${this.listName}`).then((res) => { | ||||||
|  |         if (res.code == 0) { | ||||||
|  |           if(res.data && res.data[0].categoryList.length) { | ||||||
|  |             this.selectList = res.data[0].categoryList | ||||||
|  |             if(this.id) { | ||||||
|  |               this.getDetail() | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|     submit() { |     submit() { | ||||||
|       if (this.flag) return |       if (this.flag) return | ||||||
|  |  | ||||||
| @@ -98,6 +116,10 @@ export default { | |||||||
|             return this.$u.toast('请输入正文') |             return this.$u.toast('请输入正文') | ||||||
|           } |           } | ||||||
|  |  | ||||||
|  |           if(this.selectList.length && this.forms.showIndex === '') { | ||||||
|  |             return this.$u.toast('请选择类别') | ||||||
|  |           } | ||||||
|  |  | ||||||
|           const imgs = [] |           const imgs = [] | ||||||
|           if (this.forms.fileIds) { |           if (this.forms.fileIds) { | ||||||
|             this.forms.fileIds.map((e) => { |             this.forms.fileIds.map((e) => { | ||||||
| @@ -106,22 +128,21 @@ export default { | |||||||
|           } |           } | ||||||
|  |  | ||||||
|           this.flag = true |           this.flag = true | ||||||
|           this.$http |           this.$http.post(`/app/appcontentinfo/addOrUpdate`, { | ||||||
|             .post(`/app/appvisitvondolence/addOrUpdate`, { |  | ||||||
|               title: this.forms.title, |               title: this.forms.title, | ||||||
|               status: this.forms.statusValue ? this.forms.statusValue : this.forms.status, |  | ||||||
|               areaId: this.forms.areaId, |               areaId: this.forms.areaId, | ||||||
|               content: this.forms.content, |               content: this.forms.content, | ||||||
|               // images: JSON.stringify(imgs) || [], |               files: imgs || [], | ||||||
|               images: imgs || [], |  | ||||||
|               id: this.id, |               id: this.id, | ||||||
|               moduleId: this.moduleId |               moduleId: this.moduleId, | ||||||
|  |               categoryId: this.selectList[this.forms.showIndex].id, | ||||||
|  | 	            categoryName: this.selectList[this.forms.showIndex].categoryName, | ||||||
|             }) |             }) | ||||||
|             .then((res) => { |             .then((res) => { | ||||||
|               if (res.code == 0) { |               if (res.code == 0) { | ||||||
|                 this.$u.toast('发布成功') |                 this.$u.toast('发布成功') | ||||||
|                 this.flag = false |                 this.flag = false | ||||||
|                 uni.navigateTo({ url: `./AppServicePublic` }) |                 uni.navigateBack() | ||||||
|               } |               } | ||||||
|             }) |             }) | ||||||
|         } else { |         } else { | ||||||
| @@ -135,8 +156,7 @@ export default { | |||||||
|     }, |     }, | ||||||
|  |  | ||||||
|     selectStatus(e) { |     selectStatus(e) { | ||||||
|       this.forms.status = e[0].label |       this.forms.showIndex = e[0].value | ||||||
|       this.forms.statusValue = e[0].value |  | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| } | } | ||||||
| @@ -185,5 +205,35 @@ export default { | |||||||
|     font-weight: 500; |     font-weight: 500; | ||||||
|     color: #ffffff; |     color: #ffffff; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   .right{ | ||||||
|  |     width: 100%; | ||||||
|  |     text-align: right; | ||||||
|  |     .right-icon{ | ||||||
|  |       vertical-align: middle; | ||||||
|  |       margin-left: 8px; | ||||||
|  |     } | ||||||
|  |     .area-right-icon{ | ||||||
|  |       margin: -40px 0 0 8px; | ||||||
|  |     } | ||||||
|  |     ::v-deep .AiAreaPicker{ | ||||||
|  |       display: inline-block; | ||||||
|  |       width: calc(100% - 50px); | ||||||
|  |       .areaSelector{ | ||||||
|  |         div{ | ||||||
|  |           width: 100%; | ||||||
|  |           padding-top: 30px; | ||||||
|  |           box-sizing: border-box; | ||||||
|  |           text-align: right; | ||||||
|  |         } | ||||||
|  |         .fixedTop{ | ||||||
|  |           text-align: left; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   .color-999{ | ||||||
|  |     color: #999; | ||||||
|  |   } | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
| @@ -1,8 +1,13 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="AppServicePublic"> |   <div class="AppServicePublic"> | ||||||
|  |     <AiTopFixed v-if="tabs.length"> | ||||||
|  |       <div class="tab-select" @click="tabClick(item)"> | ||||||
|  |         <div class="item" :class="tabIndex == index ? 'active' : ''" v-for="(item, index) in tabs" :key="index" @click="tabClick(item)">{{item.categoryName}}<span></span></div> | ||||||
|  |       </div> | ||||||
|  |     </AiTopFixed> | ||||||
|     <div class="header-top"> |     <div class="header-top"> | ||||||
|       <div>区域选择</div> |       <div>区域选择</div> | ||||||
|       <AiAreaPicker v-model="areaId" :areaId="areaId" @select="areaSelect"></AiAreaPicker> |       <AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect"></AiAreaPicker> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|     <u-search class="serach_content" placeholder="请输入公开标题" :show-action="false" v-model="keyword" @clear="clearSearch" @search="search"></u-search> |     <u-search class="serach_content" placeholder="请输入公开标题" :show-action="false" v-model="keyword" @clear="clearSearch" @search="search"></u-search> | ||||||
| @@ -10,16 +15,16 @@ | |||||||
|     <template v-if="datas.length > 0"> |     <template v-if="datas.length > 0"> | ||||||
|       <AiCard v-for="(item, i) in datas" :key="i" @click.native="toAdd(item, 1)"> |       <AiCard v-for="(item, i) in datas" :key="i" @click.native="toAdd(item, 1)"> | ||||||
|         <template #custom> |         <template #custom> | ||||||
|           <div class="titles">{{ item.createUserName }}</div> |           <div class="titles">{{ item.title }}</div> | ||||||
|  |  | ||||||
|           <div class="flex"> |           <div class="flex"> | ||||||
|             <span class="left"> |             <span class="left"> | ||||||
|               <span class="garydiv">财务公开</span> |               <span class="garydiv" v-if="item.categoryName">{{item.categoryName}}</span> | ||||||
|               <span class="times">2021-12-16</span> |               <span class="times">{{item.createTime.substring(0, 10)}}</span> | ||||||
|             </span> |             </span> | ||||||
|  |  | ||||||
|             <span class="right"> |             <span class="right"> | ||||||
|               <span class="font">1111</span> |               <span class="font">{{item.viewCount}}</span> | ||||||
|               <span>人看过</span> |               <span>人看过</span> | ||||||
|             </span> |             </span> | ||||||
|           </div> |           </div> | ||||||
| @@ -66,7 +71,11 @@ export default { | |||||||
|       pages: 0, |       pages: 0, | ||||||
|       deletShow: false, |       deletShow: false, | ||||||
|       deletId: '', |       deletId: '', | ||||||
|       moduleId: '' |       moduleId: '', | ||||||
|  |       listName: '', | ||||||
|  |       tabs: [], | ||||||
|  |       tabIndex: 0, | ||||||
|  |       categoryId: '' | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   computed: { |   computed: { | ||||||
| @@ -80,19 +89,39 @@ export default { | |||||||
|   onLoad(o) { |   onLoad(o) { | ||||||
|     this.areaId = this.user.areaId |     this.areaId = this.user.areaId | ||||||
|     this.moduleId = o.moduleId |     this.moduleId = o.moduleId | ||||||
|  |     this.listName = o.listName | ||||||
|  |     this.getType() | ||||||
|     this.getList() |     this.getList() | ||||||
|   }, |   }, | ||||||
|   mounted() {}, |   mounted() {}, | ||||||
|   methods: { |   methods: { | ||||||
|  |     getType() { | ||||||
|  |       this.$http.post(`/app/appcontentmoduleinfo/listByName?names=${this.listName}`).then((res) => { | ||||||
|  |         if (res.code == 0) { | ||||||
|  |           if(res.data && res.data[0].categoryList.length) { | ||||||
|  |             var all = [{ | ||||||
|  |               categoryName: '全部', | ||||||
|  |               id: '', | ||||||
|  |               showIndex: 0, | ||||||
|  |             }] | ||||||
|  |             this.tabs = [...all, ... res.data[0].categoryList] | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     tabClick(row) { | ||||||
|  |       this.tabIndex = row.showIndex | ||||||
|  |       this.categoryId = row.id | ||||||
|  |     }, | ||||||
|     getList() { |     getList() { | ||||||
|       this.$http |       this.$http.post('/app/appcontentinfo/list', null, { | ||||||
|         .post('/app/appvisitvondolence/list', null, { |  | ||||||
|         params: { |         params: { | ||||||
|           size: 6, |           size: 6, | ||||||
|           current: this.current, |           current: this.current, | ||||||
|           areaId: this.areaId, |           areaId: this.areaId, | ||||||
|           title: this.keyword, |           title: this.keyword, | ||||||
|             moduleId: this.moduleId |           moduleId: this.moduleId, | ||||||
|  |           categoryId: this.categoryId | ||||||
|         }, |         }, | ||||||
|       }) |       }) | ||||||
|       .then((res) => { |       .then((res) => { | ||||||
| @@ -111,15 +140,15 @@ export default { | |||||||
|     toAdd(item, type) { |     toAdd(item, type) { | ||||||
|       if (type == '1') { |       if (type == '1') { | ||||||
|         console.log('详情') |         console.log('详情') | ||||||
|         uni.navigateTo({ url: `./Detail?id=${item.id}` }) |         uni.navigateTo({ url: `./Detail?id=${item.id}&listName=${this.listName}` }) | ||||||
|       } |       } | ||||||
|       if (type == '2') { |       if (type == '2') { | ||||||
|         console.log('编辑') |         console.log('编辑') | ||||||
|         uni.navigateTo({ url: `./Add?id=${item.id}` }) |         uni.navigateTo({ url: `./Add?id=${item.id}&moduleId=${this.moduleId}&listName=${this.listName}` }) | ||||||
|       } |       } | ||||||
|       if (type == null) { |       if (type == null) { | ||||||
|         console.log('添加') |         console.log('添加') | ||||||
|         uni.navigateTo({ url: `./Add?moduleId=${this.moduleId}` }) |         uni.navigateTo({ url: `./Add?moduleId=${this.moduleId}&listName=${this.listName}` }) | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
| @@ -148,6 +177,41 @@ export default { | |||||||
| uni-page-body { | uni-page-body { | ||||||
|   height: 100%; |   height: 100%; | ||||||
| } | } | ||||||
|  | ::v-deep .content{ | ||||||
|  |   padding: 0!important; | ||||||
|  | } | ||||||
|  | .tab-select{ | ||||||
|  |   width: 100%; | ||||||
|  |   height: 96px; | ||||||
|  |   line-height: 96px; | ||||||
|  |   background: #3975C6; | ||||||
|  |   display: flex; | ||||||
|  |   .item{ | ||||||
|  |     flex: 1; | ||||||
|  |     text-align: center; | ||||||
|  |     font-size: 28px; | ||||||
|  |     font-family: PingFangSC-Regular, PingFang SC; | ||||||
|  |     color: #CDDCF0; | ||||||
|  |   } | ||||||
|  |   .active{ | ||||||
|  |     font-family: PingFangSC-Medium, PingFang SC; | ||||||
|  |     font-weight: 500; | ||||||
|  |     position: relative; | ||||||
|  |     color: #fff; | ||||||
|  |     span{ | ||||||
|  |       width: 48px; | ||||||
|  |       height: 4px; | ||||||
|  |       background: #FFF; | ||||||
|  |       position: absolute; | ||||||
|  |       bottom: 14px; | ||||||
|  |       left: 50%; | ||||||
|  |       margin-left: -24px; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | .iconfont-iconMore{ | ||||||
|  |   margin-top: 8px; | ||||||
|  | } | ||||||
| .AppServicePublic { | .AppServicePublic { | ||||||
|   height: 100%; |   height: 100%; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,20 +1,22 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="Detail"> |   <div class="Detail"> | ||||||
|     <div class="header-top"> |     <div class="header-top"> | ||||||
|       <div class="titles">刘家村村规民约</div> |       <div class="titles">{{data.title}}</div> | ||||||
|  |  | ||||||
|       <div class="titles-bottom"> |       <div class="titles-bottom"> | ||||||
|         <span>类型:</span> |         <span>类型:</span> | ||||||
|         <span>财务公开</span> |         <span>{{selectList[data.showIndex].categoryName}}</span> | ||||||
|         <span class="to-left">浏览量:</span> |         <span class="to-left">浏览量:</span> | ||||||
|         <span>26</span> |         <span>{{data.viewCount}}</span> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|     <div class="header-middle"> |     <div class="header-middle"> | ||||||
|       <span class="contsnts">为了推进我村民主法治建设,维护社会稳定,促进经济发展,规范村民清洁乡村卫生行为,改善村容村貌,推进“生态乡村”建设,树立良好的民风、村风,创造安居乐业的社会环境,经全体村民代表讨论通过,制定本村规民约。</span> |       <span class="contsnts">{{data.content}}</span> | ||||||
|  |       <div class="img-list" v-if="data.files && data.files.length"> | ||||||
|  |         <img :src="item.accessUrl" alt="" v-for="(item, index) in data.files" :key="index" /> | ||||||
|  |       </div> | ||||||
|        |        | ||||||
|       <img src="" alt="" /> |  | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| @@ -26,26 +28,41 @@ export default { | |||||||
|   props: {}, |   props: {}, | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       data: [], |       data: {}, | ||||||
|       id: '', |       id: '', | ||||||
|  |       listName: '', | ||||||
|  |       selectList: [] | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   computed: {}, |   computed: {}, | ||||||
|   watch: {}, |   watch: {}, | ||||||
|   onLoad(o) { |   onLoad(o) { | ||||||
|     this.id = o.id |     this.id = o.id | ||||||
|     this.$dict.load('realityStatus').then(() => { |     this.listName = o.listName | ||||||
|       // this.getDetail() |     this.getType() | ||||||
|     }) |  | ||||||
|   }, |   }, | ||||||
|   mounted() {}, |   mounted() {}, | ||||||
|   methods: { |   methods: { | ||||||
|     getDetail() { |     getDetail() { | ||||||
|       this.$http.post(`/app/appvisitvondolence/queryDetailById?id=${this.id}`).then((res) => { |       this.$http.post(`/app/appcontentinfo/queryDetailById?id=${this.id}`).then((res) => { | ||||||
|         if (res?.data) { |         if (res?.data) { | ||||||
|           this.data = res.data |           this.data = res.data | ||||||
|           if (this.data.images) { |           if(this.selectList.length) { | ||||||
|             this.data.images = JSON.parse(this.data.images || '[]') |             this.selectList.map((item, index) => { | ||||||
|  |               if(item.id == res.data.categoryId) { | ||||||
|  |                 this.data.showIndex = index | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     getType() { | ||||||
|  |       this.$http.post(`/app/appcontentmoduleinfo/listByName?names=${this.listName}`).then((res) => { | ||||||
|  |         if (res.code == 0) { | ||||||
|  |           if(res.data && res.data[0].categoryList.length) { | ||||||
|  |             this.selectList = res.data[0].categoryList | ||||||
|  |             this.getDetail() | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       }) |       }) | ||||||
| @@ -92,5 +109,13 @@ uni-page-body { | |||||||
|       height: 486px; |       height: 486px; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   .img-list{ | ||||||
|  |     img{ | ||||||
|  |       width: 204px; | ||||||
|  |       height: 204px; | ||||||
|  |       margin: 0 8px 8px 0; | ||||||
|  |     } | ||||||
|  |   } | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user