first commit
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
|
||||
.w-e-text-container {
|
||||
height: 500px !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
|
||||
<vi-title title="年度优秀社团申报(温馨提示:申报范围为当年年度考核结果为合格的教职工社团)"></vi-title>
|
||||
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" style="padding: 0 30px">
|
||||
<el-row gutter="30">
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开始年份" prop="applyStartYear" :rules="{required: true, message: '请选择开始年份', trigger: 'blur'}">
|
||||
<el-date-picker
|
||||
placeholder="请选择开始年份" :clearable="false"
|
||||
style="width: 100%" :disabled="isCanApply === false"
|
||||
type="year" v-model="formData.applyStartYear"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="结束年份" prop="applyEndYear" :rules="{required: true, message: '请选择结束年份', trigger: 'blur'}">
|
||||
<el-date-picker
|
||||
placeholder="请选择结束年份" :clearable="false"
|
||||
style="width: 100%" :disabled="isCanApply === false"
|
||||
type="year" v-model="formData.applyEndYear"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="8">
|
||||
<el-form-item label="社团名称" prop="clubId" :rules="{required: true, message: '请选择社团', trigger: 'blur'}">
|
||||
<el-select v-model="formData.clubId" placeholder="请选择社团" filterable clearable
|
||||
style="width: 100%" :disabled="isCanApply === false">
|
||||
<el-option
|
||||
v-for="item in clubList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="近两年获得的集体荣誉称号" prop="evaluateName"
|
||||
:rules="{required: true, message: '请填写近两年获得的集体荣誉称号', trigger: 'blur'}">
|
||||
<div id="evaluateName"></div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="近两年组织活动及完成情况" prop="yearActivity"
|
||||
:rules="{required: true, message: '请填写近两年年度组织活动及完成情况', trigger: 'blur'}">
|
||||
<div id="yearActivity"></div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item required label="附件上传" prop="files">
|
||||
<file-upload :files.sync="formData.files" card :max="5"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']">
|
||||
<template #el-upload__tip>
|
||||
|
||||
</template>
|
||||
</file-upload>
|
||||
<div class="el-upload__tip">可上传照片、视频、文档等资料</div>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<el-row class="mt20" justify="end" type="flex">
|
||||
<el-button v-if="GetQueryString('id') !== ''" @click="doBack">返回</el-button>
|
||||
<el-button :disabled="isCanApply === false" type="primary" @click="doHandle(true)">保存</el-button>
|
||||
<el-button :disabled="isCanApply === false" type="primary" @click="doHandle(false)">提交</el-button>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const E = window.wangEditor
|
||||
let evaluateName, yearActivity = null
|
||||
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
let validFiles = (rule, value, callback) => {
|
||||
if (!this.formData.files || this.formData.files.length === 0) {
|
||||
callback(new Error('请上传附件'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
return {
|
||||
formRules: {
|
||||
files: [{validator: validFiles, trigger: ['blur', 'change']}],
|
||||
},
|
||||
clubList: [],
|
||||
formData: {
|
||||
applyStartYear: '',
|
||||
applyEndYear: '',
|
||||
clubId: '',
|
||||
evaluateName: '',
|
||||
yearActivity: '',
|
||||
},
|
||||
isCanApply: true,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
||||
},
|
||||
methods: {
|
||||
doBack() {
|
||||
if (GetQueryString("id") !== '') {
|
||||
sublime.jumpPagePjax('/platform/sys/club/clubEvaluateMine')
|
||||
}
|
||||
},
|
||||
async doHandle(flag) {
|
||||
const valid = await this.$refs['form'].validate()
|
||||
if (valid) {
|
||||
const url = GetQueryString("id") !== '' ? '/platform/sys/club/clubEvaluateApply/doEdit' : '/platform/sys/club/clubEvaluateApply/doAdd'
|
||||
const resp = await $.post(url, {
|
||||
evaluate: JSON.stringify(this.formData),
|
||||
isSave: flag,
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
message: resp.msg,
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
sublime.jumpPagePjax('/platform/sys/club/clubEvaluateMine')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
async initData() {
|
||||
this.$set(this.formData, "applyStartYear", (new Date().getFullYear() - 1) + '')
|
||||
this.$set(this.formData, "applyEndYear", new Date().getFullYear() + '')
|
||||
const id = GetQueryString("id")
|
||||
$("#evaluateName").html("")
|
||||
$("#yearActivity").html("")
|
||||
this.$nextTick(() => {
|
||||
evaluateName = new E("#evaluateName")
|
||||
evaluateName.config.onchange = (html) => {
|
||||
this.formData.evaluateName = html
|
||||
}
|
||||
yearActivity = new E("#yearActivity")
|
||||
yearActivity.config.onchange = (html) => {
|
||||
this.formData.yearActivity = html
|
||||
}
|
||||
evaluateName.create()
|
||||
yearActivity.create()
|
||||
})
|
||||
|
||||
if(id !== '') {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateMine/findOne', {id})
|
||||
if (resp.code === 0) {
|
||||
this.formData = resp.data
|
||||
if(this.formData.files) {
|
||||
this.formData.files = JSON.parse(this.formData.files)
|
||||
}
|
||||
}
|
||||
evaluateName.txt.html(resp.data.evaluateName ? resp.data.evaluateName : '')
|
||||
yearActivity.txt.html(resp.data.yearActivity ? resp.data.yearActivity : '')
|
||||
}
|
||||
},
|
||||
//获取当前登录用户管理的社团并且年度审核通过的
|
||||
async getMyClubAndYearAuditPass() {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateApply/getMyClubAndYearAuditPass', {
|
||||
year: new Date().getFullYear()
|
||||
})
|
||||
this.clubList = resp.data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
const year = moment().format('YYYY')
|
||||
this.isCanApply = year % 2 === 0
|
||||
if(this.isCanApply === false) {
|
||||
this.$alert('当前年份(' + year + ')不能进行年度优秀社团申报', '温馨提示', {
|
||||
confirmButtonText: '确定',
|
||||
})
|
||||
}
|
||||
await this.getMyClubAndYearAuditPass()
|
||||
setTimeout(() => {
|
||||
this.initData()
|
||||
}, 200)
|
||||
},
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,253 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.table_fixed {
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">年  度:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年度"
|
||||
type="year" style="width: 100%"
|
||||
v-model="pageForm.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-select v-model="pageForm.clubId" placeholder="请选择社团" filterable clearable
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in clubList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="申请列表">
|
||||
<template #func>
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<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>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column label="社团名称" prop="name" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团编码" prop="code" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团类型" prop="typeName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="成立时间" prop="create_time" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.foundTime).format('YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年度" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.applyTime).format('YYYY') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请时间" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="状态" prop="stateName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span :style="'color: ' + row.stateColor">{{ row.stateName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="[2040].includes(row.state)" @click="openAudit(row)" size="mini" type="primary">审核</el-button>
|
||||
<el-button v-if="[2050, 2060, 2070].includes(row.state)" @click="rollback(row)" size="mini" type="primary">撤回</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<club-evaluate-info ref="info2" :handle="true" label="会长审核" :panes="[2, 3]">
|
||||
<template #handle>
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="userName" label="审核人员">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="auditOpinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button type="danger" @click="doReview(2)">退回修改</el-button>
|
||||
<el-button type="primary" @click="doReview(3)">通过</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</club-evaluate-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<club-evaluate-info ref="info"></club-evaluate-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
clubId: '',
|
||||
year: moment().format('YYYY'),
|
||||
isAudit: false,
|
||||
},
|
||||
tableData: [],
|
||||
viewData: {},
|
||||
clubList: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'club-evaluate-info': httpVueLoader('/components/club/clubEvaluateInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
async rollback(row) {
|
||||
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateHzAudit/rollback', {
|
||||
id: row.id
|
||||
})
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
await this.$refs["form"].validate(async(valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateHzAudit/doReview', this.formData)
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$refs['guava'].index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.view()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(id)
|
||||
})
|
||||
},
|
||||
async openAudit(row) {
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
userName: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||
auditOpinion: '',
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info2.getInfo(row.id)
|
||||
})
|
||||
},
|
||||
async pageData() {
|
||||
let form = clone(this.pageForm)
|
||||
if(form.isAudit === null) {
|
||||
delete form.isAudit
|
||||
}
|
||||
const resp = await $.post("/platform/sys/club/clubEvaluateHzAudit/pageData", form);
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data.list;
|
||||
this.pageForm.totalCount = resp.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: resp.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
//获取当前登录用户管理的社团并且年度审核通过的
|
||||
async getMyClubAndYearAuditPass() {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateApply/getMyClubAndYearAuditPass', {
|
||||
year: this.pageForm.year
|
||||
})
|
||||
this.clubList = resp.data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getMyClubAndYearAuditPass()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,184 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.table_fixed {
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<guava ref="guava">
|
||||
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">年  度:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年度"
|
||||
type="year" style="width: 100%"
|
||||
v-model="pageForm.applyYear"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">社团名称:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select v-model="pageForm.clubId" placeholder="请选择社团" filterable clearable
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in clubList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="申请列表">
|
||||
<template #func>
|
||||
<el-button @click="openAdd" size="medium" type="primary">评优申请</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column label="社团名称" prop="name" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团编码" prop="code" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团类型" prop="typeName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="成立时间" prop="create_time" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.foundTime).format('YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年度" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.applyTime).format('YYYY') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请时间" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="状态" prop="stateName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span :style="'color: ' + row.stateColor">{{ row.stateName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button :disabled="![2000,2020,2050,2080].includes(row.state)" @click="openEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button v-if="${@shiro.hasRole('sysadmin')} || ${@shiro.hasRole('A06')} || ${@shiro.hasRole('xxhgly')}"
|
||||
@click="deleteDo(row)" size="mini" type="danger">删除</el-button>
|
||||
<el-button v-else :disabled="![2000,2020,2050,2080].includes(row.state)" @click="deleteDo(row)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<club-evaluate-info ref="info"></club-evaluate-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'club-evaluate-info': httpVueLoader('/components/club/clubEvaluateInfo.vue'),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
clubId: '',
|
||||
applyYear: moment().format('YYYY'),
|
||||
},
|
||||
tableData: [],
|
||||
clubList: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
openAdd() {
|
||||
sublime.jumpPagePjax('/platform/sys/club/clubEvaluateApply')
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.view()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(id)
|
||||
})
|
||||
},
|
||||
openEdit(row) {
|
||||
sublime.jumpPagePjax('/platform/sys/club/clubEvaluateApply?id=' + row.id)
|
||||
},
|
||||
async deleteDo(row) {
|
||||
const confirm = await this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateMine/doDelete', {id: row.id})
|
||||
this.notifySuccess("删除成功")
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
async pageData() {
|
||||
const resp = await $.post("/platform/sys/club/clubEvaluateMine/pageData", this.pageForm);
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data.list;
|
||||
this.pageForm.totalCount = resp.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
//获取当前登录用户管理的社团并且年度审核通过的
|
||||
async getMyClubAndYearAuditPass() {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateApply/getMyClubAndYearAuditPass', {
|
||||
applyYear: this.pageForm.applyYear
|
||||
})
|
||||
this.clubList = resp.data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getMyClubAndYearAuditPass()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,249 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.table_fixed {
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">年  度:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年度"
|
||||
type="year" style="width: 100%"
|
||||
v-model="pageForm.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-select v-model="pageForm.clubId" placeholder="请选择社团" filterable clearable
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in clubList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="申请列表">
|
||||
<template #func>
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<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>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column label="社团名称" prop="name" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团编码" prop="code" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团类型" prop="typeName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="成立时间" prop="create_time" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.create_time).format('YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年度" prop="applyYear" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="申请时间" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="状态" prop="stateName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span :style="'color: ' + row.stateColor">{{ row.stateName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="[2010].includes(row.state)" @click="openAudit(row)" size="mini" type="primary">审核</el-button>
|
||||
<el-button v-if="[2020, 2030, 2040].includes(row.state)" @click="rollback(row)" size="mini" type="primary">撤回</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<club-evaluate-info ref="info2" :handle="true" label="秘书长审核" :panes="[2]">
|
||||
<template #handle>
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="userName" label="审核人员">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="auditOpinion" label="审核意见">
|
||||
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的审核意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button type="danger" @click="doReview(2)">退回修改</el-button>
|
||||
<el-button type="primary" @click="doReview(3)">通过</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</club-evaluate-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<club-evaluate-info ref="info"></club-evaluate-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
clubId: '',
|
||||
year: moment().format('YYYY'),
|
||||
isAudit: false,
|
||||
},
|
||||
tableData: [],
|
||||
viewData: {},
|
||||
clubList: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'club-evaluate-info': httpVueLoader('/components/club/clubEvaluateInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
async rollback(row) {
|
||||
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateMszAudit/rollback', {
|
||||
id: row.id
|
||||
})
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
await this.$refs["form"].validate(async(valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateMszAudit/doReview', this.formData)
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$refs['guava'].index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.view()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(id)
|
||||
})
|
||||
},
|
||||
async openAudit(row) {
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
userName: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||
auditOpinion: '',
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info2.getInfo(row.id)
|
||||
})
|
||||
},
|
||||
async pageData() {
|
||||
let form = clone(this.pageForm)
|
||||
if(form.isAudit === null) {
|
||||
delete form.isAudit
|
||||
}
|
||||
const resp = await $.post("/platform/sys/club/clubEvaluateMszAudit/pageData", form);
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data.list;
|
||||
this.pageForm.totalCount = resp.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: resp.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
//获取当前登录用户管理的社团并且年度审核通过的
|
||||
async getMyClubAndYearAuditPass() {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateApply/getMyClubAndYearAuditPass', {
|
||||
year: this.pageForm.year
|
||||
})
|
||||
this.clubList = resp.data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getMyClubAndYearAuditPass()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,256 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.table_fixed {
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
|
||||
<el-card shadow="never">
|
||||
<div class="search">
|
||||
<div class="search-item">
|
||||
<div class="search-item-label">年  度:</div>
|
||||
<div class="search-item-option">
|
||||
<el-date-picker
|
||||
placeholder="选择年度"
|
||||
type="year" style="width: 100%"
|
||||
v-model="pageForm.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-select v-model="pageForm.clubId" placeholder="请选择社团" filterable clearable
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in clubList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-query">
|
||||
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="申请列表">
|
||||
<template #func>
|
||||
<el-radio-group v-model="pageForm.isAudit" @change="doSearch">
|
||||
<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>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" :size="tableSize">
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
|
||||
width="80px"></el-table-column>
|
||||
|
||||
<el-table-column label="社团名称" prop="name" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团编码" prop="code" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="社团类型" prop="typeName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="成立时间" prop="create_time" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.foundTime).format('YYYY-MM-DD') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年度" prop="applyYear" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ moment(row.applyTime).format('YYYY') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请时间" prop="applyTime" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="状态" prop="stateName" sortable align="center" header-align="center"
|
||||
show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
<span :style="'color: ' + row.stateColor">{{ row.stateName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="[2070].includes(row.state)" @click="openAudit(row)" size="mini" type="primary">审核</el-button>
|
||||
<el-button v-if="[2080, 2090, 2100].includes(row.state)" @click="rollback(row)" size="mini" type="primary">撤回</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
<template #edit>
|
||||
<club-evaluate-info ref="info2" :handle="true" label="校工会审核" :panes="[2, 3, 4]">
|
||||
<template #handle>
|
||||
<vi-title title="审核信息"></vi-title>
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
label-width="120px">
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="userName" label="审核人员">
|
||||
<el-input v-model="formData.userName" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="auditTime" label="审核时间">
|
||||
<el-input v-model="formData.auditTime" readonly></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="auditOpinion" label="审核结果">
|
||||
<el-radio-group v-model="formData.auditOpinion">
|
||||
<el-radio label="优秀" border>优秀</el-radio>
|
||||
<el-radio label="合格" border>合格</el-radio>
|
||||
<el-radio label="不合格" border>不合格</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button @click="doReview(1)">拒绝</el-button>
|
||||
<el-button type="danger" @click="doReview(2)">退回修改</el-button>
|
||||
<el-button type="primary" @click="doReview(3)">通过</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</club-evaluate-info>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<club-evaluate-info ref="info"></club-evaluate-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
let vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
clubId: '',
|
||||
year: moment().format('YYYY'),
|
||||
isAudit: false,
|
||||
},
|
||||
tableData: [],
|
||||
viewData: {},
|
||||
clubList: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'club-evaluate-info': httpVueLoader('/components/club/clubEvaluateInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
async rollback(row) {
|
||||
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateSchoolAudit/rollback', {
|
||||
id: row.id
|
||||
})
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
async doReview(flag) {
|
||||
await this.$refs["form"].validate(async(valid) => {
|
||||
if (valid) {
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post('/platform/sys/club/clubEvaluateSchoolAudit/doReview', this.formData)
|
||||
if(resp.code === 0) {
|
||||
await this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$refs['guava'].index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.guava.view()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(id)
|
||||
})
|
||||
},
|
||||
async openAudit(row) {
|
||||
this.formData = {
|
||||
id: row.id,
|
||||
userName: "${@shiro.getPrincipalProperty('username')}",
|
||||
auditTime: moment().format('YYYY-MM-DD HH:mm:ss'),
|
||||
auditOpinion: '优秀',
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info2.getInfo(row.id)
|
||||
})
|
||||
},
|
||||
async pageData() {
|
||||
let form = clone(this.pageForm)
|
||||
if(form.isAudit === null) {
|
||||
delete form.isAudit
|
||||
}
|
||||
const resp = await $.post("/platform/sys/club/clubEvaluateSchoolAudit/pageData", form);
|
||||
if (resp.code === 0) {
|
||||
this.tableData = resp.data.list;
|
||||
this.pageForm.totalCount = resp.data.totalCount;
|
||||
} else {
|
||||
this.$message({
|
||||
message: resp.msg,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
//获取当前登录用户管理的社团并且年度审核通过的
|
||||
async getMyClubAndYearAuditPass() {
|
||||
const resp = await $.get('/platform/sys/club/clubEvaluateApply/getMyClubAndYearAuditPass', {
|
||||
year: this.pageForm.year
|
||||
})
|
||||
this.clubList = resp.data
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
await this.getMyClubAndYearAuditPass()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user