数据比对
This commit is contained in:
		| @@ -27,7 +27,6 @@ | ||||
|     }, | ||||
|  | ||||
|     components: { | ||||
|       Detail, | ||||
|       List | ||||
|     }, | ||||
|  | ||||
|   | ||||
| @@ -1,181 +0,0 @@ | ||||
|  <template> | ||||
|   <ai-detail isHasSidebar v-loading="isLoading"> | ||||
|     <template slot="title"> | ||||
|       <ai-title title="返乡报备详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> | ||||
|       </ai-title> | ||||
|     </template> | ||||
|     <template slot="content"> | ||||
|       <AiSidebar :tabTitle="tabList" v-model="currIndex"></AiSidebar> | ||||
|       <div v-show="currIndex === 0"> | ||||
|         <ai-card title="基本信息" v-show="currIndex === 0"> | ||||
|           <template #content> | ||||
|             <ai-wrapper | ||||
|               label-width="120px"> | ||||
|               <ai-info-item label="姓名" :value="info.name"></ai-info-item> | ||||
|               <ai-info-item label="填报时间" :value="info.createTime"></ai-info-item> | ||||
|               <ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item> | ||||
|               <ai-info-item label="手机号码" :value="info.phone"></ai-info-item> | ||||
|               <ai-info-item label="人员类别" :value="dict.getLabel('EP_registerPersonType', info.type)"></ai-info-item> | ||||
|               <ai-info-item label="是否从事高危行业" :value="dict.getLabel('EP_highRiskIndustries', info.highRiskIndustries)"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|         <ai-card title="行程信息"> | ||||
|           <template #content> | ||||
|             <ai-wrapper | ||||
|               label-width="120px"> | ||||
|               <ai-info-item label="出发时间" :value="info.startTime"></ai-info-item> | ||||
|               <ai-info-item label="出发地" > | ||||
|                 <span  :style="{color: info.denger == 1 ? '#FF4466' : '#333'}">{{info.startAreaName}} </span> | ||||
|               </ai-info-item> | ||||
|               <ai-info-item label="出发地详址" isLine :value="info.startAddress"></ai-info-item> | ||||
|               <ai-info-item label="出行方式" :value="info.travelTypeNames"></ai-info-item> | ||||
|               <ai-info-item label="车次/航班" isLine :value="info.trainNo"></ai-info-item> | ||||
|               <ai-info-item label="行程描述" isLine :value="info.description"></ai-info-item> | ||||
|               <ai-info-item label="抵平时间" :value="info.arriveTime"></ai-info-item> | ||||
|               <ai-info-item label="目的地" :value="info.arriveAreaName"></ai-info-item> | ||||
|               <ai-info-item label="目的地详址" isLine :value="info.arriveAddress"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|         <ai-card title="健康状况"> | ||||
|           <template #content> | ||||
|             <ai-wrapper | ||||
|               label-width="120px"> | ||||
|               <ai-info-item label="是否有风险旅居史" v-if="info.fromHighRiskArea === '1'"> | ||||
|                 <span style="color: red">{{ info.highRiskAreaName }}</span> | ||||
|               </ai-info-item> | ||||
|               <ai-info-item label="是否有风险旅居史" v-else value="否"></ai-info-item> | ||||
|               <ai-info-item label="7天内是否接触新冠确诊或疑似患者"> | ||||
|                 <span :style="{color: info.contactPatients === '1' ? 'red' : ''}">{{ dict.getLabel('yesOrNo', info.contactPatients) }}</span> | ||||
|               </ai-info-item> | ||||
|               <ai-info-item label="当前健康状况" v-if="info.abnormalHealth === '1'"> | ||||
|                 <span style="color: red">{{ dict.getLabel('EP_abnormalType', info.abnormalType) }}</span> | ||||
|               </ai-info-item> | ||||
|               <ai-info-item label="当前健康状况" v-else value="否"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </div> | ||||
|       <div v-show="currIndex === 1"> | ||||
|         <ai-card title="风险处置"> | ||||
|           <template #right> | ||||
|             <el-button type="primary" v-if="info.status === '0'" @click="release">解除异常</el-button> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <ai-wrapper | ||||
|               label-width="120px"> | ||||
|               <ai-info-item label="姓名" :value="info.name"></ai-info-item> | ||||
|               <ai-info-item label="填报时间" :value="info.createTime"></ai-info-item> | ||||
|               <ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item> | ||||
|               <ai-info-item label="手机号码" :value="info.phone"></ai-info-item> | ||||
|               <ai-info-item label="人员类别" :value="dict.getLabel('EP_registerPersonType', info.type)"></ai-info-item> | ||||
|               <ai-info-item label="是否从事高危行业" :value="dict.getLabel('EP_highRiskIndustries', info.highRiskIndustries)"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|         <ai-card title="风险处理意见"> | ||||
|           <template #content> | ||||
|             <ai-table | ||||
|               :isShowPagination="false" | ||||
|               tableSize="small" | ||||
|               border | ||||
|               :tableData="info.riskDisposalList" | ||||
|               :col-configs="colConfigs" | ||||
|               @getList="() => {}"> | ||||
|             </ai-table> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|         <ai-card title="社区初排" v-if="info.cmAdvanceDisposal"> | ||||
|           <template #content> | ||||
|             <ai-wrapper | ||||
|               style="margin-bottom: 20px;" | ||||
|               label-width="120px"> | ||||
|               <ai-info-item label="居家状态" :value="dict.getLabel('EP_homeStatus', info.cmAdvanceDisposal.homeStatus)"></ai-info-item> | ||||
|               <ai-info-item label="隔离时间" :value="info.cmAdvanceDisposal.quarantineBeginTime + info.cmAdvanceDisposal.quarantineEndTime"></ai-info-item> | ||||
|               <ai-info-item label="隔离策略" :value="dict.getLabel('EP_quarantineStrategy', info.cmAdvanceDisposal.quarantineStrategy)"></ai-info-item> | ||||
|               <ai-info-item label="管控方式" :value="dict.getLabel('EP_controlMethod', info.cmAdvanceDisposal.controlMethod)"></ai-info-item> | ||||
|               <ai-info-item label="图片" isLine> | ||||
|                 <ai-uploader | ||||
|                   :instance="instance" | ||||
|                   :value="info.cmAdvanceDisposal.fileList" | ||||
|                   disabled | ||||
|                   :limit="9"> | ||||
|                 </ai-uploader> | ||||
|               </ai-info-item> | ||||
|             </ai-wrapper> | ||||
|             <ai-empty style="margin-bottom: 60px;" v-if="!info.cmAdvanceDisposal"></ai-empty> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </div> | ||||
|     </template> | ||||
|   </ai-detail> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
|     name: 'Detail', | ||||
|  | ||||
|     props: { | ||||
|       instance: Function, | ||||
|       dict: Object, | ||||
|       params: Object | ||||
|     }, | ||||
|  | ||||
|     data () { | ||||
|       return { | ||||
|         info: {}, | ||||
|         isShow: false, | ||||
|         currIndex: 0, | ||||
|         isLoading: false, | ||||
|         tableData: [], | ||||
|         colConfigs: [ | ||||
|           {prop: 'remarks', label: '异常记录', align: 'center' }, | ||||
|           {prop: 'createTime', label: '创建时间', align: 'center'}, | ||||
|           {prop: 'createUserName', label: '记录人', align: 'center' } | ||||
|         ], | ||||
|         tabList: ['基本信息', '风险处置'] | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     created () { | ||||
|       this.isLoading = true | ||||
|       if (this.params && this.params.id) { | ||||
|         this.id = this.params.id | ||||
|         this.$dict.load(['EP_quarantineStrategy', 'EP_handleType', 'EP_registerPersonType', 'EP_highRiskIndustries', 'EP_travelType', 'yesOrNo', 'EP_handoverObject', | ||||
|         'EP_quarantineAddress', 'EP_homeStatus', 'EP_quarantineStrategy', 'EP_controlMethod', 'EP_homeStatus', 'EP_abnormalType']).then(() => { | ||||
|           this.getInfo(this.params.id) | ||||
|         }) | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     methods: { | ||||
|       getInfo (id) { | ||||
|         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(',') | ||||
|           } | ||||
|  | ||||
|           this.isLoading = false | ||||
|         }).catch(() => { | ||||
|           this.isLoading = false | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|       cancel () { | ||||
|         this.$emit('change', { | ||||
|           type: 'List', | ||||
|           isRefresh: true | ||||
|         }) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| </style> | ||||
| @@ -1,103 +1,78 @@ | ||||
| <template> | ||||
|   <ai-list class="list"> | ||||
|     <ai-title slot="title" title="返乡报备" isShowBottomBorder :instance="instance" v-if="search.arriveAreaId" isShowArea v-model="search.arriveAreaId" @change="changeArea"></ai-title> | ||||
|     <ai-title slot="title" title="数据比对" isShowBottomBorder :instance="instance" v-if="search.arriveAreaId" isShowArea v-model="search.arriveAreaId" @change="changeArea"></ai-title> | ||||
|     <template slot="content"> | ||||
|       <div class="statistics-top"> | ||||
|         <div class="statistics-top__item"> | ||||
|           <span>登记人数</span> | ||||
|           <h2 style="color: #2266FF;">{{ info['登记人数'] }}</h2> | ||||
|         </div> | ||||
|         <div class="statistics-top__item"> | ||||
|           <span>今日新增返乡</span> | ||||
|           <h2 style="color: #22AA99;">{{ info['今日新增返乡'] }}</h2> | ||||
|         </div> | ||||
|         <div class="statistics-top__item"> | ||||
|           <span>风险人数</span> | ||||
|           <h2 style="color: #F8B425">{{ info['风险人数'] }}</h2> | ||||
|         </div> | ||||
|         <div class="statistics-top__item"> | ||||
|           <span>今日风险人数</span> | ||||
|           <h2 style="color: red">{{ info['今日风险人数'] }}</h2> | ||||
|         </div> | ||||
|         <div class="statistics-top__item"> | ||||
|           <span>风险处理</span> | ||||
|           <h2 style="color: red">{{ info['风险处理'] }}</h2> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="content"> | ||||
|         <ai-search-bar bottomBorder> | ||||
|           <template #left> | ||||
|             <ai-select | ||||
|               v-model="search.riskStatus" | ||||
|               clearable | ||||
|               placeholder="请选择风险状态" | ||||
|               :selectList="dict.getDict('EP_riskStatus')" | ||||
|               @change="search.current = 1, getList()"> | ||||
|             </ai-select> | ||||
|             <ai-select | ||||
|               v-model="search.source" | ||||
|               clearable | ||||
|               placeholder="请选择数据来源" | ||||
|               :selectList="dict.getDict('EP_source')" | ||||
|               @change="search.current = 1, getList()"> | ||||
|             </ai-select> | ||||
|             <el-date-picker | ||||
|               v-model="search.queryBeginTime" | ||||
|               type="date" | ||||
|               size="small" | ||||
|               value-format="yyyy-MM-dd" | ||||
|               placeholder="选择开始日期" | ||||
|               @change="search.current = 1, getList()"> | ||||
|             </el-date-picker> | ||||
|             <el-date-picker | ||||
|               v-model="search.queryEndTime" | ||||
|               type="date" | ||||
|               size="small" | ||||
|               value-format="yyyy-MM-dd" | ||||
|               placeholder="选择结束日期" | ||||
|               @change="search.current = 1, getList()"> | ||||
|             </el-date-picker> | ||||
|             <ai-download :instance="instance" url="/app/appepidemicpreventionregisterinfo/export" :params="search" fileName="返乡报备" :disabled="tableData.length == 0"> | ||||
|               <el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button> | ||||
|             </ai-download> | ||||
|       <ai-search-bar bottomBorder> | ||||
|         <template #left> | ||||
|           <ai-select | ||||
|             v-model="search.riskStatus" | ||||
|             clearable | ||||
|             placeholder="请选择风险状态" | ||||
|             :selectList="dict.getDict('EP_riskStatus')" | ||||
|             @change="search.current = 1, getList()"> | ||||
|           </ai-select> | ||||
|           <ai-select | ||||
|             v-model="search.source" | ||||
|             clearable | ||||
|             placeholder="请选择数据来源" | ||||
|             :selectList="dict.getDict('EP_source')" | ||||
|             @change="search.current = 1, getList()"> | ||||
|           </ai-select> | ||||
|           <el-date-picker | ||||
|             v-model="search.queryBeginTime" | ||||
|             type="date" | ||||
|             size="small" | ||||
|             value-format="yyyy-MM-dd" | ||||
|             placeholder="选择开始日期" | ||||
|             @change="search.current = 1, getList()"> | ||||
|           </el-date-picker> | ||||
|           <el-date-picker | ||||
|             v-model="search.queryEndTime" | ||||
|             type="date" | ||||
|             size="small" | ||||
|             value-format="yyyy-MM-dd" | ||||
|             placeholder="选择结束日期" | ||||
|             @change="search.current = 1, getList()"> | ||||
|           </el-date-picker> | ||||
|           <ai-download :instance="instance" url="/app/appepidemicpreventionregisterinfo/export" :params="search" fileName="返乡报备" :disabled="tableData.length == 0"> | ||||
|             <el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button> | ||||
|           </ai-download> | ||||
|         </template> | ||||
|         <template #right> | ||||
|           <el-input | ||||
|             v-model="search.name" | ||||
|             size="small" | ||||
|             placeholder="请输入姓名、手机号" | ||||
|             clearable | ||||
|             v-throttle="() => {search.current = 1, getList()}" | ||||
|             @clear="search.current = 1, search.name = '', getList()" | ||||
|             suffix-icon="iconfont iconSearch"> | ||||
|           </el-input> | ||||
|         </template> | ||||
|       </ai-search-bar> | ||||
|       <ai-table | ||||
|         :tableData="tableData" | ||||
|         :col-configs="colConfigs" | ||||
|         :total="total" | ||||
|         v-loading="loading" | ||||
|         style="margin-top: 16px;" | ||||
|         :current.sync="search.current" | ||||
|         :size.sync="search.size" | ||||
|         @getList="getList"> | ||||
|         <el-table-column slot="options" width="140px" fixed="right" label="操作" align="center"> | ||||
|           <template slot-scope="{ row }"> | ||||
|             <div class="table-options"> | ||||
|               <el-button type="text" @click="toDetail(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="remove(row.id)">删除</el-button> | ||||
|             </div> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input | ||||
|               v-model="search.name" | ||||
|               size="small" | ||||
|               placeholder="请输入姓名、手机号" | ||||
|               clearable | ||||
|               v-throttle="() => {search.current = 1, getList()}" | ||||
|               @clear="search.current = 1, search.name = '', getList()" | ||||
|               suffix-icon="iconfont iconSearch"> | ||||
|             </el-input> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table | ||||
|           :tableData="tableData" | ||||
|           :col-configs="colConfigs" | ||||
|           :total="total" | ||||
|           v-loading="loading" | ||||
|           style="margin-top: 16px;" | ||||
|           :current.sync="search.current" | ||||
|           :size.sync="search.size" | ||||
|           @getList="getList"> | ||||
|           <el-table-column slot="options" width="140px" fixed="right" label="操作" align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <div class="table-options"> | ||||
|                 <el-button type="text" @click="toDetail(row.id)">详情</el-button> | ||||
|                 <el-button type="text" @click="remove(row.id)">删除</el-button> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
|       </div> | ||||
|         </el-table-column> | ||||
|       </ai-table> | ||||
|     </template> | ||||
|   </ai-list> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   import { mapState } from 'vuex' | ||||
|   export default { | ||||
|     name: 'List', | ||||
|  | ||||
| @@ -156,18 +131,12 @@ | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     computed: { | ||||
|       ...mapState(['user']) | ||||
|     }, | ||||
|  | ||||
|     created () { | ||||
|       this.disabledLevel = this.user.info.areaList.length - 1 | ||||
|       this.loading = true | ||||
|  | ||||
|       this.instance.post(`/app/appdvcpconfig/getCorpArea`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.search.arriveAreaId = res.data | ||||
|           this.getTotalInfo() | ||||
|           this.dict.load(['EP_riskLevel', 'EP_handleType', 'modeType', 'EP_riskStatus', 'EP_source']).then(() => { | ||||
|             this.getList() | ||||
|           }) | ||||
| @@ -211,7 +180,6 @@ | ||||
|  | ||||
|         this.$nextTick(() => { | ||||
|           this.getList() | ||||
|           this.getTotalInfo() | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
| @@ -225,71 +193,10 @@ | ||||
|             } | ||||
|           }) | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|  | ||||
|       getTotalInfo () { | ||||
|         this.instance.post(`/app/appepidemicpreventionregisterinfo/listStatistics`, null, { | ||||
|           params: { | ||||
|             areaId: this.search.arriveAreaId, | ||||
|             infoType: 1 | ||||
|           } | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.info = res.data | ||||
|           } | ||||
|         }) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
|   .list { | ||||
|     ::v-deep .ai-list__content { | ||||
|       .ai-list__content--right-wrapper { | ||||
|         background: transparent!important; | ||||
|         box-shadow: none!important; | ||||
|         margin: 0!important; | ||||
|         padding: 0 0 0!important; | ||||
|       } | ||||
|     } | ||||
|     .statistics-top { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|       margin-bottom: 20px; | ||||
|  | ||||
|       & > div { | ||||
|         flex: 1; | ||||
|         height: 96px; | ||||
|         line-height: 1; | ||||
|         margin-right: 20px; | ||||
|         padding: 16px 24px; | ||||
|         background: #FFFFFF; | ||||
|         box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|         border-radius: 4px; | ||||
|  | ||||
|         &:last-child { | ||||
|           margin-right: 0; | ||||
|         } | ||||
|  | ||||
|         h3 { | ||||
|           font-size: 24px; | ||||
|         } | ||||
|  | ||||
|         span { | ||||
|           display: block; | ||||
|           margin-bottom: 16px; | ||||
|           color: #888888; | ||||
|           font-size: 16px; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .content { | ||||
|       padding: 16px; | ||||
|       background: #FFFFFF; | ||||
|       box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|     } | ||||
|   } | ||||
| </style> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user