Files
2026-09-08 19:49:21 +08:00

279 lines
12 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-range-editor.el-input__inner{
width: 60%
}
</style>
<div id="app">
<el-row class="header navbar bg-white shadow">
<div class="btn-group tool-button mt5">
<el-date-picker v-model="pageForm.planyear" type="year" value-format="yyyy" format="yyyy年" placeholder="年度"></el-date-picker>
</div>
<div class="btn-group tool-button mt5">
<el-button icon="el-icon-search" type="primary" @click="doSearch"></el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button size="medium" @click="openAdd"><i class="ti-plus"></i> 创建计划</el-button>
</div>
</el-row>
<el-row class="el-table-container">
<el-table :data="tableData" header-align="center" size="small">
<el-table-column label="序号" type="index" header-align="center" align="center">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column label="年度" prop="planyear" header-align="center" align="center"></el-table-column>
<el-table-column label="报名开始时间" prop="plankssj" header-align="center" align="center"></el-table-column>
<el-table-column label="报名结束时间" prop="planjssj" header-align="center" align="center"></el-table-column>
<el-table-column label="评选类型" prop="planlx" header-align="center" align="center">
<template slot-scope="scope">
<span v-if="scope.row.planlx==1">集体</span>
<span v-if="scope.row.planlx==2">个人</span>
</template>
</el-table-column>
<el-table-column label="状态" header-align="center" align="center">
<template slot-scope="scope">
<el-switch v-model="scope.row.plankqzt===1"
@change="plankqztChange(scope.row.id,scope.row.plankqzt)"
active-color="#13ce66"
inactive-color="#dcdfe6">
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="center" width="350px">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="openEdit(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="doDelete(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="el-pagination-container">
<el-pagination
@size-change="pageSizeChange"
@current-change="pageNumberChange"
:current-page="pageForm.pageNumber"
:page-sizes="[10, 20, 30, 50]"
:page-size="pageForm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="pageForm.totalCount">
</el-pagination>
</el-row>
<el-dialog :visible.sync="addDialogVisible" title="创建计划" width="60%">
<el-form :model="AddFormData" ref="AddForm" label-width="100px" :rules="rules">
<el-form-item label="年度" prop="planyear">
<el-date-picker v-model="AddFormData.planyear" type="year" value-format="yyyy" format="yyyy年"></el-date-picker>
</el-form-item>
<el-form-item label="类型" prop="planlx">
<el-select v-model="AddFormData.planlx">
<el-option v-for="item in planlxList" :label="item.val" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="报名时间" prop="plansj">
<el-date-picker
v-model="AddFormData.plansj"
value-format="yyyy-MM-dd"
format="yyyy年MM月dd日"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="开启状态">
<el-switch v-model="AddFormData.plankqzt"
active-color="#13ce66"
inactive-color="#dcdfe6">
</el-switch>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doAdd">确 认</el-button>
</span>
</el-dialog>
<el-dialog :visible.sync="editDialogVisible" title="编辑计划" width="60%">
<el-form :model="EditFormData" ref="EditForm" label-width="100px" :rules="rules">
<el-form-item label="年度" prop="planyear">
<el-date-picker v-model="EditFormData.planyear" type="year" value-format="yyyy" format="yyyy年"></el-date-picker>
</el-form-item>
<el-form-item label="类型" prop="planlx">
<el-select v-model="EditFormData.planlx">
<el-option v-for="item in planlxList" :label="item.val" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="报名时间" prop="plansj">
<el-date-picker
v-model="EditFormData.plansj"
value-format="yyyy-MM-dd"
format="yyyy年MM月dd日"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="开启状态">
<el-switch v-model="EditFormData.plankqzt"
active-color="#13ce66"
inactive-color="#dcdfe6">
</el-switch>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="doEdit">确 认</el-button>
</span>
</el-dialog>
</div>
<script>
Vue.component(VueQrcode.name, VueQrcode)
let vue=new Vue({
el:'#app',
data(){
return{
pageForm:{
pageNumber:1,
pageSize:10,
totalCount:0
},
tableData:[],
addDialogVisible:false,
AddFormData:{
kqzt:true
},
planlxList:[
{id:1,val:'幼儿园'},{id:2,val:'小学'},{id:3,val:'初中'}
],
rules:{
planyear:[{required: true, message: '必填', trigger: ['blur', 'change']}],
planlx:[{required: true, message: '必填', trigger: ['blur', 'change']}],
plansj:[{required: true, message: '必填', trigger: ['blur', 'change']}],
},
EditFormData:{},
editDialogVisible:false,
qrcodeDialogVisible:false,
domain:'https://zhgh.nju.edu.cn',
qrcodeTitle:'',
qrcodeUrl:''
}
},
methods:{
openAdd() {
if(this.$refs['AddForm'])
this.$refs['AddForm'].resetFields()
this.addDialogVisible=true
},
pageNumberChange(val) {
this.pageForm.pageNumber=val
this.pageData()
},
pageSizeChange(val) {
this.pageForm.pageSize=val
this.pageData()
},
pageData() {
sublime.showLoadingbar()
$.post(base+'/platfotm/ry/pxjh/data',this.pageForm).then(res=>{
sublime.closeLoadingbar()
if(res.code==0){
this.tableData=res.data.list
this.pageForm.totalCount=res.data.totalCount
}
})
},
doAdd() {
this.$refs['AddForm'].validate((valid) => {
if(valid){
this.AddFormData.plankssj=this.AddFormData.plansj[0]
this.AddFormData.planjssj=this.AddFormData.plansj[1]
$.post(base+'/platfotm/ry/pxjh/doAdd',this.AddFormData).then(res=>{
if(res.code==0){
this.addDialogVisible=false
this.doSearch()
this.$message.success(res.msg)
}else if(res.code==2){
this.$message.error(res.msg)
}
})
}
})
},
plankqztChange(id,plankqzt){
$.post(base+'/platfotm/ry/pxjh/planztChange',{id:id,plankqzt:plankqzt}).then(res=>{
if(res.code==0){
this.doSearch()
this.$message.success(res.msg)
}
})
},
openEdit(obj){
$.post(base+'/platfotm/ry/pxjh/findOne',{id:obj.id}).then(res=>{
if(res.code==0){
this.EditFormData=res.data
this.$set(this.EditFormData,'plansj',[res.data.plankssj,res.data.planjssj])
this.editDialogVisible=true
}
})
},
doEdit(){
this.$refs['EditForm'].validate((valid) => {
if(valid){
this.EditFormData.plankssj=this.EditFormData.plansj[0]
this.EditFormData.planjssj=this.EditFormData.plansj[1]
$.post(base+'/platfotm/ry/pxjh/doEdit',this.EditFormData).then(res=>{
if(res.code==0){
this.editDialogVisible=false
this.pageData()
this.$message.success(res.msg)
}else if(res.code==2){
this.$message.error(res.msg)
}
})
}
})
},
doSearch(){
this.pageForm.pageNumber=1
this.pageData()
},
doDelete(id){
this.$confirm('确定要删除吗?, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.post(base+'/platfotm/ry/pxjh/doDelete',{id:id}).then(res=>{
if(res.code==0){
this.$message.success(res.msg)
this.pageData()
}
})
}).catch(() => {
})
},
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->