..
This commit is contained in:
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.http.useragent.UserAgentUtil;
|
||||
import com.budwk.app.base.constant.RedisConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
@@ -36,6 +37,8 @@ import org.nutz.log.Log;
|
||||
import org.nutz.log.Logs;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.plugins.wkcache.annotation.CacheDefaults;
|
||||
import org.nutz.plugins.wkcache.annotation.CacheResult;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
@@ -296,9 +299,11 @@ public class SysHomeController {
|
||||
@SaCheckLogin
|
||||
@ApiOperation("获取新闻")
|
||||
@Ok("json")
|
||||
@CacheDefaults(cacheName = RedisConstant.PLATFORM_REDIS_WKCACHE_PREFIX + "web_news", isHash = true)
|
||||
@CacheResult(cacheKey = "news", ignoreNull = true, cacheLiveTime = 60 * 60 * 24)
|
||||
public Result getNews() {
|
||||
// 定义要爬取的URL
|
||||
String domain = "https://nsdgh.njnu.edu.cn";
|
||||
String domain = "http://nsdgh.njnu.edu.cn";
|
||||
try {
|
||||
// 使用Jsoup连接到URL并获取页面内容
|
||||
Document document = Jsoup.connect(domain).get();
|
||||
@@ -316,7 +321,6 @@ public class SysHomeController {
|
||||
}).toList();
|
||||
results.add(NutMap.NEW().addv("label", "最新新闻").addv("value", list));
|
||||
|
||||
|
||||
// 通知公告
|
||||
Elements newsSections = document.select("div.news1");
|
||||
for (Element section : newsSections) {
|
||||
|
||||
+1
@@ -62,6 +62,7 @@ public class MemberBranchUnionManageController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
@Ok("json:{dateFormat:'yyyy-MM-dd'}")
|
||||
public Result pageData(MemberManagePageForm pageForm) {
|
||||
Sql sql = memberManageService.getSql(pageForm, "branchUnion");
|
||||
Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
|
||||
+3
-1
@@ -21,6 +21,7 @@ import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
@@ -54,7 +55,8 @@ public class MemberInfoGroupController {
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.group")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
@Ok("json:{dateFormat:'yyyy-MM-dd'}")
|
||||
public Result pageData(@Valid @Param("pageForm") MemberInfoPageForm pageForm) {
|
||||
Sql sql = memberInfoService.getSql(pageForm);
|
||||
Pagination pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
|
||||
@@ -41,6 +41,8 @@ public class MemberInfoPageForm extends PageForm {
|
||||
|
||||
private String sex;
|
||||
|
||||
private List<String> sexTypes;
|
||||
|
||||
private Integer memberStatus;
|
||||
|
||||
private String position;
|
||||
|
||||
+10
-6
@@ -9,14 +9,11 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.base.utils.EasyExcelUtil;
|
||||
import com.budwk.app.base.utils.PwdUtil;
|
||||
import com.budwk.app.base.utils.*;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_unit;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.base.utils.ManyAddOrRenewUtil;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberHistory;
|
||||
@@ -112,12 +109,19 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
||||
}
|
||||
cnd.andEX("sex", "=", pageForm.getSex());
|
||||
cnd.andEX("sex", "in", pageForm.getSexTypes());
|
||||
|
||||
cnd.and("member", "=", true);
|
||||
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("unionId", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
|
||||
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
|
||||
cnd.asc("unionCode").asc("unitCode");
|
||||
}else{
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
@@ -234,11 +238,11 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
|
||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||
exportEntities.add(new ExcelExportEntity("人事编制", "preparedBy", 20));
|
||||
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
|
||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||
exportEntities.add(new ExcelExportEntity("来校年月", "comeSchoolDate", 30));
|
||||
// exportEntities.add(new ExcelExportEntity("来校年月", "comeSchoolDate", 30));
|
||||
// exportEntities.add(new ExcelExportEntity("所在科室", "threeUnitName", 20));
|
||||
// exportEntities.add(new ExcelExportEntity("工会小组", "unionGroupName", 30));
|
||||
|
||||
|
||||
@@ -24,9 +24,6 @@
|
||||
|
||||
<el-dialog :visible.sync="memberInfoDialogVisible" title="我的信息" width="70%" append-to-body>
|
||||
<user-info ref="userInfoRef"></user-info>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="memberInfoDialogVisible = false">关 闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :visible.sync="signatureDialogVisible" title="我的电子签名" width="35%" append-to-body>
|
||||
|
||||
@@ -1,52 +1,70 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="process-title">基本信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="姓名">{{ viewData.username + "(" + viewData.loginname + ")" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="工号">{{ viewData.loginname }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ viewData.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ viewData.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生日期">
|
||||
{{ viewData.birthday ? $moment(viewData.birthday).format("YYYY-MM-DD") : null }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">{{ viewData.nation }}</el-descriptions-item>
|
||||
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="人事编制">{{ viewData.preparedBy }}</el-descriptions-item>
|
||||
<el-descriptions-item label="人员类型">{{ viewData.personType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="学历">{{ viewData.education }}</el-descriptions-item>
|
||||
<el-descriptions-item label="政治面貌">{{ viewData.political }}</el-descriptions-item>
|
||||
<el-descriptions-item label="婚姻状况">{{ viewData.marriage || "" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="籍贯">{{ viewData.nativePlace }}</el-descriptions-item>
|
||||
<el-descriptions-item label="国籍">{{ viewData.nationality }}</el-descriptions-item>
|
||||
<el-descriptions-item label="证件类别">{{ viewData.idCardType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="证件号码">{{ viewData.idCard }}</el-descriptions-item>
|
||||
<el-descriptions-item label="政治面貌">{{ viewData.political }}</el-descriptions-item>
|
||||
<el-descriptions-item label="入党时间">
|
||||
{{ viewData.joinPartyDate ? $moment(viewData.joinPartyDate).format("YYYY-MM-DD") : null }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来校时间">
|
||||
{{ viewData.arrivalAtSchoolDate ? $moment(viewData.arrivalAtSchoolDate).format("YYYY-MM-DD") : null }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="身份类别">{{ viewData.identityType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="聘用方式">{{ viewData.preparedBy }}</el-descriptions-item>
|
||||
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="预计离退休时间">
|
||||
{{ viewData.retireDate ? $moment(viewData.retireDate).format("YYYY-MM-DD") : null }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="联系电话">{{ viewData.mobile }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
|
||||
<el-descriptions-item label="是否会员">{{ viewData.member ? "是" : "否" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="是否福利会员">{{ viewData.welfareMember ? "是" : "否" }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属工会、工作部门(学院)及职务" span="3">
|
||||
<template slot="label">工作部门(学院)及岗位</template>
|
||||
<div class="text-left">
|
||||
{{ viewData.unionName + "-" + viewData.unitName + (viewData.governmentPosition ? "(" + viewData.governmentPosition + ")" : "") }}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="家庭主要成员及其工作单位" span="3">
|
||||
<el-table
|
||||
v-if="viewData.families && viewData.families.length"
|
||||
:data="viewData.family"
|
||||
size="mini"
|
||||
border
|
||||
:header-cell-style="{ background: '#eff3f6' }"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column prop="relation" label="与本人关系" align="center" header-align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="姓名" align="center" header-align="center"></el-table-column>
|
||||
<el-table-column prop="unit" label="单位" align="center" header-align="center"></el-table-column>
|
||||
<el-table-column prop="remark" label="备注" align="center" header-align="center"></el-table-column>
|
||||
</el-table>
|
||||
<el-empty v-else :image-size="50" description="暂无家庭成员信息"></el-empty>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="个人简况" span="3">
|
||||
<template slot="label">个人简况</template>
|
||||
<div v-if="viewData.personalData" class="text-left" v-html="viewData.personalData"></div>
|
||||
<span v-else>无数据</span>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">会员信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="是否会员">
|
||||
<el-tag v-if="viewData.member === 1" size="mini" type="success">是</el-tag>
|
||||
<el-tag v-else type="info" size="mini">否</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属单位">{{ viewData.unitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属分工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">学历信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="最高学历">{{ viewData.education }}</el-descriptions-item>
|
||||
<el-descriptions-item label="最高学位">{{ viewData.academicDegree }}</el-descriptions-item>
|
||||
<el-descriptions-item label=""></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">职称信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="职称">{{ viewData.technicalTitle }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职称级别">{{ viewData.technicalTitleLevel }}</el-descriptions-item>
|
||||
<el-descriptions-item label=""></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">职务信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="现聘职务">{{ viewData.position }}</el-descriptions-item>
|
||||
<el-descriptions-item label="现聘职级">{{ viewData.positionLevel }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职员等级">{{ viewData.employeeLevel }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
let signature = null
|
||||
module.exports = {
|
||||
name: "userInfo",
|
||||
data() {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
const news = {
|
||||
template: /*language=HTML*/ `
|
||||
<div class="home-news">
|
||||
<!-- <el-tabs v-model="activeName">-->
|
||||
<!-- <el-tab-pane v-for="(item,index) in newsData" :key="index" :label="item.label" :name="item.label" v-if="item.value.length > 0">-->
|
||||
<!-- <div v-for="(n,i) in item.value" :key="i" @click="openUrl(n.href)">-->
|
||||
<!-- <span v-if="n.time" class="news_time">{{ n.time }}</span>-->
|
||||
<!-- <span class="news_text">{{ n.text }}</span>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-tab-pane>-->
|
||||
<!-- </el-tabs>-->
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane v-for="(item,index) in newsData" :key="index" :label="item.label" :name="item.label" v-if="item.value.length > 0">
|
||||
<div v-for="(n,i) in item.value" :key="i" @click="openUrl(n.href)">
|
||||
<span v-if="n.time" class="news_time">{{ n.time }}</span>
|
||||
<span class="news_text">{{ n.text }}</span>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
|
||||
+48
-39
@@ -10,30 +10,31 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch" code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
@@ -45,16 +46,24 @@ layout("/layouts/platform.html"){
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index" width="80px"></el-table-column>
|
||||
<el-table-column :label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns">
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='loginname'">
|
||||
<el-link @click="openView(row)" type="primary">{{row.loginname}}</el-link>
|
||||
</template>
|
||||
@@ -66,10 +75,10 @@ layout("/layouts/platform.html"){
|
||||
审核
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="row.processInstanceTaskStatus==='COMPLETE' && !row.nextTaskIsComplete"
|
||||
@click="openRevoke(row.processInstanceTaskId)"
|
||||
size="mini"
|
||||
type="danger"
|
||||
v-if="row.processInstanceTaskStatus==='COMPLETE' && !row.nextTaskIsComplete"
|
||||
@click="openRevoke(row.processInstanceTaskId)"
|
||||
size="mini"
|
||||
type="danger"
|
||||
>
|
||||
撤回
|
||||
</el-button>
|
||||
@@ -112,7 +121,7 @@ layout("/layouts/platform.html"){
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return{
|
||||
return {
|
||||
pageForm: {
|
||||
audit: false
|
||||
},
|
||||
@@ -120,7 +129,7 @@ layout("/layouts/platform.html"){
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
@@ -132,8 +141,8 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'member-info': MEMBER_INFO,
|
||||
'member-audit-change-info': MEMBER_AUDIT_CHANGE_INFO,
|
||||
"member-info": MEMBER_INFO,
|
||||
"member-audit-change-info": MEMBER_AUDIT_CHANGE_INFO
|
||||
},
|
||||
methods: {
|
||||
openView(row) {
|
||||
@@ -144,14 +153,14 @@ layout("/layouts/platform.html"){
|
||||
openChangeView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.showApprovalForm = false
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({recordId: row.id, userId: row.userId})
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({ recordId: row.id, userId: row.userId })
|
||||
})
|
||||
},
|
||||
openApproval(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.showApprovalForm = true
|
||||
this.formData = row.approvalParam
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({recordId: row.id, userId: row.userId})
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({ recordId: row.id, userId: row.userId })
|
||||
})
|
||||
},
|
||||
doApproval(approvalType) {
|
||||
@@ -204,7 +213,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.doSearch()
|
||||
},
|
||||
flushUnits(){
|
||||
flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
this.units = []
|
||||
if (this.pageForm.unionId) {
|
||||
@@ -212,12 +221,12 @@ layout("/layouts/platform.html"){
|
||||
this.units = data
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData()
|
||||
},
|
||||
});
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
|
||||
@@ -11,30 +11,31 @@ layout("/layouts/platform.html"){
|
||||
</search-item>
|
||||
<template v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN', 'BRANCH_UNION_CHAIRMAN'])">
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch" code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
</template>
|
||||
</search>
|
||||
@@ -42,20 +43,27 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="申请列表">
|
||||
<el-button size="small" type="primary"
|
||||
@click="$store.dispatch('pjaxRoute', '/platform/member/apply/submit')">申请入会</el-button>
|
||||
<el-button size="small" type="primary" @click="$store.dispatch('pjaxRoute', '/platform/member/apply/submit')">申请入会</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index" width="80px"></el-table-column>
|
||||
<el-table-column :label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns">
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='loginname'">
|
||||
<el-link @click="openView(row)" type="primary">{{row.loginname}}</el-link>
|
||||
</template>
|
||||
@@ -64,18 +72,18 @@ layout("/layouts/platform.html"){
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openChangeView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button
|
||||
v-if="[10,40,70].includes(row.processInstanceNodeCode)"
|
||||
size="mini"
|
||||
type="primary"
|
||||
@click="$store.dispatch('pjaxRoute', '/platform/member/apply/submit?id='+row.id)"
|
||||
v-if="[10,40,70].includes(row.processInstanceNodeCode)"
|
||||
size="mini"
|
||||
type="primary"
|
||||
@click="$store.dispatch('pjaxRoute', '/platform/member/apply/submit?id='+row.id)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="[20].includes(row.processInstanceNodeCode) && !row.nextTaskIsComplete"
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="openRevoke(row)"
|
||||
v-if="[20].includes(row.processInstanceNodeCode) && !row.nextTaskIsComplete"
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="openRevoke(row)"
|
||||
>
|
||||
撤销
|
||||
</el-button>
|
||||
@@ -92,10 +100,10 @@ layout("/layouts/platform.html"){
|
||||
<template #view>
|
||||
<member-info ref="memberInfoRef"></member-info>
|
||||
</template>
|
||||
|
||||
<template #public>
|
||||
<member-audit-change-info ref="memberAuditChangeInfoRef"></member-audit-change-info>
|
||||
</template>
|
||||
|
||||
<template #public>
|
||||
<member-audit-change-info ref="memberAuditChangeInfoRef"></member-audit-change-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
@@ -113,7 +121,7 @@ layout("/layouts/platform.html"){
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
@@ -125,7 +133,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
components: {
|
||||
"member-info": MEMBER_INFO,
|
||||
'member-audit-change-info': MEMBER_AUDIT_CHANGE_INFO,
|
||||
"member-audit-change-info": MEMBER_AUDIT_CHANGE_INFO
|
||||
},
|
||||
methods: {
|
||||
doDelete(row) {
|
||||
@@ -157,11 +165,11 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.memberInfoRef.onOpen(row.userId)
|
||||
})
|
||||
},
|
||||
openChangeView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({recordId: row.id, userId: row.userId})
|
||||
})
|
||||
},
|
||||
openChangeView(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({ recordId: row.id, userId: row.userId })
|
||||
})
|
||||
},
|
||||
initData() {
|
||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
this.$businessTool.listUnion(this.pageForm.unionId).then((data) => {
|
||||
@@ -170,7 +178,7 @@ layout("/layouts/platform.html"){
|
||||
this.$businessTool.listUnit().then((data) => {
|
||||
this.units = data
|
||||
})
|
||||
} else if (this.$auth.hasRole("BRANCH_UNION_CHAIRMAN")){
|
||||
} else if (this.$auth.hasRole("BRANCH_UNION_CHAIRMAN")) {
|
||||
this.$businessTool.listUnion(this.$store.state.user.union.id).then((data) => {
|
||||
this.unions = data
|
||||
})
|
||||
@@ -180,7 +188,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.doSearch()
|
||||
},
|
||||
flushUnits(){
|
||||
flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
this.units = []
|
||||
if (this.pageForm.unionId) {
|
||||
@@ -188,7 +196,7 @@ layout("/layouts/platform.html"){
|
||||
this.units = data
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
debugger
|
||||
|
||||
+3
-3
@@ -30,8 +30,8 @@ layout("/layouts/platform.html"){
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch" code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch" code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="PERSON_TYPE"></dict-select>
|
||||
@@ -132,7 +132,7 @@ layout("/layouts/platform.html"){
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
|
||||
@@ -26,30 +26,37 @@ layout("/layouts/platform.html"){
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">
|
||||
<el-form-item prop="nation">
|
||||
<dict-select style="width: 100%" placeholder="请选择民族" v-model="formData.nation"
|
||||
code="USER_NATION"></dict-select>
|
||||
<dict-select style="width: 100%" placeholder="请选择民族" v-model="formData.nation" code="USER_NATION"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="政治面貌">
|
||||
<el-form-item prop="political">
|
||||
<dict-select style="width: 100%" placeholder="请选择政治面貌" v-model="formData.political"
|
||||
code="POLITICAL_STATUS"></dict-select>
|
||||
<dict-select
|
||||
style="width: 100%"
|
||||
placeholder="请选择政治面貌"
|
||||
v-model="formData.political"
|
||||
code="POLITICAL_STATUS"
|
||||
></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="学历">
|
||||
<el-form-item prop="education">
|
||||
<dict-select style="width: 100%" placeholder="请选择学历" v-model="formData.education"
|
||||
code="USER_EDUCATION"></dict-select>
|
||||
<dict-select style="width: 100%" placeholder="请选择学历" v-model="formData.education" code="USER_EDUCATION"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="工作单位">
|
||||
<el-form-item prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择工作单位" style="width: 100%"
|
||||
disabled @change="getUnionName(formData.unitId)"
|
||||
v-model="formData.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择工作单位"
|
||||
style="width: 100%"
|
||||
disabled
|
||||
@change="getUnionName(formData.unitId)"
|
||||
v-model="formData.unitId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
@@ -60,27 +67,23 @@ layout("/layouts/platform.html"){
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="职务">
|
||||
<el-form-item prop="governmentPosition">
|
||||
<el-input v-model="formData.governmentPosition" placeholder="请输入职务"
|
||||
maxlength="50"></el-input>
|
||||
<el-input v-model="formData.governmentPosition" placeholder="请输入职务" maxlength="50"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="在职状态">
|
||||
<el-form-item prop="userState">
|
||||
<dict-select v-model="formData.userState" code="USER_STATE"
|
||||
style="width: 100%"></dict-select>
|
||||
<dict-select v-model="formData.userState" code="USER_STATE" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="人事编制">
|
||||
<el-descriptions-item label="聘用方式">
|
||||
<el-form-item prop="preparedBy">
|
||||
<dict-select v-model="formData.preparedBy" code="PREPARED_BY"
|
||||
style="width: 100%"></dict-select>
|
||||
<dict-select v-model="formData.preparedBy" code="PREPARED_BY" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="人员类型">
|
||||
<el-form-item prop="personType">
|
||||
<dict-select v-model="formData.personType" code="PERSON_TYPE"
|
||||
style="width: 100%"></dict-select>
|
||||
<dict-select v-model="formData.personType" code="PERSON_TYPE" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -101,8 +104,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table :data="formData.families" border size="small">
|
||||
<el-table-column label="关系" prop="relation">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.relation" maxlength="50"
|
||||
placeholder="请输入与本人关系"></el-input>
|
||||
<el-input v-model="row.relation" maxlength="50" placeholder="请输入与本人关系"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" prop="name">
|
||||
@@ -112,8 +114,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
<el-table-column label="工作单位" prop="unit">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.unit" maxlength="100"
|
||||
placeholder="请输入工作单位"></el-input>
|
||||
<el-input v-model="row.unit" maxlength="100" placeholder="请输入工作单位"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark">
|
||||
@@ -123,17 +124,15 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
<el-table-column width="100px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button type="primary" size="mini"
|
||||
@click="formData.families.push({})">添加
|
||||
</el-button>
|
||||
<el-button type="primary" size="mini" @click="formData.families.push({})">添加</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="formData.families.length===0"
|
||||
@click="formData.families.splice(scope.$index,1)"
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="formData.families.length===0"
|
||||
@click="formData.families.splice(scope.$index,1)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -149,7 +148,7 @@ layout("/layouts/platform.html"){
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<el-row v-if="!this.$store.state.user.member" justify="end" type="flex" class="mt10">
|
||||
<!-- <el-row justify="end" type="flex" class="mt10">-->
|
||||
<!-- <el-row justify="end" type="flex" class="mt10">-->
|
||||
<el-button v-if="formData.id" @click="$store.dispatch('pjaxRoute', '/platform/member/apply/mine')">返回</el-button>
|
||||
<el-button @click="doSave" type="primary">保存申请</el-button>
|
||||
<el-button @click="doSubmit" type="primary">提交申请</el-button>
|
||||
@@ -171,17 +170,17 @@ layout("/layouts/platform.html"){
|
||||
families: []
|
||||
},
|
||||
formRules: {
|
||||
username: [{required: false, message: "必填", trigger: "change"}],
|
||||
sex: [{required: false, message: "必填", trigger: "change"}],
|
||||
username: [{ required: false, message: "必填", trigger: "change" }],
|
||||
sex: [{ required: false, message: "必填", trigger: "change" }],
|
||||
idCard: [
|
||||
{required: false, message: "身份证号不能为空", trigger: "blur"},
|
||||
{ required: false, message: "身份证号不能为空", trigger: "blur" },
|
||||
{
|
||||
pattern: /(^\d{6}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9xX])$)/,
|
||||
message: "身份证号格式不正确",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -236,28 +235,28 @@ layout("/layouts/platform.html"){
|
||||
doSave() {
|
||||
this.$confirm("保存后可在我的申请里面再次编辑,您确定要保存吗?", "提示", { type: "warning" })
|
||||
.then(() => {
|
||||
this.$axios
|
||||
.post(loc() + "/doSave", this.formData)
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.$store.dispatch("pjaxRoute", "/platform/member/apply/mine")
|
||||
}
|
||||
})
|
||||
this.$axios.post(loc() + "/doSave", this.formData).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.$store.dispatch("pjaxRoute", "/platform/member/apply/mine")
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch()
|
||||
},
|
||||
doSubmit() {
|
||||
this.$confirm("您确定要提交申请吗?", "提示", { type: "warning" })
|
||||
.then(() => {
|
||||
this.$axios.post(loc() + "/doSubmit", {
|
||||
...this.formData,
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.$store.dispatch("pjaxRoute", "/platform/member/apply/mine")
|
||||
}
|
||||
})
|
||||
this.$axios
|
||||
.post(loc() + "/doSubmit", {
|
||||
...this.formData
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.$store.dispatch("pjaxRoute", "/platform/member/apply/mine")
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch()
|
||||
}
|
||||
|
||||
+284
-240
@@ -10,57 +10,80 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="名单事项">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
@change="changeProject"
|
||||
v-model="pageForm.verificationProjectId">
|
||||
<el-option :key="item.id" :label="item.projectName" :value="item.id"
|
||||
v-for="item in verificationList"></el-option>
|
||||
<el-select
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择"
|
||||
style="width: 100%"
|
||||
@change="changeProject"
|
||||
v-model="pageForm.verificationProjectId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.projectName" :value="item.id" v-for="item in verificationList"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch" code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool :label="'人员核对列表' + '【' + ( buttonData.disableSubmit ? buttonData.buttonContent : buttonData.submitCountContent ) + '】'">
|
||||
<table-tool
|
||||
:label="'人员核对列表' + '【' + ( buttonData.disableSubmit ? buttonData.buttonContent : buttonData.submitCountContent ) + '】'"
|
||||
>
|
||||
<el-button type="primary" size="small" @click="exportExcel">导出名单事项核对记录</el-button>
|
||||
<el-button v-if="buttonData.isFeedback" type="primary" size="small" @click="viewFeedback()">查看反馈结果</el-button>
|
||||
<el-button v-if="buttonData.disableSubmit" style="margin-left: 10px" type="primary" size="small" @click="incorrectSubmission">有误提交</el-button>
|
||||
<el-button v-if="buttonData.disableSubmit" style="margin-left: 10px" type="primary" size="small" @click="openCorrectSubmission">无误提交</el-button>
|
||||
<el-button v-if="buttonData.disableSubmit" style="margin-left: 10px" type="primary" size="small" @click="incorrectSubmission">
|
||||
有误提交
|
||||
</el-button>
|
||||
<el-button v-if="buttonData.disableSubmit" style="margin-left: 10px" type="primary" size="small" @click="openCorrectSubmission">
|
||||
无误提交
|
||||
</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号" type="index" width="80px"></el-table-column>
|
||||
<el-table-column :label="column.label" :prop="column.prop"
|
||||
:sortable="column.sortable" :width="column.width"
|
||||
align="center" header-align="center" min-width="100px"
|
||||
show-overflow-tooltip v-for="column in tableColumns">
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" class="vi-table" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
align="center"
|
||||
header-align="center"
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
align="center"
|
||||
header-align="center"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='loginname'">
|
||||
<el-link @click="openView(row)" type="primary">{{row.loginname}}</el-link>
|
||||
</template>
|
||||
@@ -73,11 +96,17 @@ layout("/layouts/platform.html"){
|
||||
<el-tag size="mini" v-else type="danger">未核对</el-tag>
|
||||
</template>
|
||||
<template scope="{row}" v-else-if="column.prop=='currentState'">
|
||||
<el-tooltip class="item" effect="dark"
|
||||
:content="'校工会审核意见:' + (row.verificationOption ? row.verificationOption : '暂无' )" placement="top">
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
:content="'校工会审核意见:' + (row.verificationOption ? row.verificationOption : '暂无' )"
|
||||
placement="top"
|
||||
>
|
||||
<el-link v-if="row.currentState == 1" :underline="false" type="danger">拒绝</el-link>
|
||||
<!-- <el-link v-else-if="!row.branchUnionChecked" :underline="false" type="info" disabled>待分工会提交</el-link>-->
|
||||
<el-link v-else-if="(row.currentState == 0 || !row.currentState)" :underline="false" type="info" disabled>待审核</el-link>
|
||||
<!-- <el-link v-else-if="!row.branchUnionChecked" :underline="false" type="info" disabled>待分工会提交</el-link>-->
|
||||
<el-link v-else-if="(row.currentState == 0 || !row.currentState)" :underline="false" type="info" disabled>
|
||||
待审核
|
||||
</el-link>
|
||||
<el-link v-else :underline="false" type="primary" disabled>通过</el-link>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
@@ -85,8 +114,12 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column v-if="buttonData.disableSubmit" label="操作" fixed="right" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button v-if="row.isChanged" size="mini" type="primary" @click="openChangeInfo(row)">查看变更</el-button>
|
||||
<el-button v-if="row.currentState !== 2" size="mini" type="primary" @click="openChange(row)">{{ row.isChanged ? '重新变更' : '变更' }}</el-button>
|
||||
<el-button v-if="row.isChanged && row.currentState != 2" size="mini" type="danger" @click="revokeChange(row)">撤销变更</el-button>
|
||||
<el-button v-if="row.currentState !== 2" size="mini" type="primary" @click="openChange(row)">
|
||||
{{ row.isChanged ? '重新变更' : '变更' }}
|
||||
</el-button>
|
||||
<el-button v-if="row.isChanged && row.currentState != 2" size="mini" type="danger" @click="revokeChange(row)">
|
||||
撤销变更
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -107,7 +140,6 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
|
||||
<el-dialog title="无误提交" :visible.sync="correctSubmissionDialog" width="50%" append-to-body>
|
||||
<el-form :model="formData" ref="formRef" label-width="120px" :rules="formRules" size="small">
|
||||
<el-form-item prop="feedbackContent" label="当前需核对人数">
|
||||
@@ -116,37 +148,41 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item prop="feedbackNum" label="反馈人数">
|
||||
<el-input-number v-model="formData.feedbackNum" style="width: 100%" placeholder="请填写反馈人数" size="small"></el-input-number>
|
||||
</el-form-item>
|
||||
<template v-if="verificationData.welfareJson && verificationData.welfareJson.length > 0">
|
||||
<el-form-item prop="welfareJson" label="福利选择人数">
|
||||
<el-table :data="formData.welfareJson" border size="small">
|
||||
<el-table-column label="福利名称" prop="welfareName">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.welfareName" readonly maxlength="50" placeholder="请输入福利名称"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.remark" readonly maxlength="100" placeholder="请输入备注"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="选择人数" prop="chooseNumber">
|
||||
<template slot-scope="{row}">
|
||||
<el-input-number style="width: 100%" v-model="row.chooseNumber" :min="0"
|
||||
placeholder="请输入选择此福利的人数"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template v-if="verificationData.welfareJson && verificationData.welfareJson.length > 0">
|
||||
<el-form-item prop="welfareJson" label="福利选择人数">
|
||||
<el-table :data="formData.welfareJson" border size="small">
|
||||
<el-table-column label="福利名称" prop="welfareName">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.welfareName" readonly maxlength="50" placeholder="请输入福利名称"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark">
|
||||
<template slot-scope="{row}">
|
||||
<el-input v-model="row.remark" readonly maxlength="100" placeholder="请输入备注"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="选择人数" prop="chooseNumber">
|
||||
<template slot-scope="{row}">
|
||||
<el-input-number
|
||||
style="width: 100%"
|
||||
v-model="row.chooseNumber"
|
||||
:min="0"
|
||||
placeholder="请输入选择此福利的人数"
|
||||
></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template v-if="verificationData.isNeedFeedbackFile">
|
||||
<el-form-item required label="附件上传" prop="feedbackFiles">
|
||||
<file-upload
|
||||
:value.sync="formData.feedbackFiles"
|
||||
:upload_number="2"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
accept=".doc,.docx,.xls,.xlsx,.pdf"
|
||||
:value.sync="formData.feedbackFiles"
|
||||
:upload_number="2"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
accept=".doc,.docx,.xls,.xlsx,.pdf"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
</template>
|
||||
@@ -164,13 +200,13 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="反馈日期">{{ viewData.feedbackDate }}</el-descriptions-item>
|
||||
<el-descriptions-item label="反馈人数">{{ viewData.feedbackNum }}</el-descriptions-item>
|
||||
<template v-if="viewData.welfareJson">
|
||||
<el-descriptions-item span="2" label="福利选择人数">
|
||||
<el-table :data="viewData.welfareJson" border size="small">
|
||||
<el-table-column label="福利名称" prop="welfareName"></el-table-column>
|
||||
<el-table-column label="备注" prop="remark"></el-table-column>
|
||||
<el-table-column label="选择人数" prop="chooseNumber"></el-table-column>
|
||||
</el-table>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="2" label="福利选择人数">
|
||||
<el-table :data="viewData.welfareJson" border size="small">
|
||||
<el-table-column label="福利名称" prop="welfareName"></el-table-column>
|
||||
<el-table-column label="备注" prop="remark"></el-table-column>
|
||||
<el-table-column label="选择人数" prop="chooseNumber"></el-table-column>
|
||||
</el-table>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
<el-descriptions-item span="2" label="核对时间">{{ viewData.startDate + '至' + viewData.endDate }}</el-descriptions-item>
|
||||
<el-descriptions-item span="2" label="内容及要求" span="2">{{ viewData.content }}</el-descriptions-item>
|
||||
@@ -182,7 +218,6 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
<!--#include("../../../common/info/memberInfo.js"){}#-->
|
||||
<!--#include("../../../common/change/memberChange.js"){}#-->
|
||||
<!--#include("../../../common/verification/memberVerificationChange.js"){}#-->
|
||||
@@ -198,49 +233,45 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userId: '',
|
||||
verificationChangeInfoUserId: '',
|
||||
url: '/platform/member/branchUnion/verification/check/doCheckMember',
|
||||
userId: "",
|
||||
verificationChangeInfoUserId: "",
|
||||
url: "/platform/member/branchUnion/verification/check/doCheckMember",
|
||||
verificationList: [],
|
||||
verificationData: {},
|
||||
unions: [],
|
||||
units: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', sortable: true},
|
||||
{prop: 'username', label: '姓名', sortable: true},
|
||||
{prop: 'sex', label: '性别', sortable: true, width: '100px'},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
// {prop: "preparedBy", label: "人事编制", sortable: true},
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
// {prop: "preparedBy", label: "聘用方式", sortable: true},
|
||||
// {prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'unionName', label: '所属工会', sortable: true},
|
||||
{prop: 'unitName', label: '所属单位', sortable: true},
|
||||
{prop: 'isChanged', label: '变更状态', sortable: true},
|
||||
{prop: 'branchUnionChecked', label: '核对状态', sortable: true},
|
||||
{prop: 'currentState', label: '校工会状态', sortable: true},
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
{ prop: "isChanged", label: "变更状态", sortable: true },
|
||||
{ prop: "branchUnionChecked", label: "核对状态", sortable: true },
|
||||
{ prop: "currentState", label: "校工会状态", sortable: true }
|
||||
],
|
||||
formRules: {
|
||||
feedbackNum: [
|
||||
{required: true, message: '请填写反馈人数', trigger: ["blur", "change"]},
|
||||
{type: 'number', message: '反馈人数必须为数字'}
|
||||
{ required: true, message: "请填写反馈人数", trigger: ["blur", "change"] },
|
||||
{ type: "number", message: "反馈人数必须为数字" }
|
||||
],
|
||||
feedbackFiles: [
|
||||
{required: true, message: '请上传反馈附件', trigger: ["blur", "change"]}
|
||||
],
|
||||
welfareJson: [
|
||||
{required: true, message: '请填写福利选择人数', trigger: ["blur", "change"]}
|
||||
]
|
||||
},
|
||||
pageForm: {
|
||||
verificationProjectId: '',
|
||||
unionId: '',
|
||||
unitId: '',
|
||||
userState: '',
|
||||
personType: '',
|
||||
feedbackFiles: [{ required: true, message: "请上传反馈附件", trigger: ["blur", "change"] }],
|
||||
welfareJson: [{ required: true, message: "请填写福利选择人数", trigger: ["blur", "change"] }]
|
||||
},
|
||||
buttonData:{
|
||||
pageForm: {
|
||||
verificationProjectId: "",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
userState: "",
|
||||
personType: ""
|
||||
},
|
||||
buttonData: {
|
||||
disableSubmit: false,
|
||||
buttonContent: '',
|
||||
submitCountContent: '',
|
||||
buttonContent: "",
|
||||
submitCountContent: "",
|
||||
isFeedback: false
|
||||
},
|
||||
correctSubmissionDialog: false,
|
||||
@@ -251,138 +282,148 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
methods: {
|
||||
exportExcel() {
|
||||
this.$downLoad('/platform/member/branchUnion/verification/check/exportExcel', this.pageForm)
|
||||
this.$downLoad("/platform/member/branchUnion/verification/check/exportExcel", this.pageForm)
|
||||
},
|
||||
viewFeedback(){
|
||||
this.$axios.post('/platform/member/branchUnion/verification/check/getVerificationFeedback',{
|
||||
verificationProjectId: this.pageForm.verificationProjectId,
|
||||
unionId: this.$store.state.user.union.id,
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
this.feedbackDialog = true
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
viewFeedback() {
|
||||
this.$axios
|
||||
.post("/platform/member/branchUnion/verification/check/getVerificationFeedback", {
|
||||
verificationProjectId: this.pageForm.verificationProjectId,
|
||||
unionId: this.$store.state.user.union.id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
this.feedbackDialog = true
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 有误提交
|
||||
*/
|
||||
incorrectSubmission(){
|
||||
incorrectSubmission() {
|
||||
//确定要提交吗,请确保数据已核对完毕
|
||||
this.$confirm('确定要提交吗?,请确保数据已核对完毕', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$axios.post('/platform/member/branchUnion/verification/check/incorrectSubmission',{
|
||||
verificationProjectId: this.pageForm.verificationProjectId
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.buttonData.disableSubmit = false
|
||||
this.pageData()
|
||||
this.validateSubmitButton()
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
this.$confirm("确定要提交吗?,请确保数据已核对完毕", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios
|
||||
.post("/platform/member/branchUnion/verification/check/incorrectSubmission", {
|
||||
verificationProjectId: this.pageForm.verificationProjectId
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.buttonData.disableSubmit = false
|
||||
this.pageData()
|
||||
this.validateSubmitButton()
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
.catch(() => {})
|
||||
},
|
||||
openCorrectSubmission(){
|
||||
this.$confirm('您确认要无误提交吗?提交后所有数据将无法撤销,点击确认后将填写反馈人数,是否确认?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
openCorrectSubmission() {
|
||||
this.$confirm("您确认要无误提交吗?提交后所有数据将无法撤销,点击确认后将填写反馈人数,是否确认?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.verificationData = this.verificationList.find(v=>v.id === this.pageForm.verificationProjectId)
|
||||
if (this.verificationData.welfareJson && this.verificationData.welfareJson.length > 0) {
|
||||
this.formData.welfareJson = this.verificationData.welfareJson
|
||||
}else{
|
||||
this.verificationData = this.verificationList.find((v) => v.id === this.pageForm.verificationProjectId)
|
||||
if (this.verificationData.welfareJson && this.verificationData.welfareJson.length > 0) {
|
||||
this.formData.welfareJson = this.verificationData.welfareJson
|
||||
} else {
|
||||
this.formData.welfareJson = []
|
||||
}
|
||||
console.log(this.verificationData)
|
||||
console.log(this.verificationData)
|
||||
this.correctSubmissionDialog = true
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 无误提交
|
||||
*/
|
||||
correctSubmission(){
|
||||
correctSubmission() {
|
||||
if (this.formData.feedbackNum !== this.totalCount) {
|
||||
this.$message.warning('反馈人数与实际反馈人数不一致,无法提交;如有疑问,请联系校工会')
|
||||
this.$message.warning("反馈人数与实际反馈人数不一致,无法提交;如有疑问,请联系校工会")
|
||||
return
|
||||
}
|
||||
|
||||
let data = clone(this.formData)
|
||||
if (this.formData.welfareJson && this.formData.welfareJson.length > 0) {
|
||||
data.welfareJson = this.formData.welfareJson.map(v => ({
|
||||
...v,
|
||||
chooseNumber: v.chooseNumber || 0
|
||||
}));
|
||||
|
||||
const totalChooseNumber = data.welfareJson.reduce((sum, item) => sum + item.chooseNumber, 0);
|
||||
if (totalChooseNumber !== this.totalCount) {
|
||||
this.$message.warning('上报的福利选择人数与当前需核对人数不一致,无法提交;如有疑问,请联系校工会')
|
||||
return
|
||||
}
|
||||
data.welfareJson = JSON.stringify(data.welfareJson)
|
||||
}
|
||||
|
||||
|
||||
let data = clone(this.formData)
|
||||
if (this.formData.welfareJson && this.formData.welfareJson.length > 0) {
|
||||
data.welfareJson = this.formData.welfareJson.map((v) => ({
|
||||
...v,
|
||||
chooseNumber: v.chooseNumber || 0
|
||||
}))
|
||||
|
||||
const totalChooseNumber = data.welfareJson.reduce((sum, item) => sum + item.chooseNumber, 0)
|
||||
if (totalChooseNumber !== this.totalCount) {
|
||||
this.$message.warning("上报的福利选择人数与当前需核对人数不一致,无法提交;如有疑问,请联系校工会")
|
||||
return
|
||||
}
|
||||
data.welfareJson = JSON.stringify(data.welfareJson)
|
||||
}
|
||||
|
||||
if (data.feedbackFiles) {
|
||||
data.feedbackFiles = JSON.stringify(data.feedbackFiles)
|
||||
}
|
||||
data.verificationProjectId = this.pageForm.verificationProjectId
|
||||
|
||||
this.$axios.post('/platform/member/branchUnion/verification/check/correctSubmission',{
|
||||
data: JSON.stringify(data)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.correctSubmissionDialog = false
|
||||
this.pageData()
|
||||
this.validateSubmitButton()
|
||||
this.formData = {}
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
})
|
||||
|
||||
this.$axios
|
||||
.post("/platform/member/branchUnion/verification/check/correctSubmission", {
|
||||
data: JSON.stringify(data)
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.correctSubmissionDialog = false
|
||||
this.pageData()
|
||||
this.validateSubmitButton()
|
||||
this.formData = {}
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 变更数据查看
|
||||
* @param row
|
||||
*/
|
||||
openChangeInfo(row){
|
||||
this.$refs.guava.public( () => {
|
||||
this.$refs.memberVerificationChangeRef.onOpen({id:row.userId,projectId:this.pageForm.verificationProjectId})
|
||||
openChangeInfo(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.$refs.memberVerificationChangeRef.onOpen({ id: row.userId, projectId: this.pageForm.verificationProjectId })
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 撤销变更
|
||||
*/
|
||||
revokeChange(row){
|
||||
this.$confirm('确定要撤销变更吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const formData = new FormData()
|
||||
formData.userId = row.userId
|
||||
formData.verificationProjectId = this.pageForm.verificationProjectId
|
||||
this.$axios.post('/platform/member/branchUnion/verification/check/branchUnionRevokeChange',{
|
||||
data: JSON.stringify(formData)
|
||||
}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
revokeChange(row) {
|
||||
this.$confirm("确定要撤销变更吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
const formData = new FormData()
|
||||
formData.userId = row.userId
|
||||
formData.verificationProjectId = this.pageForm.verificationProjectId
|
||||
this.$axios
|
||||
.post("/platform/member/branchUnion/verification/check/branchUnionRevokeChange", {
|
||||
data: JSON.stringify(formData)
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.warning(res.msg)
|
||||
}
|
||||
})
|
||||
})
|
||||
}).catch(() => {
|
||||
});
|
||||
.catch(() => {})
|
||||
},
|
||||
// 基本信息查看
|
||||
openView(row) {
|
||||
@@ -391,24 +432,26 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
openChange(row) {
|
||||
if (row.currentState == 2){
|
||||
if (row.currentState == 2) {
|
||||
// 该条记录校工会核对时已通过,您确定要继续变更吗?
|
||||
this.$confirm('该条记录校工会核对时已通过,您确定要继续变更吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.openChangeNext(row)
|
||||
}).catch(e => {
|
||||
console.log('取消'+e)
|
||||
});
|
||||
this.$confirm("该条记录校工会核对时已通过,您确定要继续变更吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
})
|
||||
.then(() => {
|
||||
this.openChangeNext(row)
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log("取消" + e)
|
||||
})
|
||||
} else {
|
||||
this.openChangeNext(row)
|
||||
}
|
||||
},
|
||||
openChangeNext(row){
|
||||
openChangeNext(row) {
|
||||
this.userId = row.userId
|
||||
const data = this.verificationList.find(v => v.id === row.verificationProjectId)
|
||||
const data = this.verificationList.find((v) => v.id === row.verificationProjectId)
|
||||
this.$refs.guava.edit(() => {
|
||||
this.$refs.memberChangeRef.verificationInit({
|
||||
renewFields: data.renewFields,
|
||||
@@ -425,7 +468,7 @@ layout("/layouts/platform.html"){
|
||||
// })
|
||||
},
|
||||
getVerificationList() {
|
||||
this.$axios.post("/platform/member/branchUnion/verification/check/getVerificationList").then(res => {
|
||||
this.$axios.post("/platform/member/branchUnion/verification/check/getVerificationList").then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.verificationList = res.data
|
||||
if (this.verificationList.length > 0) {
|
||||
@@ -437,7 +480,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
},
|
||||
changeSuccess(){
|
||||
changeSuccess() {
|
||||
this.$refs.guava.index()
|
||||
this.doSearch()
|
||||
},
|
||||
@@ -453,8 +496,8 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
},
|
||||
changeProject(){
|
||||
this.doSearch();
|
||||
changeProject() {
|
||||
this.doSearch()
|
||||
this.validateSubmitButton()
|
||||
},
|
||||
flushUnits() {
|
||||
@@ -468,31 +511,32 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
//校验提交按钮是否能使用
|
||||
validateSubmitButton() {
|
||||
this.$axios.post('/platform/member/branchUnion/verification/check/validateSubmitButton',{
|
||||
verificationProjectId: this.pageForm.verificationProjectId
|
||||
}).then(res=>{
|
||||
if (res.code === 0) {
|
||||
const data = res.data
|
||||
this.buttonData.disableSubmit = data.buttonStatus
|
||||
this.buttonData.buttonContent = data.buttonContent
|
||||
this.buttonData.submitCountContent = data.submitCountContent
|
||||
this.buttonData.isFeedback = data.isFeedback
|
||||
} else {
|
||||
this.buttonData.disableSubmit = false
|
||||
}
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
this.$axios.post("/platform/member/branchUnion/verification/check/pageData", this.pageForm)
|
||||
this.$axios
|
||||
.post("/platform/member/branchUnion/verification/check/validateSubmitButton", {
|
||||
verificationProjectId: this.pageForm.verificationProjectId
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
// if (!this.totalCount) {
|
||||
// this.totalCount = res.data.totalCount
|
||||
// }
|
||||
this.totalCount = res.data.totalCount
|
||||
const data = res.data
|
||||
this.buttonData.disableSubmit = data.buttonStatus
|
||||
this.buttonData.buttonContent = data.buttonContent
|
||||
this.buttonData.submitCountContent = data.submitCountContent
|
||||
this.buttonData.isFeedback = data.isFeedback
|
||||
} else {
|
||||
this.buttonData.disableSubmit = false
|
||||
}
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
this.$axios.post("/platform/member/branchUnion/verification/check/pageData", this.pageForm).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
// if (!this.totalCount) {
|
||||
// this.totalCount = res.data.totalCount
|
||||
// }
|
||||
this.totalCount = res.data.totalCount
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
+3
-3
@@ -24,8 +24,8 @@ const MEMBER_AUDIT_TABLE = {
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
@@ -109,7 +109,7 @@ const MEMBER_AUDIT_TABLE = {
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ const MEMBER_CHANGE = {
|
||||
:disabled="allowFields('userState')"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="人事编制">
|
||||
<el-descriptions-item label="聘用方式">
|
||||
<el-form-item prop="preparedBy">
|
||||
<dict-select v-model="formData.preparedBy" code="PREPARED_BY" style="width: 100%"
|
||||
:disabled="allowFields('preparedBy')"></dict-select>
|
||||
|
||||
+11
-2
@@ -25,21 +25,30 @@
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="联系电话">{{ viewData.mobile }}</el-descriptions-item>
|
||||
<el-descriptions-item label="电子邮箱">{{ viewData.email }}</el-descriptions-item>
|
||||
<el-descriptions-item label="是否会员">{{ viewData.member ? '是' : '否' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="是否福利会员">{{ viewData.welfareMember ? '是' : '否' }}
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">会员信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="是否会员">
|
||||
<el-tag v-if="viewData.member===1" size="mini" type="success">是</el-tag>
|
||||
<el-tag v-else type="info" size="mini">否</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属单位">{{ viewData.unitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="所属分工会">{{ viewData.unionName }}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">学历信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="最高学历">{{ viewData.education }}</el-descriptions-item>
|
||||
<el-descriptions-item label="最高学位">{{ viewData.academicDegree }}</el-descriptions-item>
|
||||
<el-descriptions-item label=""></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">职称信息</div>
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="职称">{{ viewData.technicalTitle }}</el-descriptions-item>
|
||||
<el-descriptions-item label="职称级别">{{ viewData.technicalTitleLevel }}</el-descriptions-item>
|
||||
<el-descriptions-item label=""></el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div class="process-title">职务信息</div>
|
||||
|
||||
+4
-4
@@ -27,13 +27,13 @@ const MEMBER_MANAGE_QUERY = {
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="USER_PREPARED_BY_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
code="USER_PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="更新日期">
|
||||
<el-date-picker :picker-options="pickerOptions" @change="changeDateRangeChange"
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@ const MEMBER_MANAGE_TABLE = {
|
||||
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
|
||||
{ prop: "birthday", label: "出生年月", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||
|
||||
+2
-2
@@ -28,8 +28,8 @@ const MEMBER_RECORD = {
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="变更类型">
|
||||
|
||||
@@ -10,48 +10,48 @@ layout("/layouts/platform.html"){
|
||||
/*color: #ff0000;*/
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
.query-row {
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
.query-row:not(:last-child) {
|
||||
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||
}
|
||||
|
||||
|
||||
.query-row-title {
|
||||
width: 120px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
|
||||
.query-row > .query-title {
|
||||
width: 100px;
|
||||
max-width: 100px;
|
||||
min-width: 100px;
|
||||
overflow: hidden;
|
||||
width: 100px;
|
||||
max-width: 100px;
|
||||
min-width: 100px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.query-row > .query-content {
|
||||
min-width: 200px;
|
||||
overflow: hidden;
|
||||
min-width: 200px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.query-row > .query-content > .el-tag {
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 992px) {
|
||||
.query-row:nth-child(4) .query-content .el-col:not(:last-child) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.query-title {
|
||||
display: none;
|
||||
}
|
||||
.query-row:nth-child(4) .query-content .el-col:not(:last-child) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.query-title {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
@@ -63,132 +63,101 @@ layout("/layouts/platform.html"){
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="性别">
|
||||
<el-select v-model="pageForm.sexTypes" clearable multiple placeholder="性别">
|
||||
<el-option label="男" value="男"></el-option>
|
||||
<el-option label="女" value="女"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select
|
||||
clearable
|
||||
code="USER_STATE"
|
||||
multiple
|
||||
collapse-tags
|
||||
placeholder="请选择人员状态"
|
||||
v-model="pageForm.userStates"
|
||||
></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select
|
||||
clearable
|
||||
code="USER_PERSON_TYPE"
|
||||
multiple
|
||||
collapse-tags
|
||||
placeholder="请选择人员类型"
|
||||
v-model="pageForm.personTypes"
|
||||
></dict-select>
|
||||
</search-item>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select
|
||||
clearable
|
||||
code="USER_PREPARED_BY_TYPE"
|
||||
multiple
|
||||
collapse-tags
|
||||
placeholder="请选择聘用方式"
|
||||
v-model="pageForm.preparedBys"
|
||||
></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<el-row type="flex" align="middle" class="query-row" style="height: unset;padding: 10px 0">
|
||||
<el-col class="query-row-title">在职状态:</el-col>
|
||||
<el-col class="query-row-content" style="display: flex;flex-wrap: wrap;gap: 5px">
|
||||
<el-tag
|
||||
style="margin:0;cursor: pointer"
|
||||
v-for="item in userStateOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('userStates',item.name)">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
|
||||
<el-link type="danger"
|
||||
v-if="userStateOptions.length&&pageForm.userStates.length"
|
||||
:underline="false"
|
||||
@click="pageForm.userStates=[];doSearch()">清空
|
||||
</el-link>
|
||||
<el-link :underline="false"
|
||||
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
|
||||
type="success">全部
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" align="middle" class="query-row" style="height: unset;padding: 10px 0">
|
||||
<el-col class="query-row-title">教职工类别:</el-col>
|
||||
<el-col class="query-row-content" style="display: flex;flex-wrap: wrap;gap: 5px">
|
||||
<el-tag
|
||||
style="margin:0;cursor: pointer"
|
||||
v-for="item in personTypeOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.personTypes.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('personTypes',item.name)">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
|
||||
<el-link type="danger"
|
||||
v-if="personTypeOptions.length&&pageForm.personTypes.length"
|
||||
:underline="false"
|
||||
@click="pageForm.personTypes=[];doSearch()">清空
|
||||
</el-link>
|
||||
<el-link :underline="false"
|
||||
@click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()"
|
||||
type="success">全部
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" align="middle" class="query-row" style="height: unset;padding: 10px 0">
|
||||
<el-col class="query-row-title">聘用方式:</el-col>
|
||||
<el-col class="query-row-content" style="display: flex;flex-wrap: wrap;gap: 5px">
|
||||
<el-tag
|
||||
style="margin:0;cursor: pointer"
|
||||
v-for="item in preparedByOptions"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
:effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'"
|
||||
@click="tagClick('preparedBys',item.name)">
|
||||
{{ item.name }}
|
||||
</el-tag>
|
||||
|
||||
<el-link type="danger"
|
||||
v-if="preparedByOptions.length&&pageForm.preparedBys.length"
|
||||
:underline="false"
|
||||
@click="pageForm.preparedBys=[];doSearch()">清空
|
||||
</el-link>
|
||||
<el-link :underline="false"
|
||||
@click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()"
|
||||
type="success">全部
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="会员列表">
|
||||
<el-button type="primary" size="small" icon="el-icon-upload2" @click="openImport">导入会员</el-button>
|
||||
<el-button type="primary" v-if="$auth.hasRoleOr(['SYSADMIN','SCHOOL_UNION_ADMIN'])" size="small"
|
||||
icon="el-icon-time"
|
||||
@click="openArchive">备份历史会员
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-download"
|
||||
@click="exportMember">会员档案导出
|
||||
<el-button
|
||||
type="primary"
|
||||
v-if="$auth.hasRoleOr(['SYSADMIN','SCHOOL_UNION_ADMIN'])"
|
||||
size="small"
|
||||
icon="el-icon-time"
|
||||
@click="openArchive"
|
||||
>
|
||||
备份历史会员
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-download" @click="exportMember">会员档案导出</el-button>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder" :size="tableSize" class="vi-table">
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
min-width="50">
|
||||
</el-table-column>
|
||||
align="center"
|
||||
header-align="center"
|
||||
type="index"
|
||||
:index="indexMethod"
|
||||
label="序号"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
min-width="50"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column prop="userOnline" align="center" header-align="center"
|
||||
label="操作" fixed="right">
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" fixed="right" width="100px">
|
||||
<template scope="scope">
|
||||
<el-button size="mini" @click="openView(scope.row.id)">查看</el-button>
|
||||
<el-button size="mini" type="primary" @click="openView(scope.row.id)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -199,16 +168,16 @@ layout("/layouts/platform.html"){
|
||||
<template #view>
|
||||
<member-info ref="applyInfoRef"></member-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
|
||||
<archive-member ref="archiveMemberRef"></archive-member>
|
||||
|
||||
<el-dialog title="会员导入" :visible.sync="importDialog" width="50%"
|
||||
:close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<file-import ref="viewImport" temp_url="/platform/member/info/group/downloadMemberTemplate"
|
||||
post_url="/platform/member/info/group/importMember"
|
||||
@flush="successImport"
|
||||
<el-dialog title="会员导入" :visible.sync="importDialog" width="50%" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<file-import
|
||||
ref="viewImport"
|
||||
temp_url="/platform/member/info/group/downloadMemberTemplate"
|
||||
post_url="/platform/member/info/group/importMember"
|
||||
@flush="successImport"
|
||||
></file-import>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@@ -217,46 +186,46 @@ layout("/layouts/platform.html"){
|
||||
<!--#include("archiveMember.js"){}#-->
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
searchKeyword: '',
|
||||
unionId: '',
|
||||
unitId: '',
|
||||
searchKeyword: "",
|
||||
unionId: "",
|
||||
unitId: "",
|
||||
personTypes: [],
|
||||
preparedBys: [],
|
||||
userStates: [],
|
||||
cnd: ''
|
||||
cnd: ""
|
||||
},
|
||||
userId: "",
|
||||
unions: [],
|
||||
units: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'birthday', label: '出生年月', sortable: true},
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'idCard', label: '身份证号', width: 170},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: "preparedBy", label: "人事编制", sortable: true},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'unionName', label: '所属工会', sortable: true},
|
||||
{prop: 'unitName', label: '所属单位', sortable: true},
|
||||
{ prop: "loginname", label: "工号" },
|
||||
{ prop: "username", label: "姓名" },
|
||||
{ prop: "sex", label: "性别" },
|
||||
{ prop: "birthday", label: "出生年月", sortable: true },
|
||||
{ prop: "mobile", label: "联系电话" },
|
||||
{ prop: "idCard", label: "身份证号", width: 170 },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||
],
|
||||
personTypeOptions: [],
|
||||
preparedByOptions: [],
|
||||
userStateOptions: [],
|
||||
importDialog: false,
|
||||
importDialog: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'member-cnd': httpVueLoader('/components/module/member/MemberCnd.vue?v=' + new Date().getTime()),
|
||||
'file-import': httpVueLoader('/components/plugins/sysImport/index.vue?v=' + new Date().getTime()),
|
||||
'archive-member': ARCHIVE_MEMBER,
|
||||
'member-info': MEMBER_INFO,
|
||||
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime()),
|
||||
"file-import": httpVueLoader("/components/plugins/sysImport/index.vue?v=" + new Date().getTime()),
|
||||
"archive-member": ARCHIVE_MEMBER,
|
||||
"member-info": MEMBER_INFO
|
||||
},
|
||||
methods: {
|
||||
openImport() {
|
||||
@@ -265,43 +234,38 @@ layout("/layouts/platform.html"){
|
||||
successImport() {
|
||||
this.importDialog = false
|
||||
},
|
||||
tagClick(key, val) {
|
||||
let idx = this.pageForm[key].indexOf(val)
|
||||
if (idx !== -1) {
|
||||
this.pageForm[key].splice(idx, 1)
|
||||
} else {
|
||||
this.pageForm[key].push(val)
|
||||
}
|
||||
this.doSearch()
|
||||
},
|
||||
exportMember() {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
this.$downLoad(loc() + '/exportMember', pageForm)
|
||||
this.$downLoad(loc() + "/exportMember", pageForm)
|
||||
},
|
||||
openArchive() {
|
||||
this.$refs.archiveMemberRef.archiveDialogVisible = true
|
||||
},
|
||||
openView(userId) {
|
||||
this.$refs.guava.view(()=>{
|
||||
this.$refs.guava.view(() => {
|
||||
this.$refs.applyInfoRef.onOpen(userId)
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||
this.$axios.post(loc() + "/pageData", pageForm).then(data => {
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list;
|
||||
this.pageForm.totalCount = data.data.totalCount;
|
||||
} else {
|
||||
this.$message.error(data.msg);
|
||||
}
|
||||
})
|
||||
this.tableLoading = true
|
||||
this.$axios
|
||||
.post(loc() + "/pageData", {
|
||||
pageForm: JSON.stringify(this.pageForm)
|
||||
})
|
||||
.then((data) => {
|
||||
if (data.code === 0) {
|
||||
this.tableData = data.data.list
|
||||
this.pageForm.totalCount = data.data.totalCount
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
this.tableLoading = false
|
||||
})
|
||||
},
|
||||
async initData() {
|
||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
@@ -311,9 +275,9 @@ layout("/layouts/platform.html"){
|
||||
this.unions = await this.$businessTool.listUnion(store?.state.user.union.id)
|
||||
this.units = await this.$businessTool.listUnit(store?.state.user.union.id)
|
||||
}
|
||||
this.personTypeOptions = await this.$businessTool.getDictOptions('USER_STAFF_TYPE')
|
||||
this.preparedByOptions = await this.$businessTool.getDictOptions('USER_EMPLOYMENT_TYPE')
|
||||
this.userStateOptions = await this.$businessTool.getDictOptions('USER_STATE')
|
||||
this.personTypeOptions = await this.$businessTool.getDictOptions("USER_STAFF_TYPE")
|
||||
this.preparedByOptions = await this.$businessTool.getDictOptions("USER_EMPLOYMENT_TYPE")
|
||||
this.userStateOptions = await this.$businessTool.getDictOptions("USER_STATE")
|
||||
},
|
||||
async flushUnits() {
|
||||
this.$set(this.pageForm, "unitId", null)
|
||||
|
||||
@@ -8,9 +8,13 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="年度">
|
||||
<el-date-picker style="width: 100%" v-model="pageForm.year" value-format="yyyy"
|
||||
type="year" placeholder="选择年">
|
||||
</el-date-picker>
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
type="year"
|
||||
placeholder="选择年"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
@@ -19,57 +23,63 @@ layout("/layouts/platform.html"){
|
||||
<member-cnd @cnd="(v)=>pageForm={...pageForm,...v}"></member-cnd>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
<el-select clearable filterable placeholder="请选择" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch" code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
<search-item label="聘用方式">
|
||||
<dict-select
|
||||
v-model="pageForm.preparedBy"
|
||||
placeholder="聘用方式"
|
||||
@change="doSearch"
|
||||
code="USER_PREPARED_BY_TYPE"
|
||||
></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch" code="USER_PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="用户列表">
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary"
|
||||
size="small" @click="doExportByUnion">按分工会导出
|
||||
</el-button>
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary"
|
||||
size="small" @click="doExport">导出
|
||||
</el-button>
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary" size="small" @click="doExportByUnion">按分工会导出</el-button>
|
||||
<el-button icon="el-icon-printer" class="m10" type="primary" size="small" @click="doExport">导出</el-button>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
|
||||
class="vi-table" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column align="center" header-align="center" type="index"
|
||||
:index="indexMethod" label="序号"
|
||||
width="80px"></el-table-column>
|
||||
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" class="vi-table" ref="table" row-key="id" style="width: 100%">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
align="center"
|
||||
header-align="center"
|
||||
type="index"
|
||||
:index="indexMethod"
|
||||
label="序号"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
show-overflow-tooltip
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template slot-scope="{row}">
|
||||
@@ -88,51 +98,50 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
<!--#include("../../common/info/memberInfo.js"){}#-->
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
dicts: ['USER_STATE', 'PERSON_TYPE', 'MEMBER_CHANGE_TYPE'],
|
||||
dicts: ["USER_STATE", "PERSON_TYPE", "MEMBER_CHANGE_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
year: new Date().getFullYear() - 1 + "",
|
||||
memberSearchName: '',
|
||||
memberSearchKeyWord: ''
|
||||
memberSearchName: "",
|
||||
memberSearchKeyWord: ""
|
||||
},
|
||||
userId: "",
|
||||
unions: [],
|
||||
units: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号'},
|
||||
{prop: 'username', label: '姓名'},
|
||||
{prop: 'sex', label: '性别'},
|
||||
{prop: 'mobile', label: '联系电话'},
|
||||
{prop: 'userState', label: '在职状态', sortable: true},
|
||||
{prop: "preparedBy", label: "人事编制", sortable: true},
|
||||
{prop: 'personType', label: '人员类型', sortable: true},
|
||||
{prop: 'unionName', label: '所属工会', sortable: true},
|
||||
{prop: 'unitName', label: '所属单位', sortable: true},
|
||||
],
|
||||
{ prop: "loginname", label: "工号" },
|
||||
{ prop: "username", label: "姓名" },
|
||||
{ prop: "sex", label: "性别" },
|
||||
{ prop: "mobile", label: "联系电话" },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true }
|
||||
]
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'member-cnd': httpVueLoader('/components/module/member/MemberCnd.vue?v=' + new Date().getTime()),
|
||||
"member-info": MEMBER_INFO,
|
||||
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime()),
|
||||
"member-info": MEMBER_INFO
|
||||
},
|
||||
methods: {
|
||||
openView(row){
|
||||
openView(row) {
|
||||
this.$refs.guava.view(() => {
|
||||
this.$refs.memberInfoRef.onOpen(row.id)
|
||||
})
|
||||
},
|
||||
doExportByUnion(){
|
||||
this.$downLoad('/platform/member/info/history/doExportByUnion', { year: this.pageForm.year})
|
||||
doExportByUnion() {
|
||||
this.$downLoad("/platform/member/info/history/doExportByUnion", { year: this.pageForm.year })
|
||||
},
|
||||
doExport(){
|
||||
this.$downLoad('/platform/member/info/history/doExport', this.pageForm)
|
||||
doExport() {
|
||||
this.$downLoad("/platform/member/info/history/doExport", this.pageForm)
|
||||
},
|
||||
async initData() {
|
||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
@@ -151,7 +160,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
}
|
||||
},
|
||||
created(){
|
||||
created() {
|
||||
this.pageData()
|
||||
this.initData()
|
||||
}
|
||||
|
||||
+3
-3
@@ -19,8 +19,8 @@ const SCHOOL_VIEW_AND_HANDLE = {
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
@@ -140,7 +140,7 @@ const SCHOOL_VIEW_AND_HANDLE = {
|
||||
{ label: "工号", prop: "loginname" },
|
||||
{ label: "性别", prop: "sex" },
|
||||
{ label: "在职状态", prop: "userState" },
|
||||
{ label: "人事编制", prop: "preparedBy" },
|
||||
{ label: "聘用方式", prop: "preparedBy" },
|
||||
{ label: "人员类型", prop: "personType" },
|
||||
{ label: "所属单位", prop: "unitName" },
|
||||
{ label: "是否变更", prop: "isChanged" },
|
||||
|
||||
+3
-3
@@ -17,8 +17,8 @@ const VIEW_CHANGE_TYPE_USER = {
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
@@ -76,7 +76,7 @@ const VIEW_CHANGE_TYPE_USER = {
|
||||
{ prop: "loginname", label: "工号", sortable: true },
|
||||
{ prop: "username", label: "姓名", sortable: true },
|
||||
{ prop: "userState", label: "在职状态", sortable: true },
|
||||
{ prop: "preparedBy", label: "人事编制", sortable: true },
|
||||
{ prop: "preparedBy", label: "聘用方式", sortable: true },
|
||||
{ prop: "personType", label: "人员类型", sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", sortable: true },
|
||||
|
||||
+2
-2
@@ -32,8 +32,8 @@ const VERIFICATION_SET_USER_LIST = {
|
||||
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
|
||||
code="PERSON_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="变更类型">
|
||||
|
||||
+3
-3
@@ -26,8 +26,8 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
|
||||
<dict-select v-model="pageForm.userState" placeholder="在职状态" @change="doSearch"
|
||||
code="USER_STATE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人事编制">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="人事编制" @change="doSearch"
|
||||
<search-item label="聘用方式">
|
||||
<dict-select v-model="pageForm.preparedBy" placeholder="聘用方式" @change="doSearch"
|
||||
code="PREPARED_BY"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
@@ -43,7 +43,7 @@ const VERIFICATION_SHOW_SELECTION_USERS = {
|
||||
<el-table-column label="姓名" prop="username"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||
<el-table-column label="在职状态" prop="userState"></el-table-column>
|
||||
<el-table-column label="人事编制" prop="preparedBy"></el-table-column>
|
||||
<el-table-column label="聘用方式" prop="preparedBy"></el-table-column>
|
||||
<el-table-column label="人员类型" prop="personType"></el-table-column>
|
||||
<el-table-column label="所属工会" prop="unionName"></el-table-column>
|
||||
<el-table-column label="所属单位" prop="unitName"></el-table-column>
|
||||
|
||||
Reference in New Issue
Block a user