first commit

This commit is contained in:
2026-09-08 19:49:21 +08:00
commit ebffbab428
7320 changed files with 1477614 additions and 0 deletions
@@ -0,0 +1,624 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<guava ref="guava">
<el-card shadow="never">
<el-button icon="el-icon-back" style="font-size: 16px" type="text" @click="fh" v-if="formData.id">返回
</el-button>
<el-steps :active="activityName" finish-status="success">
<el-step title="成才主题文化活动">
</el-step>
<el-step title="教职工沙龙或研讨会">
</el-step>
<el-step title="青年教职工成长成才讲座或报告会">
</el-step>
<el-step title="技能竞赛或观摩活动">
</el-step>
</el-steps>
<el-form v-show="activityName===0" :model="activityCulture" ref="addForm1" :rules="rules"
label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-form-item prop="activityName" label="活动名称">
<el-input v-model="activityCulture.activityName" placeholder="请输入活动名称"></el-input>
</el-form-item>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserName" label="申请人">
<el-input v-model="formData.activityApplyUserName" placeholder="请输入申请人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityApplyUserMobile" label="联系方式">
<el-input v-model="formData.activityApplyUserMobile"
placeholder="请输入联系方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserUnionName" label="所属工会">
<el-input v-model="formData.activityApplyUserUnionName"
placeholder="请输入所属工会"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityDate" label="时间">
<el-input v-model="activityCulture.activityDate" placeholder="请输入时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="activityPlace" label="地点">
<el-input v-model="activityCulture.activityPlace" placeholder="请输入地点" maxlength="50"
type="textarea"></el-input>
</el-form-item>
<el-form-item prop="activityParticipants" label="参加人员">
<el-input v-model="activityCulture.activityParticipants" placeholder="请输入参加人员"
maxlength="500" type="textarea" :rows="5"></el-input>
</el-form-item>
<el-form-item prop="activityContent" label="活动目的及内容">
<div id="activityContentCulture"></div>
</el-form-item>
<el-form-item prop="" label="">
<el-divider content-position="left">项目组成员</el-divider>
<div>
<div class="text-right">
<el-button @click="activityCulture.activityTeamMembers.push({})" round size="mini"
type="primary">添加成员
</el-button>
</div>
<el-table :data="activityCulture.activityTeamMembers" max-height="300">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="姓名" prop="username">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.username"></el-input>
</template>
</el-table-column>
<el-table-column label="职称" prop="zc">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.zc"></el-input>
</template>
</el-table-column>
<el-table-column label="联系方式" prop="mobile">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.mobile"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="{row}">
<el-button
@click="activityCulture.activityTeamMembers.splice(row.$index, 1)"
icon="el-icon-delete" round
size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</el-form>
<el-form v-show="activityName===1" :model="activityDiscuss" ref="addForm2" :rules="rules"
label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-form-item prop="activityName" label="活动名称">
<el-input v-model="activityDiscuss.activityName" placeholder="请输入活动名称"></el-input>
</el-form-item>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserName" label="申请人">
<el-input v-model="formData.activityApplyUserName" placeholder="请输入申请人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityApplyUserMobile" label="联系方式">
<el-input v-model="formData.activityApplyUserMobile"
placeholder="请输入联系方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserUnionName" label="所属工会">
<el-input v-model="formData.activityApplyUserUnionName"
placeholder="请输入所属工会"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityDate" label="时间">
<el-input v-model="activityDiscuss.activityDate" placeholder="请输入时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="activityPlace" label="地点">
<el-input v-model="activityDiscuss.activityPlace" placeholder="请输入地点" maxlength="50"
type="textarea"></el-input>
</el-form-item>
<el-form-item prop="activityParticipants" label="参加人员">
<el-input v-model="activityDiscuss.activityParticipants" placeholder="请输入参加人员"
maxlength="500" type="textarea" :rows="5"></el-input>
</el-form-item>
<el-form-item prop="activityContent" label="活动目的及内容">
<div id="activityContentDiscuss"></div>
</el-form-item>
<el-form-item prop="" label="">
<el-divider content-position="left">项目组成员</el-divider>
<div>
<div class="text-right">
<el-button @click="activityDiscuss.activityTeamMembers.push({})" round size="mini"
type="primary">添加成员
</el-button>
</div>
<el-table :data="activityDiscuss.activityTeamMembers" max-height="300">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="姓名" prop="username">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.username"></el-input>
</template>
</el-table-column>
<el-table-column label="职称" prop="zc">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.zc"></el-input>
</template>
</el-table-column>
<el-table-column label="联系方式" prop="mobile">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.mobile"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="{row}">
<el-button
@click="activityDiscuss.activityTeamMembers.splice(row.$index, 1)"
icon="el-icon-delete" round
size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</el-form>
<el-form v-show="activityName===2" :model="activityReport" ref="addForm3" :rules="rules" label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-form-item prop="activityName" label="活动名称">
<el-input v-model="activityReport.activityName" placeholder="请输入活动名称"></el-input>
</el-form-item>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserName" label="申请人">
<el-input v-model="formData.activityApplyUserName" placeholder="请输入申请人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityApplyUserMobile" label="联系方式">
<el-input v-model="formData.activityApplyUserMobile"
placeholder="请输入联系方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserUnionName" label="所属工会">
<el-input v-model="formData.activityApplyUserUnionName"
placeholder="请输入所属工会"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityDate" label="时间">
<el-input v-model="activityReport.activityDate" placeholder="请输入时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="activityPlace" label="地点">
<el-input v-model="activityReport.activityPlace" placeholder="请输入地点" maxlength="50"
type="textarea"></el-input>
</el-form-item>
<el-form-item prop="activityParticipants" label="参加人员">
<el-input v-model="activityReport.activityParticipants" placeholder="请输入参加人员"
maxlength="500" type="textarea" :rows="5"></el-input>
</el-form-item>
<el-form-item prop="activityContent" label="活动目的及内容">
<div id="activityContentReport"></div>
</el-form-item>
<el-form-item prop="" label="">
<el-divider content-position="left">项目组成员</el-divider>
<div>
<div class="text-right">
<el-button @click="activityReport.activityTeamMembers.push({})" round size="mini"
type="primary">添加成员
</el-button>
</div>
<el-table :data="activityReport.activityTeamMembers" max-height="300">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="姓名" prop="username">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.username"></el-input>
</template>
</el-table-column>
<el-table-column label="职称" prop="zc">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.zc"></el-input>
</template>
</el-table-column>
<el-table-column label="联系方式" prop="mobile">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.mobile"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="{row}">
<el-button
@click="activityReport.activityTeamMembers.splice(row.$index, 1)"
icon="el-icon-delete" round
size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</el-form>
<el-form v-show="activityName===3" :model="activitySkill" ref="addForm4" :rules="rules" label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-form-item prop="activityName" label="活动名称">
<el-input v-model="activitySkill.activityName" placeholder="请输入活动名称"></el-input>
</el-form-item>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserName" label="申请人">
<el-input v-model="formData.activityApplyUserName" placeholder="请输入申请人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityApplyUserMobile" label="联系方式">
<el-input v-model="formData.activityApplyUserMobile"
placeholder="请输入联系方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="12">
<el-form-item prop="activityApplyUserUnionName" label="所属工会">
<el-input v-model="formData.activityApplyUserUnionName"
placeholder="请输入所属工会"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="activityDate" label="时间">
<el-input v-model="activitySkill.activityDate" placeholder="请输入时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="activityPlace" label="地点">
<el-input v-model="activitySkill.activityPlace" placeholder="请输入地点" maxlength="50"
type="textarea"></el-input>
</el-form-item>
<el-form-item prop="activityParticipants" label="参加人员">
<el-input v-model="activitySkill.activityParticipants" placeholder="请输入参加人员"
maxlength="500" type="textarea" :rows="5"></el-input>
</el-form-item>
<el-form-item prop="activityContent" label="活动目的及内容">
<div id="activityContentSkill"></div>
</el-form-item>
<el-form-item prop="" label="">
<el-divider content-position="left">项目组成员</el-divider>
<div>
<div class="text-right">
<el-button @click="activitySkill.activityTeamMembers.push({})" round size="mini"
type="primary">添加成员
</el-button>
</div>
<el-table :data="activitySkill.activityTeamMembers" max-height="300">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="姓名" prop="username">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.username"></el-input>
</template>
</el-table-column>
<el-table-column label="职称" prop="zc">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.zc"></el-input>
</template>
</el-table-column>
<el-table-column label="联系方式" prop="mobile">
<template slot-scope="{row}">
<el-input size="mini" v-model="row.mobile"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="{row}">
<el-button
@click="activitySkill.activityTeamMembers.splice(row.$index, 1)"
icon="el-icon-delete" round
size="mini"
type="danger"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</el-form>
<el-row class="mt10" justify="center" type="flex">
<el-button @click="doSave" style="width: 300px" type="primary">保存
</el-button>
<el-button plain style="width: 300px" @click="activityName=activityName-1"
v-show="activityName!==0">上一步
</el-button>
<el-button plain style="width: 300px" @click="next" v-show="activityName!=3">下一步
</el-button>
<el-button @click="doSubmit" style="width: 300px" type="primary" v-show="activityName===3">提交
</el-button>
</el-row>
<!--<el-tabs v-model="activityName" style="margin: 40px">
<el-tab-pane label="" name="activityCulture">
</el-tab-pane>
<el-tab-pane label="" name="activityDiscuss">
</el-tab-pane>
<el-tab-pane label="" name="activityReport">
</el-tab-pane>
<el-tab-pane label="" name="activitySkill">
</el-tab-pane>
<el-row class="mt10" justify="center" type="flex">
<el-button @click="doSave" style="width: 300px" type="primary">保存
</el-button>
<el-button @click="doSubmit" style="width: 300px" type="primary">提交
</el-button>
</el-row>
</el-tabs>-->
</el-card>
</guava>
</div>
<script>
const E = window.wangEditor
let activityContentCulture, activityContentDiscuss, activityContentReport, activityContentSkill = null
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
activityCulture: {activityTeamMembers: []},
activityDiscuss: {activityTeamMembers: []},
activityReport: {activityTeamMembers: []},
activitySkill: {activityTeamMembers: []},
activityType: [],
activityName: 0,
rules: {
activityName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
activityDate: [{required: true, message: '必填', trigger: ['blur', 'change']}],
activityPlace: [{required: true, message: '必填', trigger: ['blur', 'change']}],
activityParticipants: [{required: true, message: '必填', trigger: ['blur', 'change']}],
activityContent: [{required: true, message: '必填', trigger: ['blur', 'change']}],
},
}
},
methods: {
fh() {
sublime.jumpPagePjax("/platform/fourOne/activity/applyList")
},
next() {
let a = true
let b = true
let c = true
let d = true
this.$refs["addForm1"].validate(valid => {
if (!valid) {
a = false
}
})
this.$refs["addForm2"].validate(valid => {
if (!valid) {
b = false
}
})
this.$refs["addForm3"].validate(valid => {
if (!valid) {
c = false
}
})
this.$refs["addForm4"].validate(valid => {
if (!valid) {
d = false
}
})
if ((this.activityName === 0 && a) || (this.activityName === 1 && b) || (this.activityName === 2 && c) || (this.activityName === 3 && d)) {
this.activityName++
} else {
this.notifyWarning("请填写完整")
}
},
async doSubmit() {
let a = true
let b = true
let c = true
let d = true
this.$refs["addForm1"].validate(valid => {
if (!valid) {
a = false
}
})
this.$refs["addForm2"].validate(valid => {
if (!valid) {
b = false
}
})
this.$refs["addForm3"].validate(valid => {
if (!valid) {
c = false
}
})
this.$refs["addForm4"].validate(valid => {
if (!valid) {
d = false
}
})
if (a && b && c && d) {
const confirm = await this.$confirm('确定要提交吗?提交后将提交到分工会审核', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const resp = await $.post(loc() + (this.formData.id ? "/doEdit" : "/doSave"), {
FourOneActivity: JSON.stringify(this.formData),
activityCulture: JSON.stringify(this.activityCulture),
activityDiscuss: JSON.stringify(this.activityDiscuss),
activityReport: JSON.stringify(this.activityReport),
activitySkill: JSON.stringify(this.activitySkill),
flag: true
})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
sublime.jumpPagePjax("/platform/fourOne/activity/applyList")
} else {
this.notifyError(resp.msg)
}
}
} else {
this.notifyWarning("请填写完整再提交")
}
},
async doSave() {
const resp = await $.post(loc() + (this.formData.id ? "/doEdit" : "/doSave"), {
FourOneActivity: JSON.stringify(this.formData),
activityCulture: JSON.stringify(this.activityCulture),
activityDiscuss: JSON.stringify(this.activityDiscuss),
activityReport: JSON.stringify(this.activityReport),
activitySkill: JSON.stringify(this.activitySkill),
flag: false
})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
sublime.jumpPagePjax("/platform/fourOne/activity/applyList")
} else {
this.notifyError(resp.msg)
}
},
init() {
this.$set(this.formData, 'activityApplyUserName', "${@shiro.getPrincipalProperty('username')}")
this.$set(this.formData, 'activityApplyUserMobile', "${@shiro.getPrincipalProperty('mobile')}")
this.$set(this.formData, 'activityApplyUserUnionName', "${@shiro.getPrincipalProperty('union').getUnionname()}")
setTimeout(()=>{
$("#activityContentCulture").html("")
activityContentCulture = new E("#activityContentCulture")
activityContentCulture.config.onchange = (html) => {
this.activityCulture.activityContent = html
}
activityContentCulture.create()
$("#activityContentDiscuss").html("")
activityContentDiscuss = new E("#activityContentDiscuss")
activityContentDiscuss.config.onchange = (html) => {
this.activityDiscuss.activityContent = html
}
activityContentDiscuss.create()
$("#activityContentReport").html("")
activityContentReport = new E("#activityContentReport")
activityContentReport.config.onchange = (html) => {
this.activityReport.activityContent = html
}
activityContentReport.create()
$("#activityContentSkill").html("")
activityContentSkill = new E("#activityContentSkill")
activityContentSkill.config.onchange = (html) => {
this.activitySkill.activityContent = html
}
activityContentSkill.create()
},300)
},
async openEdit(id) {
const {data} = await $.post("/platform/fourOne/activity/applyList/findOne", {id: id})
this.formData = data
this.activityCulture = data.activityCulture
this.activityDiscuss = data.activityDiscuss
this.activityReport = data.activityReport
this.activitySkill = data.activitySkill
this.$nextTick(() => {
$("#activityContentCulture").html(data.activityCulture.activityContent)
activityContentCulture = new E("#activityContentCulture")
activityContentCulture.config.onchange = (html) => {
this.activityCulture.activityContent = html
}
activityContentCulture.create()
$("#activityContentDiscuss").html(data.activityDiscuss.activityContent)
activityContentDiscuss = new E("#activityContentDiscuss")
activityContentDiscuss.config.onchange = (html) => {
this.activityDiscuss.activityContent = html
}
activityContentDiscuss.create()
$("#activityContentReport").html(data.activityReport.activityContent)
activityContentReport = new E("#activityContentReport")
activityContentReport.config.onchange = (html) => {
this.activityReport.activityContent = html
}
activityContentReport.create()
$("#activityContentSkill").html(data.activitySkill.activityContent)
activityContentSkill = new E("#activityContentSkill")
activityContentSkill.config.onchange = (html) => {
this.activitySkill.activityContent = html
}
activityContentSkill.create()
})
}
},
created() {
const id = getQueryVariable("id")
id ? this.openEdit(id) : this.init()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,331 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
:clearable="true"
@change="doSearch"
placeholder="选择年"
type="year"
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="我的上报" :app="this">
<template #func>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-dropdown @command="dropdownCommand">
<el-button plain size="mini">
<i class="ti-settings"></i>
<span class="ti-angle-down"></span>
</el-button>
<el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item v-if="row.stateId==='4505'"
:command="{type:'submit',data:row}">
提交
</el-dropdown-item>-->
<el-dropdown-item v-if="row.stateId==='4570'"
:command="{type:'makings',data:row}">
上传材料
</el-dropdown-item>
<el-dropdown-item :command="{type:'view',data:row}">
查看
</el-dropdown-item>
<el-dropdown-item v-if="row.stateId==='4505'"
:command="{type:'edit',data:row}">
编辑
</el-dropdown-item>
<el-dropdown-item v-if="${@shiro.hasRole('sysadmin')}"
:command="{type:'delete',data:row}">
删除
</el-dropdown-item>
<el-dropdown-item v-if="!${@shiro.hasRole('sysadmin')}&&row.stateId==='4505'"
:command="{type:'delete',data:row}">
删除
</el-dropdown-item>
<el-dropdown-item v-if="row.stateId==='4590'"
:command="{type:'export',data:row}">
导出
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
<template #edit>
<el-tabs v-model="activityName" style="margin: 40px">
<el-tab-pane label="成才主题文化活动" name="activityCulture">
<el-form label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-row :gutter="20">
<el-col :span="24">
<vi-title title="活动总结"></vi-title>
<file-upload :files.sync="activityCulture.activitySummary" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="新闻稿"></vi-title>
<file-upload :files.sync="activityCulture.activityPressRelease" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="活动照片"></vi-title>
<file-upload :files.sync="activityCulture.activityPhotos" card></file-upload>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="教职工沙龙或研讨会" name="activityDiscuss">
<el-form label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-row :gutter="20">
<el-col :span="24">
<vi-title title="活动总结"></vi-title>
<file-upload :files.sync="activityDiscuss.activitySummary" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="新闻稿"></vi-title>
<file-upload :files.sync="activityDiscuss.activityPressRelease" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="活动照片"></vi-title>
<file-upload :files.sync="activityDiscuss.activityPhotos" card></file-upload>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="青年教职工成长成才讲座或报告会" name="activityReport">
<el-form label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-row :gutter="20">
<el-col :span="24">
<vi-title title="活动总结"></vi-title>
<file-upload :files.sync="activityReport.activitySummary" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="新闻稿"></vi-title>
<file-upload :files.sync="activityReport.activityPressRelease" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="活动照片"></vi-title>
<file-upload :files.sync="activityReport.activityPhotos" card></file-upload>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-tab-pane label="技能竞赛或观摩活动" name="activitySkill">
<el-form label-width="120px"
style="margin: 50px 200px 0px 200px">
<el-row :gutter="20">
<el-col :span="24">
<vi-title title="活动总结"></vi-title>
<file-upload :files.sync="activitySkill.activitySummary" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="新闻稿"></vi-title>
<file-upload :files.sync="activitySkill.activityPressRelease" card></file-upload>
</el-col>
<el-col :span="24">
<vi-title title="活动照片"></vi-title>
<file-upload :files.sync="activitySkill.activityPhotos" card></file-upload>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
<el-row class="mt10" justify="center" type="flex">
<el-button plain @click="doSave(false)" style="width: 300px" type="primary">保存
</el-button>
<el-button @click="doSave(true)" style="width: 300px" type="primary">提交
</el-button>
</el-row>
</el-tabs>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
id: "",
activityCulture: {activitySummary: [], activityPressRelease: [], activityPhotos: []},
activityDiscuss: {activitySummary: [], activityPressRelease: [], activityPhotos: []},
activityReport: {activitySummary: [], activityPressRelease: [], activityPhotos: []},
activitySkill: {activitySummary: [], activityPressRelease: [], activityPhotos: []},
activityName: "activityCulture",
pageForm: {
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type == 'view') {
this.openView(data)
} else if (type == 'edit') {
this.openEdit(data)
} else if (type == 'delete') {
this.doDelete(data)
} else if (type == 'submit') {
this.doSubmit(data)
} else if (type == 'makings') {
this.openMakings(data.id)
} else if (type == 'export') {
this.doExport(data)
}
},
doExport(data) {
window.open(loc() + "/doExport?id=" + data.id)
},
async doSave(flag) {
const confirm = await this.$confirm('确定要' + (flag ? '提交' : '保存') + '吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const resp = await $.post(loc() + "/doSave", {
activityCulture: JSON.stringify(this.activityCulture),
activityDiscuss: JSON.stringify(this.activityDiscuss),
activityReport: JSON.stringify(this.activityReport),
activitySkill: JSON.stringify(this.activitySkill),
flag: flag,
id: this.id
})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.$refs.guava.index()
} else {
this.notifyError(resp.msg)
}
}
},
async openMakings(id) {
const {data} = await $.post("/platform/fourOne/activity/applyList/findOne", {id: id})
this.$set(this, "activitySkill", data.activitySkill)
this.$set(this, "activityReport", data.activityReport)
this.$set(this, "activityDiscuss", data.activityDiscuss)
this.$set(this, "activityCulture", data.activityCulture)
this.id = id
this.$refs.guava.edit()
},
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
openEdit(data) {
sublime.jumpPagePjax("/platform/fourOne/activity/apply?id=" + data.id)
},
async doDelete(data) {
const confirm = await this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const resp = await $.post(loc() + "/doDelete", {id: data.id})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
} else {
this.notifyError(resp.msg)
}
}
},
async doSubmit(data) {
const confirm = await this.$confirm('确定要提交吗?提交后将提交到分工会审核', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const resp = await $.post(loc() + "/doSubmit", {id: data.id})
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
} else {
this.notifyError(resp.msg)
}
}
},
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,221 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
:clearable="true"
@change="doSearch"
placeholder="选择年"
type="year"
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 placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="doSearch"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="评审列表" :app="this">
<template #func>
<el-radio-group @change="doSearch" size="small" v-model="pageForm.isAudit">
<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" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-button plain size="mini" @click="openView(row)">
查看
</el-button>
<el-button size="mini" type="primary" @click="openSubmit(row)"
v-if="row.stateId==='4580'">
评审
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
<template #edit>
<four-one-activity ref="edit" label="专家评审" handle>
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<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 prop="username" label="评审人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="评审时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="opinion" label="评审等级">
<el-select v-model="formData.assessGrade" placeholder="请选择评审等级" style="width: 100%">
<el-option
v-for="item in assessGradeOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doReview">提交
</el-button>
</div>
</template>
</four-one-activity>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
assessGradeOptions: ["优秀", "较好", "良好", "一般"],
pageForm: {
isAudit: false,
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
openSubmit(data) {
this.formData = {
id: data.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
assessGrade: ""
}
this.$refs.edit.getInfo(data.id)
this.$refs.guava.edit()
},
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
async doReview() {
if (this.formData.assessGrade === "") {
this.notifyWarning("请选择评审等级")
return
}
const confirm = await this.$confirm('确定要提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
const resp = await $.post(loc() + "/doReview", this.formData)
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.$refs.guava.index()
} else {
this.notifyError(resp.msg)
}
}
},
},
async created() {
this.unions = await getUnions(null)
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,213 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
:clearable="true"
@change="doSearch"
placeholder="选择年"
type="year"
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 placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="doSearch"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="审核列表" :app="this">
<template #func>
<el-radio-group @change="doSearch" size="small" v-model="pageForm.isAudit">
<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" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-button plain size="mini" @click="openView(row)">
查看
</el-button>
<el-button size="mini" type="primary" @click="openSubmit(row)"
v-if="row.stateId==='4550'">
审核
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
<template #edit>
<four-one-activity ref="edit" label="校工会审核" handle>
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<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 prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="auditSign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)">
</el-button>
<el-button type="primary" @click="doReview(true)">
</el-button>
</div>
</template>
</four-one-activity>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
pageForm: {
isAudit: false,
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
openSubmit(data) {
this.formData = {
id: data.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.edit.getInfo(data.id)
this.$refs.guava.edit()
},
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
async doReview(flag) {
const confirm = await this.$confirm('确定要' + (flag ? '通过' : '拒绝') + '吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
this.formData.pass = flag
const resp = await $.post(loc() + "/doReview", this.formData)
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.$refs.guava.index()
} else {
this.notifyError(resp.msg)
}
}
},
},
async created() {
this.unions = await getUnions(null)
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,152 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
clearable
@change="doSearch"
placeholder="选择年"
type="year"
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 placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
clearable="true"
@change="doSearch"
filterable="true">
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
</el-select>
</div>
</div>
<div class="search-item">
<div class="search-item-label">评审等级:</div>
<div class="search-item-option">
<el-select v-model="pageForm.assessGrade" clearable placeholder="请选择评审等级" style="width: 100%"
@change="doSearch">
<el-option
v-for="item in assessGradeOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="查询统计" :app="this">
<template #func>
</template>
</table-tool>
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-button plain size="mini" @click="openView(row)">
查看
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
unions: [],
assessGradeOptions: ["优秀", "较好", "良好", "一般"],
pageForm: {
isAudit: false,
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'assessGrade', label: '评审等级', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
},
async created() {
this.unions = await getUnions(null)
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,199 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
:clearable="true"
@change="doSearch"
placeholder="选择年"
type="year"
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="审核列表" :app="this">
<template #func>
<el-radio-group @change="doSearch" size="small" v-model="pageForm.isAudit">
<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" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-button plain size="mini" @click="openView(row)">
查看
</el-button>
<el-button size="mini" type="primary" @click="openSubmit(row)"
v-if="row.stateId==='4510'">
审核
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
<template #edit>
<four-one-activity ref="edit" label="分工会审核" handle>
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<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 prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="auditSign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)">
</el-button>
<el-button type="primary" @click="doReview(true)">
</el-button>
</div>
</template>
</four-one-activity>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
pageForm: {
isAudit: false,
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
openSubmit(data) {
this.formData = {
id: data.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.edit.getInfo(data.id)
this.$refs.guava.edit()
},
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
async doReview(flag) {
const confirm = await this.$confirm('确定要' + (flag ? '通过' : '拒绝') + '吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
this.formData.pass = flag
const resp = await $.post(loc() + "/doReview", this.formData)
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.$refs.guava.index()
} else {
this.notifyError(resp.msg)
}
}
},
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,200 @@
<!--#
layout("/layouts/platform.html"){
#-->
<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
style="width: 100%;"
:clearable="true"
@change="doSearch"
placeholder="选择年"
type="year"
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>
</div>
</div>
</div>
</el-card>
<el-card shadow="never" class="mt20">
<table-tool label="审核列表" :app="this">
<template #func>
<el-radio-group @change="doSearch" size="small" v-model="pageForm.isAudit">
<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" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize"
v-loading="tableLoading" ref="table" class="vi-table">
<el-table-column align="center" header-align="center" type="index" :index="indexMethod" label="序号"
width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:sortable="column.sortable"
:label="column.label"
:prop="column.prop" :width="column.width" min-width="100px">
<template v-if="column.prop=='stateId'" scope="{row}">
<vi-table-state :state="row"></vi-table-state>
</template>
</el-table-column>
<el-table-column prop="userOnline" align="center" header-align="center" label="操作" width="170px"
fixed="right">
<template scope="{row}">
<el-button plain size="mini" @click="openView(row)">
查看
</el-button>
<el-button size="mini" type="primary" @click="openSubmit(row)"
v-if="row.stateId==='4530'">
审核
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #view>
<four-one-activity ref="info"></four-one-activity>
</template>
<template #edit>
<four-one-activity ref="edit" label="分党委审核" handle>
<template #handle>
<el-form :model="formData" ref="form" :rules="formRules" label-position="right"
style="padding: 20px 0"
label-width="120px">
<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 prop="username" label="审核人员">
<el-input v-model="formData.username"
disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="time" label="审核时间">
<el-input v-model="formData.auditTime" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="opinion" label="审核意见">
<el-input type="textarea" v-model="formData.auditOpinion" rows="4" maxlength="500"
placeholder="请填写您的审核意见"></el-input>
</el-form-item>
<el-form-item prop="auditSign" label="签&emsp;&emsp;字">
<sign :qz.sync="formData.auditSign"></sign>
</el-form-item>
</el-form>
<div style="float: right;margin: 20px 0">
<el-button @click="doReview(false)">
</el-button>
<el-button type="primary" @click="doReview(true)">
</el-button>
</div>
</template>
</four-one-activity>
</template>
</guava>
</div>
<script>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
pageForm: {
isAudit: false,
year: moment().format('YYYY') + "",
},
tableColumns: [
{prop: 'year', label: '年度'},
{prop: 'activityApplyUserName', label: '申请人'},
{prop: 'activityApplyUserMobile', label: '联系方式'},
{prop: 'activityApplyUserUnionName', label: '所在工会', sortable: true},
{prop: 'activityApplyDate', label: '申请时间', sortable: true},
{prop: 'stateId', label: '申报状态', sortable: true},
]
}
},
components: {
'four-one-activity': httpVueLoader('/components/fourOneActivity/fourOneActivityInfo.vue'),
},
methods: {
openSubmit(data) {
this.formData = {
id: data.id,
username: "${@shiro.getPrincipalProperty('username')}",
auditTime: moment().format('YYYY-MM-DD'),
}
this.$refs.edit.getInfo(data.id)
this.$refs.guava.edit()
},
openView(data) {
this.$refs.info.getInfo(data.id)
this.$refs.guava.view()
},
async doReview(flag) {
const confirm = await this.$confirm('确定要' + (flag ? '通过' : '拒绝') + '吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
this.formData.pass = flag
const resp = await $.post(loc() + "/doReview", this.formData)
if (resp.code === 0) {
this.notifySuccess(resp.msg)
this.doSearch()
this.$refs.guava.index()
} else {
this.notifyError(resp.msg)
}
}
},
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->