This commit is contained in:
@jyuhsin
2025-11-04 15:47:20 +08:00
parent be2c2abb4f
commit 6dcf896f14
@@ -1,259 +1,272 @@
const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
template: /*language=HTML*/ ` template: /*language=HTML*/ `
<el-card shadow="never"> <el-card shadow="never">
<el-row type="flex" align="middle" class="query-row"> <div :style="{ height: rootExtend ? 'auto' : '60px', 'overflow-y': 'hidden' }">
<el-col class="query-row-title">年&emsp;&emsp;度:</el-col> <el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-content" :span="12"> <el-col class="query-row-title">年&emsp;&emsp;度:</el-col>
<el-row style="margin-left: 3px"> <el-col class="query-row-content" :span="12">
<el-date-picker @change="doSearch()" <el-row style="margin-left: 3px">
style="width: 85%" <el-date-picker @change="doSearch()"
:picker-options="pickerOptions" style="width: 85%"
v-model="pageForm.year" :picker-options="pickerOptions"
type="year" v-model="pageForm.year"
value-format="yyyy" type="year"
placeholder="选择年" :clearable="false"> value-format="yyyy"
</el-date-picker> placeholder="选择年" :clearable="false">
<el-link type="primary" style="margin-left: 10px" </el-date-picker>
:underline="false" <el-link type="primary" style="margin-left: 10px"
@click="setNowYear();doSearch()"> :underline="false"
本年 @click="setNowYear();doSearch()">
</el-link> 本年
</el-row> </el-link>
</el-col> </el-row>
<el-col class="query-row-title">姓名/工号:</el-col> </el-col>
<el-col class="query-row-content" :span="12"> <el-col class="query-row-title">姓名/工号:</el-col>
<el-row style="width: 92%"> <el-col class="query-row-content" :span="12">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input> <el-row style="width: 92%">
</el-row> <el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>
</el-col> </el-row>
</el-row> </el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row"> <el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-content"> <el-col class="query-row-content">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<span>所属工会:</span> <span>所属工会:</span>
<el-select placeholder="所属工会" v-model="pageForm.unionId" <el-select placeholder="所属工会" v-model="pageForm.unionId"
clearable multiple style="margin-left: 33px;width: 80%" clearable multiple style="margin-left: 33px;width: 80%"
@change="flushUnits();doSearch()" @change="flushUnits();doSearch()"
@clear="flushUnits();doSearch()" @clear="flushUnits();doSearch()"
filterable> filterable>
<el-option v-for="item in unions" :label="item.name" <el-option v-for="item in unions" :label="item.name"
:value="item.id"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<span>所属单位:</span> <span>所属单位:</span>
<el-select placeholder="所属单位" v-model="pageForm.unitId" <el-select placeholder="所属单位" v-model="pageForm.unitId"
clearable multiple style="margin-left: 33px;width: 80%" filterable> clearable multiple style="margin-left: 33px;width: 80%" filterable>
<el-option v-for="item in units" :label="item.name" <el-option v-for="item in units" :label="item.name"
:value="item.id"></el-option> :value="item.id"></el-option>
</el-select> </el-select>
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="query-row"> <el-row class="query-row">
<el-col class="query-row-title">性别:</el-col> <el-col class="query-row-title">性别:</el-col>
<el-col class="query-row-content query-row-content-tag"> <el-col class="query-row-content query-row-content-tag">
<el-tag <el-tag
:effect="pageForm.sexTypes.includes(item.name)?'dark':'plain'" :effect="pageForm.sexTypes.includes(item.name)?'dark':'plain'"
:key="item.code" :key="item.code"
:type="item.name" :type="item.name"
@click="tagClick('sexTypes',item.name)" @click="tagClick('sexTypes',item.name)"
size="small" size="small"
style="cursor: pointer;margin: 0;" style="cursor: pointer;margin: 0;"
v-for="item in sexTypeOptions"> v-for="item in sexTypeOptions">
{{ item.name }} {{ item.name }}
</el-tag> </el-tag>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag"> <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-title">人员类型:</el-col>
<el-col class="query-row-content query-row-content-tag" <el-col class="query-row-content query-row-content-tag"
:style="{ height: personTypeExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }" :style="{ height: personTypeExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }"
> >
<el-tag <el-tag
size="small" size="small"
style="cursor: pointer;margin: 0;" style="cursor: pointer;margin: 0;"
v-for="item in personTypeOptions" v-for="item in personTypeOptions"
:key="item.code" :key="item.code"
:type="item.name" :type="item.name"
:effect="pageForm.personTypes.includes(item.name)?'dark':'plain'" :effect="pageForm.personTypes.includes(item.name)?'dark':'plain'"
@click="tagClick('personTypes',item.name)"> @click="tagClick('personTypes',item.name)">
{{ item.name }} {{ item.name }}
</el-tag> </el-tag>
<el-link type="danger" <el-link type="danger"
v-if="personTypeOptions.length&&pageForm.personTypes.length" v-if="personTypeOptions.length&&pageForm.personTypes.length"
:underline="false" :underline="false"
@click="pageForm.personTypes=[];doSearch()">清空 @click="pageForm.personTypes=[];doSearch()">清空
</el-link> </el-link>
<el-link :underline="false" <el-link :underline="false"
@click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()" @click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()"
type="success">全部 type="success">全部
</el-link> </el-link>
</el-col> </el-col>
<el-col style="width: 40px"> <el-col style="width: 50px">
<el-link type="primary" <el-link type="primary"
:underline="false" :underline="false"
@click="personTypeExtend = !personTypeExtend"> @click="personTypeExtend = !personTypeExtend">
{{personTypeExtend ? '收起' : '展开'}} <span v-if="!personTypeExtend">展开<i class="el-icon-caret-bottom"></i></span>
</el-link> <span v-if="personTypeExtend">收起<i class="el-icon-caret-top"></i></span>
</el-col> </el-link>
</el-row> </el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag"> <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-title">人事编制:</el-col>
<el-col class="query-row-content query-row-content-tag"> <el-col class="query-row-content query-row-content-tag">
<el-tag <el-tag
size="small" size="small"
style="cursor: pointer;margin: 0;" style="cursor: pointer;margin: 0;"
v-for="item in preparedByOptions" v-for="item in preparedByOptions"
:key="item.code" :key="item.code"
:type="item.name" :type="item.name"
:effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'" :effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'"
@click="tagClick('preparedBys',item.name)"> @click="tagClick('preparedBys',item.name)">
{{ item.name }} {{ item.name }}
</el-tag> </el-tag>
<el-link type="danger" <el-link type="danger"
v-if="preparedByOptions.length&&pageForm.preparedBys.length" v-if="preparedByOptions.length&&pageForm.preparedBys.length"
:underline="false" :underline="false"
@click="pageForm.preparedBys=[];doSearch()">清空 @click="pageForm.preparedBys=[];doSearch()">清空
</el-link> </el-link>
<el-link :underline="false" <el-link :underline="false"
@click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()" @click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()"
type="success">全部 type="success">全部
</el-link> </el-link>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" align="middle" class="query-row query-row-tag"> <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-title">在职状态:</el-col>
<el-col class="query-row-content query-row-content-tag" <el-col class="query-row-content query-row-content-tag"
:style="{ height: userStateExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }" :style="{ height: userStateExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }"
> >
<el-tag <el-tag
size="small" size="small"
style="cursor: pointer;margin: 0;" style="cursor: pointer;margin: 0;"
v-for="item in userStateOptions" v-for="item in userStateOptions"
:key="item.code" :key="item.code"
:type="item.name" :type="item.name"
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'" :effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
@click="tagClick('userStates',item.name)"> @click="tagClick('userStates',item.name)">
{{ item.name }} {{ item.name }}
</el-tag> </el-tag>
<el-link type="danger" <el-link type="danger"
v-if="userStateOptions.length&&pageForm.userStates.length" v-if="userStateOptions.length&&pageForm.userStates.length"
:underline="false" :underline="false"
@click="pageForm.userStates=[];doSearch()">清空 @click="pageForm.userStates=[];doSearch()">清空
</el-link> </el-link>
<el-link :underline="false" <el-link :underline="false"
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()" @click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
type="success">全部 type="success">全部
</el-link> </el-link>
</el-col> </el-col>
<el-col style="width: 40px"> <el-col style="width: 50px">
<el-link type="primary" <el-link type="primary"
:underline="false" :underline="false"
@click="userStateExtend = !userStateExtend"> @click="userStateExtend = !userStateExtend">
{{userStateExtend ? '收起' : '展开'}} <span v-if="!userStateExtend">展开<i class="el-icon-caret-bottom"></i></span>
</el-link> <span v-if="userStateExtend">收起<i class="el-icon-caret-top"></i></span>
</el-col> </el-link>
</el-row> </el-col>
</el-row>
<el-row class="query-row" type="flex" align="middle"> <el-row class="query-row" type="flex" align="middle">
<el-col class="query-row-title">出生日期:</el-col> <el-col class="query-row-title">出生日期:</el-col>
<el-col class="query-row-content"> <el-col class="query-row-content">
<el-date-picker <el-date-picker
v-model="pageForm.startDate" v-model="pageForm.startDate"
type="date" type="date"
@change="determineStartDate" @change="determineStartDate"
placeholder="选择开始日期"> placeholder="选择开始日期">
</el-date-picker> </el-date-picker>
<el-date-picker <el-date-picker
v-model="pageForm.endDate" v-model="pageForm.endDate"
type="date" type="date"
@change="determineEndDate" @change="determineEndDate"
placeholder="选择结束日期"> placeholder="选择结束日期">
</el-date-picker> </el-date-picker>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="query-row" type="flex" align="middle"> <el-row class="query-row" type="flex" align="middle">
<el-col class="query-row-title">入会日期:</el-col> <el-col class="query-row-title">入会日期:</el-col>
<el-col class="query-row-content"> <el-col class="query-row-content">
<el-date-picker <el-date-picker
v-model="pageForm.startJoinDate" v-model="pageForm.startJoinDate"
type="date" type="date"
@change="determineStartDate" @change="determineStartDate"
placeholder="选择开始日期"> placeholder="选择开始日期">
</el-date-picker> </el-date-picker>
<el-date-picker <el-date-picker
v-model="pageForm.endJoinDate" v-model="pageForm.endJoinDate"
type="date" type="date"
@change="determineEndDate" @change="determineEndDate"
placeholder="选择结束日期"> placeholder="选择结束日期">
</el-date-picker> </el-date-picker>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="query-row" type="flex" align="middle"> <el-row class="query-row" type="flex" align="middle">
<el-col class="query-row-title">离会日期:</el-col> <el-col class="query-row-title">离会日期:</el-col>
<el-col class="query-row-content"> <el-col class="query-row-content">
<el-date-picker <el-date-picker
v-model="pageForm.startLeaveDate" v-model="pageForm.startLeaveDate"
type="date" type="date"
@change="determineStartDate" @change="determineStartDate"
placeholder="选择开始日期"> placeholder="选择开始日期">
</el-date-picker> </el-date-picker>
<el-date-picker <el-date-picker
v-model="pageForm.endLeaveDate" v-model="pageForm.endLeaveDate"
type="date" type="date"
@change="determineEndDate" @change="determineEndDate"
placeholder="选择结束日期"> placeholder="选择结束日期">
</el-date-picker> </el-date-picker>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="query-row" type="flex" align="middle"> <el-row class="query-row" type="flex" align="middle">
<el-col class="query-row-title">年龄范围:</el-col> <el-col class="query-row-title">年龄范围:</el-col>
<el-col class="query-row-content"> <el-col class="query-row-content">
<el-row type="flex" style="align-items: center"> <el-row type="flex" style="align-items: center">
<el-col :span="15"> <el-col :span="15">
<el-slider <el-slider
v-model="pageForm.age" v-model="pageForm.age"
range range
show-stops show-stops
:max="100"> :max="100">
</el-slider> </el-slider>
</el-col> </el-col>
<el-col :span="9" class="pl20"> <el-col :span="9" class="pl20">
当前范围:{{ pageForm.age }} 当前范围:{{ pageForm.age }}
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<el-row type="flex" align="middle" class="query-row"> <el-row type="flex" align="middle" class="query-row">
<el-col class="query-row-title">模糊查询:</el-col> <el-col class="query-row-title">模糊查询:</el-col>
<el-col class="query-row-content"> <el-col class="query-row-content">
<member-cnd @cnd="(v)=>pageForm={...pageForm,...v}"></member-cnd> <member-cnd @cnd="(v)=>pageForm={...pageForm,...v}"></member-cnd>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="query-row" style="justify-content: end"> <el-row class="query-row" style="justify-content: end">
<el-checkbox v-model="pageForm.reverseSelection" label="是否反选" border <el-checkbox v-model="pageForm.reverseSelection" label="是否反选" border
@change="doSearch" @change="doSearch"
class="reverseCheckBox"></el-checkbox> class="reverseCheckBox"></el-checkbox>
<el-button type="danger" icon="el-icon-circle-close" @click="doReset">重置 <el-button type="danger" icon="el-icon-circle-close" @click="doReset">重置
</el-button> </el-button>
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button> <el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
</el-row> </el-row>
</div>
<div class="mt10" style="text-align: center;">
<el-link type="primary"
:underline="false"
@click="rootExtend = !rootExtend">
<span v-if="!rootExtend" style="font-weight: bold">展开<i class="el-icon-caret-bottom"></i></span>
<span v-if="rootExtend" style="font-weight: bold">收起<i class="el-icon-caret-top"></i></span>
</el-link>
</div>
<!--<search @search="doSearch"> <!--<search @search="doSearch">
@@ -414,6 +427,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
return { return {
personTypeExtend: false, personTypeExtend: false,
userStateExtend: false, userStateExtend: false,
rootExtend: false,
pageForm: { pageForm: {
isUnit: "", isUnit: "",
isUnion: "", isUnion: "",