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

426 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 placeholder="请输入关键字查询" style="width: 250px;" v-model="pageForm.zlname">
</el-input>
</div>
<div class="btn-group tool-button">
<el-select clearable filterable placeholder="请选择教代会" v-model="pageForm.jdhid">
<el-option
:key="item.id"
:label="item.jdhallname"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button">
<el-select clearable filterable placeholder="请选择工作资料类型" v-model="pageForm.zllx">
<el-option
:key="item.id"
:label="item.lxname"
:value="item.id"
v-for="item in filelxList">
</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="序号" type="index">
<template scope="scope">
<span>{{scope.$index+(pageForm.pageNumber - 1) * pageForm.pageSize + 1}} </span>
</template>
</el-table-column>
<el-table-column label="资料名称" prop="zlname">
</el-table-column>
<el-table-column label="所属教代会" prop="jdhallname" sortable>
</el-table-column>
<el-table-column label="资料类型" prop="lxname" sortable>
</el-table-column>
<el-table-column label="上传人" prop="username" sortable>
</el-table-column>
<el-table-column label="上传时间" prop="time" sortable>
</el-table-column>
<el-table-column label="是否通过" prop="ispass" sortable>
<template slot-scope="scope">
<i class="fa fa-circle text-danger ml5" v-if="scope.row.ispass === 0"> 未通过</i>
<i class="fa fa-circle text-success ml5" v-if="scope.row.ispass === 1"> 通过</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
:current-page="pageForm.pageNumber"
:page-size="pageForm.pageSize"
:page-sizes="[10, 20, 30, 50]"
:total="pageForm.totalCount"
@current-change="pageNumberChange"
@size-change="pageSizeChange"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
</el-row>
</el-card>
</guava>
<el-dialog :visible.sync="addDialogVisible" title="新建筹备文件">
<el-form :model="formData" :rules="rules" label-width="100px" ref="addForm">
<el-form-item label="上传人">
<el-input readonly value="${@shiro.getPrincipalProperty('username')}"></el-input>
</el-form-item>
<el-form-item label="所属教代会" prop="jdhid">
<el-select placeholder="选择教代会" style="width: 100%" v-model="formData.jdhid">
<el-option
:key="item.id"
:label="item.jdhallname"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="资料名称" prop="zlname">
<el-input placeholder="请填写工作资料名称" v-model="formData.zlname"></el-input>
</el-form-item>
<el-form-item label="资料类型" prop="zllx">
<el-select placeholder="选择资料类型" style="width: 100%" v-model="formData.zllx">
<el-option
:key="item.id"
:label="item.lxname"
:value="item.id"
v-for="item in filelxList">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否通过" prop="ispass">
<template>
<el-switch
active-color="#13ce66"
inactive-color="#ff4949"
v-model="formData.ispass">
</el-switch>
</template>
</el-form-item>
<el-form-item label="附件上传" prop="files">
<file-upload :files.sync="formData.files"></file-upload>
</el-form-item>
</el-form>
</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 :visible.sync="editDialogVisible" title="编辑筹备文件">
<el-form :model="formData" :rules="rules" label-width="100px" ref="editForm">
<el-form-item label="上传人">
<el-input readonly v-model="formData.username"></el-input>
</el-form-item>
<el-form-item label="所属教代会" prop="jdhid">
<el-select placeholder="选择教代会" style="width: 100%" v-model="formData.jdhid">
<el-option
:key="item.id"
:label="item.jdhjs+'届'+item.jdhcs+'次教代会'"
:value="item.id"
v-for="item in jdhList">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="资料名称" prop="zlname">
<el-input placeholder="请填写工作资料名称" v-model="formData.zlname"></el-input>
</el-form-item>
<el-form-item label="资料类型" prop="zllx">
<el-select placeholder="选择资料类型" style="width: 100%" v-model="formData.zllx">
<el-option
:key="item.id"
:label="item.lxname"
:value="item.id"
v-for="item in filelxList">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否通过" prop="ispass">
<template>
<el-switch
active-color="#13ce66"
inactive-color="#ff4949"
v-model="formData.ispass">
</el-switch>
</template>
</el-form-item>
<el-form-item label="附件上传" prop="files">
<file-upload :files.sync="formData.files"></file-upload>
</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>
<el-dialog :visible.sync="viewDialogVisible" title="阅览筹备文件">
<el-form label-suffix="" label-width="100px">
<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 label="资料名称" prop="zlname">
{{formData.zlname}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="资料类型" prop="zllx">
{{formData.lxname}}
</el-form-item>
</el-col>
</el-row>
<el-form-item label="是否通过" prop="ispass">
{{formData.ispass?'通过':'不通过'}}
</el-form-item>
<vi-title title="附件"></vi-title>
<el-form-item label="附&emsp;&emsp;件" prop="files">
<file-upload :files.sync="formData.files" view></file-upload>
</el-form-item>
</el-form>
<span class="dialog-footer" slot="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() {
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)
AssertResponseMessage({
app: this,
response: resp,
success: () => {
this.editDialogVisible = false
this.pageData()
},
final: () => {
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 || "[]")
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)
AssertResponseMessage({
app: this,
response: resp,
success: () => {
this.addDialogVisible = false
this.pageData()
},
final: () => {
loading.close()
}
})
}
})
}
},
async created() {
this.pageData()
this.jdhList = await getAllJdh()
this.filelxList = await getGzzllx()
}
})
</script>
<!--#
}
#-->