发展党员

This commit is contained in:
liuye
2022-10-17 16:43:05 +08:00
50 changed files with 1456 additions and 916 deletions

View File

@@ -93,6 +93,8 @@
v-for="item in info.riskDisposalList"
:key="item.id"
label-width="120px">
<ai-info-item label="处理人员" :value="info.createUserName"></ai-info-item>
<ai-info-item label="联系电话" :value="info.createUserPhone"></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 === '3'" label="居家状态" :value="dict.getLabel('EP_homeStatus', item.homeStatus)"></ai-info-item>

View File

@@ -12,8 +12,8 @@
<h2 style="color: #22AA99;">{{ info['今日登记'] }}</h2>
</div>
<div class="statistics-top__item">
<span>原路返回</span>
<h2 style="color: #F8B425">{{ info['原路返回'] }}</h2>
<span>居家监测</span>
<h2 style="color: #F8B425">{{ info['居家监测'] || 0 }}</h2>
</div>
<div class="statistics-top__item">
<span>居家隔离</span>

View File

@@ -73,12 +73,6 @@
this.component = 'List'
this.params = data.params
this.isShowDetail = false
this.$nextTick(() => {
if (data.isRefresh) {
this.$refs.component.getList()
}
})
}
}
}

View File

@@ -15,7 +15,9 @@
<!-- <ai-info-item label="对象类型" :value="dict.getLabel('EP_registerInfoType', info.infoType)"></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="info.areaName" isLine></ai-info-item>
<ai-info-item label="抵平时间" :value="info.createTime"></ai-info-item>
<ai-info-item label="所属地区" :value="info.areaName"></ai-info-item>
<ai-info-item label="目的地详址" :value="info.arriveAddress"></ai-info-item>
<ai-info-item label="居家状态" :value="dict.getLabel('EP_homeStatus2', info.homeStatus)"></ai-info-item>
<ai-info-item label="隔离时间" :value="info.quarantineBeginTime ? info.quarantineBeginTime.split(' ')[0] + ' - ' + info.quarantineEndTime.split(' ')[0] : ''"></ai-info-item>
<ai-info-item label="隔离策略 " :value="dict.getLabel('EP_quarantineStrategy', info.quarantineStrategy)"></ai-info-item>

View File

@@ -27,6 +27,9 @@
</ai-user-selecter>
</template>
<template #right>
<ai-download :instance="instance" url="/app/appepidemicpreventioncommunitymanagement/export" :params="search" fileName="社区管理" :disabled="tableData.length == 0">
<el-button icon="iconfont iconExported" :disabled="tableData.length == 0">导出</el-button>
</ai-download>
<el-input
v-model="search.name"
class="search-input"
@@ -88,12 +91,13 @@
{ prop: 'name', label: '管理对象', align: 'left' },
{ prop: 'phone', label: '手机号', align: 'center' },
{ prop: 'idNumber', label: '身份证号', align: 'center' },
{ prop: 'createTime', label: '排查时间', align: 'center' },
{ prop: 'createTime', label: '抵平时间', align: 'center' },
{ prop: 'areaName', label: '所属地区', align: 'center' },
{ prop: 'arriveAddress', label: '目的地详址', align: 'center' },
{ prop: 'status', label: '管理状态', align: 'center', formart: v => this.dict.getLabel('EP_CM_status', v) },
{ prop: 'controllerUserName', label: '管控人', align: 'center' },
{ prop: 'nucleicAcidSamplingCount', label: '核酸状态', align: 'center', formart: v => v > 0 ? `核酸采集${v}` : '待采' },
// { prop: 'infoType', label: '对象来源', align: 'center', formart: v => this.dict.getLabel('EP_registerInfoType', v) },
{ prop: 'controllerUserName', label: '管控人', align: 'center' }
],
tableData: []
}

View File

