This commit is contained in:
2026-09-09 16:16:22 +08:00
parent ebffbab428
commit ba3a985c40
3749 changed files with 29 additions and 608551 deletions
@@ -1,169 +0,0 @@
<style>
.el-descriptions__table {
table-layout: fixed !important;
}
.el-descriptions-item__cell {
text-align: center !important;
}
</style>
<template>
<div>
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
<el-tab-pane label="会议信息" name="1">
<el-descriptions class="margin-top" title="" :column="3" border>
<el-descriptions-item span="3">
<template slot="label">会议名称</template>
<div v-html="viewData.meeting_name"></div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">申请人</template>
<div v-html="viewData.username"></div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">申请时间</template>
<div v-html="viewData.create_time"></div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">所在单位</template>
<div v-html="viewData.unit_name"></div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">届次</template>
<div v-html="viewData.jdhallname"></div>
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label">审核状态</template>
<div :style="'color:'+viewData.color">{{ viewData.state_name }}</div>
</el-descriptions-item>
<el-descriptions-item span="3">
<template slot="label">会议议题</template>
<div class="text-left" v-html="viewData.meeting_topic"></div>
</el-descriptions-item>
<el-descriptions-item span="3">
<template slot="label">备注</template>
<div class="text-left" v-html="viewData.remark"></div>
</el-descriptions-item>
<el-descriptions-item span="3">
<template slot="label">附件</template>
<div class="text-left">
<file-upload v-if="viewData.files&&viewData.files.length"
:files="viewData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</div>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="院级党委意见" name="2" v-if="viewData.party_committee_id">
<el-form label-width="130px" style="padding: 20px 0">
<el-form-item label="审核信息&emsp;" label-width="135px" class="view-header"></el-form-item>
<el-row gutter="20">
<el-col :span="12">
<el-form-item label="审核人:">
{{ viewData.party_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核时间:">
{{ viewData.party_committee_time }}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="审核意见:">
{{ viewData.party_committee_opinion }}
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="校工会意见" name="3" v-if="viewData.school_union_id">
<el-descriptions class="margin-top" title="" :column="2" border>
<el-descriptions-item>
<template slot="label">批复人</template>
<div v-html="viewData.school_name"></div>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">批复时间</template>
<div v-html="viewData.school_union_time"></div>
</el-descriptions-item>
<el-descriptions-item span="2">
<template slot="label">批复意见</template>
<div v-html="viewData.school_union_opinion"></div>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane v-if="handle" :label="label" name="999">
<slot name="handle"></slot>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
module.exports = {
props: {
id: String,
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '批复'
},
panes: {
type: Array,
default: []
}
},
data() {
return {
activeName: '1',
loading: true,
viewData: {},
replyFiles: []
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
hasPane(name) {
if (!this.handle) {
return true
}
return this.panes.includes(name)
},
async getMeetingInfo(id) {
const {data} = await $.get(base + "/platform/jdh/level2/info/getMeetingInfo", {id})
return data
},
async openView(id) {
this.loading = true
this.viewData = await this.getMeetingInfo(id)
if (this.viewData) {
if (this.viewData.files) {
this.viewData.files = JSON.parse(this.viewData.files)
}
this.activeName = this.handle ? "999" : "1"
} else {
this.viewData = {}
this.$message.error("获取会议信息失败");
}
this.loading = false
}
}
}
</script>
<style>
</style>
@@ -1,92 +0,0 @@
<template>
<div>
<el-card shadow="never">
<div class="btn-group tool-button">
<el-input placeholder="请输入会议名称" clearable v-model="page.searchKeyword"
@keyup.enter.native="$emit('doSearch')">
</el-input>
</div>
<div class="btn-group tool-button">
<el-select clearable v-model="page.unionId" filterable placeholder="请选择工会" @change="unionChange">
<el-option
v-for="item in unionOptions"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-select clearable v-model="page.unitId" filterable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-button type="primary" icon="el-icon-search" @click="$emit('search')"></el-button>
</div>
<div class="pull-right offscreen-right" v-if="audit">
<el-radio-group v-model="page.isAudit" @change="auditChange">
<el-radio-button :label="null">全部</el-radio-button>
<el-radio-button :label="true">已批复</el-radio-button>
<el-radio-button :label="false">未批复</el-radio-button>
</el-radio-group>
</div>
</el-card>
</div>
</template>
<script>
module.exports = {
props: {
page: {
type: Object,
default: {}
},
audit: {
type: Boolean,
default: true
},
isadmin: {
type: Boolean,
default: true
},
unionid: {
type: String,
default: ''
}
},
data() {
return {
unionOptions: [],
unitOptions: [],
}
},
methods: {
async unionChange(val) {
this.unitOptions = await getUnits(val)
},
async auditChange(val) {
if(val === null) {
delete this.page.isAudit
}
this.$emit('search')
},
},
async created() {
this.unionOptions = await getUnions()
if (!this.isadmin) {
this.unionOptions = [this.unionOptions.find(x => x.id === this.unionid)]
}
//this.unitOptions = await getUnits(null)
},
}
</script>
<style scoped>
</style>
@@ -1,71 +0,0 @@
<template>
<div>
<el-card shadow="never" class="mt20">
<el-table :data="table" style="width: 100%" row-key="id" @sort-change="(c)=>{$emit('page_order',c)}"
v-loading="loading">
<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="meeting_name" header-align="center" align="center" sortable show-overflow-tooltip
width="300px"></el-table-column>
<el-table-column label="会议时间" prop="meeting_time" header-align="center" align="center" sortable>
<template scope="{row:{meeting_time}}">
{{moment(meeting_time).format('YYYY-MM-DD')}}
</template>
</el-table-column>
<el-table-column label="届次" prop="jdhallname" header-align="center" align="center"></el-table-column>
<el-table-column label="申请人" prop="username" header-align="center" align="center"></el-table-column>
<el-table-column label="所在单位" prop="unit_name" header-align="center" align="center" sortable></el-table-column>
<el-table-column label="所在工会" prop="union_name" header-align="center" align="center" sortable></el-table-column>
<!-- <el-table-column label="正式代表人数" prop="official_delegate" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column label="教师代表人数" prop="teacher_delegate" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column label="列席代表人数" prop="attend_delegate" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column label="特邀代表人数" prop="special_delegate" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column label="有无选举事项" prop="have_elect" header-align="center" align="center">
<template scope="scope">
<i v-if="scope.row.have_elect" class="fa fa-circle text-success ml5">&emsp13;有</i>
<i v-if="!scope.row.have_elect" class="fa fa-circle text-danger ml5">&emsp13;无</i>
</template>
</el-table-column>-->
<el-table-column label="会议类型" prop="type" header-align="center" align="center" sortable></el-table-column>
<el-table-column label="申请时间" prop="create_time" header-align="center" align="center" sortable></el-table-column>
<el-table-column label="审核状态" prop="state_id" sortable header-align="center" align="center">
<template scope="scope">
<span :style="'color:'+scope.row.color">{{ scope.row.state_name }}</span>
</template>
</el-table-column>
<slot name="column"></slot>
</el-table>
<slot name="pagination"></slot>
</el-card>
</div>
</template>
<script>
module.exports = {
props: {
page: {
type: Object,
default: {}
},
table: {
type: Array,
default: []
},
loading: {
type: Boolean,
default: false
}
}
}
</script>
<style scoped>
</style>
@@ -1,146 +0,0 @@
<template>
<div>
<el-tabs tab-position="top" v-model="active">
<el-tab-pane label="基本信息" name="1">
<el-form label-width="130px" style="padding: 20px 0">
<vi-title title="基本信息"></vi-title>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="姓名:">
{{ dbData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别:">
{{ dbData.sex }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄:">
{{ age }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="民族:">
{{ dbData.mz }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="文化程度:">
{{ dbData.xl }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="政治面貌:">
{{ dbData.zzmm }}
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="8">
<el-form-item label="所在部门:">
{{ dbData.dwname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职称:">
{{ dbData.zc }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职务:">
{{ dbData.zw }}
</el-form-item>
</el-col>
</el-row>
<vi-title title="个人简历"></vi-title>
<div v-html="dbData.grjl"></div>
</el-form>
</el-tab-pane>
<el-tab-pane label="预选信息" name="2" v-if="dbData.rewards">
<el-form label-width="130px" style="padding: 20px 0">
<vi-title title="近几年奖惩情况"></vi-title>
<div v-html="dbData.rewards"></div>
<el-form-item label="附&emsp;&emsp;件" label-width="125px" class="view-header"></el-form-item>
<file-upload v-if="dbData.files&&dbData.files.length"
:files="dbData.files"
:view="true"></file-upload>
<span v-else>暂无</span>
</el-form>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
module.exports = {
data() {
return {
active: "1",
dbData: {}
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
async openView(id) {
const {data, code, msg} = await $.get("/platform/jdh/Common/findDbxx", {id})
if (code === 0) {
this.dbData = data
if (this.dbData.files) {
this.dbData.files = JSON.parse(data.files)
}
this.active = this.handle ? "999" : "1"
} else {
this.dbData = {}
this.$message.error("获取会议信息失败");
}
}
},
props: {
id: String,
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
panes: {
type: Array,
default: []
}
},
computed: {
age() {
if (this.dbData.birthday) {
let y1 = parseInt(this.dbData.birthday.split('-')[0])
let y2 = parseInt(moment().format('YYYY'))
return (y2 - y1) + '岁'
}
return ''
}
},
}
</script>
<style>
td {
text-align: center;
}
</style>
@@ -1,67 +0,0 @@
<template>
<table class="tabInfo">
<tr>
<td class="title">会议名称</td>
<td class="content" colspan="3">{{data.hyname}}</td>
</tr>
<tr>
<td class="title">所属院级工会</td>
<td class="content">{{data.unionname}}</td>
<td class="title">申请状态</td>
<td class="content">
<span class="text-primary" v-if="data.shzt===1">待校工会审核</span>
<span class="text-danger" v-if="data.shzt===2">拒绝</span>
<span class="text-success" v-if="data.shzt===3">通过</span>
</td>
</tr>
<tr>
<td class="title">填表人</td>
<td class="content">{{data.tbrname}}</td>
</tr>
<tr>
<td class="title">会议时间</td>
<td class="content">{{data.hysj}}</td>
<td class="title">会议地点</td>
<td class="content">{{data.hydd}}</td>
</tr>
<tr>
<td class="title" colspan="4">指导思想</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.zdsx"></div>
</td>
</tr>
<tr>
<td class="title" colspan="4">会议议题</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.hyyt"></div>
</td>
</tr>
<tr>
<td class="title" colspan="4">会议进程</td>
</tr>
<tr>
<td class="content" colspan="4" style="text-align: left">
<div v-html="data.hyjc"></div>
</td>
</tr>
</table>
</template>
<script>
module.exports = {
props:{
data:{
type:Object,
required:true
}
}
}
</script>
<style scoped>
</style>
@@ -1,74 +0,0 @@
<template>
<el-row>
<el-table :data="data">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope"><span>{{scope.$index+(pf.pageNumber - 1) * pf.pageSize + 1}} </span></template>
</el-table-column>
<el-table-column label="工号" prop="loginname"></el-table-column>
<el-table-column label="姓名" prop="username"></el-table-column>
<el-table-column label="性别" prop="sex"></el-table-column>
<el-table-column label="手机" prop="mobile"></el-table-column>
<el-table-column label="单位" >
<tempalate slot-scope="scope">
<span v-if="name==8">{{scope.row.dbunitname}}</span>
<span v-else>{{scope.row.dwname}}</span>
</tempalate>
</el-table-column>
<el-table-column label="身份">
<tempalate slot-scope="scope">
<span v-if="name==8">{{scope.row.rolename}}</span>
<span v-else>{{getSf(scope.row.sf)}}</span>
</tempalate>
</el-table-column>
</el-table>
</el-row>
</template>
<script>
module.exports = {
data(){
return{
tabname:this.name
}
},
props:{
data:{
type:Array,
default:()=>[]
},
name:{
type:Number
},
pf:{
type:Object,
default(){
return{
pageNumber:1,
pageSize:10,
totalCount:0,
}
}
}
},
computed:{
getSf(){
return (sf)=>{
if(this.name==2){
return sf==1?'组员':'负责人'
}else if(this.name==3){
return sf==1?'组员':sf==2?'副组长':sf==3?'组长':''
}else if(this.name==4){
return sf==1?'成员':sf==2?'副秘书长':sf==3?'秘书长':''
}else if(this.name==5){
return sf==1?'成员':sf==2?'副主任':sf==3?'主任':''
}
}
}
}
}
</script>
<style scoped>
</style>