This commit is contained in:
yanran200730
2022-10-14 16:13:56 +08:00
40 changed files with 1039 additions and 772 deletions

View File

@@ -39,24 +39,25 @@ 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: "left", showOverflowTooltip: true},
{prop: "", label: "所属支部", align: "center"},
{prop: "", label: "选举方式", align: "center"},
{prop: "", label: "应选人数", align: "center"},
@@ -66,7 +67,18 @@ export default {
}
},
methods: {
getList () {},
getList() {
this.instance.post(`/app/appgeneralelectioninfo/list`,null,{
params: {
...this.page,
...this.search,
}
}).then(res=> {
if(res?.data) {
console.log(res);
}
})
},
toAdd(id) {
this.$emit('change', {
type: 'electionAdd',

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,20 @@
<template>
<section class="addChange">
新增
</section>
</template>
<script>
export default {
name: "addChange",
props: {
instance: Function,
permissions: Function,
dict: Object,
},
}
</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,135 @@
<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="toAdd('')" >添加任职人员</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="toAdd('')" >添加候选人</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>
</template>
<ai-dialog :visible.sync="dialogJob" title="定制大屏" @closed="custom={}" @onConfirm="handleCustomizedDV">
<el-form ref="jobForm" size="small" :model="jobForm" :rules="rules" label-width="80px">
<el-form-item label="职位" prop="title">
<el-input v-model="jobForm.title" clearable placeholder="请输入"/>
</el-form-item>
<el-form-item label="姓名" prop="dv">
<el-input v-model="jobForm.title" clearable placeholder="请输入"/>
</el-form-item>
</el-form>
</ai-dialog>
<ai-dialog :visible.sync="dialogCandidate" title="定制大屏" @closed="custom={}" @onConfirm="handleCustomizedDV">
<el-form ref="CandFrom" size="small" :model="CandFrom" :rules="rules" label-width="80px">
<el-form-item label="大屏标题" prop="title">
<el-input v-model="custom.title" clearable placeholder="请填写"/>
</el-form-item>
<el-form-item label="选择大屏" prop="dv">
<ai-select v-model="custom.dv" :selectList="dict.getDict('customizedDVs')"/>
</el-form-item>
<el-form-item label="静态数据">
<el-input type="textarea" rows="5" v-model="custom.meta"/>
</el-form-item>
</el-form>
</ai-dialog>
</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,
}
},
computed: {
colConfigs() {
return [
{prop: 'content', label: '职位'},
{prop: 'content', label: '姓名'},
{slot: 'options'},
]
}
},
methods: {
jobEdit() {},
jobDelete() {},
getJobList() {},
toEdit() {
this.$emit('change', {
type: 'addChange',
params: {
id: id || ''
}
})
// this.$route.push('#addChange')
},
}
}
</script>
<style>
<style lang="scss" scope>
.moment {
padding-top: 0 !important;
background-color: #FFF !important;
}
</style>

View File

@@ -33,7 +33,7 @@
:maxLength="15"
placeholder="请输入姓名"
v-model="form.name"
>
<template slot="append" v-if="!isEdit">
<ai-person-select
@@ -224,9 +224,9 @@
</el-form-item>
<el-form-item label="文化程度">
<ai-select
v-model="form.partyStatus"
placeholder="请选择文化程度"
:selectList="dict.getDict('partyStatus')"
v-model="form.partyStatus"
placeholder="请选择文化程度"
:selectList="dict.getDict('partyStatus')"
></ai-select>
</el-form-item>
<el-form-item label="学位职称">
@@ -238,15 +238,15 @@
</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="请输入奖励情况"/>
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="请输入处分情况"/>
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="请输入简历"/>
rows="2" placeholder="请输入简历"/>
</el-form-item>
<el-form-item label="附件" style="width: 100%;">
<ai-uploader
@@ -294,7 +294,7 @@
<ai-card title="入学积极分子的确定和教育培养">
<template #content>
<el-form-item label="确定为入学积极分子时间" prop="phone" required >
<el-form-item label="确定为入学积极分子时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.joinPartyTime"
@@ -308,11 +308,11 @@
</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="请输入确定为积极分子的根据和意见"/>
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="请输入培养教育情况及鉴定意见"/>
rows="2" placeholder="请输入培养教育情况及鉴定意见"/>
</el-form-item>
</template>
@@ -323,12 +323,12 @@
</template>
<template #content>
<ai-table
:border="true"
:tableData="form.starList"
:isShowPagination="false"
:col-configs="colConfigs1"
: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 }">
@@ -365,7 +365,7 @@
</ai-card>
<ai-card title="发展对象的确定和考察">
<template #content>
<el-form-item label="确定为发展对象时间" prop="phone" required >
<el-form-item label="确定为发展对象时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.joinPartyTime"
@@ -379,41 +379,41 @@
</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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
<ai-card title="预备学员的接收">
<template #content>
<el-form-item label="吸收入学时间" prop="phone" required >
<el-form-item label="吸收入学时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.joinPartyTime"
@@ -436,29 +436,29 @@
</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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
<ai-card title="预备学员的教育考察和转正">
<template #content>
<el-form-item label="转正时间" prop="phone" required >
<el-form-item label="转正时间" prop="phone" required>
<el-date-picker
size="small"
v-model="form.joinPartyTime"
@@ -472,19 +472,19 @@
</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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
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="请输入..."/>
rows="2" placeholder="请输入..."/>
</el-form-item>
</template>
</ai-card>
@@ -667,6 +667,8 @@
<script>
import {mapState} from "vuex";
import {ID} from "dvcp-ui/lib/js/utils";
export default {
name: "Add",
@@ -676,7 +678,7 @@ export default {
selected: Object
},
computed: {
...mapState(["user"]),
...mapState(["user"]),
isEdit() {
return !!this.$route.query.id;
},
@@ -845,10 +847,10 @@ export default {
this.isShowDisciplinaryForm = true;
},
idChange(val) {
let info = this.idCardNoUtil.getIdCardInfo(val)
let info = new ID(val)
this.form.sex = info.sex || "";
this.form.birthday = info.birthday || "";
this.form.age = this.$calcAge(val) || "";
this.form.age = info.age || "";
},
checkName(val) {
for (let i in this.form) {
@@ -997,12 +999,14 @@ 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;
}
::v-deep .ai-form .el-form-item,
::v-deep .el-form-item {
margin-bottom: 8px!important;
margin-bottom: 8px !important;
}
}
</style>