485 lines
20 KiB
HTML
485 lines
20 KiB
HTML
<!--#
|
|
layout("/layouts/platform.html"){
|
|
#-->
|
|
|
|
<style>
|
|
.el-loading-spinner {
|
|
font-size: 30px !important;
|
|
}
|
|
|
|
.el-checkbox__label {
|
|
padding-left: 20px;
|
|
}
|
|
|
|
.el-checkbox__input {
|
|
position: absolute;
|
|
/*line-height: unset!important;*/
|
|
}
|
|
</style>
|
|
|
|
<div id="app" v-cloak>
|
|
<guava>
|
|
<el-card shadow="never">
|
|
<div class="btn-group tool-button">
|
|
<el-date-picker
|
|
:clearable="false"
|
|
v-model="pageForm.searchYear"
|
|
value-format="yyyy"
|
|
formData="yyyy"
|
|
type="year"
|
|
placeholder="选择年份">
|
|
</el-date-picker>
|
|
</div>
|
|
<div class="btn-group tool-button">
|
|
<el-select v-model="pageForm.jdhjs" placeholder="请选择届数" clearable>
|
|
<el-option
|
|
v-for="item in jsOptions"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.code">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button">
|
|
<el-select v-model="pageForm.jdhcs" placeholder="请选择次数" clearable>
|
|
<el-option
|
|
v-for="item in csOptions"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button">
|
|
<el-button type="primary" @click="doSearch" icon="el-icon-search"></el-button>
|
|
</div>
|
|
<div class="pull-right offscreen-right">
|
|
<el-button type="primary" size="medium" @click="openAdd"><i class="ti-plus"></i> 新建届次</el-button>
|
|
</div>
|
|
</el-card>
|
|
<el-card shadow="never" class="mt20">
|
|
<el-table :data="tableData" @sort-change='pageOrder'>
|
|
<el-table-column align="center" header-align="center" label="教代会年份" prop="jdhnf"
|
|
sortable></el-table-column>
|
|
|
|
<el-table-column align="center" header-align="center" label="教代会届数" prop="jdhjs"
|
|
sortable>
|
|
<template slot-scope="scope">
|
|
第{{scope.row.jdhjs}}届
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column align="center" header-align="center" label="次数" prop="jdhcs"
|
|
sortable>
|
|
<template slot-scope="scope">
|
|
第{{scope.row.jdhcs}}次
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column prop="jdhms" label="描述"></el-table-column>
|
|
|
|
<el-table-column prop="jdhkqsj" label="创建时间" :formatter="dateFormat"></el-table-column>
|
|
|
|
<el-table-column prop="jdhkqzt" label="开启状态">
|
|
<template slot-scope="scope">
|
|
<el-switch active-color="#13ce66"
|
|
inactive-color="#ff4949"
|
|
:value="scope.row.jdhkqzt===1"
|
|
@change="jdhztChange(scope.row.jdhkqzt,scope.row.id)">
|
|
</el-switch>
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column label="操作" width="200">
|
|
<template slot-scope="scope">
|
|
<el-button :disabled="scope.row.jdhkqzt===0" size="mini" type="primary"
|
|
@click="openEdit(scope)">
|
|
编辑
|
|
</el-button>
|
|
<el-button :disabled="scope.row.jdhkqzt===0" size="mini" type="danger"
|
|
@click="doDelete(scope.row.id)">删除
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-row class="el-pagination-container">
|
|
<el-pagination
|
|
@current-change="pageNumberChange"
|
|
:current-page="pageForm.pageNumber"
|
|
layout="total, prev, pager, next, jumper"
|
|
:total="pageForm.totalCount">
|
|
</el-pagination>
|
|
</el-row>
|
|
</el-card>
|
|
|
|
</guava>
|
|
|
|
|
|
<el-dialog
|
|
title="新建届次"
|
|
:visible.sync="addDialogVisible"
|
|
width="45%">
|
|
<el-form :model="formData" ref="addForm" :rules="rules" label-width="120px">
|
|
<el-form-item prop="jdhnf" label="教代会年份">
|
|
<el-date-picker style="width:100%;" :clearable="false"
|
|
v-model="formData.jdhnf"
|
|
value-format="yyyy"
|
|
formData="yyyy"
|
|
type="year"
|
|
placeholder="选择年">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhjs" label="教代会届数">
|
|
<el-select v-model="formData.jdhjs" filterable placeholder="请选择届数" style="width:100%;">
|
|
<el-option v-for="i in jsList" :label="i.name" :key="i.id" :value="i.code"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhcs" label="教代会次数">
|
|
<el-select v-model="formData.jdhcs" @change="csChange" filterable placeholder="请选择次数"
|
|
style="width:100%;">
|
|
<el-option v-for="item in csOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhms" label="教代会描述">
|
|
<el-input type="textarea"
|
|
:rows="2" style="width:100%;"
|
|
placeholder="请输入教代会描述"
|
|
v-model="formData.jdhms">
|
|
</el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="sfjc" class="is-required" label="" label-width="30px" style="margin-top: 20px;">
|
|
<el-checkbox v-model="formData.isExtend"
|
|
:disabled="formData.jdhcs=='一' || formData.jdhcs==''"
|
|
style="font-size: 14px;color: #ff6a00;width: 100%">
|
|
<span style="text-overflow: clip;white-space: normal;">
|
|
延用上一次教代会的组织机构及代表信息,包含【筹备领导小组;资格审查小组;主席团;执行委员会;专门委员会;代表团;教代会代表】。
|
|
</span>
|
|
</el-checkbox>
|
|
</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
|
|
title="编辑教代会信息"
|
|
:visible.sync="editDialogVisible"
|
|
custom-class="ViewDialogClass"
|
|
:close-on-click-modal="false"
|
|
width="45%">
|
|
<el-form :model="formData" ref="editForm" :rules="rules" label-width="120px">
|
|
|
|
<el-form-item prop="jdhnf" label="教代会年份">
|
|
<div class="block">
|
|
<el-date-picker style="width:100%;"
|
|
v-model="formData.jdhnf"
|
|
value-format="yyyy"
|
|
formData="yyyy"
|
|
type="year"
|
|
placeholder="选择年">
|
|
</el-date-picker>
|
|
</div>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhjs" label="教代会届数">
|
|
<el-select v-model="formData.jdhjs" filterable placeholder="请选择届数" style="width:100%;">
|
|
<el-option v-for="i in jsList" :label="i.name" :key="i.id" :value="i.code"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhcs" label="教代会次数">
|
|
<el-select v-model="formData.jdhcs" filterable placeholder="请选择次数" style="width:100%;">
|
|
<el-option v-for="item in csOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
|
|
<el-form-item prop="jdhms" label="教代会描述">
|
|
<el-input style="width:100%;"
|
|
type="textarea"
|
|
:rows="2"
|
|
placeholder="请输入教代会主题描述"
|
|
auto-complete="off"
|
|
v-model="formData.jdhms">
|
|
</el-input>
|
|
</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>
|
|
const rules = {
|
|
jdhnf: [
|
|
{required: true, message: '请选择教代会年份', trigger: ['blur', 'change']}
|
|
],
|
|
jdhjs: [
|
|
{required: true, message: '请输入教代会届数', trigger: ['blur', 'change']}
|
|
],
|
|
jdhcs: [
|
|
{required: true, message: '请输入教代会次数', trigger: ['blur', 'change']}
|
|
]
|
|
}
|
|
let vue = new Vue({
|
|
el: "#app",
|
|
data() {
|
|
return {
|
|
addDialogVisible: false,
|
|
editDialogVisible: false,
|
|
tableData: [],
|
|
pageForm: {
|
|
searchYear: '',
|
|
jdhjs: '',
|
|
jdhcs: '',
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
pageOrderName: '',
|
|
pageOrderBy: ''
|
|
},
|
|
formData: {
|
|
jdhid: "",
|
|
jdhnf: "",
|
|
jdhjs: "",
|
|
jdhcs: "",
|
|
jdhms: "",
|
|
jdhkqzt: "",
|
|
sfjc: "",
|
|
isExtend: false
|
|
},
|
|
rules: rules,
|
|
jsList: [],
|
|
cslist: ['一', '二', '三', '四', '五'],
|
|
jsOptions: [],
|
|
csOptions: [
|
|
{id: "一", name: "第一次"},
|
|
{id: "二", name: "第二次"},
|
|
{id: "三", name: "第三次"},
|
|
{id: "四", name: "第四次"},
|
|
{id: "五", name: "第五次"},
|
|
{id: "六", name: "第六次"}
|
|
]
|
|
}
|
|
},
|
|
methods: {
|
|
dateFormat(row, column) {
|
|
let date = row[column.property];
|
|
if (date) {
|
|
return moment(date).format("YYYY-MM-DD")
|
|
}
|
|
},
|
|
doDelete(id) {
|
|
this.$confirm('删除此次教代会将会删除该教代会下面所有的数据(包括提案数据)', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then((res) => {
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: '删除中',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
$.post(base + '/platform/jdh/cb/jcgl/doDelete', {id: id}).then(res => {
|
|
if (res.code === 0) {
|
|
setTimeout(() => {
|
|
loading.spinner = 'el-icon-circle-check'
|
|
loading.text = '删除成功'
|
|
setTimeout(() => {
|
|
loading.close()
|
|
this.doSearch()
|
|
}, 1000)
|
|
|
|
}, 1000)
|
|
} else {
|
|
setTimeout(() => {
|
|
loading.spinner = 'el-icon-circle-close'
|
|
loading.text = '删除失败'
|
|
setTimeout(() => {
|
|
loading.close()
|
|
this.doSearch()
|
|
}, 1000)
|
|
|
|
}, 1000)
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
},
|
|
jsChange(val) {
|
|
$.post(base + "/platform/jdh/cb/jcgl/getcs", {jdhjs: val}).then(res => {
|
|
if (res.code == 0) {
|
|
this.cslist = res.data;
|
|
} else {
|
|
this.$message.error(res.msg)
|
|
}
|
|
})
|
|
},
|
|
csChange(val) {
|
|
if (val === '一') {
|
|
this.$set(this.formData, 'isExtend', false)
|
|
}
|
|
},
|
|
pageOrder(column) {
|
|
this.pageForm.pageOrderName = column.prop
|
|
this.pageForm.pageOrderBy = column.order
|
|
this.pageData()
|
|
},
|
|
pageNumberChange(val) {
|
|
this.pageForm.pageNumber = val
|
|
this.pageData()
|
|
},
|
|
pageData() {
|
|
sublime.showLoadingbar()
|
|
$.post(base + "/platform/jdh/cb/jcgl/pageData", this.pageForm).then(res => {
|
|
sublime.closeLoadingbar()
|
|
if (res.code == 0) {
|
|
this.tableData = res.data.list;
|
|
this.pageForm.totalCount = res.data.totalCount;
|
|
} else {
|
|
this.$message.error(res.msg)
|
|
}
|
|
})
|
|
},
|
|
doSearch() {
|
|
this.pageForm.pageNumber = 1
|
|
this.pageData()
|
|
},
|
|
openAdd() {
|
|
this.formData = {
|
|
jdhid: "",
|
|
jdhnf: (new Date()).getFullYear() + '',
|
|
jdhjs: "",
|
|
jdhcs: "",
|
|
jdhms: "",
|
|
jdhkqzt: "",
|
|
sfjc: "",
|
|
isExtend: false
|
|
},
|
|
this.addDialogVisible = true
|
|
if (this.$refs["addForm"])
|
|
this.$refs["addForm"].resetFields()
|
|
},
|
|
doAdd() {
|
|
if (!this.formData.isExtend && this.formData.jdhcs !== '一') {
|
|
this.$confirm('确定不延用上一次教代会的组织及人员数据吗?这将导致此次教代会的组织及人员都将为空必须重新组建!', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
this.$refs["addForm"].validate(valid => {
|
|
if (valid) {
|
|
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: '提交中',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
})
|
|
|
|
$.post(base + '/platform/jdh/cb/jcgl/doAdd', this.formData).then(res => {
|
|
if (res.code === 0) {
|
|
setTimeout(() => {
|
|
loading.close()
|
|
this.$message.success(res.msg)
|
|
this.doSearch()
|
|
this.addDialogVisible = false
|
|
}, 1500)
|
|
|
|
} else {
|
|
loading.close()
|
|
this.$message.error(res.msg)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
} else {
|
|
this.$refs["addForm"].validate(valid => {
|
|
if (valid) {
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: '提交中',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
|
|
$.post(base + "/platform/jdh/cb/jcgl/doAdd", this.formData).then(res => {
|
|
if (res.code == 0) {
|
|
setTimeout(() => {
|
|
loading.close()
|
|
this.$message.success(res.msg)
|
|
this.doSearch()
|
|
this.addDialogVisible = false
|
|
}, 1500)
|
|
} else {
|
|
loading.close()
|
|
this.$message.error(res.msg)
|
|
}
|
|
})
|
|
|
|
}
|
|
})
|
|
}
|
|
},
|
|
openEdit(scope) {
|
|
this.formData = JSON.parse(JSON.stringify(scope.row))
|
|
this.editDialogVisible = true
|
|
},
|
|
doEdit() {
|
|
this.$refs["editForm"].validate(valid => {
|
|
if (valid) {
|
|
$.post(base + "/platform/jdh/cb/jcgl/editDo", this.formData).then(res => {
|
|
if (res.code == 0) {
|
|
this.$message.success(res.msg)
|
|
this.doSearch()
|
|
this.editDialogVisible = false
|
|
} else {
|
|
this.$message.error(res.msg)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
jdhztChange(status, id) {
|
|
let cz = status === 1 ? '关闭' : '开启'
|
|
this.$confirm('此操作将' + cz + '此次教代会!', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
}).then(() => {
|
|
$.post(base + "/platform/jdh/cb/jcgl/jdhztChange", {id: id, status: status}).then(res => {
|
|
if (res.code == 0) {
|
|
this.doSearch()
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
|
|
}
|
|
},
|
|
async created() {
|
|
this.pageData()
|
|
this.jsList = await getJc()
|
|
this.jsOptions = await getJc()
|
|
}
|
|
})
|
|
</script>
|
|
<!--#
|
|
}
|
|
#-->
|