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-col class="query-row-content"> <el-row type="flex" align="middle" class="query-row">
<el-row> <el-col class="query-row-content">
<el-col :span="12"> <el-row>
<span>所属工会:</span> <el-col :span="12">
<el-select placeholder="所属工会" v-model="pageForm.unionId" <span>所属工会:</span>
clearable multiple style="margin-left: 33px;width: 80%" <el-select placeholder="所属工会" v-model="pageForm.unionId"
@change="flushUnits();doSearch()" clearable multiple style="margin-left: 33px;width: 80%"
@clear="flushUnits();doSearch()" @change="flushUnits();doSearch()"
filterable> @clear="flushUnits();doSearch()"
<el-option v-for="item in unions" :label="item.name" filterable>
:value="item.id"></el-option> <el-option v-for="item in unions" :label="item.name"
</el-select> :value="item.id"></el-option>
</el-col> </el-select>
<el-col :span="12"> </el-col>
<span>所属单位:</span> <el-col :span="12">
<el-select placeholder="所属单位" v-model="pageForm.unitId" <span>所属单位:</span>
clearable multiple style="margin-left: 33px;width: 80%" filterable> <el-select placeholder="所属单位" v-model="pageForm.unitId"
<el-option v-for="item in units" :label="item.name" clearable multiple style="margin-left: 33px;width: 80%" filterable>
:value="item.id"></el-option> <el-option v-for="item in units" :label="item.name"
</el-select> :value="item.id"></el-option>
</el-col> </el-select>
</el-row> </el-col>
</el-col> </el-row>
</el-row> </el-col>
</el-row>
<el-row class="query-row">
<el-col class="query-row-title">性别:</el-col> <el-row class="query-row">
<el-col class="query-row-content query-row-content-tag"> <el-col class="query-row-title">性别:</el-col>
<el-tag <el-col class="query-row-content query-row-content-tag">
:effect="pageForm.sexTypes.includes(item.name)?'dark':'plain'" <el-tag
:key="item.code" :effect="pageForm.sexTypes.includes(item.name)?'dark':'plain'"
:type="item.name" :key="item.code"
@click="tagClick('sexTypes',item.name)" :type="item.name"
size="small" @click="tagClick('sexTypes',item.name)"
style="cursor: pointer;margin: 0;" size="small"
v-for="item in sexTypeOptions"> style="cursor: pointer;margin: 0;"
{{ item.name }} v-for="item in sexTypeOptions">
</el-tag> {{ item.name }}
</el-col> </el-tag>
</el-row> </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-row type="flex" align="middle" class="query-row query-row-tag">
<el-col class="query-row-content query-row-content-tag" <el-col class="query-row-title">人员类型:</el-col>
:style="{ height: personTypeExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }" <el-col class="query-row-content query-row-content-tag"
> :style="{ height: personTypeExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }"
<el-tag >
size="small" <el-tag
style="cursor: pointer;margin: 0;" size="small"
v-for="item in personTypeOptions" style="cursor: pointer;margin: 0;"
:key="item.code" v-for="item in personTypeOptions"
:type="item.name" :key="item.code"
:effect="pageForm.personTypes.includes(item.name)?'dark':'plain'" :type="item.name"
@click="tagClick('personTypes',item.name)"> :effect="pageForm.personTypes.includes(item.name)?'dark':'plain'"
{{ item.name }} @click="tagClick('personTypes',item.name)">
</el-tag> {{ item.name }}
</el-tag>
<el-link type="danger"
v-if="personTypeOptions.length&&pageForm.personTypes.length" <el-link type="danger"
:underline="false" v-if="personTypeOptions.length&&pageForm.personTypes.length"
@click="pageForm.personTypes=[];doSearch()">清空 :underline="false"
</el-link> @click="pageForm.personTypes=[];doSearch()">清空
<el-link :underline="false" </el-link>
@click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()" <el-link :underline="false"
type="success">全部 @click="pageForm.personTypes=personTypeOptions.map(p=>p.code);doSearch()"
</el-link> type="success">全部
</el-col> </el-link>
<el-col style="width: 40px"> </el-col>
<el-link type="primary" <el-col style="width: 50px">
:underline="false" <el-link type="primary"
@click="personTypeExtend = !personTypeExtend"> :underline="false"
{{personTypeExtend ? '收起' : '展开'}} @click="personTypeExtend = !personTypeExtend">
</el-link> <span v-if="!personTypeExtend">展开<i class="el-icon-caret-bottom"></i></span>
</el-col> <span v-if="personTypeExtend">收起<i class="el-icon-caret-top"></i></span>
</el-row> </el-link>
</el-col>
<el-row type="flex" align="middle" class="query-row query-row-tag"> </el-row>
<el-col class="query-row-title">人事编制:</el-col>
<el-col class="query-row-content query-row-content-tag"> <el-row type="flex" align="middle" class="query-row query-row-tag">
<el-tag <el-col class="query-row-title">人事编制:</el-col>
size="small" <el-col class="query-row-content query-row-content-tag">
style="cursor: pointer;margin: 0;" <el-tag
v-for="item in preparedByOptions" size="small"
:key="item.code" style="cursor: pointer;margin: 0;"
:type="item.name" v-for="item in preparedByOptions"
:effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'" :key="item.code"
@click="tagClick('preparedBys',item.name)"> :type="item.name"
{{ item.name }} :effect="pageForm.preparedBys.includes(item.name)?'dark':'plain'"
</el-tag> @click="tagClick('preparedBys',item.name)">
{{ item.name }}
<el-link type="danger" </el-tag>
v-if="preparedByOptions.length&&pageForm.preparedBys.length"
:underline="false" <el-link type="danger"
@click="pageForm.preparedBys=[];doSearch()">清空 v-if="preparedByOptions.length&&pageForm.preparedBys.length"
</el-link> :underline="false"
<el-link :underline="false" @click="pageForm.preparedBys=[];doSearch()">清空
@click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()" </el-link>
type="success">全部 <el-link :underline="false"
</el-link> @click="pageForm.preparedBys=preparedByOptions.map(p=>p.code);doSearch()"
</el-col> type="success">全部
</el-row> </el-link>
</el-col>
<el-row type="flex" align="middle" class="query-row query-row-tag"> </el-row>
<el-col class="query-row-title">在职状态:</el-col>
<el-col class="query-row-content query-row-content-tag" <el-row type="flex" align="middle" class="query-row query-row-tag">
:style="{ height: userStateExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }" <el-col class="query-row-title">在职状态:</el-col>
> <el-col class="query-row-content query-row-content-tag"
<el-tag :style="{ height: userStateExtend ? 'auto' : '24px', 'overflow-y': 'hidden' }"
size="small" >
style="cursor: pointer;margin: 0;" <el-tag
v-for="item in userStateOptions" size="small"
:key="item.code" style="cursor: pointer;margin: 0;"
:type="item.name" v-for="item in userStateOptions"
:effect="pageForm.userStates.includes(item.name)?'dark':'plain'" :key="item.code"
@click="tagClick('userStates',item.name)"> :type="item.name"
{{ item.name }} :effect="pageForm.userStates.includes(item.name)?'dark':'plain'"
</el-tag> @click="tagClick('userStates',item.name)">
{{ item.name }}
<el-link type="danger" </el-tag>
v-if="userStateOptions.length&&pageForm.userStates.length"
:underline="false" <el-link type="danger"
@click="pageForm.userStates=[];doSearch()">清空 v-if="userStateOptions.length&&pageForm.userStates.length"
</el-link> :underline="false"
<el-link :underline="false" @click="pageForm.userStates=[];doSearch()">清空
@click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()" </el-link>
type="success">全部 <el-link :underline="false"
</el-link> @click="pageForm.userStates=userStateOptions.map(p=>p.code);doSearch()"
</el-col> type="success">全部
<el-col style="width: 40px"> </el-link>
<el-link type="primary" </el-col>
:underline="false" <el-col style="width: 50px">
@click="userStateExtend = !userStateExtend"> <el-link type="primary"
{{userStateExtend ? '收起' : '展开'}} :underline="false"
</el-link> @click="userStateExtend = !userStateExtend">
</el-col> <span v-if="!userStateExtend">展开<i class="el-icon-caret-bottom"></i></span>
</el-row> <span v-if="userStateExtend">收起<i class="el-icon-caret-top"></i></span>
</el-link>
<el-row class="query-row" type="flex" align="middle"> </el-col>
<el-col class="query-row-title">出生日期:</el-col> </el-row>
<el-col class="query-row-content">
<el-date-picker <el-row class="query-row" type="flex" align="middle">
v-model="pageForm.startDate" <el-col class="query-row-title">出生日期:</el-col>
type="date" <el-col class="query-row-content">
@change="determineStartDate" <el-date-picker
placeholder="选择开始日期"> v-model="pageForm.startDate"
</el-date-picker> type="date"
<el-date-picker @change="determineStartDate"
v-model="pageForm.endDate" placeholder="选择开始日期">
type="date" </el-date-picker>
@change="determineEndDate" <el-date-picker
placeholder="选择结束日期"> v-model="pageForm.endDate"
</el-date-picker> type="date"
</el-col> @change="determineEndDate"
</el-row> placeholder="选择结束日期">
</el-date-picker>
<el-row class="query-row" type="flex" align="middle"> </el-col>
<el-col class="query-row-title">入会日期:</el-col> </el-row>
<el-col class="query-row-content">
<el-date-picker <el-row class="query-row" type="flex" align="middle">
v-model="pageForm.startJoinDate" <el-col class="query-row-title">入会日期:</el-col>
type="date" <el-col class="query-row-content">
@change="determineStartDate" <el-date-picker
placeholder="选择开始日期"> v-model="pageForm.startJoinDate"
</el-date-picker> type="date"
<el-date-picker @change="determineStartDate"
v-model="pageForm.endJoinDate" placeholder="选择开始日期">
type="date" </el-date-picker>
@change="determineEndDate" <el-date-picker
placeholder="选择结束日期"> v-model="pageForm.endJoinDate"
</el-date-picker> type="date"
</el-col> @change="determineEndDate"
</el-row> placeholder="选择结束日期">
</el-date-picker>
<el-row class="query-row" type="flex" align="middle"> </el-col>
<el-col class="query-row-title">离会日期:</el-col> </el-row>
<el-col class="query-row-content">
<el-date-picker <el-row class="query-row" type="flex" align="middle">
v-model="pageForm.startLeaveDate" <el-col class="query-row-title">离会日期:</el-col>
type="date" <el-col class="query-row-content">
@change="determineStartDate" <el-date-picker
placeholder="选择开始日期"> v-model="pageForm.startLeaveDate"
</el-date-picker> type="date"
<el-date-picker @change="determineStartDate"
v-model="pageForm.endLeaveDate" placeholder="选择开始日期">
type="date" </el-date-picker>
@change="determineEndDate" <el-date-picker
placeholder="选择结束日期"> v-model="pageForm.endLeaveDate"
</el-date-picker> type="date"
</el-col> @change="determineEndDate"
</el-row> placeholder="选择结束日期">
</el-date-picker>
<el-row class="query-row" type="flex" align="middle"> </el-col>
<el-col class="query-row-title">年龄范围:</el-col> </el-row>
<el-col class="query-row-content">
<el-row type="flex" style="align-items: center"> <el-row class="query-row" type="flex" align="middle">
<el-col :span="15"> <el-col class="query-row-title">年龄范围:</el-col>
<el-slider <el-col class="query-row-content">
v-model="pageForm.age" <el-row type="flex" style="align-items: center">
range <el-col :span="15">
show-stops <el-slider
:max="100"> v-model="pageForm.age"
</el-slider> range
</el-col> show-stops
<el-col :span="9" class="pl20"> :max="100">
当前范围:{{ pageForm.age }} </el-slider>
</el-col> </el-col>
</el-row> <el-col :span="9" class="pl20">
</el-col> 当前范围:{{ pageForm.age }}
</el-row> </el-col>
</el-row>
<el-row type="flex" align="middle" class="query-row"> </el-col>
<el-col class="query-row-title">模糊查询:</el-col> </el-row>
<el-col class="query-row-content">
<member-cnd @cnd="(v)=>pageForm={...pageForm,...v}"></member-cnd> <el-row type="flex" align="middle" class="query-row">
</el-col> <el-col class="query-row-title">模糊查询:</el-col>
</el-row> <el-col class="query-row-content">
<member-cnd @cnd="(v)=>pageForm={...pageForm,...v}"></member-cnd>
<el-row class="query-row" style="justify-content: end"> </el-col>
<el-checkbox v-model="pageForm.reverseSelection" label="是否反选" border </el-row>
@change="doSearch"
class="reverseCheckBox"></el-checkbox> <el-row class="query-row" style="justify-content: end">
<el-button type="danger" icon="el-icon-circle-close" @click="doReset">重置 <el-checkbox v-model="pageForm.reverseSelection" label="是否反选" border
</el-button> @change="doSearch"
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button> class="reverseCheckBox"></el-checkbox>
</el-row> <el-button type="danger" icon="el-icon-circle-close" @click="doReset">重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
</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: "",