@@ -79,7 +79,7 @@
<ai-empty v-if="false" style="height: 148px;"></ai-empty>
</template>
</ai-card>
<ai-card title="返乡数据统计">
<ai-card title="返乡数据统计" v-if="false">
<template #right>
</template>
<template #content>
@@ -137,7 +137,7 @@
this.loading = true
this.$nextTick(() => {
this.chart1 = echarts.init(document.querySelector('.chart1'))
this.chart2 = echarts.init(document.querySelector('.chart2'))
// this.chart2 = echarts.init(document.querySelector('.chart2'))
window.addEventListener('resize', this.onResize)
this.getInfo()
})
@@ -210,7 +210,7 @@
this.instance.post(`/app/appepidemicpreventioncommunitymanagement/statistics?areaId=${this.areaId}&beginTime=${this.beginTime || ''}&endTime=${this.endTime || ''}`).then(res => {
if (res.code == 0) {
this.initChart1(res.data.trend)
this.initChart2(res.data.sourceMap)
// this.initChart2(res.data.sourceMap)
this.info = res.data.numberMap
this.loading = false
} else {

View File

@@ -1,52 +1,91 @@
<template>
<section class="electionAdd">
<ai-detail>
<ai-title slot="title" title="添加换届选举" isShowBottomBorder isShowBack @onBackClick="cancel(true)"/>
<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="edit">修改</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="选举方式" :value="info.electionMethod"></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 v-else>
<ai-title slot="title" :title="id? '编辑换届选举':'添加换届选举'" isShowBottomBorder isShowBack @onBackClick="cancel(true)"/>
<template slot="content">
<ai-card title="基本信息">
<template #content>
<div class="add-form">
<el-form ref="form" :model="form" :rules="formRules" size="small" label-width="150px">
<el-form-item label="标题" prop="licenseName">
<el-input v-model="form.licenseName" placeholder="请输入" show-word-limit maxlength="100"></el-input>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入" show-word-limit maxlength="100"></el-input>
</el-form-item>
<el-form-item label="投票说明" prop="licenseName">
<el-input type="textarea" :rows="5" v-model="form.licenseName" placeholder="请输入" show-word-limit maxlength="500"></el-input>
<el-form-item label="投票说明">
<el-input type="textarea" :rows="5" v-model="form.votingInstructions" placeholder="请输入" show-word-limit maxlength="500"></el-input>
</el-form-item>
<el-form-item label="单位名称" prop="licenseOrganization">
<el-input size="small" disabled placeholder="请选择所属党组织" v-model="form.partyOrgName">
<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.partyOrgId" @origin="handlePartyOrgSelect"/>
</template>
</el-input>
</el-form-item>
<el-form-item label="选举方式" prop="licenseOrganization">
<el-radio v-model="form.radio" label="1">等额</el-radio>
<el-radio v-model="form.radio" label="2">差额</el-radio>
<el-form-item label="选举方式" prop="electionMethod">
<el-tooltip class="item" effect="dark" content="差额选举:候选人数多于应选人数的选举方式;
等额选举:候选人数与应选人数相等的选举方式。" placement="top">
<i class="el-icon-info" style="margin-right: 8px"></i>
</el-tooltip>
<el-radio v-model="form.electionMethod" label="1">等额</el-radio>
<el-radio v-model="form.electionMethod" label="2">差额</el-radio>
</el-form-item>
<el-row type="flex">
<el-col :span="20">
<el-form-item label="应选人数" prop="licenseCode">
<el-input type="number" v-model="form.licenseCode" placeholder="请输入"></el-input>
<el-form-item label="应选人数" prop="candidatesNumber">
<el-input type="number" v-model="form.candidatesNumber" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="投票日期" prop="decisionDate">
<el-date-picker v-model="form.decisionDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:338px">
<el-form-item label="投票日期" prop="votingDate">
<el-date-picker v-model="form.votingDate" value-format="yyyy-MM-dd HH:mm:ss" type="date" placeholder="选择日期" style="width:338px">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="候选人" prop="licenseOrganization">
<el-form-item label="候选人" prop="candidateUsers">
<ai-person-select :instance="instance" :customClicker="true" :chooseUserList="chooseUserList"
url="/app/appgirdmemberinfo/list" headerTitle="党员列表"
:isMultiple="true" dialogTitle="选择" @selectPerson="selectPerson" class="aipersonselect">
:isMultiple="true" dialogTitle="选择" @selectPerson="selectCandidate" class="aipersonselect">
<template name="option" v-slot:option="{ item }">
<span class="iconfont iconProlife">{{ item.name }}</span>
<span>{{ item.phone }}</span>
@@ -55,10 +94,10 @@
</ai-person-select>
</el-form-item>
<el-form-item label="投票人" prop="licenseOrganization">
<el-form-item label="投票人" prop="voteUsers">
<ai-person-select :instance="instance" :customClicker="true" :chooseUserList="chooseUserList"
url="/app/appgirdmemberinfo/list" headerTitle="党员列表"
dialogTitle="选择" @selectPerson="selectPerson" class="aipersonselect">
:isMultiple="true" dialogTitle="选择" @selectPerson="selectVote" 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"/>
@@ -75,31 +114,7 @@
<el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button>
</template>
</ai-detail>
<!-- <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="edit">修改</span>
</template>
<template #content v-if="isEdit == false">
<ai-wrapper>
<ai-info-item label="许可文书名称" :value="data.licenseName"></ai-info-item>
<ai-info-item label="许可文书号" :value="data.licenseCode"></ai-info-item>
<ai-info-item label="许可决定日期" :value="data.decisionDate"></ai-info-item>
<ai-info-item label="许可有效期自" :value="data.startDate"></ai-info-item>
<ai-info-item label="许可有效期至" :value="data.endDate"></ai-info-item>
<ai-info-item label="许可机关" isLine :value="data.licenseOrganization"></ai-info-item>
<ai-info-item label="经营主体" isLine :value="data.enterpriseName"></ai-info-item>
<ai-info-item label="统一信用代码" isLine :value="data.unifiedCode"></ai-info-item>
<ai-info-item label="许可内容" isLine :value="data.licenseContent"></ai-info-item>
</ai-wrapper>
</template>
</ai-card>
</template>
</ai-detail> -->
</section>
</template>
@@ -109,13 +124,60 @@ export default {
props: {
instance: Function,
dict: Object,
permissions: Function
params: Object,
},
data() {
let validCandidate = (rule, value, callback) => {
if (!value.length) {
return callback(new Error('请选择候选人'));
} else {
callback();
}
};
let validVote = (rule, value, callback) => {
if (!value.length) {
return callback(new Error('请选择投票人'));
} else {
callback();
}
};
return {
form: {
title: '',
votingInstructions: '',
organizationName: '',
electionMethod: '',
candidatesNumber: '',
votingDate: '',
candidateUsers: [],
voteUsers: [],
partyOrganizations: []
},
chooseUserList: [],
formRules: {
title: [{required: true, message: "请输入标题", trigger: "blur"}],
organizationName: [{required: true, message: "请选择党组织", trigger: "blur"}],
electionMethod: [{required: true, message: "请选择选举方式", trigger: "blur"}],
candidatesNumber: [{required: true, message: "请输入应选人数", trigger: "blur"}],
votingDate: [{required: true, message: "请选择投票日期", trigger: "blur"}],
candidateUsers: [{required: true,validator: validCandidate, trigger: "blur"}],
voteUsers: [{required: true,validator: validVote, trigger: "blur"}],
},
id: '',
isEdit: false,
info: {},
candidateUsersList: '',
voteUsersList: '',
}
},
computed: {
},
created() {
if(this.params && this.params.id) {
this.id = this.params.id
this.isEdit = this.params.isEdit
this.getDetail()
}
},
methods: {
@@ -124,7 +186,56 @@ export default {
type: 'electionList',
isRefresh: !!isRefresh
})
}
},
getDetail() {
this.instance.post(`/app/appgeneralelectioninfo/queryDetailById`,null, {
params: {id:this.id}
}).then((res) => {
if(res?.data) {
// console.log(res.data);
this.form = res.data,
this.info = res.data
this.candidateUsersList = res.data.candidateUsers.map(v=> v.name)
this.voteUsersList = res.data.voteUsers.map(v=> v.name)
}
})
},
edit() {},
selectCandidate(v) {
this.form.candidateUsers = v
},
selectVote(e) {
this.form.voteUsers = e
},
handlePartyOrgSelect(v) {
if(v) {
this.form.organizationName = v[0].name
this.form.partyOrganizations = [v[0]]
} else {
this.form.organizationName = this.chooseUserList[0].name
this.form.partyOrganizations = this.chooseUserList
}
},
confirm() {
this.$refs.form.validate((valid) => {
if (valid) {
this.instance.post(`/app/appgeneralelectioninfo/addOrUpdate`,{
...this.form
}).then(res => {
if(res.code == 0) {
if(this.id) {
this.$message.success('编辑成功')
} else {
this.$message.success('新增成功')
}
this.cancel(false)
}
}).catch((err) => {
console.log(err);
})
}
})
},
},
}
</script>

