Merge branch 'build' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into build
This commit is contained in:
@@ -12,31 +12,34 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #content>
|
<template #content>
|
||||||
<div class="detail-content__wrapper">
|
<div class="detail-content__wrapper">
|
||||||
<ai-card class="detail-content__wrapper--left" title="基础信息">
|
<div class="detail-content__wrapper--left">
|
||||||
<template #content>
|
<ai-card title="基础信息">
|
||||||
<ai-wrapper>
|
<template #content>
|
||||||
<ai-info-item label="上报人员" :value="detail.name"></ai-info-item>
|
<ai-wrapper>
|
||||||
<ai-info-item label="当前状态" :value="dict.getLabel('clapEventStatus', detail.eventStatus)"></ai-info-item>
|
<ai-info-item label="上报人员" :value="detail.name"></ai-info-item>
|
||||||
<ai-info-item label="联系方式">{{ detail.phone }}</ai-info-item>
|
<ai-info-item label="当前状态" :value="dict.getLabel('clapEventStatus', detail.eventStatus)"></ai-info-item>
|
||||||
<ai-info-item label="上报时间">{{ detail.createTime }}</ai-info-item>
|
<ai-info-item label="联系方式">{{ detail.phone }}</ai-info-item>
|
||||||
<ai-info-item label="事件类型">{{ detail.groupName }}</ai-info-item>
|
<ai-info-item label="上报时间">{{ detail.createTime }}</ai-info-item>
|
||||||
<ai-info-item label="事件描述" isLine>{{ detail.content }}</ai-info-item>
|
<ai-info-item label="事件类型">{{ detail.groupName }}</ai-info-item>
|
||||||
<ai-info-item label="现场照片" isLine>
|
<ai-info-item label="事件描述" isLine>{{ detail.content }}</ai-info-item>
|
||||||
<ai-uploader :instance="instance" disabled v-model="detail.files"></ai-uploader>
|
<ai-info-item label="现场照片" isLine>
|
||||||
</ai-info-item>
|
<ai-uploader :instance="instance" disabled v-model="detail.files"></ai-uploader>
|
||||||
<ai-info-item label="所属网格">{{ detail.girdName }}</ai-info-item>
|
</ai-info-item>
|
||||||
<ai-info-item label="事件位置" isLine>
|
<ai-info-item label="所属网格">{{ detail.girdName }}</ai-info-item>
|
||||||
<div id="map" style="width: 500px; height: 280px;"></div>
|
<ai-info-item label="事件位置" isLine>
|
||||||
</ai-info-item>
|
<div id="map" style="width: 500px; height: 280px;"></div>
|
||||||
</ai-wrapper>
|
</ai-info-item>
|
||||||
</template>
|
</ai-wrapper>
|
||||||
</ai-card>
|
</template>
|
||||||
|
</ai-card>
|
||||||
|
<ai-evaluation :bid="form.id" :info.sync="evaluation"/>
|
||||||
|
</div>
|
||||||
<div class="rightZone">
|
<div class="rightZone">
|
||||||
<ai-card title="办理进度">
|
<ai-card title="办理进度">
|
||||||
<template #content>
|
<template #content>
|
||||||
<el-steps direction="vertical" :active="1">
|
<el-steps direction="vertical" :active="1">
|
||||||
<el-step
|
<el-step
|
||||||
v-for="(item, i) in processList"
|
v-for="(item, i) in process"
|
||||||
:key="i"
|
:key="i"
|
||||||
:title="item.systemExplain"
|
:title="item.systemExplain"
|
||||||
:description="item.doTime">
|
:description="item.doTime">
|
||||||
@@ -190,12 +193,18 @@ export default {
|
|||||||
groupName: '',
|
groupName: '',
|
||||||
content: [],
|
content: [],
|
||||||
eventStatus: '2'
|
eventStatus: '2'
|
||||||
}
|
},
|
||||||
|
evaluation: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['user'])
|
...mapState(['user']),
|
||||||
|
process: v => [v.processList, v.evaluation.id ? {
|
||||||
|
systemExplain: `${v.evaluation.createUserName}完成评价 (${v.evaluation.score}星评价)`,
|
||||||
|
doTime: v.evaluation.createTime,
|
||||||
|
doExplain: v.evaluation.rateText
|
||||||
|
} : null].flat().filter(Boolean)
|
||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
@@ -501,6 +510,7 @@ export default {
|
|||||||
.detail-content__wrapper {
|
.detail-content__wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
.detail-content__wrapper--left {
|
.detail-content__wrapper--left {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
@@ -86,28 +86,31 @@
|
|||||||
</ai-wrapper>
|
</ai-wrapper>
|
||||||
</template>
|
</template>
|
||||||
</ai-card>
|
</ai-card>
|
||||||
<ai-card title="处理意见">
|
<ai-card title="卡口处置意见">
|
||||||
<template #content>
|
<template #content>
|
||||||
<ai-wrapper
|
<ai-wrapper
|
||||||
style="margin-bottom: 20px;"
|
style="margin-bottom: 20px;"
|
||||||
v-for="item in info.riskDisposalList"
|
v-for="item in info.riskDisposalList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
label-width="120px">
|
label-width="120px">
|
||||||
<ai-info-item label="处理人员" :value="info.createUserName"></ai-info-item>
|
<ai-info-item label="处置人员" :value="item.createUserName"></ai-info-item>
|
||||||
<ai-info-item label="联系电话" :value="info.createUserPhone"></ai-info-item>
|
<ai-info-item label="联系电话" :value="item.createUserPhone"></ai-info-item>
|
||||||
<ai-info-item label="处理意见" :value="dict.getLabel('EP_handleType', item.handleType)"></ai-info-item>
|
<ai-info-item label="处置意见" :value="dict.getLabel('EP_handleType', item.handleType)"></ai-info-item>
|
||||||
<ai-info-item v-if="item.handleType === '2'" label="集中隔离地" :value="dict.getLabel('EP_quarantineAddress', item.quarantineAddress)"></ai-info-item>
|
<ai-info-item v-if="item.handleType === '2'" label="集中隔离地" :value="dict.getLabel('EP_quarantineAddress', item.quarantineAddress)"></ai-info-item>
|
||||||
<ai-info-item v-if="item.handleType === '6'" label="移交对象" :value="dict.getLabel('EP_handoverObject', item.handoverObject)"></ai-info-item>
|
<ai-info-item label="居家状态" v-if="item.handleType === '3' && item.homeStatus" :value="dict.getLabel('EP_homeStatus', item.homeStatus)"></ai-info-item>
|
||||||
<ai-info-item v-if="item.handleType === '6'" label="移交方式" :value="dict.getLabel('EP_handoverMethod', item.handoverMethod)"></ai-info-item>
|
|
||||||
<ai-info-item v-if="item.handleType === '6'" label="交接人员姓名" :value="info.handoverPersonName"></ai-info-item>
|
|
||||||
<ai-info-item v-if="item.handleType === '6'" label="手机号" :value="info.handoverPersonPhone"></ai-info-item>
|
|
||||||
<ai-info-item
|
<ai-info-item
|
||||||
v-if="['2'].includes(item.handleType)"
|
v-if="['2', '3'].includes(item.handleType) && item.homeStatus"
|
||||||
label="隔离时间"
|
label="隔离时间"
|
||||||
:value="item.quarantineBeginTime ? item.quarantineBeginTime + '至' + item.quarantineEndTime : ''">
|
:value="item.quarantineBeginTime ? item.quarantineBeginTime + '至' + item.quarantineEndTime : ''">
|
||||||
</ai-info-item>
|
</ai-info-item>
|
||||||
<ai-info-item v-if="['2'].includes(item.handleType)" label="隔离策略" :value="dict.getLabel('EP_quarantineStrategy', item.quarantineStrategy)"></ai-info-item>
|
<ai-info-item label="隔离策略" v-if="['2', '3'].includes(item.handleType) && item.homeStatus" :value="dict.getLabel('EP_quarantineStrategy', item.quarantineStrategy)"></ai-info-item>
|
||||||
<ai-info-item label="图片" isLine v-if="['3', '6'].includes(item.handleType)">
|
<ai-info-item label="管控方式" isLine v-if="['3'].includes(item.handleType) && item.homeStatus" :value="dict.getLabel('EP_controlMethod', item.controlMethod)"></ai-info-item>
|
||||||
|
<ai-info-item v-if="['2', '3', '6'].includes(item.handleType) && item.handoverPersonName" label="移交对象" :value="dict.getLabel('EP_handoverObject', item.handoverObject)"></ai-info-item>
|
||||||
|
<ai-info-item v-if="['2', '3', '6'].includes(item.handleType) && item.handoverPersonName" label="移交方式" :value="dict.getLabel('EP_handoverMethod', item.handoverMethod)"></ai-info-item>
|
||||||
|
<ai-info-item v-if="['2', '3', '6'].includes(item.handleType) && item.handoverPersonName" label="交接人员姓名" :value="item.handoverPersonName"></ai-info-item>
|
||||||
|
<ai-info-item v-if="['2', '3', '6'].includes(item.handleType) && item.handoverPersonName" label="手机号" :value="item.handoverPersonPhone"></ai-info-item>
|
||||||
|
|
||||||
|
<ai-info-item label="交接图片" isLine v-if="['3', '2', '6'].includes(item.handleType) && item.handoverPersonName">
|
||||||
<ai-uploader
|
<ai-uploader
|
||||||
:instance="instance"
|
:instance="instance"
|
||||||
:value="item.fileList"
|
:value="item.fileList"
|
||||||
@@ -119,6 +122,31 @@
|
|||||||
<ai-empty style="margin-bottom: 60px;" v-if="info.riskDisposalList && !info.riskDisposalList.length"></ai-empty>
|
<ai-empty style="margin-bottom: 60px;" v-if="info.riskDisposalList && !info.riskDisposalList.length"></ai-empty>
|
||||||
</template>
|
</template>
|
||||||
</ai-card>
|
</ai-card>
|
||||||
|
<ai-card title="社区处置意见">
|
||||||
|
<template #content>
|
||||||
|
<ai-wrapper
|
||||||
|
style="margin-bottom: 20px;"
|
||||||
|
v-if="communityInfo.communityHandleType"
|
||||||
|
label-width="120px">
|
||||||
|
<ai-info-item label="处置人员" :value="communityInfo.createUserName"></ai-info-item>
|
||||||
|
<ai-info-item label="联系电话" :value="communityInfo.createUserPhone"></ai-info-item>
|
||||||
|
<ai-info-item label="处置意见" :value="dict.getLabel('EP_handleType', communityInfo.handleType)"></ai-info-item>
|
||||||
|
<ai-info-item label="居家状态" :value="dict.getLabel('EP_homeStatus', communityInfo.homeStatus)"></ai-info-item>
|
||||||
|
<ai-info-item label="隔离时间" :value="communityInfo.quarantineBeginTime ? communityInfo.quarantineBeginTime + '至' + communityInfo.quarantineEndTime : ''"></ai-info-item>
|
||||||
|
<ai-info-item label="隔离策略" :value="dict.getLabel('EP_quarantineStrategy', communityInfo.quarantineStrategy)"></ai-info-item>
|
||||||
|
<ai-info-item label="管控方式" :value="dict.getLabel('EP_controlMethod', communityInfo.controlMethod)"></ai-info-item>
|
||||||
|
<ai-info-item label="图片" isLine>
|
||||||
|
<ai-uploader
|
||||||
|
:instance="instance"
|
||||||
|
:value="communityInfo.fileList"
|
||||||
|
disabled
|
||||||
|
:limit="9">
|
||||||
|
</ai-uploader>
|
||||||
|
</ai-info-item>
|
||||||
|
</ai-wrapper>
|
||||||
|
<ai-empty style="margin-bottom: 60px;" v-if="!communityInfo.communityHandleType"></ai-empty>
|
||||||
|
</template>
|
||||||
|
</ai-card>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</ai-detail>
|
</ai-detail>
|
||||||
@@ -141,6 +169,7 @@
|
|||||||
currIndex: 0,
|
currIndex: 0,
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
communityInfo: {},
|
||||||
colConfigs: [
|
colConfigs: [
|
||||||
{prop: 'name', label: '姓名', align: 'center' },
|
{prop: 'name', label: '姓名', align: 'center' },
|
||||||
{prop: 'phone', label: '手机号', align: 'center'}
|
{prop: 'phone', label: '手机号', align: 'center'}
|
||||||
@@ -153,8 +182,7 @@
|
|||||||
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_riskLevel', 'EP_handleType', 'EP_registerPersonType', 'EP_highRiskIndustries', 'EP_travelType', 'yesOrNo', 'EP_handoverObject',
|
this.$dict.load(['EP_handleType', 'EP_registerPersonType', 'EP_highRiskIndustries', 'EP_travelType', 'yesOrNo', 'EP_handoverObject', 'EP_quarantineAddress', 'EP_homeStatus', 'EP_quarantineStrategy', 'EP_controlMethod', 'EP_handoverMethod', 'EP_abnormalType']).then(() => {
|
||||||
'EP_handleType', 'EP_quarantineAddress', 'EP_homeStatus', 'EP_quarantineStrategy', 'EP_controlMethod', 'EP_handoverMethod', 'EP_abnormalType']).then(() => {
|
|
||||||
this.getInfo(this.params.id)
|
this.getInfo(this.params.id)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -165,8 +193,9 @@
|
|||||||
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.communityInfo = res.data.riskDisposalList.filter(v => !!v.communityHandleType).length ? res.data.riskDisposalList.filter(v => !!v.communityHandleType)[0] : {}
|
||||||
|
this.info.riskDisposalList = res.data.riskDisposalList.filter(v => !v.communityHandleType)
|
||||||
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(',')
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
placeholder="选择结束日期"
|
placeholder="选择结束日期"
|
||||||
@change="search.current = 1, getList()">
|
@change="search.current = 1, getList()">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
<ai-download :instance="instance" url="/app/appepidemicpreventionregisterinfo/export" :params="search" fileName="卡口登记" :disabled="tableData.length == 0">
|
<ai-download :instance="instance" url="/app/appepidemicpreventionregisterinfo/export" :params="params" fileName="卡口登记" :disabled="tableData.length == 0">
|
||||||
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
||||||
</ai-download>
|
</ai-download>
|
||||||
</template>
|
</template>
|
||||||
@@ -139,7 +139,16 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['user'])
|
...mapState(['user']),
|
||||||
|
|
||||||
|
params () {
|
||||||
|
return {
|
||||||
|
...this.search,
|
||||||
|
arriveAreaId: this.search.arriveAreaId,
|
||||||
|
queryBeginTime: this.search.queryBeginTime ? this.search.queryBeginTime + ' 00:00:00' : '',
|
||||||
|
queryEndTime: this.search.queryEndTime ? this.search.queryEndTime + ' 23:59:59' : ''
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
created () {
|
created () {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<ai-import :instance="instance" :dict="dict" type="appepidemicpreventiondatamatch" name="数据比对" @success="getList()">
|
<ai-import :instance="instance" :dict="dict" type="appepidemicpreventiondatamatch" name="数据比对" @success="getList()">
|
||||||
<el-button icon="iconfont iconImport" type="primary">导入</el-button>
|
<el-button icon="iconfont iconImport" type="primary">导入</el-button>
|
||||||
</ai-import>
|
</ai-import>
|
||||||
<ai-download :instance="instance" url="/app/appepidemicpreventiondatamatch/export" :params="search" fileName="数据比对" :disabled="tableData.length == 0">
|
<ai-download :instance="instance" url="/app/appepidemicpreventiondatamatch/export" :params="params" fileName="数据比对" :disabled="tableData.length == 0">
|
||||||
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
|
||||||
</ai-download>
|
</ai-download>
|
||||||
</template>
|
</template>
|
||||||
@@ -50,6 +50,7 @@
|
|||||||
<el-table-column slot="nucleicAcidSamplingProve" label="核酸结果" align="center">
|
<el-table-column slot="nucleicAcidSamplingProve" label="核酸结果" align="center">
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<ai-uploader
|
<ai-uploader
|
||||||
|
v-if="row.nucleicAcidSamplingProve"
|
||||||
:instance="instance"
|
:instance="instance"
|
||||||
:value="[{url: row.nucleicAcidSamplingProve}]"
|
:value="[{url: row.nucleicAcidSamplingProve}]"
|
||||||
disabled
|
disabled
|
||||||
@@ -130,6 +131,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
params () {
|
||||||
|
return {
|
||||||
|
...this.search,
|
||||||
|
arriveAreaId: this.search.arriveAreaId,
|
||||||
|
queryBeginTime: this.search.queryBeginTime ? this.search.queryBeginTime + ' 00:00:00' : '',
|
||||||
|
queryEndTime: this.search.queryEndTime ? this.search.queryEndTime + ' 23:59:59' : ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
created () {
|
created () {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@
|
|||||||
<ai-info-item label="单位名称" :value="info.organizationName"></ai-info-item>
|
<ai-info-item label="单位名称" :value="info.organizationName"></ai-info-item>
|
||||||
<ai-info-item label="选举方式">
|
<ai-info-item label="选举方式">
|
||||||
{{ info.electionMethod==0? '等额':'差额'}}
|
{{ info.electionMethod==0? '等额':'差额'}}
|
||||||
|
<el-tooltip class="item" effect="dark" content="差额选举:候选人数多于应选人数的选举方式;
|
||||||
|
等额选举:候选人数与应选人数相等的选举方式。" placement="top">
|
||||||
|
<i class="el-icon-info" style="margin-right: 8px"></i>
|
||||||
|
</el-tooltip>
|
||||||
</ai-info-item>
|
</ai-info-item>
|
||||||
<ai-info-item label="应选人数" :value="info.candidatesNumber"></ai-info-item>
|
<ai-info-item label="应选人数" :value="info.candidatesNumber"></ai-info-item>
|
||||||
<ai-info-item label="投票日期" :value="info.votingDate"></ai-info-item>
|
<ai-info-item label="投票日期" :value="info.votingDate"></ai-info-item>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import addChange from "./components/addChange.vue";
|
import addChange from "./components/addChange.vue";
|
||||||
import List from "./components/List.vue";
|
import List from "./components/List.vue";
|
||||||
|
import organizationSetting from "./components/organizationSetting.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AppOrganizationChange",
|
name: "AppOrganizationChange",
|
||||||
@@ -17,7 +18,11 @@ export default {
|
|||||||
instance: Function,
|
instance: Function,
|
||||||
dict: Object,
|
dict: Object,
|
||||||
},
|
},
|
||||||
components: {List, addChange},
|
components: {
|
||||||
|
List,
|
||||||
|
addChange,
|
||||||
|
organizationSetting,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
component: "List",
|
component: "List",
|
||||||
@@ -33,6 +38,11 @@ export default {
|
|||||||
this.params = data.params;
|
this.params = data.params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.type === "organizationSetting") {
|
||||||
|
this.component = "organizationSetting";
|
||||||
|
this.params = data.params;
|
||||||
|
}
|
||||||
|
|
||||||
if (data.type === "addChange") {
|
if (data.type === "addChange") {
|
||||||
this.component = "addChange";
|
this.component = "addChange";
|
||||||
this.params = data.params;
|
this.params = data.params;
|
||||||
|
|||||||
@@ -3,28 +3,27 @@
|
|||||||
<template slot="title">
|
<template slot="title">
|
||||||
<ai-title title="组织换届" isShowBottomBorder>
|
<ai-title title="组织换届" isShowBottomBorder>
|
||||||
<template slot="rightBtn">
|
<template slot="rightBtn">
|
||||||
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >换届设置</el-button>
|
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toSetting('')" >换届设置</el-button>
|
||||||
</template>
|
</template>
|
||||||
</ai-title>
|
</ai-title>
|
||||||
</template>
|
</template>
|
||||||
<template #left>
|
<template #left>
|
||||||
<ai-tree-menu title="组织目录" searchPlaceholder="请输入组织名称" @search="onSearch">
|
<ai-tree-menu title="组织目录" searchPlaceholder="请输入组织名称" @search="onSearch">
|
||||||
<ai-party-tree
|
<ai-party-tree
|
||||||
:filter-node-method="filterNode"
|
:filter-node-method="filterNode"
|
||||||
ref="tree"
|
ref="tree"
|
||||||
:instance="instance"
|
:instance="instance"
|
||||||
:root="user.info.organizationId"
|
:root="user.info.organizationId"
|
||||||
:current-node-key="selected.id"
|
:current-node-key="selected.id"
|
||||||
@select="onTreeChange"/>
|
@select="onTreeChange"/>
|
||||||
</ai-tree-menu>
|
</ai-tree-menu>
|
||||||
</template>
|
</template>
|
||||||
<template slot="content" class="content">
|
<template slot="content" class="content">
|
||||||
<el-tabs v-model="currIndex" >
|
<el-tabs v-model="currIndex" >
|
||||||
<el-tab-pane v-for="(tab,i) in tabs" :key="i" :label="tab.label">
|
<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"
|
<component :ref="tab.name" v-if="currIndex == String(i)" :is="tab.comp" lazy :instance="instance" :selected="selected"
|
||||||
:dict="dict" :permissions="permissions" v-on="$listeners"/>
|
:dict="dict" :permissions="permissions" v-on="$listeners"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div class="add_btn">
|
<div class="add_btn">
|
||||||
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >新增换届</el-button>
|
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >新增换届</el-button>
|
||||||
@@ -34,7 +33,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {mapState} from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
import moment from './moment.vue'
|
import moment from './moment.vue'
|
||||||
import history from './history.vue'
|
import history from './history.vue'
|
||||||
|
|
||||||
@@ -48,34 +47,11 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
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: [
|
tabs: [
|
||||||
{label: '当前届次', name: 'moment', comp: moment, permission: ''},
|
{label: '当前届次', name: 'moment', comp: moment, permission: ''},
|
||||||
{label: '历史届次', name: 'history', comp: history, permission: ''}
|
{label: '历史届次', name: 'history', comp: history, permission: ''}
|
||||||
],
|
],
|
||||||
currIndex: '0'
|
currIndex: '0',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -88,78 +64,25 @@ export default {
|
|||||||
orgTree() {
|
orgTree() {
|
||||||
return this.$refs.tree?.$refs?.partyTree
|
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()
|
|
||||||
console.log(this.user);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
showNeighbourSetting(id) {
|
showNeighbourSetting(id) {
|
||||||
this.$router.push({query: {id}, hash: "#ns"})
|
this.$router.push({query: {id}, hash: "#ns"})
|
||||||
},
|
},
|
||||||
onTreeChange(e) {
|
onTreeChange(e) {
|
||||||
this.$emit("update:selected", e)
|
this.$emit("update:selected", e)
|
||||||
this.getList(e.id)
|
this.$refs[this.tabs[Number(this.currIndex)].name][0].getList(e.id)
|
||||||
},
|
},
|
||||||
|
|
||||||
onSearch(v) {
|
onSearch(v) {
|
||||||
this.orgTree.filter(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) {
|
filterNode(value, data) {
|
||||||
if (!value) return true
|
if (!value) return true
|
||||||
return data.name.indexOf(value) !== -1
|
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) {
|
toAdd(id) {
|
||||||
this.$emit('change', {
|
this.$emit('change', {
|
||||||
type: 'addChange',
|
type: 'addChange',
|
||||||
@@ -167,6 +90,14 @@ export default {
|
|||||||
id: id || ''
|
id: id || ''
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
toSetting(id) {
|
||||||
|
this.$emit('change', {
|
||||||
|
type: 'organizationSetting',
|
||||||
|
params: {
|
||||||
|
id: id || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,71 +1,80 @@
|
|||||||
<template>
|
<template>
|
||||||
<ai-list class="addChange">
|
<section class="addChange">
|
||||||
<template #title>
|
<ai-detail>
|
||||||
<ai-title title="基本信息" isShowBottomBorder isShowBack @onBackClick="cancel(false)" />
|
<ai-title slot="title" title="新增换届" isShowBottomBorder isShowBack @onBackClick="cancel(false)" />
|
||||||
</template>
|
<template #content>
|
||||||
<template #content>
|
<ai-card title="基本信息">
|
||||||
<div class="Form" style="padding: 0 200px;">
|
<template #content>
|
||||||
<el-form ref="form" :model="form" label-width="100px" label-position="right">
|
<div class="Form">
|
||||||
<ai-bar title="基本信息"></ai-bar>
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px" label-position="right">
|
||||||
<el-row type="flex">
|
<el-row type="flex">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="换届时间" prop="data" :rules="[{ required: true, message: '请选择换届时间', trigger: 'blur' }]">
|
<el-form-item label="换届时间" prop="changeTime">
|
||||||
<el-input size="small" :maxlength="30" placeholder="请输入大屏项目名称" v-model="form.name"></el-input>
|
<el-date-picker v-model="form.changeTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:338px">
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="届次" prop="noun" :rules="[{ required: true, message: '请输入届次', trigger: 'blur' }]">
|
<el-form-item label="届次" prop="sessionTime">
|
||||||
<el-input size="small" :maxlength="30" placeholder="请输入届次" v-model="form.name"></el-input>
|
<el-input size="small" :maxlength="30" placeholder="请输入届次" v-model="form.sessionTime"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
<ai-bar title="本届任职(必填)">
|
||||||
|
<template slot="right">
|
||||||
<ai-bar title="本届任职(必填)">
|
<el-button size="small" type="text" icon="iconfont iconAdd" @click="form.serveList.push({name:null,position:null,type:0})" >添加任职人员</el-button>
|
||||||
<template slot="right">
|
|
||||||
<el-button size="small" type="text" icon="iconfont iconAdd" @click="toEdit('')" >添加任职人员</el-button>
|
|
||||||
</template>
|
|
||||||
</ai-bar>
|
|
||||||
<ai-table
|
|
||||||
class="detail-table__table"
|
|
||||||
:tableData="tableDataJob"
|
|
||||||
:col-configs="colConfigsJob"
|
|
||||||
:total="job.total"
|
|
||||||
:current.sync="job.current"
|
|
||||||
:size.sync="job.size"
|
|
||||||
>
|
|
||||||
<!-- @getList="getJobList" -->
|
|
||||||
<el-table-column slot="options" label="操作" align="center">
|
|
||||||
<template slot-scope="{ row }">
|
|
||||||
<el-button type="text" @click="jobEdit(row.id)">编辑</el-button>
|
|
||||||
<el-button type="text" @click="jobDelete(row.id)">删除</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</ai-bar>
|
||||||
</ai-table>
|
<el-table :data="form.serveList" size="mini" border stripe>
|
||||||
|
<el-table-column label="职位" align="center">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-input class="tableInput" v-model="row.position" clearable placeholder="请输入职位"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="姓名" align="center">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-input class="tableInput" v-model="row.name" clearable placeholder="请输入姓名" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center">
|
||||||
|
<template slot-scope="{$index}">
|
||||||
|
<el-button type="text" @click="handleDelete($index, 'serveList')">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-form>
|
||||||
<ai-bar title="本届候选人">
|
<ai-bar title="本届候选人">
|
||||||
<template slot="right">
|
<template slot="right">
|
||||||
<el-button size="small" type="text" icon="iconfont iconAdd" @click="toEdit('')" >添加候选人</el-button>
|
<el-button size="small" type="text" icon="iconfont iconAdd" @click="form.candidateList.push({name:null,position:null,type: 1})" >添加候选人</el-button>
|
||||||
</template>
|
</template>
|
||||||
</ai-bar>
|
</ai-bar>
|
||||||
<ai-table
|
<el-table :data="form.candidateList" size="mini" border stripe>
|
||||||
class="detail-table__table"
|
<el-table-column label="职位" align="center">
|
||||||
:tableData="tableDataPerson"
|
<template slot-scope="{row}">
|
||||||
:col-configs="colConfigsPerson"
|
<el-input class="tableInput" v-model="row.position" clearable placeholder="请输入职位"/>
|
||||||
:total="person.total"
|
|
||||||
:current.sync="person.current"
|
|
||||||
:size.sync="person.size"
|
|
||||||
>
|
|
||||||
<!-- @getList="getJobList" -->
|
|
||||||
<el-table-column slot="options" label="操作" align="center">
|
|
||||||
<template slot-scope="{ row }">
|
|
||||||
<el-button type="text" @click="jobEdit(row.id)">编辑</el-button>
|
|
||||||
<el-button type="text" @click="jobDelete(row.id)">删除</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</ai-table>
|
<el-table-column label="候选人" align="center">
|
||||||
|
<template slot-scope="{row}">
|
||||||
|
<el-input class="tableInput" v-model="row.name" clearable placeholder="请输入姓名" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center">
|
||||||
|
<template slot-scope="{$index}">
|
||||||
|
<el-button type="text" @click="handleDelete($index, 'candidateList')">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</ai-list>
|
</ai-card>
|
||||||
|
</template>
|
||||||
|
<template slot="footer" class="footer">
|
||||||
|
<el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button>
|
||||||
|
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
|
||||||
|
</template>
|
||||||
|
</ai-detail>
|
||||||
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -79,42 +88,16 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
|
addOrMakeup: true,
|
||||||
|
changeTime: '',
|
||||||
|
sessionTime: '',
|
||||||
|
serveList: [], // 任职人员列表
|
||||||
|
candidateList: [], // 候选人员列表
|
||||||
},
|
},
|
||||||
tableDataJob: [],
|
rules: {
|
||||||
tableDataPerson: [],
|
changeTime: [{ required: true, message: '请选择换届时间', trigger: 'blur' }],
|
||||||
totalJob: '',
|
sessionTime: [{ required: true, message: '请输入届次', trigger: 'blur' }],
|
||||||
job: {
|
|
||||||
total: 0,
|
|
||||||
current: 1,
|
|
||||||
size: 10,
|
|
||||||
},
|
},
|
||||||
person: {
|
|
||||||
total: 0,
|
|
||||||
current: 1,
|
|
||||||
size: 10,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
colConfigsJob() {
|
|
||||||
return [
|
|
||||||
{prop: 'content', label: '职位'},
|
|
||||||
{prop: 'content', label: '姓名'},
|
|
||||||
{slot: 'options'},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
colConfigsPerson() {
|
|
||||||
return [
|
|
||||||
{prop: 'content', label: '职位'},
|
|
||||||
{prop: 'content', label: '候选人'},
|
|
||||||
{slot: 'options'},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
formRules() {
|
|
||||||
return {
|
|
||||||
// corpId: [{required: true, message: "请输入CorpId"}],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -123,11 +106,36 @@ export default {
|
|||||||
type: 'List',
|
type: 'List',
|
||||||
isRefresh: !!isRefresh
|
isRefresh: !!isRefresh
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
handleDelete(i, type) {
|
||||||
|
this.$confirm("确定要删除该数据?").then(() => {
|
||||||
|
if(type == 'candidateList') {
|
||||||
|
this.form.candidateList.splice(i, 1)
|
||||||
|
} else if(type == 'serveList') {
|
||||||
|
this.form.serveList.splice(i, 1)
|
||||||
|
}
|
||||||
|
}).catch(() => 0)
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
this.$refs.form.validate((valid) => {
|
||||||
|
if(valid) {
|
||||||
|
this.instance.post(`/app/apporganizationgeneralelection/add`, {
|
||||||
|
...this.form
|
||||||
|
}).then(res=>{
|
||||||
|
if(res.code == 0) {
|
||||||
|
this.$message.success('提交成功')
|
||||||
|
this.cancel(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scope>
|
<style lang="scss" scope>
|
||||||
.addChange {}
|
.addChange {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -86,7 +86,7 @@ export default {
|
|||||||
instance: Function,
|
instance: Function,
|
||||||
permissions: Function,
|
permissions: Function,
|
||||||
dict: Object,
|
dict: Object,
|
||||||
selected: Object
|
selected: Object,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -128,6 +128,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getList(this.selected.id)
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
jobEdit() {},
|
jobEdit() {},
|
||||||
jobDelete() {},
|
jobDelete() {},
|
||||||
@@ -140,6 +143,13 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getList(id) {
|
||||||
|
this.instance.post(`/app/apporganizationgeneralelection/queryDetailByOrganizationId?organizationId=${id}`).then(res=>{
|
||||||
|
if(res?.data) {
|
||||||
|
console.log(res,'111');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
handleJobForm() {},
|
handleJobForm() {},
|
||||||
handleCandForm() {},
|
handleCandForm() {},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,219 @@
|
|||||||
|
<template>
|
||||||
|
<section class="organizationSetting">
|
||||||
|
<!-- <ai-detail class="add" v-if="id && !isEdit">
|
||||||
|
<template slot="title">
|
||||||
|
<ai-title title="换届选举详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title>
|
||||||
|
</template>
|
||||||
|
<template slot="content">
|
||||||
|
<ai-card title="基本信息">
|
||||||
|
<template #right>
|
||||||
|
<span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit = true">修改</span>
|
||||||
|
</template>
|
||||||
|
<template #content v-if="isEdit == false">
|
||||||
|
<ai-wrapper>
|
||||||
|
<ai-info-item label="标题" :value="info.title"></ai-info-item>
|
||||||
|
<ai-info-item label="投票说明" :value="info.votingInstructions"></ai-info-item>
|
||||||
|
<ai-info-item label="单位名称" :value="info.organizationName"></ai-info-item>
|
||||||
|
<ai-info-item label="选举方式">
|
||||||
|
{{ info.electionMethod==0? '等额':'差额'}}
|
||||||
|
<el-tooltip class="item" effect="dark" content="差额选举:候选人数多于应选人数的选举方式;
|
||||||
|
等额选举:候选人数与应选人数相等的选举方式。" placement="top">
|
||||||
|
<i class="el-icon-info" style="margin-right: 8px"></i>
|
||||||
|
</el-tooltip>
|
||||||
|
</ai-info-item>
|
||||||
|
<ai-info-item label="应选人数" :value="info.candidatesNumber"></ai-info-item>
|
||||||
|
<ai-info-item label="投票日期" :value="info.votingDate"></ai-info-item>
|
||||||
|
<ai-info-item label="候选人" isLine>
|
||||||
|
<span v-for="(item,index) in candidateUsersList" :key="index">
|
||||||
|
{{ item }}
|
||||||
|
<span v-if="index < candidateUsersList.length - 1">、</span>
|
||||||
|
</span>
|
||||||
|
</ai-info-item>
|
||||||
|
<ai-info-item label="投票人" isLine :value="info.voteUsers">
|
||||||
|
<span v-for="(item,index) in voteUsersList" :key="index">
|
||||||
|
{{ item }}
|
||||||
|
<span v-if="index < voteUsersList.length - 1">、</span>
|
||||||
|
</span>
|
||||||
|
</ai-info-item>
|
||||||
|
</ai-wrapper>
|
||||||
|
</template>
|
||||||
|
</ai-card>
|
||||||
|
</template>
|
||||||
|
</ai-detail> -->
|
||||||
|
<ai-detail>
|
||||||
|
<ai-title slot="title" title="换届设置" isShowBottomBorder isShowBack @onBackClick="cancel(true)"/>
|
||||||
|
<template slot="content">
|
||||||
|
<ai-card title="基本信息">
|
||||||
|
<template #content>
|
||||||
|
<div class="tips">
|
||||||
|
<i class="el-icon-warning"></i>
|
||||||
|
系统将在下次换届时间开始前,对“换届提醒人”进行提醒。提醒方式包括平台消息推送、短信提醒。
|
||||||
|
</div>
|
||||||
|
<div class="add-form">
|
||||||
|
<el-form ref="form" :model="form" :rules="formRules" size="small" label-width="150px">
|
||||||
|
<el-form-item label="单位名称">
|
||||||
|
<div>{{ user.info.organizationName }}</div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="成立时间">
|
||||||
|
<div>{{ createTime }}</div>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="换届类型" prop="type">
|
||||||
|
<el-radio v-model="form.type" label="0">三年换届</el-radio>
|
||||||
|
<el-radio v-model="form.type" label="1">五年换届</el-radio>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="单位名称" prop="organizationName">
|
||||||
|
<el-input size="small" disabled placeholder="请选择所属党组织" v-model="form.organizationName">
|
||||||
|
<template slot="append">
|
||||||
|
<ai-party :instance="instance" size="small" :value="form.organizationId" @origin="handlePartyOrgSelect"/>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="换届提醒人" prop="userList">
|
||||||
|
<ai-person-select :instance="instance" :customClicker="true" :chooseUserList="chooseUserList"
|
||||||
|
:url="`/app/appparty/list?partyOrgId=${form.organizationId}`" headerTitle="党员列表"
|
||||||
|
:isMultiple="true" dialogTitle="选择抄送人" @selectPerson="selectUser" class="aipersonselect">
|
||||||
|
<template name="option" v-slot:option="{ item }">
|
||||||
|
<span class="iconfont iconProlife">{{ item.name }}</span>
|
||||||
|
</template>
|
||||||
|
</ai-person-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</ai-card>
|
||||||
|
</template>
|
||||||
|
<template slot="footer" class="footer">
|
||||||
|
<el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button>
|
||||||
|
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
|
||||||
|
</template>
|
||||||
|
</ai-detail>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
export default {
|
||||||
|
name: "organizationSetting",
|
||||||
|
props: {
|
||||||
|
instance: Function,
|
||||||
|
dict: Object,
|
||||||
|
params: Object,
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
let validUser = (rule, value, callback) => {
|
||||||
|
if (!value.length) {
|
||||||
|
return callback(new Error('请选择换届提醒人'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
addOrMakeup: true,
|
||||||
|
organizationId: '',
|
||||||
|
organizationName: '',
|
||||||
|
type: '0',
|
||||||
|
userList: [],
|
||||||
|
},
|
||||||
|
formRules: {
|
||||||
|
type: [{required: true, message: "请选择选举方式", trigger: "blur"}],
|
||||||
|
organizationName: [{required: true, message: "请选择党组织", trigger: "blur"}],
|
||||||
|
userList: [{required: true,validator: validUser, trigger: "blur"}],
|
||||||
|
},
|
||||||
|
chooseUserList: [],
|
||||||
|
createTime: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['user'])
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDetail()
|
||||||
|
this.getOrganization()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cancel (isRefresh) {
|
||||||
|
this.$emit('change', {
|
||||||
|
type: 'List',
|
||||||
|
isRefresh: !!isRefresh
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 查询组织关系
|
||||||
|
getOrganization() {
|
||||||
|
this.instance.post(`/app/partyOrganization/queryPartyOrganizationServiceList`).then(res=>{
|
||||||
|
if(res?.data) {
|
||||||
|
let data = res.data.filter(item=>item.id == this.user.info.organizationId)
|
||||||
|
this.createTime = data[0].createTime
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDetail() {
|
||||||
|
this.instance.post(`/app/apporganizationchangeconfig/queryDetailByOrganizationId?organizationId=${this.user.info.organizationId}`).then((res) => {
|
||||||
|
if(res?.data) {
|
||||||
|
// this.chooseCandidateList = res.data.candidateUsers
|
||||||
|
// this.chooseVoteList = res.data.voteUsers
|
||||||
|
console.log(res);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectUser(v) {
|
||||||
|
this.form.userList = v
|
||||||
|
},
|
||||||
|
selectVote(e) {
|
||||||
|
this.form.voteUsers = e
|
||||||
|
},
|
||||||
|
handlePartyOrgSelect(v) {
|
||||||
|
if(v) {
|
||||||
|
this.form.organizationId = v[0]?.id
|
||||||
|
this.form.organizationName = v[0]?.name
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
confirm() {
|
||||||
|
// 换届设置
|
||||||
|
this.$refs.form.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.instance.post(`/app/apporganizationchangeconfig/update`,{
|
||||||
|
...this.form
|
||||||
|
}).then(res => {
|
||||||
|
if(res.code == 0) {
|
||||||
|
this.$message.success('提交成功')
|
||||||
|
this.cancel(true)
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scope>
|
||||||
|
.organizationSetting {
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
::v-deep .el-date-editor .el-input {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #f82;
|
||||||
|
background-color: #fff3e9;
|
||||||
|
color: #f82;
|
||||||
|
padding: 8px 16px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user