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">
|
:isMultiple="true" dialogTitle="选择" @selectPerson="selectPerson" class="aipersonselect">
|
||||||
<template name="option" v-slot:option="{ item }">
|
<template name="option" v-slot:option="{ item }">
|
||||||
<span class="iconfont iconProlife">{{ item.name }}</span>
|
<span class="iconfont iconProlife">{{ item.name }}</span>
|
||||||
<!-- <ai-id mode="show" :show-eyes="false" :value="item.idNumber"/> -->
|
|
||||||
<span>{{ item.phone }}</span>
|
<span>{{ item.phone }}</span>
|
||||||
|
<!-- <span>{{ item}}</span> -->
|
||||||
</template>
|
</template>
|
||||||
</ai-person-select>
|
</ai-person-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
@@ -41,6 +41,13 @@
|
|||||||
</ai-uploader>
|
</ai-uploader>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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>
|
</ai-table>
|
||||||
</template>
|
</template>
|
||||||
</ai-card>
|
</ai-card>
|
||||||
@@ -56,6 +63,8 @@
|
|||||||
<ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item>
|
<ai-info-item label="身份证号" :value="info.idNumber"></ai-info-item>
|
||||||
<ai-info-item label="所属地区" :value="info.areaName"></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="详细地址" 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>
|
</ai-wrapper>
|
||||||
</template>
|
</template>
|
||||||
</ai-card>
|
</ai-card>
|
||||||
@@ -72,6 +81,52 @@
|
|||||||
</template>
|
</template>
|
||||||
</ai-card>
|
</ai-card>
|
||||||
</div>
|
</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>
|
</template>
|
||||||
</ai-detail>
|
</ai-detail>
|
||||||
</template>
|
</template>
|
||||||
@@ -92,6 +147,8 @@
|
|||||||
isShow: false,
|
isShow: false,
|
||||||
currIndex: 0,
|
currIndex: 0,
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
|
riskDisposalInfo: {},
|
||||||
|
reportInfo: {},
|
||||||
tableData: [],
|
tableData: [],
|
||||||
colConfigs1: [
|
colConfigs1: [
|
||||||
{prop: 'createTime', label: '上报日期', align: 'center' },
|
{prop: 'createTime', label: '上报日期', align: 'center' },
|
||||||
@@ -124,7 +181,9 @@
|
|||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
if (this.params && this.params.id) {
|
if (this.params && this.params.id) {
|
||||||
this.id = this.params.id
|
this.id = this.params.id
|
||||||
|
this.dict.load(['EP_vaccinationCount', 'EP_jkmType', 'epidemicTouchInFourteen', 'EP_healthType']).then(() => {
|
||||||
this.getInfo(this.params.id)
|
this.getInfo(this.params.id)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -133,6 +192,12 @@
|
|||||||
this.instance.post(`/app/appepidemicpreventionhealthreportinfo/userDetailById?id=${id}`).then(res => {
|
this.instance.post(`/app/appepidemicpreventionhealthreportinfo/userDetailById?id=${id}`).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.info = res.data
|
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
|
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 () {
|
cancel () {
|
||||||
this.$emit('change', {
|
this.$emit('change', {
|
||||||
type: 'List',
|
type: 'List',
|
||||||
|
|||||||
@@ -162,8 +162,6 @@
|
|||||||
this.instance.post(`/app/appepidemicpreventionregisterinfo/queryDetailById?id=${id}`).then(res => {
|
this.instance.post(`/app/appepidemicpreventionregisterinfo/queryDetailById?id=${id}`).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.info = res.data
|
this.info = res.data
|
||||||
this.info.checkPhoto = res.data.checkPhoto ? JSON.parse(res.data.checkPhoto) : []
|
|
||||||
|
|
||||||
this.info.travelTypeNames = res.data.travelType.split(',').map(v => {
|
this.info.travelTypeNames = res.data.travelType.split(',').map(v => {
|
||||||
return this.dict.getLabel('EP_travelType', v)
|
return this.dict.getLabel('EP_travelType', v)
|
||||||
}).join(',')
|
}).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