Merge branch 'build' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into build
This commit is contained in:
		| @@ -49,8 +49,8 @@ | ||||
|                       :isMultiple="true" dialogTitle="选择" @selectPerson="selectPerson" class="aipersonselect"> | ||||
|                     <template name="option" v-slot:option="{ item }"> | ||||
|                       <span class="iconfont iconProlife">{{ item.name }}</span> | ||||
|                       <!-- <ai-id mode="show" :show-eyes="false" :value="item.idNumber"/> --> | ||||
|                       <span>{{ item.phone }}</span> | ||||
|                       <!-- <span>{{ item}}</span> --> | ||||
|                     </template> | ||||
|                   </ai-person-select> | ||||
|                 </el-form-item> | ||||
|   | ||||
| @@ -41,6 +41,13 @@ | ||||
|                   </ai-uploader> | ||||
|                 </template> | ||||
|               </el-table-column> | ||||
|               <el-table-column slot="options" width="100px" fixed="right" label="操作" align="center"> | ||||
|                 <template slot-scope="{ row }"> | ||||
|                   <div class="table-options"> | ||||
|                     <el-button type="text" @click="toDetail(row)">详情</el-button> | ||||
|                   </div> | ||||
|                 </template> | ||||
|               </el-table-column> | ||||
|             </ai-table> | ||||
|           </template> | ||||
|         </ai-card> | ||||
| @@ -56,6 +63,8 @@ | ||||
|               <ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item> | ||||
|               <ai-info-item label="所属地区" :value="info.areaName"></ai-info-item> | ||||
|               <ai-info-item label="详细地址" isLine :value="info.address"></ai-info-item> | ||||
|               <ai-info-item label="风险解除人" v-if="riskDisposalInfo.createUserName" :value="riskDisposalInfo.createUserName"></ai-info-item> | ||||
|               <ai-info-item label="风险解除时间" v-if="riskDisposalInfo.createTime" :value="riskDisposalInfo.createTime"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
| @@ -72,6 +81,52 @@ | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </div> | ||||
|       <ai-dialog | ||||
|         :visible.sync="isShow" | ||||
|         width="890px" | ||||
|         customFooter | ||||
|         title="上报详情"> | ||||
|         <ai-bar title="健康状况"></ai-bar> | ||||
|         <ai-wrapper | ||||
|           label-width="120px"> | ||||
|           <ai-info-item label="当前体温"> | ||||
|             <span :style="{color: reportInfo.temperature > 37.3 ? '#FF4466' : '#42D784'}">{{ reportInfo.temperature }}℃</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="14天内是否接触新冠确诊或疑似患者"> | ||||
|             <span :style="{color: reportInfo.contactPatients === '0' ? '#42D784' : '#FF4466'}">{{ $dict.getLabel('epidemicTouchInFourteen', reportInfo.contactPatients) }}</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="当前健康状况" isLine> | ||||
|             <span :style="{color: !reportInfo.isHealth ? '#42D784' : '#FF4466'}">{{ reportInfo.healthName }}</span> | ||||
|           </ai-info-item> | ||||
|         </ai-wrapper> | ||||
|         <ai-bar title="核酸检测信息"></ai-bar> | ||||
|         <ai-wrapper | ||||
|           label-width="120px"> | ||||
|           <ai-info-item label="检测日期"> | ||||
|             <span>{{ reportInfo.nucleicAcidDate && reportInfo.nucleicAcidDate.split(' ')[0] }}</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="检测结果"> | ||||
|             <span :style="{color: reportInfo.nucleicAcidResult === '0' ? '#42D784' : '#FF4466'}">{{ $dict.getLabel('EP_nucleicAcidResult', reportInfo.nucleicAcidResult) }}</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="健康码状态"> | ||||
|             <span :style="{color: (reportInfo.jkmType === '0' || reportInfo.jkmType === '1') ? '#42D784' : '#FF4466'}">{{ $dict.getLabel('EP_jkmType', reportInfo.jkmType) }}</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="已接种疫苗次数"> | ||||
|             <span>{{ $dict.getLabel('EP_vaccinationCount', reportInfo.vaccinationCount) }}</span> | ||||
|           </ai-info-item> | ||||
|           <ai-info-item label="本人健康码截图" isLine> | ||||
|             <ai-uploader | ||||
|               :instance="instance" | ||||
|               :value="[{url: reportInfo.jkmUrl}]" | ||||
|               disabled | ||||
|               :limit="9"> | ||||
|             </ai-uploader> | ||||
|           </ai-info-item> | ||||
|         </ai-wrapper> | ||||
|         <div class="dialog-footer" slot="footer"> | ||||
|           <el-button @click="isShow = false">关闭</el-button> | ||||
|         </div> | ||||
|       </ai-dialog> | ||||
|     </template> | ||||
|   </ai-detail> | ||||
| </template> | ||||
| @@ -92,6 +147,8 @@ | ||||
|         isShow: false, | ||||
|         currIndex: 0, | ||||
|         isLoading: false, | ||||
|         riskDisposalInfo: {}, | ||||
|         reportInfo: {}, | ||||
|         tableData: [], | ||||
|         colConfigs1: [ | ||||
|           {prop: 'createTime', label: '上报日期', align: 'center' }, | ||||
| @@ -124,7 +181,9 @@ | ||||
|       this.isLoading = true | ||||
|       if (this.params && this.params.id) { | ||||
|         this.id = this.params.id | ||||
|         this.getInfo(this.params.id) | ||||
|         this.dict.load(['EP_vaccinationCount', 'EP_jkmType', 'epidemicTouchInFourteen', 'EP_healthType']).then(() => { | ||||
|           this.getInfo(this.params.id) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|  | ||||
| @@ -133,6 +192,12 @@ | ||||
|         this.instance.post(`/app/appepidemicpreventionhealthreportinfo/userDetailById?id=${id}`).then(res => { | ||||
|           if (res.code === 0) { | ||||
|             this.info = res.data | ||||
|  | ||||
|             if (res.data.handleLogs && res.data.handleLogs.length) { | ||||
|               this.riskDisposalInfo = res.data.handleLogs.filter(v => v.riskRelief).length ? res.data.handleLogs.filter(v => !v.riskRelief)[0] : {} | ||||
|  | ||||
|               this.info.handleLogs = res.data.handleLogs.filter(v => !v.riskRelief) | ||||
|             } | ||||
|           } | ||||
|  | ||||
|           this.isLoading = false | ||||
| @@ -141,6 +206,37 @@ | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|       toDetail (row) { | ||||
|         this.reportInfo = row | ||||
|         this.isShow = true | ||||
|         let healthName = '' | ||||
|         this.reportInfo.isHealth = false | ||||
|         row.health.split(',').forEach(v => { | ||||
|           if (v > 0) { | ||||
|             this.reportInfo.isHealth = true | ||||
|           } | ||||
|           healthName = healthName + this.dict.getLabel('EP_healthType', v) | ||||
|         }) | ||||
|         this.reportInfo.healthName = healthName | ||||
|         // this.instance.post(`/app/appepidemichealthreport/queryDetailById?id=${id}`).then(res => { | ||||
|         //   if (res.code === 0) { | ||||
|         //     this.reportInfo = res.data | ||||
|         //     this.reportInfo.checkPhoto = JSON.parse(res.data.checkPhoto) | ||||
|         //     let healthName = '' | ||||
|         //     this.reportInfo.isHealth = false | ||||
|         //     res.data.health.split(',').forEach(v => { | ||||
|         //       if (v > 0) { | ||||
|         //         this.reportInfo.isHealth = true | ||||
|         //       } | ||||
|         //       healthName = healthName + this.dict.getLabel('epidemicRecentHealth', v) | ||||
|         //     }) | ||||
|         //     this.reportInfo.healthName = healthName | ||||
|  | ||||
|         //     this.isShow = true | ||||
|         //   } | ||||
|         // }) | ||||
|       }, | ||||
|  | ||||
|       cancel () { | ||||
|         this.$emit('change', { | ||||
|           type: 'List', | ||||
|   | ||||
| @@ -162,8 +162,6 @@ | ||||
|         this.instance.post(`/app/appepidemicpreventionregisterinfo/queryDetailById?id=${id}`).then(res => { | ||||
|           if (res.code === 0) { | ||||
|             this.info = res.data | ||||
|             this.info.checkPhoto = res.data.checkPhoto ? JSON.parse(res.data.checkPhoto) : [] | ||||
|  | ||||
|             this.info.travelTypeNames = res.data.travelType.split(',').map(v => { | ||||
|               return this.dict.getLabel('EP_travelType', v) | ||||
|             }).join(',') | ||||
|   | ||||
| @@ -0,0 +1,59 @@ | ||||
| <template> | ||||
|   <section class="AppOrganizationChange"> | ||||
|     <keep-alive :include="['List']"> | ||||
|       <component ref="component" :is="component" :instance="instance" :selected.sync="selected" :params="params" :dict="dict" @change="onChange"/> | ||||
|     </keep-alive> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import addChange from "./components/addChange.vue"; | ||||
| import List from "./components/List.vue"; | ||||
|  | ||||
| export default { | ||||
|   name: "AppOrganizationChange", | ||||
|   label: "组织换届", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|   }, | ||||
|   components: {List, addChange}, | ||||
|   data() { | ||||
|     return { | ||||
|       component: "List", | ||||
|       params: {}, | ||||
|       include: [], | ||||
|       selected: {}, | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     onChange(data) { | ||||
|       if (data.type === "List") { | ||||
|         this.component = "List"; | ||||
|         this.params = data.params; | ||||
|       } | ||||
|  | ||||
|       if (data.type === "addChange") { | ||||
|         this.component = "addChange"; | ||||
|         this.params = data.params; | ||||
|  | ||||
|         this.$nextTick(() => { | ||||
|           if (data.isRefresh) { | ||||
|             this.$refs.component.getList(); | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
|   created() { | ||||
|     let {organizationId: id, organizationName: name} = this.user.info | ||||
|     this.selected = {id, name} | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .AppOrganizationChange { | ||||
|   height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										191
									
								
								project/pingchang/apps/AppOrganizationChange/components/List.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								project/pingchang/apps/AppOrganizationChange/components/List.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,191 @@ | ||||
| <template> | ||||
|   <ai-list class="List"> | ||||
|     <template slot="title"> | ||||
|       <ai-title title="组织换届" isShowBottomBorder/> | ||||
|     </template> | ||||
|     <template #left> | ||||
|       <ai-tree-menu title="组织目录" searchPlaceholder="请输入组织名称" @search="onSearch"> | ||||
|         <ai-party-tree | ||||
|             :filter-node-method="filterNode" | ||||
|             ref="tree" | ||||
|             :instance="instance" | ||||
|             :root="user.info.organizationId" | ||||
|             :current-node-key="selected.id" | ||||
|             @select="onTreeChange"/> | ||||
|       </ai-tree-menu> | ||||
|     </template> | ||||
|     <template slot="content"> | ||||
|       <el-tabs v-model="currIndex"> | ||||
|         <el-tab-pane v-for="(tab,i) in tabs" :key="i" :label="tab.label"> | ||||
|           <component :ref="String(i)" v-if="currIndex == i" :is="tab.comp" lazy :instance="instance" | ||||
|                       :dict="dict" :permissions="permissions" v-on="$listeners"/> | ||||
|         </el-tab-pane> | ||||
|       </el-tabs> | ||||
|     </template> | ||||
|   </ai-list> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import {mapState} from 'vuex' | ||||
| import moment from './moment.vue' | ||||
| import history from './history.vue' | ||||
|  | ||||
|  | ||||
| export default { | ||||
|   name: 'List', | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     permissions: Function, | ||||
|     dict: Object, | ||||
|     selected: Object | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: { | ||||
|         current: 1, | ||||
|         size: 10, | ||||
|         con: '', | ||||
|         age: [], | ||||
|         sex: '', | ||||
|         nation: '', | ||||
|         partyStatus: '', | ||||
|         flowStatus: '', | ||||
|         education: '', | ||||
|         partyPosition: '', | ||||
|         birthStart: '', | ||||
|         birthEnd: '', | ||||
|         turnPositiveStart: '', | ||||
|         turnPositiveEnd: '', | ||||
|         joinPartyStart: '', | ||||
|         joinPartyEnd: '' | ||||
|       }, | ||||
|       orgName: '', | ||||
|       loading: false, | ||||
|       total: 0, | ||||
|       tableData: [], | ||||
|       ids: '', | ||||
|       tabs: [ | ||||
|         {label: '当前届次', name: 'moment', comp: moment, permission: ''}, | ||||
|         {label: '历史届次', name: 'history', comp: history, permission: ''} | ||||
|       ], | ||||
|       currIndex: '0' | ||||
|     } | ||||
|   }, | ||||
|   components: { | ||||
|     moment, | ||||
|     history | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']), | ||||
|     orgTree() { | ||||
|       return this.$refs.tree?.$refs?.partyTree | ||||
|     }, | ||||
|     // exportQuery() { | ||||
|     //   let {id: partyOrgId} = this.selected | ||||
|     //   return { | ||||
|     //     ids: this.ids ? this.ids.split(',') : [], | ||||
|     //     ...this.search, partyOrgId | ||||
|     //   } | ||||
|     // }, | ||||
|     // isShowAddBtn() { | ||||
|     //   return this.selected.isLeaf == 1 | ||||
|     // } | ||||
|   }, | ||||
|   created() { | ||||
|     // this.dict.load('disciplinary', 'partyType', 'sex', 'nation', 'education', 'partyStatus', 'partyPosition', 'flowStatus', 'auditStatus') | ||||
|     // this.getList() | ||||
|   }, | ||||
|   methods: { | ||||
|     showNeighbourSetting(id) { | ||||
|       this.$router.push({query: {id}, hash: "#ns"}) | ||||
|     }, | ||||
|     onTreeChange(e) { | ||||
|       this.$emit("update:selected", e) | ||||
|       this.getList(e.id) | ||||
|     }, | ||||
|  | ||||
|     onSearch(v) { | ||||
|       this.orgTree.filter(v) | ||||
|     }, | ||||
|  | ||||
|     getList(partyOrgId) { | ||||
|       if (!this.user.info.organizationId) return | ||||
|  | ||||
|       this.loading = true | ||||
|       partyOrgId = partyOrgId || this.selected.id | ||||
|       this.instance.post(`/app/appparty/list`, null, { | ||||
|         params: {partyOrgId, ...this.search, age: this.search.age?.join(',')} | ||||
|       }).then(res => { | ||||
|         this.loading = false | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data.records | ||||
|           this.total = res.data.total | ||||
|         } | ||||
|       }).catch(() => { | ||||
|         this.loading = false | ||||
|       }) | ||||
|     }, | ||||
|     removeAll() { | ||||
|       if (!this.ids) { | ||||
|         return this.$message.error('请选择党员') | ||||
|       } | ||||
|       this.remove(this.ids) | ||||
|     }, | ||||
|     handleSelectionChange(e) { | ||||
|       this.ids = e.map(v => v.id).join(',') | ||||
|     }, | ||||
|     filterNode(value, data) { | ||||
|       if (!value) return true | ||||
|       return data.name.indexOf(value) !== -1 | ||||
|     }, | ||||
|     remove(id) { | ||||
|       this.$confirm('确定删除该数据?').then(() => { | ||||
|         this.instance.post(`/app/appparty/delete?ids=${id}`).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.$message.success('删除成功!') | ||||
|             this.getList() | ||||
|           } | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|     toDetail(id) { | ||||
|       this.$router.push({query: {id}}) | ||||
|     }, | ||||
|     toAdd(id) { | ||||
|       this.$router.push({query: {id}, hash: "#add"}) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .List { | ||||
|   .party-table__btns { | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .audit-0 { | ||||
|     color: #FF8822 !important; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .audit-1 { | ||||
|     color: #2EA222 !important; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .ai-list__content--right { | ||||
|     flex: 1; | ||||
|     min-width: 0; | ||||
|     margin-left: 1px; | ||||
|     box-shadow: none; | ||||
|  | ||||
|     .ai-list__content--right-wrapper { | ||||
|       width: 100%; | ||||
|     } | ||||
|   } | ||||
|   ::v-deep .is-current>.el-tree-node__content{ | ||||
|     width: 100%!important; | ||||
|     padding-right: 16px!important; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -0,0 +1,13 @@ | ||||
| <template> | ||||
|   <div>历史届次</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|  | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
|  | ||||
| </style> | ||||
| @@ -0,0 +1,13 @@ | ||||
| <template> | ||||
|   <div>当前届次</div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|  | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style> | ||||
|  | ||||
| </style> | ||||
		Reference in New Issue
	
	Block a user