Files
zhgh_hmc/src/main/resources/static/components/syr/syrtable.vue
T
2024-11-29 09:03:59 +08:00

263 lines
9.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<el-card shadow="never">
<div class="search">
<div class="search-item">
<div class="search-item-label yearDatePickerItemLabel" style="width: 100%;margin-right: 0">
<el-select v-model="yeartype" placeholder="年度类型"
style="width: 100%">
<el-option label="申报年度" value="sbyear"></el-option>
<el-option label="结题年度" value="jtyear"></el-option>
</el-select>
</div>
<div class="search-item-option yearDatePickerItemOption"
style="width: calc(100% - 160px);min-width:calc(100% - 160px)">
<el-date-picker
style="width: 100%"
v-model="page.year"
type="year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
<div class="search-item">
<div class="search-item-label">项目名称:</div>
<div class="search-item-option">
<el-input v-model="page.xmmc" clearable placeholder="请输入项目名称查询" style="width: 100%;" @keyup.enter.native="doSearch"></el-input>
</div>
</div>
<div class="search-item">
<div class="search-item-label">申报人</div>
<div class="search-item-option">
<el-input v-model="page.searchKeyword" clearable placeholder="请输入内容" @keyup.enter.native="doSearch">
<el-select slot="prepend" v-model="page.searchName" placeholder="查询类型"
style="width: 120px;">
<el-option label="申报人姓名" value="u.username"></el-option>
<el-option label="申报人工号" value="u.loginname"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="search-item" v-show="!hasNotghdwUrl.includes(request)">
<div class="search-item-label">院级工会</div>
<div class="search-item-option">
<el-select v-model="page.unionid" clearable filterable placeholder="请选择院级工会" @change="getUnitList()"
style="width: 100%">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div class="search-item" v-show="!hasNotghdwUrl.includes(request)">
<div class="search-item-label">单位</div>
<div class="search-item-option">
<el-select v-model="page.unitid" clearable filterable placeholder="请选择单位" style="width: 100%">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<slot name="search-group">
<!--不同页面的查询条件自定义-->
</slot>
<div class="search-query">
<el-button icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
</div>
<!--<template v-show="!hasNotghdwUrl.includes(request)">
<div class="btn-group tool-button mt5">
<el-select v-model="page.unionid" clearable filterable placeholder="请选择院级工会" @change="getUnitList()">
<el-option
v-for="item in unionList"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-select v-model="page.unitid" clearable filterable placeholder="请选择单位">
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</template>-->
</el-card>
<el-card class="mt10" shadow="never">
<vi-title2 title="选题列表">
<template #func>
<div v-if="!isshow" class="pull-right offscreen-right mt5">
<el-radio-group v-model="page.isAudit" class="mr10" @change="doSearch" size="small">
<el-radio-button :label="null">全部</el-radio-button>
<el-radio-button :label="true">{{ auditval }}</el-radio-button>
<el-radio-button :label="false">{{ auditval }}</el-radio-button>
</el-radio-group>
<slot name="right"></slot>
<!-- <el-button v-if="request==='/platfotm/syr/info/zqtb/pageData'"size="medium" @click="doDeleteUsers"><i class="ti-plus"></i> 一键提醒</el-button>-->
</div>
</template>
</vi-title2>
<el-table :data="data" @sort-change='pageOrder'>
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{ scope.$index + (page.pageNumber - 1) * page.pageSize + 1 }} </span></template>
</el-table-column>
<el-table-column label="项目名称" prop="xmmc" show-overflow-tooltip width="400"></el-table-column>
<el-table-column v-if="request==='/platfotm/syr/info/zqtb/pageData'" label="中期检查截止时间" prop="zqtbjzsj"
width="200"></el-table-column>
<el-table-column label="申报人" prop="username"></el-table-column>
<el-table-column label="性别" prop="sex" sortable width="100"></el-table-column>
<el-table-column label="申报单位" prop="dwname" show-overflow-tooltip sortable width="150"></el-table-column>
<el-table-column label="院级工会" prop="ghname" show-overflow-tooltip sortable width="150"></el-table-column>
<!-- <el-table-column label="职务职称" prop="zwzc" show-overflow-tooltip sortable width="100"></el-table-column>-->
<el-table-column label="立项资助金额(元)" prop="lxlevel" width="150"></el-table-column>
<el-table-column label="状态" prop="statename" sortable sortable width="200"></el-table-column>
<el-table-column label="申报日期" prop="sbrq" sortable sortable width="100"></el-table-column>
<slot name="operation"></slot>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
:current-page="page.pageNumber"
:page-size="page.pageSize"
:total="page.totalCount"
layout="total, prev, pager, next, jumper"
@current-change="pageNumberChange">
</el-pagination>
</el-row>
</el-card>
</div>
</template>
<script>
module.exports = {
data() {
return {
selection: [],
hasNotghdwUrl: ['/platfotm/syr/info/jtsq/pageData', '/platfotm/syr/info/mykt/pageData', '/platfotm/syr/info/zqtb/pageData'],
data: [],
unionList: [],
unitList: [],
page: {
yearType: 'sbyear',
year: moment().format('YYYY'),
isAudit: false,
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: '',
pageOrderBy: '',
searchName: 'u.username',
searchKeyword: '',
xmmc: '',
unitid: '',
unionid: ''
}
}
},
props: {
yeartype: {
type: String,
default: 'sbyear'
},
smm: {
type: 'Object',
default: () => {
return {
status: '',
request: '',
rowsel: false,
}
}
},
request: {
type: String
},
auditval: {
type: String
},
isshow: {
type: Boolean
}
},
methods: {
async pageData() {
this.page.yearType = this.yeartype
const {data} = await $.post(base + this.request, this.page, true)
this.data = data.list
this.page.totalCount = data.totalCount
},
pageOrder(column) {
this.page.pageOrderName = column.prop
this.page.pageOrderBy = column.order
this.pageData()
},
pageNumberChange(val) {
this.page.pageNumber = val
this.pageData()
},
doSearch() {
this.page.pageNumber = 1
this.pageData()
},
async getUnitList() {
this.page.unitid = ''
this.unitList = await getUnits(this.page.unionid)
}
},
watch: {
smm: {
handler(o) {
let that = this
if (o.status === 'table') {
that.pageData()
}
},
deep: true,
immediate: true
}
},
async created() {
await this.pageData()
this.unionList = await getUnions(null)
}
}
</script>
<style scoped>
.yearDatePickerItemLabel .el-select {
background-color: #f5f7fa;
color: #909399;
}
.yearDatePickerItemLabel .el-input__inner {
border-bottom-right-radius: unset;
border-top-right-radius: unset;
/*border-right: 0;*/
}
.yearDatePickerItemOption .el-input__inner {
border-bottom-left-radius: unset;
border-top-left-radius: unset;
border-left: 0;
}
</style>