first commit

This commit is contained in:
2026-09-20 15:46:34 +08:00
parent 72fb5eae10
commit e558339dcc
3340 changed files with 671310 additions and 251 deletions
@@ -0,0 +1,506 @@
<template>
<el-tabs v-model="activeName" tab-position="top">
<el-tab-pane label="基本信息" name="1">
<el-card>
<table class="table table-bordered">
<tr>
<td class="text-center" colspan="6" style="font-size: 20px;">
{{ kt.jbxx.xmmc }}
<el-tooltip content="点我可以导出申报表" effect="dark" placement="top-start">
<i class="el-icon-tickets text-primary pointer"
@click="()=>{ window.open(base+'/platform/syr/common/exportlxsbs?id='+this.kt.jbxx.id)}">
</i>
</el-tooltip>
</td>
</tr>
<tr>
<td class="td-title" width="11.1%">姓名</td>
<td class="td-content" width="22.2%">{{ kt.jbxx.username }}</td>
<td class="td-title" width="11.1%">性别</td>
<td td-content width="22.2%">{{ kt.jbxx.sex }}</td>
<td class="td-title" width="11.1%">出生年月</td>
<td td-content width="22.2%">{{ kt.jbxx.birthday }}</td>
</tr>
<tr>
<td class="td-title">职务/职称</td>
<td td-content>{{ kt.jbxx.zwzc }}</td>
<td class="td-title">学历/学位</td>
<td td-content>{{ kt.jbxx.xlxw }}</td>
<td class="td-title">所在单位</td>
<td td-content>{{ kt.jbxx.dwname }}</td>
</tr>
<tr>
<td class="td-title">办公电话</td>
<td td-content>{{ kt.jbxx.bgphone }}</td>
<td class="td-title">手机</td>
<td td-content>{{ kt.jbxx.mobile }}</td>
<td class="td-title">电子信箱</td>
<td td-content>{{ kt.jbxx.email }}</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
项目组成员
</td>
</tr>
<tr>
<td colspan="6" style="padding:0!important;border-top: none">
<table class="table table-bordered">
<tr>
<td>姓名</td>
<td>职称</td>
<td>学历</td>
<td>工作单位</td>
</tr>
<tr v-for="o in kt.jbxx.xmzcy">
<td>{{ o.username }}</td>
<td>{{ o.zc }}</td>
<td>{{ o.xl }}</td>
<td>{{ o.gzdw }}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
项目研究基础及条件
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left" v-html="kt.jbxx.yjjctj"></div>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
项目预期成果及应用推广价值
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left" v-html="kt.jbxx.yqcgtgjz"></div>
</td>
</tr>
</table>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>20" label="院级工会初审信息" name="2">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">审核人</label>
<div class="item-content">{{ kt.jbxx.stbmghfzr }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核时间</label>
<div class="item-content">{{ kt.jbxx.stbmghshsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核意见</label>
<div class="item-content">{{ kt.jbxx.stbmghyj }}</div>
</div>
<div class="clearfix">
<label class="item-label"> 签字</label>
<div class="item-content">
<el-image :src="kt.jbxx.stbmghfzrqz" style="width: 200px;height:auto"></el-image>
</div>
</div>
</div>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>30" label="校工会初审信息" name="3">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">审核人</label>
<div class="item-content">{{ kt.jbxx.stxghfzr }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核时间</label>
<div class="item-content">{{ kt.jbxx.stxghshsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核意见</label>
<div class="item-content">{{ kt.jbxx.stxghyj }}</div>
</div>
<div class="clearfix">
<label class="item-label"> 签字</label>
<div class="item-content">
<el-image :src="kt.jbxx.stxghfzrqz" style="width: 200px;height:auto"></el-image>
</div>
</div>
</div>
</el-card>
</el-tab-pane>
<!--# if(@shiro.hasRole('superadmin') || @shiro.hasRole('A06')){ #-->
<el-tab-pane v-if="kt.jbxx.state>=40" label="评委立项评审信息" name="4">
<el-row :gutter="10" class="mb10" type="flex">
<el-col :span="12">
<el-card class="box-card-syr" shadow="never">
<div slot="header" class="clearfix">
<span>建议立项率(建议立项数/已审数)</span>
</div>
<div id="jylxDiv" class="text-center" style="height: 300px;width: 500px"></div>
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card-syr" shadow="never">
<div slot="header" class="clearfix">
<span>立项等次</span>
</div>
<div id="lxlevelDiv" class="text-center" style="height: 300px;width: 500px"></div>
</el-card>
</el-col>
</el-row>
<div>
<el-card>
<table class="table table-bordered">
<tr>
<td width="10%">评委姓名</td>
<td width="10%">评委工号</td>
<td width="10%">是否建议立项</td>
<td width="10%">立项等次</td>
<td width="30%">评审意见</td>
<td width="20%">评审时间</td>
<td width="10%">是否评审</td>
</tr>
<tr v-for="o in kt.lxpsxx">
<td>{{ o.username }}</td>
<td>{{ o.loginname }}</td>
<td>{{ o.isjylx === 1 ? '√' : o.isjylx === 0 ? '×' : '' }}</td>
<td>{{ o.lxlevel ? o.lxlevel + '元' : '' }}</td>
<td>
<div style="max-height: 100px;overflow-y: auto">
{{ o.psyj }}
</div>
</td>
<td>{{ o.pssj }}</td>
<td>
<i :class="o.pssj==null?'text-danger el-icon-circle-close':'text-success el-icon-circle-check'">
{{ o.pssj == null ? '未审' : '已审' }}
</i>
</td>
</tr>
</table>
</el-card>
</div>
</el-tab-pane>
<!--# } #-->
<el-tab-pane v-if="kt.jbxx.state>50" label="校工会立项评审信息" name="5">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">审核人</label>
<div class="item-content">{{ kt.jbxx.lxusername }}</div>
</div>
<div class="clearfix">
<label class="item-label">立项审核时间</label>
<div class="item-content">{{ kt.jbxx.lxsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">立项结果</label>
<div class="item-content">{{ kt.jbxx.lxresult ? '立项' : '不予立项' }}</div>
</div>
<div class="clearfix">
<label class="item-label">立项等次</label>
<div class="item-content">{{ kt.jbxx.lxlevel }}元</div>
</div>
</div>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>60 && kt.jbxx.lxresult===1" label="中期检查提醒" name="6">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">提醒时间</label>
<div class="item-content">{{ kt.jbxx.zqtbtxsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">截止时间</label>
<div class="item-content">{{ kt.jbxx.zqtbjzsj }}</div>
</div>
</div>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>70 && kt.jbxx.lxresult===1" label="中期检查表" name="7">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label" style="width: 200px">项目的进展情况及存在的问题</label>
<div class="item-content" style="margin-left: 200px">{{ kt.jbxx.zqxmjzqk }}</div>
</div>
<div class="clearfix">
<label class="item-label" style="width: 200px">经费预算明细</label>
<div class="item-content" style="margin-left:200px">{{ kt.jbxx.zqjfysmx }}</div>
</div>
<div class="clearfix">
<label class="item-label" style="width: 200px">备注</label>
<div class="item-content" style="margin-left:200px">{{ kt.jbxx.zqbz }}</div>
</div>
<div class="clearfix">
<label class="item-label" style="width: 200px">附件</label>
<div class="item-content" style="margin-left:200px">
<div class="pointer"
@click="()=>{window.location.href=base+'/platform/syr/common/exportzqjcb?id='+this.kt.jbxx.id}">
<svg id="icon-yunpanlogo-2" height="20" viewBox="0 0 1024 1024" width="20">
<path
d="M902.095238 314.514286V853.333333a97.52381 97.52381 0 0 1-97.523809 97.52381H219.428571a97.52381 97.52381 0 0 1-97.523809-97.52381V170.666667a97.52381 97.52381 0 0 1 97.523809-97.52381h441.295239z"
fill="#4997D9"></path>
<path d="M571.245714 720.944762h50.956191L707.047619 449.340952h-50.95619l-84.845715 271.60381z"
fill="#FFFFFF"></path>
<path
d="M660.72381 265.752381V73.142857l241.371428 241.371429h-192.609524a48.761905 48.761905 0 0 1-48.761904-48.761905z"
fill="#4B80CB"></path>
<path d="M622.201905 720.944762h-50.956191l-84.601904-237.470476h50.71238l84.845715 237.470476z"
fill="#FFFFFF"></path>
<path d="M401.798095 720.944762h50.956191l84.601904-237.470476h-50.71238l-84.845715 237.470476z"
fill="#FFFFFF"></path>
<path d="M452.754286 720.944762h-50.956191L316.952381 449.340952h50.95619l84.845715 271.60381z"
fill="#FFFFFF"></path>
</svg>
中期检查表.docx
</div>
</div>
</div>
</div>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>80 && kt.jbxx.lxresult===1" label="中期审核信息" name="8">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">审核人</label>
<div class="item-content">{{ kt.jbxx.zqxghfzr }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核时间</label>
<div class="item-content">{{ kt.jbxx.zqxghshsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">审核意见</label>
<div class="item-content">{{ kt.jbxx.zqxghyj }}</div>
</div>
</div>
</el-card>
</el-tab-pane>
<el-tab-pane v-if="kt.jbxx.state>90 && kt.jbxx.lxresult===1" label="结题报告" name="9">
<el-card>
<table class="table table-bordered">
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
项目研究实践的主要内容及方法
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left">{{ kt.jtbgs.zynr }}</div>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
成果自我评价及应用范围或取得的社会效益
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left">{{ kt.jtbgs.zwpjshxy }}</div>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
主要成果介绍
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left">{{ kt.jtbgs.zycgjs }}</div>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
经费使用情况
</td>
</tr>
<tr>
<td colspan="6">
<div class="text-left">{{ kt.jtbgs.jfsyqk }}</div>
</td>
</tr>
<tr>
<td class="text-center" colspan="6"
style="font-size: 15px;border-top: 1px solid #e3e6f3;">
研究成果及佐证材料文件
</td>
</tr>
<tr>
<td colspan="6">
<div v-for="o in kt.yjcgfj" class="pointer text-left"
@click="dd3s.download(o.filepath,o.filename)">
<svg id="icon-yunpanlogo-2" height="20" viewBox="0 0 1024 1024" width="20">
<path
d="M902.095238 314.514286V853.333333a97.52381 97.52381 0 0 1-97.523809 97.52381H219.428571a97.52381 97.52381 0 0 1-97.523809-97.52381V170.666667a97.52381 97.52381 0 0 1 97.523809-97.52381h441.295239z"
fill="#4997D9"></path>
<path d="M571.245714 720.944762h50.956191L707.047619 449.340952h-50.95619l-84.845715 271.60381z"
fill="#FFFFFF"></path>
<path
d="M660.72381 265.752381V73.142857l241.371428 241.371429h-192.609524a48.761905 48.761905 0 0 1-48.761904-48.761905z"
fill="#4B80CB"></path>
<path d="M622.201905 720.944762h-50.956191l-84.601904-237.470476h50.71238l84.845715 237.470476z"
fill="#FFFFFF"></path>
<path d="M401.798095 720.944762h50.956191l84.601904-237.470476h-50.71238l-84.845715 237.470476z"
fill="#FFFFFF"></path>
<path d="M452.754286 720.944762h-50.956191L316.952381 449.340952h50.95619l84.845715 271.60381z"
fill="#FFFFFF"></path>
</svg>
{{ o.filename }}
</div>
</td>
</tr>
</table>
</el-card>
</el-tab-pane>
<!--# if(@shiro.hasRole('superadmin') || @shiro.hasRole('A06')){ #-->
<el-tab-pane v-if="kt.jbxx.state>=100 && kt.jbxx.lxresult===1" label="评委结题评审信息"
name="10">
<el-row :gutter="10" class="mb10" type="flex">
<el-col :span="12">
<el-card class="box-card-syr">
<div slot="header" class="clearfix">
<span>通过比例(通过数/已审数)</span>
</div>
<div id="passDiv" class="text-center" style="height: 300px;width: 500px"></div>
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card-syr">
<div slot="header" class="clearfix">
<span>优秀比例(优秀数/通过数)</span>
</div>
<div id="goodDiv" class="text-center" style="height: 300px;width: 500px"></div>
</el-card>
</el-col>
</el-row>
<div>
<el-card>
<table class="table table-bordered">
<tr>
<td width="10%">评委姓名</td>
<td width="10%">评委工号</td>
<td width="10%">是否通过</td>
<td width="10%">是否优秀</td>
<td width="20%">评审时间</td>
<td width="30%">评审建议</td>
<td width="10%">是否评审</td>
</tr>
<tr v-for="o in kt.jtpsxx">
<td>{{ o.username }}</td>
<td>{{ o.loginname }}</td>
<td>{{ o.ispass === 1 ? '√' : o.ispass === 0 ? '×' : '' }}</td>
<td>{{ o.isgood === 1 ? '√' : o.isgood === 0 ? '×' : '' }}</td>
<td>{{ o.pssj }}</td>
<td>
<div style="max-height: 100px;overflow-y: auto">
{{ o.psjy }}
</div>
</td>
<td>
<i :class="o.pssj==null?'text-danger el-icon-circle-close':'text-success el-icon-circle-check'">
{{ o.pssj == null ? '未审' : '已审' }}
</i>
</td>
</tr>
</table>
</el-card>
</div>
</el-tab-pane>
<!--# } #-->
<el-tab-pane v-if="kt.jbxx.state>110 && kt.jbxx.lxresult===1" label="校工会结题评审信息"
name="11">
<el-card>
<div class="item">
<div class="clearfix">
<label class="item-label">评审人</label>
<div class="item-content">{{ kt.jbxx.jtxghfzr }}</div>
</div>
<div class="clearfix">
<label class="item-label">评审时间</label>
<div class="item-content">{{ kt.jbxx.jtxghshsj }}</div>
</div>
<div class="clearfix">
<label class="item-label">是否通过</label>
<div class="item-content">{{ kt.jbxx.ispass ? '是' : '否' }}</div>
</div>
<div v-if="kt.jbxx.ispass===1" class="clearfix">
<label class="item-label">是否优秀</label>
<div class="item-content">{{ kt.jbxx.isgood ? '是' : '否' }}</div>
</div>
</div>
</el-card>
</el-tab-pane>
<!--handle 主要是审核操作-->
<slot name="handle"></slot>
</el-tabs>
</template>
<script>
module.exports = {
props: {
activeName: {
type: String,
default: '1'
}
},
data() {
return {
kt: {
jbxx: {},
lxpsxx: {},
jtpsxx: {},
jtbgs: {},
yjcgfj: []
}
}
},
methods: {
async openView(id, activeName = '1') {
const resp = await $.get(base + '/platform/syr/common/findOne', {id})
this.activeName = activeName
if (resp.code === 0) {
this.$set(this, 'kt', resp.data)
this.kt.jbxx.xmzcy = JSON.parse(resp.data.jbxx.xmzcy)
// if (this.kt.jbxx.state >= 40 && this.smm.showpane.includes(4)) {
// this.initPwLxPsPlot()
// }
// if (this.kt.jbxx.state > 100 && this.kt.jbxx.lxresult === 1 && this.smm.showpane.includes(10)) {
// this.initPwJtPsPlot()
// }
}
}
}
}
</script>
<style scoped>
</style>
@@ -0,0 +1,345 @@
<template>
<transition name="el-zoom-in-center">
<div class="transition-item" v-show="smm.status==='detail'">
<el-card shadow="never" class="box-card">
<div slot="header" class="clearfix">
<el-button icon="el-icon-back" type="text" @click="changeStatus" style="font-size: 18px">返回</el-button>
</div>
</el-card>
</div>
</transition>
</template>
<script>
let passPlot = null
let goodPlot = null
let jylxPlot = null
let lxlevelPlot= null
module.exports = {
data() {
return {
kt: {
jbxx: {},
lxpsxx: {},
jtpsxx: {},
jtbgs: {},
yjcgfj: []
},
pwlxxxshow:false,
pwjtxxshow:false
}
},
props: {
smm:{
type:'Object',
default:()=>{
return{
status:'table',
id:'',
active:'1',
showpane:[1],
request:''
}
}
},
},
watch: {
smm(o) {
if(o.status==='detail'){
this.getData(o.id)
}
}
},
methods: {
changeStatus(){
this.smm.status = 'table'
this.$emit('update:smm', this.smm)
},
getData(val) {
$.get(base + '/platform/syr/common/findOne', {id: val}).then(res => {
if (res.code === 0) {
this.kt = res.data
this.kt.jbxx.xmzcy = JSON.parse(res.data.jbxx.xmzcy)
if (this.kt.jbxx.state >= 40 && this.smm.showpane.includes(4)) {
this.initPwLxPsPlot()
}
if (this.kt.jbxx.state > 100 && this.kt.jbxx.lxresult===1 && this.smm.showpane.includes(10)) {
this.initPwJtPsPlot()
}
}
})
},
initPwLxPsPlot() {
//已评审的
let ypsList = this.kt.lxpsxx.filter(o => o.pssj !== null)
if(ypsList.length>0){this.pwlxxxshow = true}
//建议立项的
let jylxList = this.kt.lxpsxx.filter(o => o.isjylx === 1)
this.$nextTick(()=>{
const jylxDiv = document.getElementById('jylxDiv')
const jylxChart = echarts.init(jylxDiv)
const value = (jylxList.length / ypsList.length) * 100;
console.log(value)
const option = {
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
series: [
{
name: 'Pressure',
type: 'gauge',
progress: {
show: true
},
detail: {
valueAnimation: true,
formatter: '{value}'
},
data: [
{
value: value,
name: '建议立项率'
}
]
}
]
};
jylxChart.setOption(option)
const level2List = this.kt.lxpsxx.filter(o=>{return o.lxlevel==='2000'})
const level3List = this.kt.lxpsxx.filter(o=>{return o.lxlevel==='3000'})
const level5List = this.kt.lxpsxx.filter(o=>{return o.lxlevel==='5000'})
let roleData = [{name:'2000元',value:level2List.length},{name:'3000元',value:level3List.length},{name:'5000元',value:level5List.length}]
const lxlevelChart = echarts.init(document.getElementById('lxlevelDiv'))
lxlevelChart.setOption({
legend: {
orient: 'vertical',
left: 'left'
},
tooltip: {
trigger: 'item'
},
series: [
{
name: '立项等次',
type: 'pie',
radius: '50%',
data: roleData,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
})
})
},
initPwJtPsPlot() {
//已评审的
let ypsList = this.kt.jtpsxx.filter(o => o.pssj !== null)
//通过的
let passList = this.kt.jtpsxx.filter(o => o.ispass === 1)
//优秀的
let goodList = this.kt.jtpsxx.filter(o => o.isgood === 1)
this.$nextTick(()=>{
const passChart = echarts.init(document.getElementById('passDiv'))
const passValue = (passList.length / ypsList.length ) * 100
passChart.setOption({
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
series: [
{
name: 'Pressure',
type: 'gauge',
progress: {
show: true
},
detail: {
valueAnimation: true,
formatter: '{value}'
},
data: [
{
value: passValue,
name: ''
}
]
}
]
})
const goodChart = echarts.init(document.getElementById('goodDiv'))
const goodValue = (goodList.length / passList.length ) * 100
goodChart.setOption({
tooltip: {
formatter: '{a} <br/>{b} : {c}%'
},
series: [
{
name: 'Pressure',
type: 'gauge',
progress: {
show: true
},
detail: {
valueAnimation: true,
formatter: '{value}'
},
data: [
{
value: goodValue,
name: ''
}
]
}
]
})
})
// if(passPlot){passPlot.destory()}
// this.$nextTick(()=>{
// passPlot = new G2Plot.Liquid(document.getElementById('passDiv'), {
// forceFit: false,
// width: 150,
// height: 150,
// min: 0,
// max: ypsList.length,
// value: passList.length,
// statistic: {
// formatter: (value) => ((100 * value) / ypsList.length).toFixed(1) + '%',
// }
// })
// passPlot.render()
// })
// if(goodPlot){goodPlot.destory()}
// this.$nextTick(()=>{
// goodPlot = new G2Plot.Liquid(document.getElementById('goodDiv'), {
// forceFit: false,
// width: 150,
// height: 150,
// min: 0,
// max: passList.length,
// value: goodList.length,
// statistic: {
// formatter: (value) => ((100 * value) / passList.length).toFixed(1) + '%',
// }
// })
// goodPlot.render()
// })
}
}
}
</script>
<style>
.td-title{
/*background-color: #EBEEF5;*/
}
.td-content{
color: gray;
}
.table-bordered > tbody > tr > td{
text-align: center;
}
.el-tab-pane {
height: 100%;
overflow-y: auto;
}
.el-collapse-item__header {
background-color: #317fca !important;
color: #fff !important;
padding-left: 10px !important;
height: 35px !important;
line-height: 35px !important;
font-size: 16px !important;
}
.table {
margin-bottom: 0px;
}
.table-bordered {
border: none !important;
}
.item-label {
width: 150px;
text-align: right;
vertical-align: middle;
float: left;
font-size: 14px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.item-label:after{
content: ':';
}
.item-content {
margin-left: 150px;
line-height: 40px;
position: relative;
font-size: 14px;
}
.level-span {
width: 20px;
height: 20px;
text-align: center;
display: inline-block;
border-radius: 10px;
}
.level-1 {
border: 1px solid #DC143C;
color: #DC143C;
}
.level-2 {
border: 1px solid #FF69B4;
color: #FF69B4;
}
.level-3 {
border: 1px solid #FF4500;
color: #FF4500;
}
.text-maxheight {
max-height: 200px;
overflow-y: auto;
}
.box-card-syr {
/*width: 50%;*/
/*margin: 10px;*/
}
</style>
@@ -0,0 +1,176 @@
<template>
<div>
<el-card shadow="never">
<div class="btn-group tool-button mt5">
<el-input v-model="pageForm.xmmc" placeholder="请输入项目名称查询" style="width: 250px;"></el-input>
</div>
<div class="btn-group tool-button mt5">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入内容" @keyup.enter.native="doSearch">
<el-select slot="prepend" v-model="pageForm.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 v-show="!hasNotghdwUrl.includes(request)" class="btn-group tool-button mt5">
<el-select v-model="pageForm.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>
<el-select v-model="pageForm.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>
<slot name="search-group">
<!--不同页面的查询条件自定义-->
</slot>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
<div v-if="!isshow" class="pull-right offscreen-right mt5">
<el-radio-group v-model="pageForm.isAudit" class="mr10" @change="doSearch">
<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>
</el-card>
<el-card class="mt10" shadow="never">
<el-table :data="data" @sort-change='pageOrder'>
<el-table-column align="center" header-align="center" label="序号" type="index">
<template scope="scope">
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.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" width="100"></el-table-column>
<el-table-column label="申报单位" prop="dwname" show-overflow-tooltip width="150"></el-table-column>
<el-table-column label="职务职称" prop="zwzc" width="100"></el-table-column>
<el-table-column label="状态" prop="statename" sortable width="200"></el-table-column>
<el-table-column label="申报日期" prop="sbrq" sortable width="100"></el-table-column>
<slot name="operation"></slot>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
:current-page="pageForm.pageNumber"
:page-size="pageForm.pageSize"
:total="pageForm.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: [],
pageForm: {
isAudit: false,
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: '',
pageOrderBy: '',
searchName: 'u.username',
searchKeyword: '',
xmmc: '',
unitid: '',
unionio: ''
}
}
},
props: {
smm: {
type: 'Object',
default: () => {
return {
status: '',
request: '',
rowsel: false,
}
}
},
request: {
type: String
},
auditval: {
type: String
},
isshow: {
type: Boolean
}
},
methods: {
async pageData() {
const {data} = await POST(base + this.request, this.pageForm, true)
this.data = data.list
this.pageForm.totalCount = data.totalCount
},
pageOrder(column) {
this.pageForm.pageOrderName = column.prop
this.pageForm.pageOrderBy = column.order
this.pageData()
},
pageNumberChange(val) {
this.pageForm.pageNumber = val
this.pageData()
},
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
},
async getUnitList() {
this.pageForm.unitid = ''
this.unitList = await getUnit(this.pageForm.unionid)
}
},
watch: {
smm: {
handler(o) {
let that = this
if (o.status === 'table') {
that.pageData()
}
},
deep: true,
immediate: true
}
},
async created() {
this.pageData()
this.unionList = await getUnion()
}
}
</script>
<style scoped>
</style>