Files
UNION_NSI/target/classes/views/platform/jdh/cb/cbwj.html
T
2026-09-08 19:49:21 +08:00

419 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--#
layout("/layouts/platform.html"){
#-->
<style>
</style>
<div id="app" v-cloak>
<guava>
<el-card shadow="never">
<div class="btn-group tool-button">
<el-input style="width: 250px;" placeholder="请输入关键字查询" v-model="pageForm.zlname">
</el-input>
</div>
<div class="btn-group tool-button">
<el-select clearable v-model="pageForm.jdhid" filterable placeholder="请选择教代会">
<el-option
v-for="item in jdhList"
:key="item.id"
:label="item.jdhallname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-select clearable v-model="pageForm.zllx" filterable placeholder="请选择工作资料类型">
<el-option
v-for="item in filelxList"
:key="item.id"
:label="item.lxname"
: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 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 prop="zlname" label="资料名称">
</el-table-column>
<el-table-column sortable prop="jdhallname" label="所属教代会">
</el-table-column>
<el-table-column sortable prop="lxname" label="资料类型">
</el-table-column>
<el-table-column sortable prop="username" label="上传人">
</el-table-column>
<el-table-column sortable prop="time" label="上传时间">
</el-table-column>
<el-table-column sortable prop="ispass" label="是否通过">
<template slot-scope="scope">
<i v-if="scope.row.ispass === 0" class="fa fa-circle text-danger ml5"> 未通过</i>
<i v-if="scope.row.ispass === 1" class="fa fa-circle text-success ml5"> 通过</i>
</template>
</el-table-column>
<el-table-column label="操作" width="100">
<template slot-scope="scope">
<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 :command="{type:'preview',data:scope.row}">
查看
</el-dropdown-item>
<el-dropdown-item :command="{type:'Edit',data:scope.row}">
编辑
</el-dropdown-item>
<el-dropdown-item :command="{type:'Delete',data:scope.row}">
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<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-card>
</guava>
<el-dialog title="新建筹备文件" :visible.sync="addDialogVisible">
<el-form :model="formData" ref="addForm" :rules="rules" label-width="100px">
<el-form-item label="上传人">
<el-input readonly value="${@shiro.getPrincipalProperty('username')}"></el-input>
</el-form-item>
<el-form-item prop="jdhid" label="所属教代会">
<el-select v-model="formData.jdhid" placeholder="选择教代会" style="width: 100%">
<el-option
v-for="item in jdhList"
:key="item.id"
:label="item.jdhallname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="zlname" label="资料名称">
<el-input placeholder="请填写工作资料名称" v-model="formData.zlname"></el-input>
</el-form-item>
<el-form-item prop="zllx" label="资料类型">
<el-select v-model="formData.zllx" placeholder="选择资料类型" style="width: 100%">
<el-option
v-for="item in filelxList"
:key="item.id"
:label="item.lxname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="ispass" label="是否通过">
<template>
<el-switch
v-model="formData.ispass"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-form-item>
<el-form-item prop="files" label="附件上传">
<file-upload :files.sync="formData.files"></file-upload>
</el-form-item>
</el-form>
</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">
<el-form :model="formData" ref="editForm" :rules="rules" label-width="100px">
<el-form-item label="上传人">
<el-input readonly v-model="formData.username"></el-input>
</el-form-item>
<el-form-item prop="jdhid" label="所属教代会">
<el-select v-model="formData.jdhid" placeholder="选择教代会" style="width: 100%">
<el-option
v-for="item in jdhList"
:key="item.id"
:label="item.jdhjs+'届'+item.jdhcs+'次教代会'"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="zlname" label="资料名称">
<el-input placeholder="请填写工作资料名称" v-model="formData.zlname"></el-input>
</el-form-item>
<el-form-item prop="zllx" label="资料类型">
<el-select v-model="formData.zllx" placeholder="选择资料类型" style="width: 100%">
<el-option
v-for="item in filelxList"
:key="item.id"
:label="item.lxname"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="ispass" label="是否通过">
<template>
<el-switch
v-model="formData.ispass"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-form-item>
<el-form-item prop="files" label="附件上传">
<file-upload :files.sync="formData.files"></file-upload>
</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>
<el-dialog title="阅览筹备文件" :visible.sync="viewDialogVisible">
<el-form label-width="100px" label-suffix="">
<vi-title title="基本信息"></vi-title>
<el-row>
<el-col :span="12">
<el-form-item label="上传人">
{{formData.username}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教代会">
{{formData.jdhallname}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="zlname" label="资料名称">
{{formData.zlname}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="zllx" label="资料类型">
{{formData.lxname}}
</el-form-item>
</el-col>
</el-row>
<el-form-item prop="ispass" label="是否通过">
{{formData.ispass?'通过':'不通过'}}
</el-form-item>
<vi-title title="附件"></vi-title>
<el-form-item prop="files" label="附&emsp;&emsp;件">
<file-upload :files.sync="formData.files" view></file-upload>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="viewDialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
<script>
let vue = new Vue({
el: "#app",
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
data() {
return {
addDialogVisible: false,
editDialogVisible: false,
viewDialogVisible: false,
tableData: [],
jdhList: [],
filelxList: [],
fileList: [],
pageForm: {
zlname: "",
pageNumber: 1,
pageSize: 10,
totalCount: 0,
pageOrderName: "",
pageOrderBy: ""
},
formData: {},
rules: {
jdhid: [{required: true, message: '请填写所属教代会', trigger: ['blur', 'change']}],
zlname: [{required: true, message: '请填写所属教代会', trigger: ['blur', 'change']}],
zllx: [{required: true, message: '请填写资料类型', trigger: ['blur', 'change']}],
},
delFiles: []
}
},
methods: {
openView(row) {
const formData = clone(row)
formData.files = JSON.parse(formData.files || "[]")
this.formData = formData
this.viewDialogVisible = true
},
dropdownCommand(command) {
const {type, data} = command
if (type == 'preview') {
this.openView(data)
} else if (type == 'Edit') {
this.openEdit(data)
} else if (type == 'Delete') {
this.doDelete(data.id, data.filepath)
}
},
handleChange: function (file, filelist) {
this.fileList = filelist;
},
handleRemove(file, filelist) {
if (file.status === 'success') {
this.fileList = filelist;
this.delFiles.push({fileid: file.id, filepath: file.url})
}
},
onDeleteFile(file) {
if (file.status === 2) {
console.log(file)
this.delFiles.push({fileid: file.fileDes.id, filepath: file.fileDes.filepath})
}
},
doDelete(id, filepath) {
this.$confirm('确定要删除吗', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
$.post(base + '/platform/jdh/cb/cbwj/doDelete', {id: id, filepath: filepath}).then(res => {
if (res.code === 0) {
this.doSearch()
this.$message.success(res.msg)
}
})
}).catch(() => {
})
},
doEdit() {
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
this.$refs['editForm'].validate(async (valid) => {
if (valid) {
const formData = clone(this.formData)
formData.files = JSON.stringify(formData.files)
const resp = await $.post(loc() + '/doEdit', formData)
if (resp.code===0){
this.editDialogVisible = false
this.pageData()
loading.close()
}
}
})
},
doSearch() {
this.pageForm.pageNumber = 1
this.pageData()
},
pageOrder(column) {
this.pageForm.pageOrderName = column.prop
this.pageForm.pageOrderBy = column.order
this.pageData()
},
pageNumberChange(val) {
this.pageForm.pageNumber = val;
this.pageData()
},
pageSizeChange(val) {
this.pageForm.pageSize = val;
this.pageData()
},
pageData() {
sublime.showLoadingbar()
$.post(base + '/platform/jdh/cb/cbwj/pageData', this.pageForm).then(res => {
sublime.closeLoadingbar()
if (res.code === 0) {
this.tableData = res.data.list
this.pageForm.totalCount = res.data.totalCount
}
})
},
openEdit(obj) {
if (this.$refs["editForm"])
this.$refs["editForm"].resetFields()
const formData = clone(obj)
formData.files = JSON.parse(formData.files || "[]")
formData.ispass = formData.ispass === 1
this.formData = formData
this.editDialogVisible = true
},
openAdd() {
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields()
this.formData = {files: []}
this.addDialogVisible = true
},
doAdd() {
const loading = this.$loading({
lock: true,
text: '正在提交...',
spinner: 'el-icon-loading',
background: COVER_LAYER_COLOR
});
this.$refs['addForm'].validate(async valid => {
if (valid) {
const formData = clone(this.formData)
formData.files = JSON.stringify(formData.files)
const resp = await $.post(loc() + '/doAdd', formData)
if (resp.code===0){
this.addDialogVisible = false
this.pageData()
loading.close()
}
}
})
}
},
async created() {
this.pageData()
this.jdhList = await proposal.getOpenMeeting()
this.filelxList = await getGzzllx()
}
})
</script>
<!--#
}
#-->