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>
<!--#
}
#-->