View File

@@ -5,7 +5,7 @@
<template #content>
<ai-search-bar>
<template #left>
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >添加</el-button>
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('', false)" >添加</el-button>
<ai-select v-model="search.status" @change=";(page.current = 1), getList()" placeholder="请选择状态" :selectList="dict.getDict('cwpStatus')"></ai-select>
</template>
<template #right>
@@ -18,8 +18,8 @@
<el-table-column slot="options" label="操作" fixed="right" align="center">
<template slot-scope="{ row }">
<!-- show-overflow-tooltip -->
<el-button type="text" @click.native="toAdd(row.id)">编辑</el-button>
<el-button type="text" @click.native="toAdd(row.id)">详情</el-button>
<el-button type="text" @click.native="toAdd(row.id, true)">编辑</el-button>
<el-button type="text" @click.native="toAdd(row.id, false)">详情</el-button>
<el-button type="text" @click.native="handleDelete(row.id)">删除</el-button>
</template>
</el-table-column>
@@ -39,39 +39,53 @@ export default {
data () {
return {
search: {
status: '',
status: '', // 0、未开始1、进行中2、已结束
title: '',
tableData: [],
},
page: {
current: 1,
size: 10,
total: '',
total: 0,
},
tableData: [],
}
},
created () {
this.dict.load('yesOrNo', 'partyFourLinkageStatus')
this.getList()
},
computed: {
colConfigs() {
return [
{prop: "", label: "标题", align: "left"},
{prop: "", label: "所属支部", align: "center"},
{prop: "", label: "选举方式", align: "center"},
{prop: "", label: "应选人数", align: "center"},
{prop: "", label: "状态", align: "center",width: "180px"},
{prop: "title", label: "标题", align: "left", showOverflowTooltip: true},
{prop: "organizationName", label: "所属支部", align: "center"},
{prop: "electionMethod", label: "选举方式", align: "center"},
{prop: "chooseNumber", label: "应选人数", align: "center"},
{prop: "status", label: "状态", align: "center",width: "180px"},
{ slot: "options", },
]
}
},
methods: {
getList () {},
toAdd(id) {
getList() {
this.instance.post(`/app/appgeneralelectioninfo/list`,null,{
params: {
...this.page,
...this.search,
}
}).then(res=> {
if(res?.data) {
this.tableData = res.data.records
this.total.total = res.data.total
}
})
},
toAdd(id,flag) {
this.$emit('change', {
type: 'electionAdd',
params: {
id: id || '',
isEdit: flag
}
})
},

View File

@@ -194,7 +194,7 @@
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.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)
}
@@ -208,7 +208,6 @@
toDetail (row) {
this.reportInfo = row
this.isShow = true
let healthName = ''
this.reportInfo.isHealth = false
row.health.split(',').forEach(v => {
@@ -218,23 +217,7 @@
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
// }
// })
this.isShow = true
},
cancel () {

View File

@@ -92,7 +92,8 @@
<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="dict.getLabel('EP_communityHandleType', info.cmAdvanceDisposal.communityHandleType)"></ai-info-item>
<ai-info-item v-if="info.cmAdvanceDisposal.communityHandleType === '1'" label="居家状态" :value="dict.getLabel('EP_homeStatus2', info.cmAdvanceDisposal.homeStatus)"></ai-info-item>
<ai-info-item v-if="info.cmAdvanceDisposal.communityHandleType === '1'" label="隔离时间" :value="info.cmAdvanceDisposal.quarantineBeginTime + ' - ' + info.cmAdvanceDisposal.quarantineEndTime"></ai-info-item>
<ai-info-item v-if="info.cmAdvanceDisposal.communityHandleType === '1'" label="隔离策略" :value="dict.getLabel('EP_quarantineStrategy', info.cmAdvanceDisposal.quarantineStrategy)"></ai-info-item>
<ai-info-item v-if="info.cmAdvanceDisposal.communityHandleType === '1'" label="管控方式" :value="dict.getLabel('EP_controlMethod', info.cmAdvanceDisposal.controlMethod)"></ai-info-item>
@@ -151,7 +152,7 @@
this.isLoading = true
if (this.params && this.params.id) {
this.id = this.params.id
this.$dict.load(['EP_registerPersonType', 'EP_highRiskIndustries', 'EP_travelType', 'yesOrNo', 'EP_homeStatus', 'EP_quarantineStrategy', 'EP_controlMethod', 'EP_abnormalType']).then(() => {
this.$dict.load(['EP_registerPersonType', 'EP_communityHandleType', 'EP_highRiskIndustries', 'EP_travelType', 'yesOrNo', 'EP_homeStatus2', 'EP_quarantineStrategy', 'EP_controlMethod', 'EP_abnormalType']).then(() => {
this.getInfo(this.params.id)
})
}

View File

@@ -1,7 +1,11 @@
<template>
<ai-list class="List">
<template slot="title">
<ai-title title="组织换届" isShowBottomBorder/>
<ai-title title="组织换届" isShowBottomBorder>
<template slot="rightBtn">
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >换届设置</el-button>
</template>
</ai-title>
</template>
<template #left>
<ai-tree-menu title="组织目录" searchPlaceholder="请输入组织名称" @search="onSearch">
@@ -14,13 +18,17 @@
@select="onTreeChange"/>
</ai-tree-menu>
</template>
<template slot="content">
<el-tabs v-model="currIndex">
<template slot="content" class="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>
<div class="add_btn">
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="toAdd('')" >新增换届</el-button>
</div>
</template>
</ai-list>
</template>
@@ -30,7 +38,6 @@ import {mapState} from 'vuex'
import moment from './moment.vue'
import history from './history.vue'
export default {
name: 'List',
props: {
@@ -73,10 +80,11 @@ export default {
},
components: {
moment,
history
history,
},
computed: {
...mapState(['user']),
orgTree() {
return this.$refs.tree?.$refs?.partyTree
},
@@ -94,6 +102,7 @@ export default {
created() {
// this.dict.load('disciplinary', 'partyType', 'sex', 'nation', 'education', 'partyStatus', 'partyPosition', 'flowStatus', 'auditStatus')
// this.getList()
console.log(this.user);
},
methods: {
showNeighbourSetting(id) {
@@ -152,7 +161,12 @@ export default {
this.$router.push({query: {id}})
},
toAdd(id) {
this.$router.push({query: {id}, hash: "#add"})
this.$emit('change', {
type: 'addChange',
params: {
id: id || ''
}
})
}
}
}
@@ -160,11 +174,30 @@ export default {
<style lang="scss" scoped>
.List {
position: relative;
.party-table__btns {
display: flex;
align-items: center;
}
.set_btn {
position: absolute;
right: 20px;
top: 8px;
}
::v-deep .ai-list__content--right {
position: relative;
.add_btn {
position: absolute;
right: 18px;
top: 11px;
}
}
::v-deep .audit-0 {
color: #FF8822 !important;
}

View File

@@ -0,0 +1,133 @@
<template>
<ai-list class="addChange">
<template #title>
<ai-title title="基本信息" isShowBottomBorder isShowBack @onBackClick="cancel(false)" />
</template>
<template #content>
<div class="Form" style="padding: 0 200px;">
<el-form ref="form" :model="form" label-width="100px" label-position="right">
<ai-bar title="基本信息"></ai-bar>
<el-row type="flex">
<el-col :span="12">
<el-form-item label="换届时间" prop="data" :rules="[{ required: true, message: '请选择换届时间', trigger: 'blur' }]">
<el-input size="small" :maxlength="30" placeholder="请输入大屏项目名称" v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="届次" prop="noun" :rules="[{ required: true, message: '请输入届次', trigger: 'blur' }]">
<el-input size="small" :maxlength="30" placeholder="请输入届次" v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<ai-bar title="本届任职(必填)">
<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>
</el-table-column>
</ai-table>
<ai-bar title="本届候选人">
<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="tableDataPerson"
:col-configs="colConfigsPerson"
: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>
</el-table-column>
</ai-table>
</div>
</template>
</ai-list>
</template>
<script>
export default {
name: "addChange",
props: {
instance: Function,
permissions: Function,
dict: Object,
},
data() {
return {
form: {
},
tableDataJob: [],
tableDataPerson: [],
totalJob: '',
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: {
cancel (isRefresh) {
this.$emit('change', {
type: 'List',
isRefresh: !!isRefresh
})
}
}
}
</script>
<style lang="scss" scope>
.addChange {}
</style>

View File

@@ -1,13 +1,80 @@
<template>
<div>历史届次</div>
<ai-list class="history">
<template slot="content">
<ai-search-bar>
<template #left>
<el-button type="primary" icon="iconfont iconEdit" @click="fillupAdd('')">补录</el-button>
</template>
<template #right>
<el-input size="small" placeholder="请输入届次" v-model="search.name" clearable
v-throttle="() => {page.current = 1, getList()}"/>
<el-button icon="iconfont iconResetting" @click="reset('')">重置</el-button>
</template>
</ai-search-bar>
<ai-table
class="detail-table__table"
:tableData="tableData"
:col-configs="colConfigs"
:total="page.total"
:current.sync="current"
:size.sync="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>
</el-table-column>
</ai-table>
</template>
</ai-list>
</template>
<script>
export default {
name: "history",
props: {
instance: Function,
permissions: Function,
dict: Object,
},
data() {
return {
search: {
name: '',
},
page: {
current: 1,
size: 10,
total: 0
}
}
},
computed: {
colConfigs() {
return [
{prop: '', label: '届次', align: 'left'},
{prop: '', label: '换届日期', align: 'center'},
{prop: '', label: '操作时间', align: 'center'},
{prop: '', label: '操作人', align: 'center'},
{slot: 'options'},
]
}
},
methods: {
fillupAdd() {},
reset() {},
getList() {}
},
created() {
},
}
</script>
<style>
<style lang="scss" scope>
.history {
padding-top: 0 !important;
background-color: #FFF !important;
}
</style>

View File

@@ -1,13 +1,154 @@
<template>
<div>当前届次</div>
<ai-list class="moment">
<template slot="content">
<ai-bar title="总体概况">
<template slot="right">
<el-button size="small" type="text" icon="iconfont iconEdit" @click="toEdit('')" >修改</el-button>
</template>
</ai-bar>
<ai-wrapper>
<ai-info-item label="本届换届时间" :value="111" />
<ai-info-item label="换届类型" :value="111" />
<ai-info-item label="下届换届时间" :value="111" />
<ai-info-item label="当前届次" :value="111" />
</ai-wrapper>
<ai-bar title="本届任职">
<template slot="right">
<el-button size="small" type="text" icon="iconfont iconAdd" @click="dialogJob=true" >添加任职人员</el-button>
</template>
</ai-bar>
<ai-table
class="detail-table__table"
:tableData="tableData"
:col-configs="colConfigs"
:total="totalJob"
:current.sync="current"
:size.sync="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>
</el-table-column>
</ai-table>
<ai-bar title="本届候选人">
<template slot="right">
<el-button size="small" type="text" icon="iconfont iconAdd" @click="dialogCandidate = true" >添加候选人</el-button>
</template>
</ai-bar>
<ai-table
class="detail-table__table"
:tableData="tableData"
:col-configs="colConfigs"
:total="totalJob"
:current.sync="current"
:size.sync="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>
</el-table-column>
</ai-table>
<ai-dialog :visible.sync="dialogJob" title="添加本届任职人" width="720px" @closed="jobForm={}" @onConfirm="handleJobForm">
<el-form ref="jobForm" size="small" :model="jobForm" :rules="jobRules" label-width="80px">
<el-form-item label="职位" prop="job">
<el-input v-model="jobForm.job" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="jobForm.name" clearable placeholder="请输入"/>
</el-form-item>
</el-form>
</ai-dialog>
<ai-dialog :visible.sync="dialogCandidate" title="添加本届候选人" width="720px" @closed="CandFrom={}" @onConfirm="handleCandForm">
<el-form ref="CandFrom" size="small" :model="CandFrom" :rules="candRules" label-width="80px">
<el-form-item label="职位" prop="job">
<el-input v-model="CandFrom.job" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="候选人" prop="name">
<el-input type="textarea" rows="5" v-model="CandFrom.name" placeholder="请输入候选人姓名,用逗号隔开"/>
</el-form-item>
</el-form>
</ai-dialog>
</template>
</ai-list>
</template>
<script>
export default {
name: "moment",
props: {
instance: Function,
permissions: Function,
dict: Object,
selected: Object
},
data() {
return {
isEdit: false,
tableData: [],
totalJob: 0,
current: 1,
size: 10,
dialogJob: false,
dialogCandidate: false,
jobForm: {
job: '',
name: '',
},
CandFrom: {
job: '',
name: '',
},
}
},
computed: {
colConfigs() {
return [
{prop: 'content', label: '职位'},
{prop: 'content', label: '姓名'},
{slot: 'options'},
]
},
jobRules() {
return {
job: [{required: true, message: "请输入职位"}],
name: [{required: true, message: "请输入姓名"}],
}
},
candRules() {
return {
job: [{required: true, message: "请输入职位"}],
name: [{required: true, message: "请输入姓名"}],
}
}
},
methods: {
jobEdit() {},
jobDelete() {},
getJobList() {},
toEdit(id) {
this.$emit('change', {
type: 'addChange',
params: {
id: id || ''
}
})
},
handleJobForm() {},
handleCandForm() {},
}
}
</script>
<style>
<style lang="scss" scope>
.moment {
padding-top: 0 !important;
background-color: #FFF !important;
}
</style>

View File

@@ -21,11 +21,12 @@
prop="name"
>
<el-input
size="small"
:disabled="isEdit"
:maxLength="15"
placeholder="请输入姓名"
v-model="form.name"
size="small"
:disabled="isEdit"
:maxLength="15"
placeholder="请输入姓名"
v-model="form.name"
>
<template slot="append" v-if="!isEdit">
<ai-person-select
@@ -187,9 +188,9 @@
</el-form-item>
<el-form-item label="文化程度">
<ai-select
v-model="form.education"
placeholder="请选择文化程度"
:selectList="dict.getDict('education')"
v-model="form.partyStatus"
placeholder="请选择文化程度"
:selectList="dict.getDict('partyStatus')"
></ai-select>
</el-form-item>
<el-form-item label="学位职称">
@@ -202,16 +203,16 @@
></el-input>
</el-form-item>
<el-form-item label="奖励情况" style="width: 100%;">
<el-input type="textarea" v-model="form.rewardRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入奖励情况"/>
</el-form-item>
<el-form-item label="处分情况" style="width: 100%;">
<el-input type="textarea" v-model="form.punishmentRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入处分情况"/>
</el-form-item>
<el-form-item label="简历" style="width: 100%;">
<el-input type="textarea" v-model="form.resume" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入简历"/>
</el-form-item>
<el-form-item label="附件" style="width: 100%;">
<ai-uploader
@@ -279,160 +280,201 @@
<el-input type="textarea" v-model="form.activistEducationRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
<ai-card title="入学积极分子的确定和教育培养">
<template #content>
<el-form-item label="确定为入学积极分子时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.joinPartyTime"
type="date"
placeholder="请选择确定为入学积极分子时间"
style="width: 100%"
format="yyyy-MM-dd"
:value-format="'yyyy-MM-dd'"
>
</el-date-picker>
</el-form-item>
<el-form-item label="确定为积极分子的根据和意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入确定为积极分子的根据和意见"/>
</el-form-item>
<el-form-item label="培养教育情况及鉴定意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入培养教育情况及鉴定意见"/>
</el-form-item>
</template>
</ai-card>
<ai-card title="入介绍人/培养人" v-if="form.developStatus > 0">
<ai-card title="入介绍人/培养人">
<template #right>
<el-button type="text" icon="iconfont iconAdd" @click="addIntroducer()">添加入介绍人/培养人</el-button>
<el-button type="text" icon="iconfont iconAdd" @click="addForm(activeName)">添加入介绍人/培养人</el-button>
</template>
<template #content>
<ai-table
:border="true"
:tableData="form.introducerList"
:isShowPagination="false"
:col-configs="colConfigs"
:stripe="false"
@getList="() => {}"
:border="true"
:tableData="form.starList"
:isShowPagination="false"
:col-configs="colConfigs1"
:stripe="false"
@getList="() => {}"
>
<el-table-column label="职位" slot="level" align="center">
<template slot-scope="{ row }">
<el-rate
v-model="row.level"
disabled
show-text
:texts="textlist"
></el-rate>
</template>
</el-table-column>
<el-table-column
slot="options"
width="120px"
fixed="right"
label="操作"
align="center"
slot="options"
width="120px"
fixed="right"
label="操作"
align="center"
>
<template slot-scope="{ row, $index }">
<div class="table-options">
<el-button type="text" @click="remove($index)">删除</el-button>
<el-button type="text" @click="editStar(row, $index)"
>编辑
</el-button
>
<el-button type="text" @click="remove($index, 'starList')"
>删除
</el-button
>
</div>
</template>
</el-table-column>
</ai-table>
</template>
</ai-card>
<ai-card title="发展对象的确定和考察" v-if="form.developStatus > 1">
<ai-card title="发展对象的确定和考察">
<template #content>
<el-form-item label="确定为发展对象时间" prop="determineTime" >
<el-form-item label="确定为发展对象时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.determineTime"
v-model="form.joinPartyTime"
type="date"
placeholder="请选择确定为发展对象时间"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
:value-format="'yyyy-MM-dd'"
>
</el-date-picker>
</el-form-item>
<el-form-item label="政治历史的考察及结论" style="width: 100%;">
<el-input type="textarea" v-model="form.determinePoliticsRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="社会关系考察及结论" style="width: 100%;">
<el-input type="textarea" v-model="form.determineSocialRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="现实考察及结论" style="width: 100%;">
<el-input type="textarea" v-model="form.determineRealityRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="的基本知识考核及考试成绩" style="width: 100%;">
<el-input type="textarea" v-model="form.determineKnowledgeRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="的基本知识考核及考试成绩" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="综合考察结论意见" style="width: 100%;">
<el-input type="textarea" v-model="form.determineComprehensiveRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="内讨论是否确定为发展对象的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.determinePartyInnerRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="内讨论是否确定为发展对象的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="确定为发展对象后的谈话记录" style="width: 100%;">
<el-input type="textarea" v-model="form.determineChatRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="支委会研究意见" style="width: 100%;">
<el-input type="textarea" v-model="form.determineBranchRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
<ai-card title="预备员的接收" v-if="form.developStatus > 2">
<ai-card title="预备员的接收">
<template #content>
<el-form-item label="吸收入时间" prop="acceptTime" >
<el-form-item label="吸收入时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.acceptTime"
v-model="form.joinPartyTime"
type="date"
placeholder="请选择吸收入时间"
placeholder="请选择吸收入时间"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
:value-format="'yyyy-MM-dd'"
>
</el-date-picker>
</el-form-item>
<el-form-item label="吸收入地点">
<el-form-item label="吸收入地点">
<el-input
size="small"
v-model="form.acceptAddress"
v-model="form.phone"
placeholder="请输入..."
clearabel
:maxLength="50"
:maxLength="11"
></el-input>
</el-form-item>
<el-form-item label="吸收入时支部大会上员提的意见和要求及个人的态度" style="width: 100%;">
<el-input type="textarea" v-model="form.acceptBranchMeetingOpinion" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="吸收入时支部大会上员提的意见和要求及个人的态度" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="预备期间的教育情况" style="width: 100%;">
<el-input type="textarea" v-model="form.acceptEducationRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="小组对其转正的讨论意见" style="width: 100%;">
<el-input type="textarea" v-model="form.acceptPartyGroupRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="小组对其转正的讨论意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="预备期间的考察情况" style="width: 100%;">
<el-input type="textarea" v-model="form.acceptInvestigateRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="支部对其转正的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.acceptBranchRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="支部对其转正的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
<ai-card title="预备员的教育考察和转正" v-if="form.developStatus == 4">
<ai-card title="预备员的教育考察和转正">
<template #content>
<el-form-item label="转正时间" prop="becomePartyTime" >
<el-form-item label="转正时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.becomePartyTime"
v-model="form.joinPartyTime"
type="date"
placeholder="请选择转正时间"
style="width: 100%"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
:value-format="'yyyy-MM-dd'"
>
</el-date-picker>
</el-form-item>
<el-form-item label="预备期间的教育情况" style="width: 100%;">
<el-input type="textarea" v-model="form.becomePartyEducationRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="预备期间的考察情况" style="width: 100%;">
<el-input type="textarea" v-model="form.becomePartyInvestigateRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="小组对其转正的讨论意见" style="width: 100%;">
<el-input type="textarea" v-model="form.becomePartyGroupRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="小组对其转正的讨论意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
<el-form-item label="支部对其转正的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.becomePartyBranchRemark" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
<el-form-item label="支部对其转正的意见" style="width: 100%;">
<el-input type="textarea" v-model="form.personalProfile" clearable maxlength="500" show-word-limit
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
@@ -493,6 +535,8 @@
<script>
import {mapState} from "vuex";
import {ID} from "dvcp-ui/lib/js/utils";
export default {
name: "Add",
props: {
@@ -501,7 +545,7 @@ export default {
selected: Object,
},
computed: {
...mapState(["user"]),
...mapState(["user"]),
isEdit() {
return !!this.$route.query.id;
},
@@ -621,13 +665,11 @@ export default {
}
});
},
remove(index) {
console.log(index)
this.$confirm("确定删除该数据?").then(() => {
this.form.introducerList.splice(index, 1)
});
// this.form.introducerList.splice(index, 1)
// this.$forceUpdate()
idChange(val) {
let info = new ID(val)
this.form.sex = info.sex || "";
this.form.birthday = info.birthday || "";
this.form.age = info.age || "";
},
checkName(val) {
for (let i in this.form) {
@@ -695,8 +737,9 @@ export default {
.audit-1 {
color: #2ea222 !important;
}
::v-deep .ai-form .el-form-item .el-form-item__content {
margin-left: 174px!important;
margin-left: 174px !important;
}
}
</style>

View File

@@ -3,7 +3,7 @@
<template slot="title">
<ai-title title="风险区域配置" isShowBottomBorder>
<template #rightBtn>
<el-button type="primary" @click="handleSyncData">同步卫健委数据</el-button>
<el-button type="primary" @click="handleSyncData" :loading="isLoading">同步卫健委数据</el-button>
</template>
</ai-title>
</template>
@@ -74,6 +74,7 @@
level: '',
province: ''
},
isLoading: false,
currIndex: -1,
areaList: [],
total: 10,
@@ -140,9 +141,11 @@
},
handleSyncData() {
this.isLoading = true
getRiskArea(this.instance).then(res => {
if (res?.code == 0) {
this.getList()
this.isLoading = false
this.$message.success("同步完毕!")
}
})