This commit is contained in:
Paidax
2025-09-25 09:10:15 +08:00
parent 5730478c79
commit 5fa9399d76
59 changed files with 1200 additions and 492 deletions
@@ -22,7 +22,7 @@
{{ 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.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="预计离退休时间">
@@ -128,7 +128,8 @@ module.exports = {
const loading = this.$loading({
lock: true,
text: "正在导入中请稍后...",
spinner: "el-icon-loading"
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)"
})
this.$axios.post(this.post_url, data).then((res) => {
loading.close()
@@ -102,7 +102,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 },
@@ -85,7 +85,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 },
@@ -120,7 +120,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 },
@@ -42,8 +42,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="USER_PREPARED_BY_TYPE"></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="USER_PERSON_TYPE"></dict-select>
@@ -245,7 +245,7 @@ layout("/layouts/platform.html"){
{ prop: "username", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true, width: "100px" },
{ 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 },
@@ -32,6 +32,7 @@ const COMMON_QUERY = {
</search-item>
</search>
`,
store,
mixins: [initTableMixins],
data() {
return{
@@ -50,28 +50,30 @@ const INFO = {
</el-descriptions-item>
<el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="家庭主要成员" :span="3">
<el-table v-if="viewData.families&&viewData.families.length"
:data="viewData.families" 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.vita" class="text-left" v-html="viewData.vita"></div>
<span v-else>无数据</span>
</el-descriptions-item>
<template v-if="viewData.loginname == $store.state.user.loginname">
<el-descriptions-item label="家庭主要成员" :span="3">
<el-table v-if="viewData.families&&viewData.families.length"
:data="viewData.families" 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-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="变更信息" name="changeInfo" v-if="viewData.changeInfos">
@@ -139,7 +139,7 @@ const MEMBER_CHANGE = {
:disabled="allowFields('userState')" 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="USER_PREPARED_BY_TYPE"
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
@@ -255,11 +255,15 @@ layout("/layouts/platform.html"){
},
async doSubmit(data) {
const resp = this.$axios.post("/platform/member/change/manage/doSubmitChange", data)
const loading = createLoading('正在提交中')
const resp = await this.$axios.post("/platform/member/change/manage/doSubmitChange", data)
loading.close()
if (resp.code === 0) {
this.$message.success(resp.msg)
this.$refs.guava.index()
this.pageData()
} else {
this.$message.error(resp.msg)
}
},
getChangeTypes(changeTypes){
@@ -62,7 +62,7 @@ layout("/layouts/platform.html"){
</el-table-column>
<el-table-column label="异动信息" header-align="center">
<el-table-column label="更新时间" prop="applyDateTime" min-width="145px"
<el-table-column label="更新时间" prop="changeTime" min-width="130px"
header-align="center"
sortable
align="center" show-overflow-tooltip>
@@ -88,7 +88,7 @@ layout("/layouts/platform.html"){
label="操作"
width="100px" fixed="right">
<template scope="{row}">
<el-button size="mini" type="primary" @click="openView(row.userId)">查看</el-button>
<el-button size="mini" type="primary" @click="openView(row)">查看</el-button>
</template>
</el-table-column>
</el-table>
@@ -27,8 +27,8 @@ 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"
<search-item label="编制类别">
<dict-select v-model="pageForm.preparedBy" placeholder="编制类别" @change="doSearch"
code="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="人员类型">
@@ -154,7 +154,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 }
@@ -8,8 +8,14 @@ layout("/layouts/platform.html"){
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="非会员列表"></table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table" row-key="id" style="width: 100%">
<table-tool label="非会员列表">
<el-button @click="doExport" size="mini" type="primary">导出</el-button>
<el-button :disabled="!selection || selection.length == 0"
@click="batchMake" size="mini" type="primary">批量设置为会员</el-button>
</table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" ref="table"
row-key="id" @selection-change="handleSelectionChange" style="width: 100%">
<el-table-column :reserve-selection="true" type="selection" width="55"></el-table-column>
<el-table-column :index="indexMethod" align="center" header-align="center"
label="序号" type="index" width="80px"></el-table-column>
<el-table-column :label="column.label"
@@ -30,6 +36,10 @@ layout("/layouts/platform.html"){
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<member-info ref="memberInfo"></member-info>
</template>
</guava>
</div>
<script>
@@ -44,29 +54,69 @@ layout("/layouts/platform.html"){
return {
pageForm: {},
tableColumns: [
{ prop: "loginName", label: "工号", sortable: true },
{ prop: "userName", label: "姓名", sortable: true },
{ prop: "loginname", label: "工号", sortable: true },
{ prop: "username", label: "姓名", sortable: true },
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "编制类", sortable: true },
{ prop: "preparedBy", label: "编制类", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
]
],
selection: [],
}
},
components: {
"common-query": COMMON_QUERY,
"member-info": MEMBER_INFO
},
methods: {
// 查看会员
openView() {
// 查看信息
openView(row) {
this.$refs.guava.view(() => {
this.$refs.memberInfo.onOpen(row.id)
})
},
// 单个设置会员
singleMake(row) {
const data = [row.id]
const msg = "确定将【" + row.username + "】设置为会员吗?"
this.setMemberFun(msg, data)
},
// 批量设置会员
batchMake() {
const msg = "确定将【" + this.selection.length + "】条数据设置为会员吗?"
const data = this.selection.map(item => item.id)
this.setMemberFun(msg, data)
},
setMemberFun(msg, data) {
this.$confirm(msg, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(async () => {
debugger
const loading = createLoading('正在提交中')
const resp = await this.$axios.post("/platform/member/info/batchMake/batchMake", {
userIds: JSON.stringify(data)
})
loading.close()
if (resp.code === 0) {
this.$message.success(resp.msg)
this.pageData()
this.selection = []
this.$refs.table.clearSelection()
} else {
this.$message.error(resp.msg)
}
})
},
doExport() {
},
handleSelectionChange(val){
this.selection = val;
},
search(pageForm) {
if (pageForm) {
@@ -18,20 +18,26 @@ const COMMON_QUERY = {
v-for="item in units"></el-option>
</el-select>
</search-item>
<search-item label="在职状态">
<search-item label="在职状态" v-if="!query_disable">
<dict-select v-model="pageForm.userStates" placeholder="在职状态" @change="doSearch"
code="USER_STATE" multiple collapse-tags></dict-select>
code="USER_STATE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="人事编制">
<dict-select v-model="pageForm.preparedBys" placeholder="人事编制" @change="doSearch"
code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>
</search-item>
<search-item label="人员类型">
<search-item label="人员类型" v-if="!query_disable">
<dict-select v-model="pageForm.personTypes" placeholder="人员类型" @change="doSearch"
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
</search-item>
</search>
`,
props: {
query_disable: {
type: Boolean,
default: false
}
},
mixins: [initTableMixins],
data() {
return{
@@ -59,7 +59,7 @@ layout("/layouts/platform.html"){
<div id="app">
<guava ref="guava">
<el-card shadow="never">
<common-query ref="commonQueryRef" @search="search"></common-query>
<common-query ref="commonQueryRef" @search="search" query_disable></common-query>
</el-card>
<el-card shadow="never">
@@ -208,7 +208,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "编制类", sortable: true },
{ prop: "preparedBy", label: "编制类", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true },
],
@@ -5,65 +5,7 @@ layout("/layouts/platform.html"){
<guava ref="guava">
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="姓名/工号">
<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>
</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>
</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>
<common-query ref="commonQueryRef" @search="search"></common-query>
</el-card>
<el-card shadow="never" class="mt10">
@@ -79,6 +21,37 @@ layout("/layouts/platform.html"){
备份历史会员
</el-button>
<el-button type="primary" size="small" icon="el-icon-download" @click="exportMember">会员档案导出</el-button>
<el-popover
placement="bottom"
trigger="click"
width="200">
<!-- 点击外部/空白自动关闭,无需额外代码 -->
<div style="padding:4px 0;">
<el-button type="text" size="mini" @click="checkAll">全选</el-button>
<el-button type="text" size="mini" @click="invertCheck">反选</el-button>
</div>
<el-checkbox-group v-model="checkedFields">
<el-checkbox
v-for="f in tableColumns"
:key="f.prop"
:label="f.prop"
style="display:block;margin:6px 0;">
{{ f.label }}
</el-checkbox>
</el-checkbox-group>
<!-- 触发器:文字按钮 -->
<el-button
slot="reference"
type="text"
icon="el-icon-s-operation"
size="small"
style="margin-left:12px;">
列设置
</el-button>
</el-popover>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
@@ -86,6 +59,7 @@ layout("/layouts/platform.html"){
align="center"
header-align="center"
type="index"
fixed="left"
:index="indexMethod"
label="序号"
width="80px"
@@ -95,7 +69,9 @@ layout("/layouts/platform.html"){
align="center"
header-align="center"
v-for="column in tableColumns"
v-if="checkedFields.includes(column.prop)"
:label="column.label"
:fixed="column.fixed"
:prop="column.prop"
:sortable="column.sortable"
:width="column.width"
@@ -113,7 +89,7 @@ layout("/layouts/platform.html"){
</template>
<template #view>
<member-info ref="applyInfoRef"></member-info>
<member-info ref="infoRef"></member-info>
</template>
</guava>
@@ -122,6 +98,7 @@ layout("/layouts/platform.html"){
<el-dialog title="会员导入" :visible.sync="importDialog" width="50%" :close-on-click-modal="false" :close-on-press-escape="false">
<file-import
ref="viewImport"
is_show_radio
temp_url="/platform/member/info/group/downloadMemberTemplate"
post_url="/platform/member/info/group/importMember"
@flush="successImport"
@@ -129,52 +106,57 @@ layout("/layouts/platform.html"){
</el-dialog>
</div>
<script>
<!--#include("archiveMember.js"){}#-->
<!--#include("../common/commonQuery.js"){}#-->
<!--#include("../../common/info/memberInfo.js"){}#-->
<!--#include("archiveMember.js"){}#-->
new Vue({
el: "#app",
mixins: [initTableMixins],
data() {
return {
pageForm: {
searchKeyword: "",
unionId: "",
unitId: "",
personTypes: [],
preparedBys: [],
userStates: [],
sexTypes: [],
totalCount: 0,
cnd: ""
},
userId: "",
unions: [],
units: [],
tableColumns: [
{ prop: "loginname", label: "工号" },
{ prop: "username", label: "姓名" },
{ prop: "sex", label: "性别" },
{ prop: "birthday", label: "出生年月", sortable: true },
{ prop: "mobile", label: "联系电话" },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "preparedBy", label: "聘用方式", sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
],
personTypeOptions: [],
preparedByOptions: [],
userStateOptions: [],
pageForm: {},
tableColumns: [
{ prop: "loginname", label: "工号", width: 120, fixed: "left"},
{ prop: "username", label: "姓名", width: 120, fixed: "left" },
{ prop: "sex", label: "性别", width: 120},
{ prop: "birthday", label: "出生年月", width: 120, sortable: true },
{ prop: "nationality", label: "国籍", width: 120, sortable: true, checked: 0 },
{ prop: "nation", label: "民族", width: 120, sortable: true},
{ prop: "mobile", label: "联系电话", width: 120 },
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
{ prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 },
{ prop: "idCard", label: "证件号码", width: 120, sortable: true, checked: 0 },
{ prop: "marriage", label: "婚姻状况", width: 120, sortable: true, checked: 0 },
{ prop: "jobCategory", label: "岗位类别", width: 120, sortable: true, checked: 0 },
{ prop: "professionalTitle", label: "职称", width: 120, sortable: true, checked: 0 },
{ prop: "professionalLevel", label: "职级", width: 120, sortable: true, checked: 0 },
{ prop: "employeeSource", label: "职工来源", width: 120, sortable: true, checked: 0 },
{ prop: "administrativeLevel", label: "行政级别(管理岗位)", width: 120, sortable: true, checked: 0 },
{ prop: "positionSeries", label: "岗位系列", width: 120, sortable: true, checked: 0 },
{ prop: "positionLevel", label: "岗级", width: 120, sortable: true, checked: 0 },
{ prop: "administrativePositionLevel", label: "行政岗级", width: 120, sortable: true, checked: 0 },
{ prop: "arrivalAtSchoolDate", label: "来校时间", width: 120, sortable: true, checked: 0 },
{ prop: "teachingTime", label: "从教年月", width: 120, sortable: true, checked: 0 },
{ prop: "expectedLeaveSchoolDate", label: "预计/最后离校时间", width: 120, sortable: true, checked: 0 },
],
checkedFields: [],
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-info": MEMBER_INFO,
"common-query": COMMON_QUERY,
},
methods: {
openImport() {
@@ -182,12 +164,14 @@ layout("/layouts/platform.html"){
},
successImport() {
this.importDialog = false
this.pageData()
},
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)
},
openArchive() {
@@ -195,9 +179,16 @@ layout("/layouts/platform.html"){
},
openView(userId) {
this.$refs.guava.view(() => {
this.$refs.applyInfoRef.onOpen(userId)
this.$refs.infoRef.onOpen(userId)
})
},
search(pageForm) {
this.pageForm = {
...this.pageForm,
...pageForm,
}
this.pageData()
},
pageData() {
this.tableLoading = true
const pageForm = clone(this.pageForm)
@@ -217,29 +208,23 @@ layout("/layouts/platform.html"){
this.tableLoading = false
})
},
async initData() {
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
this.unions = await this.$businessTool.listUnion(this.pageForm.unionId)
this.units = await this.$businessTool.listUnit()
} else {
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")
},
async flushUnits() {
this.$set(this.pageForm, "unitId", null)
this.units = []
if (this.pageForm.unionId) {
this.units = await this.$businessTool.listUnit(this.pageForm.unionId)
}
}
checkAll() {
this.checkedFields = this.tableColumns.map(c => c.prop);
},
invertCheck() {
const all = this.tableColumns.map(c => c.prop);
this.checkedFields = all.filter(p => !this.checkedFields.includes(p));
}
},
computed: {
showColumns() {
return this.tableColumns.filter(c => this.checkedFields.includes(c.prop));
}
},
created() {
this.checkedFields = this.tableColumns.filter(c => c.checked !== 0).map(c => c.prop);
this.pageData()
this.initData()
}
})
</script>
@@ -43,10 +43,10 @@ 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="聘用方式">
<search-item label="编制类别">
<dict-select
v-model="pageForm.preparedBy"
placeholder="聘用方式"
placeholder="编制类别"
@change="doSearch"
code="USER_PREPARED_BY_TYPE"
></dict-select>
@@ -120,7 +120,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别" },
{ prop: "mobile", label: "联系电话" },
{ 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 }
@@ -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="USER_PREPARED_BY_TYPE"></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" },
@@ -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="USER_PREPARED_BY_TYPE"></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 },
@@ -32,8 +32,8 @@ const VERIFICATION_SET_USER_LIST = {
<dict-select v-model="pageForm.personType" placeholder="人员类型" @change="doSearch"
code="USER_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="USER_PREPARED_BY_TYPE"></dict-select>
</search-item>
<search-item label="变更类型">
@@ -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="USER_PREPARED_BY_TYPE"></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>
@@ -47,7 +47,39 @@ layout("/layouts/platform.html"){
<el-option label="无工会" value="false"></el-option>
</el-select>
<el-button icon="el-icon-printer" type="primary" style="float: right" size="small" @click="doExport">导出</el-button>
<el-button icon="el-icon-printer" type="primary" size="small" @click="doExport">导出</el-button>
<el-popover
placement="bottom"
trigger="click"
width="200">
<!-- 点击外部/空白自动关闭,无需额外代码 -->
<div style="padding:4px 0;">
<el-button type="text" size="mini" @click="checkAll">全选</el-button>
<el-button type="text" size="mini" @click="invertCheck">反选</el-button>
</div>
<el-checkbox-group v-model="checkedFields">
<el-checkbox
v-for="f in tableColumns"
:key="f.prop"
:label="f.prop"
style="display:block;margin:6px 0;">
{{ f.label }}
</el-checkbox>
</el-checkbox-group>
<!-- 触发器:文字按钮 -->
<el-button
slot="reference"
type="text"
icon="el-icon-s-operation"
size="small"
style="margin-left:12px;">
列设置
</el-button>
</el-popover>
</table-tool>
<el-table
:data="tableData"
@@ -62,6 +94,7 @@ layout("/layouts/platform.html"){
align="center"
header-align="center"
type="index"
fixed="left"
:index="indexMethod"
label="序号"
width="80px"
@@ -71,9 +104,11 @@ layout("/layouts/platform.html"){
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
v-if="checkedFields.includes(column.prop)"
:label="column.label"
:prop="column.prop"
:width="column.width"
:fixed="column.fixed"
:sortable="column.sortable"
>
<template v-if="column.prop==='memberJoinTime'" scope="{row}">{{$moment(row.memberJoinTime).format('YYYY-MM-DD')}}</template>
@@ -83,7 +118,7 @@ layout("/layouts/platform.html"){
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="100px">
<el-table-column align="center" header-align="center" label="操作" width="100px" fixed="right">
<template scope="{row}">
<el-button size="mini" @click="openView(row.id)" type="primary">查看</el-button>
</template>
@@ -114,20 +149,38 @@ layout("/layouts/platform.html"){
units: [],
childrenData: {},
tableColumns: [
{ prop: "loginname", label: "工号", fixed: "left" },
{ prop: "username", label: "姓名", fixed: "left" },
{ prop: "sex", label: "性别" },
{ prop: "loginname", label: "工号", width: 120, fixed: "left"},
{ prop: "username", label: "姓名", width: 120, fixed: "left" },
{ prop: "sex", label: "性别", width: 120},
{ prop: "birthday", label: "出生年月", width: 120, sortable: true },
{ prop: "mobile", label: "联系电话" },
{ prop: "nationality", label: "国籍", width: 120, sortable: true, checked: 0 },
{ prop: "nation", label: "民族", width: 120, sortable: true},
{ prop: "mobile", label: "联系电话", width: 120 },
{ prop: "political", label: "政治面貌", width: 120, sortable: true},
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ prop: "identityType", label: "身份类型", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
{ prop: "arrivalAtSchoolDate", label: "来校年月", width: 120, sortable: true }
]
{ prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 },
{ prop: "idCard", label: "证件号码", width: 120, sortable: true, checked: 0 },
{ prop: "marriage", label: "婚姻状况", width: 120, sortable: true, checked: 0 },
{ prop: "jobCategory", label: "岗位类别", width: 120, sortable: true, checked: 0 },
{ prop: "professionalTitle", label: "职称", width: 120, sortable: true, checked: 0 },
{ prop: "professionalLevel", label: "职级", width: 120, sortable: true, checked: 0 },
{ prop: "employeeSource", label: "职工来源", width: 120, sortable: true, checked: 0 },
{ prop: "administrativeLevel", label: "行政级别(管理岗位)", width: 120, sortable: true, checked: 0 },
{ prop: "positionSeries", label: "岗位系列", width: 120, sortable: true, checked: 0 },
{ prop: "positionLevel", label: "岗级", width: 120, sortable: true, checked: 0 },
{ prop: "administrativePositionLevel", label: "行政岗级", width: 120, sortable: true, checked: 0 },
{ prop: "arrivalAtSchoolDate", label: "来校时间", width: 120, sortable: true, checked: 0 },
{ prop: "teachingTime", label: "从教年月", width: 120, sortable: true, checked: 0 },
{ prop: "expectedLeaveSchoolDate", label: "预计/最后离校时间", width: 120, sortable: true, checked: 0 },
],
checkedFields: []
}
},
components: {
@@ -142,12 +195,17 @@ layout("/layouts/platform.html"){
},
doExport() {
const pageForm = clone(this.pageForm)
pageForm.userIds = JSON.stringify(this.pageForm.userIds)
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
pageForm.sexTypes = JSON.stringify(this.pageForm.sexTypes)
pageForm.memberTypes = JSON.stringify(this.pageForm.memberTypes)
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
const data = this.tableColumns.filter(item => this.checkedFields.includes(item.prop)).map(item => {
return {prop: item.prop, label: item.label}
})
pageForm.columns = JSON.stringify(data)
this.$downLoad("/platform/member/statistics/comprehensive/doExport", pageForm)
},
search(pageForm) {
@@ -159,6 +217,7 @@ layout("/layouts/platform.html"){
},
pageData() {
const pageForm = clone(this.pageForm)
pageForm.userIds = JSON.stringify(this.pageForm.userIds)
pageForm.age = JSON.stringify(this.pageForm.age)
pageForm.unionId = JSON.stringify(this.pageForm.unionId)
pageForm.unitId = JSON.stringify(this.pageForm.unitId)
@@ -188,7 +247,22 @@ layout("/layouts/platform.html"){
this.$message.error(res.msg)
}
})
},
checkAll() {
this.checkedFields = this.tableColumns.map(c => c.prop);
},
invertCheck() {
const all = this.tableColumns.map(c => c.prop);
this.checkedFields = all.filter(p => !this.checkedFields.includes(p));
}
},
computed: {
showColumns() {
return this.tableColumns.filter(c => this.checkedFields.includes(c.prop));
}
},
mounted() {
this.checkedFields = this.tableColumns.filter(c => c.checked !== 0).map(c => c.prop);
}
})
</script>
@@ -1,59 +1,27 @@
const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
template: /*language=HTML*/ `
<el-card shadow="never">
<el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-title">年&emsp;&emsp;度:</el-col>
<el-col class="query-row-content" :span="12">
<el-row style="margin-left: 3px">
<el-date-picker @change="doSearch()"
style="width: 85%"
:picker-options="pickerOptions"
v-model="pageForm.year"
type="year"
value-format="yyyy"
placeholder="选择年" :clearable="false">
</el-date-picker>
<el-link type="primary" style="margin-left: 10px"
:underline="false"
@click="setNowYear();doSearch()">
本年
</el-link>
</el-row>
</el-col>
<el-row class="query-row">
<el-col class="query-row-title">姓名/工号:</el-col>
<el-col class="query-row-content" :span="12">
<el-row style="width: 92%">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
</el-row>
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-content">
<el-row>
<el-col :span="12">
<span>所属工会:</span>
<el-select placeholder="所属工会" v-model="pageForm.unionId"
clearable multiple style="margin-left: 33px;width: 80%"
@change="flushUnits();doSearch()"
@clear="flushUnits();doSearch()"
filterable>
<el-option v-for="item in unions" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-col>
<el-col :span="12">
<span>所属单位:</span>
<el-select placeholder="所属单位" v-model="pageForm.unitId"
clearable multiple style="margin-left: 33px;width: 80%" filterable>
<el-option v-for="item in units" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-col>
</el-row>
<el-select
clearable
v-model="pageForm.userIds"
filterable
remote
collapse-tags
placeholder="输入工号或者姓名查找"
:remote-method="queryUser"
@change="doSearch"
style="width: 100%"
multiple
>
<el-option v-for="o in userList" :label="o.username + '(' + o.loginname + ')'" :value="o.id"
:key="o.id"></el-option>
</el-select>
</el-col>
</el-row>
<el-row class="query-row">
<el-col class="query-row-title">性别:</el-col>
<el-col class="query-row-content">
@@ -69,6 +37,31 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">在职状态:</el-col>
<el-col class="query-row-content query-row-content-tag">
<el-tag
style="margin-right: 10px;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 query-row-tag">
<el-col class="query-row-title">人员类型:</el-col>
<el-col class="query-row-content query-row-content-tag">
@@ -119,31 +112,32 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
</el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-title">在职状态:</el-col>
<el-col class="query-row-content query-row-content-tag">
<el-tag
style="margin-right: 10px;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-row type="flex" align="middle" class="query-row">
<el-col class="query-row-content">
<el-row>
<el-col :span="12">
<span>所属工会:</span>
<el-select placeholder="所属工会" v-model="pageForm.unionId"
clearable multiple style="margin-left: 38px;width: 80%"
@change="flushUnits();doSearch()"
@clear="flushUnits();doSearch()"
filterable>
<el-option v-for="item in unions" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-col>
<el-col :span="12">
<span>所属单位:</span>
<el-select placeholder="所属单位" v-model="pageForm.unitId"
clearable multiple style="margin-left: 33px;width: 80%" filterable>
<el-option v-for="item in units" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row class="query-row" type="flex" align="middle">
<el-col class="query-row-title">出生日期:</el-col>
<el-col class="query-row-content">
@@ -202,7 +196,9 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
store,
data() {
return {
userList: [],
pageForm: {
userIds: [],
isUnit: "",
isUnion: "",
unionId: [],
@@ -247,6 +243,10 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
"member-cnd": httpVueLoader("/components/module/member/MemberCnd.vue?v=" + new Date().getTime())
},
methods: {
async queryUser(val) {
const resp = await $.get("/open/common/userOptions", {query: val})
this.userList = resp.data
},
determineEndDate() {
if (this.pageForm.startDate) {
if (Date.parse(this.pageForm.startDate) > Date.parse(this.pageForm.endDate)) {
@@ -310,7 +310,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
this.doSearch()
},
doReset() {
this.pageForm.userId = []
this.pageForm.userIds = []
this.pageForm.memberTypes = []
this.pageForm.sexTypes = []
this.pageForm.personTypes = []
@@ -133,20 +133,7 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-col>
</el-row>
<template v-if="isThreeUnit">
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="所属科室(人事关系)" prop="personnelRelationThreeUnitName">
<el-input v-model="formData.personnelRelationThreeUnitName" placeholder="请输入工号或姓名查询,查询后自动读取" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工会小组(人事关系)" prop="personnelRelationUnionGroupName">
<el-input v-model="formData.personnelRelationUnionGroupName" placeholder="请输入工号或姓名查询,查询后自动读取" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
</template>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="特殊人员类型" prop="specialStaffType">
@@ -179,35 +166,6 @@ layout("/layouts/platform.html"){
</el-form-item>
</el-col>
</el-row>
<template v-if="isThreeUnit">
<el-row :gutter="10">
<el-col :span=12>
<el-form-item label="所属科室(工会关系)" prop="unionRelationThreeUnitId">
<el-select
v-model="formData.unionRelationThreeUnitId"
filterable
clearable
:disabled="isView"
placeholder="请选择工会关系所属科室"
style="width: 100%"
@change="unionRelationThreeUnitChange"
>
<el-option
v-for="unit in threeUnits"
:key="unit.id"
:label="unit.name"
:value="unit.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span=12>
<el-form-item label="工会小组(工会关系)" prop="unionRelationUnionGroupName">
<el-input :value="formData.unionRelationUnionGroupName" placeholder="请选择工会关系所属科室,查询后自动读取" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
</template>
</template>
@@ -366,38 +324,18 @@ layout("/layouts/platform.html"){
}
},
unionRelationUnitChange(v) {
this.$set(this.formData, 'unionRelationThreeUnitId', null)
this.$set(this.formData, 'unionRelationUnionGroupName', null)
this.threeUnits = []
if (v) {
this.getThreeUnits(v)
}
const unit = this.units.find((item) => item.id === v)
if (unit) {
this.$set(this.formData, "unionRelationUnitId", unit.id)
this.$set(this.formData, "unionRelationUnitName", unit.name)
this.$set(this.formData, "unionRelationUnionId", unit.unionid)
this.$set(this.formData, "unionRelationUnionName", unit.unionname)
this.$set(this.formData, "unionRelationUnionId", unit.unionId)
this.$set(this.formData, "unionRelationUnionName", unit.unionName)
} else {
this.$set(this.formData, "unionRelationUnionId", null)
this.$set(this.formData, "unionRelationUnionName", null)
}
},
unionRelationThreeUnitChange(val) {
if (val) {
const threeUnit = this.threeUnits.find(v => v.id === val)
const groupName = threeUnit.groupname ? threeUnit.groupname : null
this.$set(this.formData, 'unionRelationThreeUnitId', threeUnit.id)
this.$set(this.formData, 'unionRelationThreeUnitName', threeUnit.name)
this.$set(this.formData, 'unionRelationUnionGroupId', threeUnit.uniongroupid)
this.$set(this.formData, 'unionRelationUnionGroupName', groupName)
} else {
this.$set(this.formData, 'unionRelationUnionGroupName', null)
}
},
async getThreeUnits(val) {
this.threeUnits = await threeUnitsByUnionGroupOrUnitId(val)
},
queryUser(keyWord, flag = true) {
if (!keyWord) {
return
@@ -428,7 +366,7 @@ layout("/layouts/platform.html"){
this.$set(this.pageForm, "unitId", null)
this.units = []
if (this.pageForm.unionId) {
this.unions = await getUnions()
this.units = this.$businessTool.listUnit(this.pageForm.unionId)
}
},
async initData() {
@@ -436,13 +374,10 @@ layout("/layouts/platform.html"){
this.specialStaffTypeList = data
})
this.unionRelationUnionOptions = await this.$businessTool.listUnion()
this.$businessTool.listUnit().then((data) => {
this.units = data
})
this.units = await this.$businessTool.listUnit()
},
},
async created() {
// this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true'
this.initData()
this.pageData()
},
@@ -84,7 +84,7 @@ const filterUser = {
v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="聘用方式">
<search-item label="编制类别">
<dict-select clearable code="USER_PREPARED_BY_TYPE"
multiple
collapse-tags
@@ -169,7 +169,7 @@ const filterUser = {
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "聘用方式", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -51,7 +51,7 @@ const selectedUser = {
{ label: "生日", prop: "birthday" },
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ label: "单位", prop: "welfareUnitName" },
{ label: "手机号", prop: "mobile" },
@@ -50,7 +50,7 @@ const unSelectedUser = {
{ label: "生日", prop: "birthday" },
{ prop: "userState", label: "在职状态", width: 120, sortable: true },
{ prop: "personType", label: "教职工类别", width: 120, sortable: true },
{ prop: "preparedBy", label: "聘用方式", width: 120, sortable: true },
{ prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true },
{ label: "单位", prop: "welfareUnitName" }
]
@@ -86,7 +86,7 @@ const addUser = {
v-model="pageForm.personTypes"></dict-select>
</search-item>
<search-item label="聘用方式">
<search-item label="编制类别">
<dict-select clearable code="USER_PREPARED_BY_TYPE"
multiple
collapse-tags
@@ -175,7 +175,7 @@ const addUser = {
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "聘用方式", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "unionName", label: "所属工会", sortable: true },
{ prop: "unitName", label: "所属单位", sortable: true }
@@ -98,7 +98,7 @@ layout("/layouts/platform.html"){
></dict-select>
</search-item>
<search-item label="聘用方式">
<search-item label="编制类别">
<dict-select
clearable
code="USER_PREPARED_BY_TYPE"
@@ -265,7 +265,7 @@ layout("/layouts/platform.html"){
{ prop: "sex", label: "性别", sortable: true, checked: 0 },
{ prop: "birthday", label: "出生日期", sortable: true, checked: 0 },
{ prop: "personType", label: "人员类型", sortable: true },
{ prop: "preparedBy", label: "聘用方式", sortable: true },
{ prop: "preparedBy", label: "编制类别", sortable: true },
{ prop: "userState", label: "在职状态", sortable: true },
{ prop: "welfareUnionName", label: "所属工会", sortable: true },
{ prop: "welfareUnitName", label: "所属单位", sortable: true },