Files
UNION_HUTB/target/classes/views/platform/jdh/cb/jcgl.html
T
2026-09-09 09:14:28 +08:00

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"
formData="yyyy"
placeholder="选择年份"
type="year"
v-model="pageForm.searchYear"
value-format="yyyy">
</el-date-picker>
</div>
<div class="btn-group tool-button">
<el-select clearable placeholder="请选择届数" v-model="pageForm.jdhjs">
<el-option
:key="item.id"
:label="item.name"
:value="item.code"
v-for="item in jsOptions">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-select clearable placeholder="请选择次数" v-model="pageForm.jdhcs">
<el-option
:key="item.id"
:label="item.name"
:value="item.id"
v-for="item in csOptions">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-button @click="doSearch" icon="el-icon-search" type="primary"></el-button>
</div>
<div class="pull-right offscreen-right">
<el-button @click="openAdd" size="medium" type="primary"><i class="ti-plus"></i> 新建届次</el-button>
</div>
</el-card>
<el-card class="mt20" shadow="never">
<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 label="描述" prop="jdhms"></el-table-column>
<el-table-column :formatter="dateFormat" label="创建时间" prop="jdhkqsj"></el-table-column>
<el-table-column label="开启状态" prop="jdhkqzt">
<template slot-scope="scope">
<el-switch :value="scope.row.jdhkqzt===1"
@change="jdhztChange(scope.row.jdhkqzt,scope.row.id)"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<el-button :disabled="scope.row.jdhkqzt===0" @click="openEdit(scope)" size="mini"
type="primary">
编辑
</el-button>
<el-button :disabled="scope.row.jdhkqzt===0" @click="doDelete(scope.row.id)" size="mini"
type="danger">删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-row class="el-pagination-container">
<el-pagination
:current-page="pageForm.pageNumber"
:total="pageForm.totalCount"
@current-change="pageNumberChange"
layout="total, prev, pager, next, jumper">
</el-pagination>
</el-row>
</el-card>
</guava>
<el-dialog
:visible.sync="addDialogVisible"
title="新建届次"
width="45%">
<el-form :model="formData" :rules="rules" label-width="120px" ref="addForm">
<el-form-item label="教代会年份" prop="jdhnf">
<el-date-picker :clearable="false" formData="yyyy"
placeholder="选择年"
style="width:100%;"
type="year"
v-model="formData.jdhnf"
value-format="yyyy">
</el-date-picker>
</el-form-item>
<el-form-item label="教代会届数" prop="jdhjs">
<el-select filterable placeholder="请选择届数" style="width:100%;" v-model="formData.jdhjs">
<el-option :key="i.id" :label="i.name" :value="i.code" v-for="i in jsList"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会次数" prop="jdhcs">
<el-select @change="csChange" filterable placeholder="请选择次数" style="width:100%;"
v-model="formData.jdhcs">
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in csOptions"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会描述" prop="jdhms">
<el-input :rows="2"
placeholder="请输入教代会描述"
type="textarea"
v-model="formData.jdhms">
</el-input>
</el-form-item>
<el-form-item class="is-required" label="" label-width="30px" prop="sfjc" style="margin-top: 20px;">
<el-checkbox :disabled="formData.jdhcs=='一' || formData.jdhcs==''"
style="font-size: 14px;color: #ff6a00;width: 100%"
v-model="formData.isExtend">
<span style="text-overflow: clip;white-space: normal;">
延用上一次教代会的组织机构及代表信息,包含【筹备领导小组;资格审查小组;主席团;执行委员会;专门委员会;代表团;教代会代表】。
</span>
</el-checkbox>
</el-form-item>
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button @click="doAdd" type="primary">确 定</el-button>
</span>
</el-dialog>
<el-dialog
:close-on-click-modal="false"
:visible.sync="editDialogVisible"
custom-class="ViewDialogClass"
title="编辑教代会信息"
width="45%">
<el-form :model="formData" :rules="rules" label-width="120px" ref="editForm">
<el-form-item label="教代会年份" prop="jdhnf">
<div class="block">
<el-date-picker formData="yyyy"
placeholder="选择年"
style="width:250px;"
type="year"
v-model="formData.jdhnf"
value-format="yyyy">
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="教代会届数" prop="jdhjs">
<el-select filterable placeholder="请选择届数" style="width:100%;" v-model="formData.jdhjs">
<el-option :key="i.id" :label="i.name" :value="i.code" v-for="i in jsList"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会次数" prop="jdhcs">
<el-select filterable placeholder="请选择次数" style="width:100%;" v-model="formData.jdhcs">
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in csOptions"></el-option>
</el-select>
</el-form-item>
<el-form-item label="教代会描述" prop="jdhms">
<el-input :rows="2"
auto-complete="off"
placeholder="请输入教代会主题描述"
style="width:450px;"
type="textarea"
v-model="formData.jdhms">
</el-input>
</el-form-item>
</el-form>
<span class="dialog-footer" slot="footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button @click="doEdit" type="primary">确 定</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>
<!--#
}
#-->