first commit
This commit is contained in:
@@ -0,0 +1,404 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.box-card {
|
||||
border-radius: 16px;
|
||||
padding-right: 80px;
|
||||
}
|
||||
|
||||
.el-divider {
|
||||
background-color: #409EFF;
|
||||
}
|
||||
|
||||
.el-divider__text.is-left {
|
||||
color: #409EFF;
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.el-date-editor.el-input, .el-date-editor.el-input__inner, .el-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.item-button {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-button .el-button {
|
||||
padding: 12px 100px;
|
||||
}
|
||||
|
||||
.el-select-dropdown, .el-picker-panel, .el-loading-mask {
|
||||
z-index: 99999 !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<h3 style="color:#1867b0">双代会请示</h3>
|
||||
</template>
|
||||
|
||||
<el-form ref="addForm" :model="formData" :rules="formRules" label-width="120px">
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="jdhjs" label="届数">
|
||||
<el-select @change="jdhjsChange" v-model="formData.jdhjs" filterable clearable style="width: 100%"
|
||||
placeholder="届数">
|
||||
<el-option v-for="item in jsList" :key="item.id" :label="item.name"
|
||||
:value="item.code">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="jdhcs" label="次数">
|
||||
<el-select @change="jdhcsChange" v-model="formData.jdhcs" filterable clearable
|
||||
style="width: 100%"
|
||||
placeholder="次数">
|
||||
<el-option v-for="item in csOptions" :key="item.id" :label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议名称" prop="meeting_name">
|
||||
<el-input
|
||||
placeholder="请填写会议名称"
|
||||
v-model="formData.meeting_name"
|
||||
clearable
|
||||
maxlength="100">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<!--<el-form-item label="有无选举事项" prop="have_elect">
|
||||
<el-radio-group v-model="formData.have_elect">
|
||||
<el-radio-button :label="true">有</el-radio-button>
|
||||
<el-radio-button :label="false">无</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>-->
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-radio-group v-model="formData.type">
|
||||
<el-radio-button label="换届会">换届会</el-radio-button>
|
||||
<el-radio-button label="届中会">届中会</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请单位" prop="unit_name">
|
||||
<el-input placeholder="申请单位"
|
||||
:clearable="false"
|
||||
readonly
|
||||
v-model="formData.unit_name">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所在工会" prop="union_name">
|
||||
<el-input placeholder="所在工会"
|
||||
:clearable="false"
|
||||
readonly
|
||||
v-model="formData.union_name">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="会议时间" prop="meeting_time">
|
||||
<el-date-picker
|
||||
v-model="formData.meeting_time"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd HH:mm"
|
||||
value-format="yyyy-MM-dd HH:mm"
|
||||
:clearable="false"
|
||||
placeholder="选择会议时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请时间" prop="create_time">
|
||||
<el-input placeholder="申请时间"
|
||||
:clearable="false"
|
||||
readonly
|
||||
v-model="formData.create_time">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!--<el-col :span="12">
|
||||
<el-form-item label="上一次会议时间" prop="before_meeting_time">
|
||||
<el-date-picker
|
||||
v-model="formData.before_meeting_time"
|
||||
type="datetime"
|
||||
format="yyyy-MM-dd HH:mm"
|
||||
value-format="yyyy-MM-dd HH:mm"
|
||||
:clearable="false"
|
||||
placeholder="选择上一次会议时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<!--<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="正式代表人数" prop="official_delegate">
|
||||
<el-input v-model="formData.official_delegate"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="请输入正式代表人数"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="其中教师" prop="teacher_delegate">
|
||||
<el-input v-model="formData.teacher_delegate" oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="请输入教师代表人数"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="列席代表人数" prop="attend_delegate">
|
||||
<el-input v-model="formData.attend_delegate" oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="请输入列席代表人数"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="其中特邀" prop="special_delegate">
|
||||
<el-input v-model="formData.special_delegate" oninput="value=value.replace(/[^\d]/g,'')"
|
||||
placeholder="请输入特邀代表人数"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
|
||||
<el-form-item label="会议议程" prop="meeting_topic" class="is-required">
|
||||
<div id="meetingTopicRich"></div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input maxlength="500" type="textarea" :rows="4" placeholder="请输入备注"
|
||||
v-model="formData.remark"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="files" label="请示附件" class="is-required">
|
||||
<file-upload :max="1" :files.sync="formData.files">
|
||||
<template #el-upload__tip>
|
||||
<div class="el-upload__tip" slot="tip">图片类请上传jpg/png/jpeg等格式,文档类请上传doc/docx/xls/xlsx/pdf等格式,上传数量为1个</div>
|
||||
</template>
|
||||
</file-upload>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="text-align: right">
|
||||
<el-button type="danger" @click="resetForm">重 置
|
||||
</el-button>
|
||||
<el-button type="primary" @click="operation" :loading="subLoading">提 交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function getQueryVariable(variable) {
|
||||
let query = window.location.search.substring(1);
|
||||
let vars = query.split("&");
|
||||
for (let i = 0; i < vars.length; i++) {
|
||||
let pair = vars[i].split("=");
|
||||
if (pair[0] == variable) {
|
||||
return pair[1];
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
let E = window.wangEditor
|
||||
let meetingTopicRich = null
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
const meetingTopicValid = (rule, value, callback) => {
|
||||
if (!this.formData.meeting_topic || !dd3s.html2txt(this.formData.meeting_topic)) {
|
||||
callback(new Error('请填写会议议题'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
const filesValid = (rule, value, callback) => {
|
||||
if (!this.formData.files || this.formData.files.length === 0) {
|
||||
callback(new Error('请上传请示附件'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
jsList: [],
|
||||
csOptions: [
|
||||
{id: "一", name: "一次"},
|
||||
{id: "二", name: "二次"},
|
||||
{id: "三", name: "三次"},
|
||||
{id: "四", name: "四次"},
|
||||
{id: "五", name: "五次"},
|
||||
{id: "六", name: "六次"},
|
||||
],
|
||||
subLoading: false,
|
||||
sessionOptions: [],
|
||||
formData: {
|
||||
meeting_name: '',
|
||||
have_elect: false,
|
||||
unit_name: '${@shiro.getPrincipalProperty("unit").getName()}',
|
||||
union_name: '${@shiro.getPrincipalProperty("union").getUnionname()}',
|
||||
create_time: moment(new Date()).format("YYYY-MM-DD"),
|
||||
meeting_time: '',
|
||||
before_meeting_time: '',
|
||||
session_num: '',
|
||||
frequency: '',
|
||||
official_delegate: '',
|
||||
teacher_delegate: '',
|
||||
attend_delegate: '',
|
||||
special_delegate: '',
|
||||
meeting_topic: '',
|
||||
remark: '',
|
||||
files: [],
|
||||
type: '届中会'
|
||||
},
|
||||
formRules: {
|
||||
meeting_name: [{required: true, message: '请填写会议标题', trigger: ['blur', 'change']}],
|
||||
session_id: [{required: true, message: '请选择届次', trigger: ['blur', 'change']}],
|
||||
jdhjs: [{required: true, message: '请选择届数', trigger: ['blur', 'change']}],
|
||||
type: [{required: true, message: '请选择类型', trigger: ['blur', 'change']}],
|
||||
have_elect: [{required: true, message: '请选择有无选举事项', trigger: ['blur', 'change']}],
|
||||
unit_name: [{required: true, message: '请选择填表单位', trigger: ['blur', 'change']}],
|
||||
create_time: [{required: true, message: '请选择填表日期', trigger: ['blur', 'change']}],
|
||||
meeting_time: [{required: true, message: '请选择会议时间', trigger: ['blur', 'change']}],
|
||||
session_num: [{required: true, message: '请选择届数', trigger: ['blur', 'change']}],
|
||||
frequency: [{required: true, message: '请选择次数', trigger: ['blur', 'change']}],
|
||||
official_delegate: [{required: true, message: '请填写正式代表人数', trigger: ['blur', 'change']}],
|
||||
meeting_topic: [{validator: meetingTopicValid, trigger: ['blur', 'change']}],
|
||||
files: [{validator: filesValid, trigger: ['blur', 'change']}],
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue')
|
||||
},
|
||||
methods: {
|
||||
jdhjsChange(o) {
|
||||
const j = this.formData.jdhjs ? ('第' + this.formData.jdhjs + '届') : ''
|
||||
const c = this.formData.jdhcs ? ('第' + this.formData.jdhcs + '次') : ''
|
||||
const str = '关于召开' + this.formData.unit_name + j + c + '教职工代表大会、工会会员代表大会的请示'
|
||||
this.formData.meeting_name = str
|
||||
},
|
||||
jdhcsChange(o) {
|
||||
const j = this.formData.jdhjs ? ('第' + this.formData.jdhjs + '届') : ''
|
||||
const c = this.formData.jdhcs ? ('第' + this.formData.jdhcs + '次') : ''
|
||||
const str = '关于召开' + this.formData.unit_name + j + c + '教职工代表大会、工会会员代表大会的请示'
|
||||
this.formData.meeting_name = str
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs["addForm"].resetFields();
|
||||
meetingTopicRich.txt.html('')
|
||||
meetingTopicRich.create()
|
||||
},
|
||||
async openEdit(id) {
|
||||
const resp = await $.get(loc() + "/findOne", {id})
|
||||
if(resp.code===0){
|
||||
const data = resp.data
|
||||
data.files = JSON.parse(data.files)
|
||||
this.formData = data
|
||||
this.$nextTick(() => {
|
||||
meetingTopicRich = new E('#meetingTopicRich')
|
||||
meetingTopicRich.config.onchange = (html) => {
|
||||
this.formData.meeting_topic = html
|
||||
}
|
||||
setTimeout(() => {
|
||||
meetingTopicRich.create()
|
||||
meetingTopicRich.txt.html(data.meeting_topic)
|
||||
}, 100)
|
||||
})
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
},
|
||||
initPage() {
|
||||
this.$nextTick(() => {
|
||||
meetingTopicRich = new E('#meetingTopicRich')
|
||||
meetingTopicRich.config.onchange = (html) => {
|
||||
this.formData.meeting_topic = html
|
||||
}
|
||||
setTimeout(() => {
|
||||
meetingTopicRich.create()
|
||||
}, 100)
|
||||
})
|
||||
},
|
||||
async operation() {
|
||||
if (!this.formData.files || this.formData.files.length === 0) {
|
||||
this.$notify.warning({title: '提示', message: '请上传请示附件!'});
|
||||
return
|
||||
}
|
||||
let method = this.formData.id ? "/doEdit" : "/doAdd"
|
||||
this.$refs["addForm"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
/*this.subLoading = true
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});*/
|
||||
|
||||
this.formData.jdhallname = this.formData.jdhjs + '届'
|
||||
if(this.formData.jdhcs) {
|
||||
this.formData.jdhallname += this.formData.jdhcs + '次'
|
||||
}
|
||||
|
||||
const data = clone(this.formData)
|
||||
data.files = JSON.stringify(data.files)
|
||||
|
||||
const resp = await $.post(loc() + method, {jdhLevel2: JSON.stringify(data)})
|
||||
if (resp.code === 0) {
|
||||
this.$notify({
|
||||
title: '成功',
|
||||
message: resp.msg,
|
||||
type: 'success',
|
||||
duration: 1000,
|
||||
onClose: () => {
|
||||
sublime.jumpPagePjax('/platform/jdh/level2/reading')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*requestLaterFun(resp, () => {
|
||||
window.location.href = '/platform/jdh/level2/reading'
|
||||
}, () => {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}, () => {
|
||||
loading.close()
|
||||
this.subLoading = false
|
||||
})*/
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.sessionOptions = await getOpenJdhByDb()
|
||||
let id = getQueryVariable("id")
|
||||
id ? this.openEdit(id) : this.initPage()
|
||||
this.jsList = await getJc()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,221 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.item-button {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-button .el-button {
|
||||
padding: 12px 100px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<jdh-two-search :page="pageForm" @search="doSearch" :isadmin="isAdmin" :unionid="unionId"></jdh-two-search>
|
||||
|
||||
<jdh-two-table :page="pageForm" :table="tableData" :loading="tableLoading">
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template 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:'view',data:scope.row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="![100,300,500].includes(scope.row.audit_state)" :command="{type:'rollback',data:scope.row}">
|
||||
撤回
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="[100,300].includes(scope.row.audit_state)"
|
||||
:command="{type:'audit',data:scope.row}">
|
||||
审核
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
|
||||
</jdh-two-table>
|
||||
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
|
||||
<jdh-two-info ref="audit" :label="title" handle>
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="auditForm" :rules="formRules" label-position="right"
|
||||
label-width="120px">
|
||||
|
||||
<vi-title title="批复信息"></vi-title>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="reply_username" label="批复人">
|
||||
<el-input value="${@shiro.getPrincipalProperty('username')}" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="reply_time" label="批复时间">
|
||||
<el-input v-model="formData.auditTime" disabled></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item prop="opinion" label="批复意见">
|
||||
<el-input type="textarea" v-model="formData.opinion" rows="4" maxlength="500"
|
||||
placeholder="请填写您的批复意见"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="files" label="批复附件" class="is-required">
|
||||
<file-upload :max="1" :files.sync="formData.files">
|
||||
<template #el-upload__tip>
|
||||
<div class="el-upload__tip" slot="tip">图片类请上传jpg/png/jpeg等格式,文档类请上传doc/docx/xls/xlsx/pdf等格式,上传数量为1个</div>
|
||||
</template>
|
||||
</file-upload>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item class="item-button">
|
||||
<el-button type="danger" @click="doAudit(false)" style="margin-right: 20px">退  回
|
||||
</el-button>
|
||||
<el-button type="primary" @click="doAudit(true)">通  过</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
</jdh-two-info>
|
||||
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<jdh-two-info ref="view"></jdh-two-info>
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'jdh-two-search': httpVueLoader('/components/jdh/JdhTwoSearch.vue'),
|
||||
'jdh-two-table': httpVueLoader('/components/jdh/JdhTwoTable.vue?v=1.0.0'),
|
||||
'jdh-two-info': httpVueLoader('/components/jdh/JdhTwoInfo.vue?v=1.0.0')
|
||||
},
|
||||
data() {
|
||||
const filesValid = (rule, value, callback) => {
|
||||
if (!this.formData.files || this.formData.files.length === 0) {
|
||||
callback(new Error('请上传批复附件'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
title: '审核',
|
||||
pageForm: {
|
||||
searchName: "meeting_name",
|
||||
isAudit: false
|
||||
},
|
||||
formData: {
|
||||
auditTime: moment().format('YYYY-MM-DD')
|
||||
},
|
||||
formRules: {
|
||||
opinion: [{required: true, message: '请填写审核意见', trigger: ['blur', 'change']}],
|
||||
files: [{validator: filesValid, trigger: ['blur', 'change']}],
|
||||
},
|
||||
isAdmin: "${@shiro.hasAnyRoles('sysadmin', 'A06')}" === 'true',
|
||||
unionId: "${@shiro.getPrincipalProperty('union').getId()}",
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'audit') {
|
||||
this.openReview(data)
|
||||
} else if (type == 'rollback') {
|
||||
this.rollback(data)
|
||||
}
|
||||
},
|
||||
rollback(data) {
|
||||
this.$confirm('您确定要撤回吗!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
$.post(loc() + "/callback", {id: data.id}, (data) => {
|
||||
if (data.code === 0) {
|
||||
this.$message({message: data.msg, type: 'success'});
|
||||
this.pageData();
|
||||
} else {
|
||||
this.$message({message: data.msg, type: 'warning'});
|
||||
}
|
||||
}, "json");
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
openView(data) {
|
||||
this.$refs.guava.view()
|
||||
this.$refs.view.openView(data.id)
|
||||
},
|
||||
openReview(data) {
|
||||
this.title = data.audit_state == 100 ? "院级党委审核" : "校工会审核"
|
||||
this.formData.id = data.id
|
||||
this.$refs.guava.edit()
|
||||
this.$refs.audit.openView(data.id)
|
||||
},
|
||||
doAudit(flag) {
|
||||
if (!this.formData.files || this.formData.files.length === 0) {
|
||||
this.$notify.warning({title: '提示', message: '请上传批复附件!'});
|
||||
return
|
||||
}
|
||||
this.$refs["auditForm"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在提交...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: COVER_LAYER_COLOR
|
||||
});
|
||||
|
||||
const resp = await $.post(loc() + "/doAudit", {
|
||||
id: this.formData.id,
|
||||
opinion: this.formData.opinion,
|
||||
flag: flag,
|
||||
files: JSON.stringify(this.formData.files)
|
||||
})
|
||||
loading.close()
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,234 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button mt5">
|
||||
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"
|
||||
@keyup.enter.native="doSearch">
|
||||
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型"
|
||||
style="width: 100px;">
|
||||
<el-option label="姓名" value="u.username"></el-option>
|
||||
<el-option label="工号" value="u.loginname"></el-option>
|
||||
</el-select>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select clearable v-model="pageForm.unionid" placeholder="请选择分工会" @change="getJdhList">
|
||||
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-select v-model="pageForm.jdhid" placeholder="请选择教代会">
|
||||
<el-option v-for="i in jdhList" :label="i.jdhallname" :value="i.id" :key="i.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 mt5">
|
||||
<el-button type="primary" @click="openAdd">添加代表</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
@sort-change='pageOrder'>
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
v-for="column in tableColumns"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="userOnline" align="center" header-align="center" label="操作"
|
||||
width="150px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="danger" :loading="row.loading" @click="doDelete(row)">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</guava>
|
||||
|
||||
<el-dialog :title="dbTitle" :visible.sync="addDialogVisible" width="40%">
|
||||
<el-form :model="formData" ref="AddForm" :rules="rules" label-width="80px">
|
||||
<el-form-item prop="unionid" label="分工会:">
|
||||
<el-select clearable v-model="formData.unionid" placeholder="请选择分工会" @change="getJdhList2"
|
||||
style="width: 100%">
|
||||
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="jdhid" label="教代会:">
|
||||
<el-select v-model="formData.jdhid" placeholder="请选择教代会" style="width: 100%">
|
||||
<el-option v-for="i in jdhList2" :label="i.jdhallname" :value="i.id" :key="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="userList" label="用户">
|
||||
<el-select
|
||||
v-model="formData.userList"
|
||||
value-key="id"
|
||||
filterable
|
||||
remote
|
||||
multiple
|
||||
reserve-keyword
|
||||
placeholder="请输入工号或者姓名"
|
||||
:remote-method="queryNotDbUser" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in notUserList"
|
||||
:key="item.id"
|
||||
:label="item.username+'-'+item.loginname+'-'+item.unitname"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</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>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dbTitle: "新增代表",
|
||||
addDialogVisible: false,
|
||||
pageForm: {
|
||||
searchName: "u.username",
|
||||
jdhid: ""
|
||||
},
|
||||
fghList: [],
|
||||
jdhList: [],
|
||||
jdhList2: [],
|
||||
notUserList: [],
|
||||
tableColumns: [
|
||||
{prop: 'loginname', label: '工号', sortable: true},
|
||||
{prop: 'username', label: '姓名', sortable: true},
|
||||
{prop: 'sex', label: '性别', sortable: true},
|
||||
{prop: 'mobile', label: '联系方式', sortable: true},
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'unionname', label: '所属工会', sortable: true},
|
||||
{prop: 'jdhallname', label: '教代会', sortable: true},
|
||||
],
|
||||
formData: {
|
||||
jdhid: "",
|
||||
userList: ""
|
||||
},
|
||||
rules: {
|
||||
unionid: [{required: true, trigger: ['blur', 'change'], message: '请选择工会'}],
|
||||
userList: [{required: true, trigger: ['blur', 'change'], message: '请选择代表'}],
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doDelete(row) {
|
||||
const {id, userid, jdhid} = row
|
||||
this.$confirm('确定要删除该代表吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" === a) {//确认后再执行
|
||||
|
||||
this.$set(row, "loading", true)
|
||||
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id, userid: userid, jdhid: jdhid});
|
||||
this.$set(row, "loading", false)
|
||||
this.pageData()
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
},
|
||||
doAdd() {
|
||||
this.$refs['AddForm'].validate(async valid => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: '正在添加中,请稍后...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: "rgba(0,0,0,.45)"
|
||||
});
|
||||
this.formData.userList = JSON.stringify(this.formData.userList)
|
||||
const {data} = await $.post(loc() + "/doAdd", this.formData)
|
||||
this.pageData()
|
||||
this.addDialogVisible = false
|
||||
loading.close()
|
||||
}
|
||||
})
|
||||
},
|
||||
async openAdd() {
|
||||
this.fghList = await getUnion()
|
||||
if ("${@shiro.hasRole('H04')}" === 'true') {
|
||||
this.formData.unionid = this.fghList[0].id
|
||||
await this.getJdhList2()
|
||||
}
|
||||
this.addDialogVisible = true
|
||||
if (this.$refs["AddForm"]) this.$refs["AddForm"].resetFields()
|
||||
},
|
||||
async queryNotDbUser(key) {
|
||||
if (this.formData.unionid === '') {
|
||||
this.$message.info('请先选择分工会')
|
||||
return
|
||||
}
|
||||
this.formData.keyword = key
|
||||
const {data} = await $.post(loc() + "/queryNotUser", this.formData)
|
||||
this.notUserList = data.list
|
||||
|
||||
},
|
||||
async getJdhList() {
|
||||
this.jdhList = []
|
||||
this.pageForm.jdhid = ""
|
||||
const resp = await $.post(loc() + "/getJdhList", {unionid: this.pageForm.unionid})
|
||||
if (resp.length > 0 && this.pageForm.unionid) {
|
||||
this.jdhList = resp
|
||||
this.pageForm.jdhid = resp[0].id
|
||||
} else {
|
||||
this.jdhList = []
|
||||
}
|
||||
},
|
||||
async getJdhList2() {
|
||||
this.jdhList2 = []
|
||||
this.formData.jdhid = ""
|
||||
const resp = await $.post(loc() + "/getJdhList", {unionid: this.formData.unionid})
|
||||
if (resp.length > 0 && this.formData.unionid) {
|
||||
this.jdhList2 = resp
|
||||
this.formData.jdhid = resp[0].id
|
||||
} else {
|
||||
this.jdhList2 = []
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.fghList = await getUnions()
|
||||
if ("${@shiro.hasRole('H04')}" === 'true') {
|
||||
this.pageForm.unionid = this.fghList[0].id
|
||||
await this.getJdhList()
|
||||
}
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,510 @@
|
||||
<!--#
|
||||
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 ref="guava">
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button">
|
||||
<el-date-picker
|
||||
v-model="pageForm.searchYear"
|
||||
value-format="yyyy"
|
||||
formData="yyyy"
|
||||
type="year"
|
||||
placeholder="选择年度">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-input placeholder="输入届数" v-model="pageForm.jdhjs" style="width: 200px" clearable
|
||||
@keyup.enter.native="doSearch">
|
||||
<template slot="prepend">届数</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="btn-group tool-button">
|
||||
<el-input placeholder="输入次数" v-model="pageForm.jdhcs" style="width: 200px" clearable
|
||||
@keyup.enter.native="doSearch">
|
||||
<template slot="prepend">次数</template>
|
||||
</el-input>
|
||||
</div>
|
||||
|
||||
<div class="btn-group tool-button">
|
||||
<el-select clearable v-model="pageForm.unionid" placeholder="请选择分工会">
|
||||
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.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 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"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="jdhnf"
|
||||
label="年度">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="jdhjs"
|
||||
label="届数">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.jdhjs}}届
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="jdhcs"
|
||||
label="次数">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.jdhcs}}次
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
sortable
|
||||
prop="unionname"
|
||||
label="所属工会">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="jdhallname"
|
||||
label="届次全称">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="jdhms"
|
||||
label="描述">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="jdhcjsj"
|
||||
label="创建时间">
|
||||
</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 size="mini" type="primary" @click="openEdit(scope)">编辑</el-button>
|
||||
<el-button size="mini" type="danger" @click="doDelete(scope.row.id)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
|
||||
<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:250px;"
|
||||
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:250px;">
|
||||
<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:250px;">
|
||||
<el-option v-for="i in cslist" :key="i" :label="i+'次'" :value="i"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="unionid" label="所属工会">
|
||||
<el-select clearable v-model="formData.unionid" placeholder="请选择分工会">
|
||||
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="jdhms" label="教代会描述">
|
||||
<el-input type="textarea"
|
||||
:rows="2"
|
||||
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: 98%">
|
||||
<span>
|
||||
延用上一次教代会的代表信息。
|
||||
</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:250px;"
|
||||
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:250px;">
|
||||
<el-option v-for="i in 30" :label="i+'届'" :key="i" :value="i"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="jdhcs" label="教代会次数">
|
||||
<el-select v-model="formData.jdhcs" filterable placeholder="请选择次数" style="width:250px;">
|
||||
<el-option v-for="i in cslist" :key="i" :label="i+'次'" :value="i"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="unionid" label="所属工会">
|
||||
<el-select clearable v-model="formData.unionid" placeholder="请选择分工会" disabled>
|
||||
<el-option v-for="i in fghList" :label="i.unionname" :value="i.id" :key="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="jdhms" label="教代会描述">
|
||||
<el-input style="width:450px;"
|
||||
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>
|
||||
|
||||
</guava>
|
||||
</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",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
addDialogVisible: false,
|
||||
editDialogVisible: false,
|
||||
tableData: [],
|
||||
fghList: [],
|
||||
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: ['一', '二', '三', '四', '五']
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
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/jdh2/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()
|
||||
}, 1500)
|
||||
|
||||
}, 1000)
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
loading.spinner = 'el-icon-circle-close'
|
||||
loading.text = '删除失败'
|
||||
setTimeout(() => {
|
||||
loading.close()
|
||||
this.doSearch()
|
||||
}, 1500)
|
||||
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
jsChange(val) {
|
||||
console.log(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/jdh2/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)
|
||||
}
|
||||
})
|
||||
},
|
||||
formatAt(val) {
|
||||
if (val > 0)
|
||||
return moment(val * 1000).format("YYYY-MM-DD HH:mm")
|
||||
return ""
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
openAdd() {
|
||||
if ("${@shiro.hasRole('H04')}" === 'true') {
|
||||
this.formData.unionid = this.fghList[0].id
|
||||
}
|
||||
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/jdh2/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/jdh2/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))
|
||||
console.log(this.formData)
|
||||
this.editDialogVisible = true
|
||||
},
|
||||
doEdit() {
|
||||
this.$refs["editForm"].validate(valid => {
|
||||
if (valid) {
|
||||
$.post(base + "/platform/jdh2/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/jdh2/cb/jcgl/jdhztChange", {id: id, status: status}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
|
||||
this.jsList = await getJc()
|
||||
this.fghList = await getUnions()
|
||||
if ("${@shiro.hasRole('H04')}" === 'true') {
|
||||
this.pageForm.unionid = this.fghList[0].id
|
||||
}
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,134 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<jdh-two-search :page="pageForm" @search="doSearch" :audit="false" :isadmin="isAdmin" :unionid="unionId"></jdh-two-search>
|
||||
|
||||
<div class="mt20">
|
||||
<jdh-two-table :page="pageForm" :table="tableData" :loading="tableLoading">
|
||||
<template #column>
|
||||
<el-table-column align="center" header-align="center" label="操作" fixed="right" width="150px">
|
||||
<template 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:'view',data:scope.row}">
|
||||
查看
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'edit',data:scope.row}"
|
||||
v-if="[100].includes(scope.row.audit_state)">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'delete',data:scope.row}"
|
||||
:loading="scope.row.delLoading">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template #pagination>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</template>
|
||||
</jdh-two-table>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<jdh-two-info ref="twoInfo"></jdh-two-info>
|
||||
</template>
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
'guava': httpVueLoader('/components/plugins/Guava.vue'),
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'jdh-two-search': httpVueLoader('/components/jdh/JdhTwoSearch.vue'),
|
||||
'jdh-two-table': httpVueLoader('/components/jdh/JdhTwoTable.vue'),
|
||||
'jdh-two-info': httpVueLoader('/components/jdh/JdhTwoInfo.vue')
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
pageForm: {
|
||||
searchName: "meeting_name",
|
||||
isAudit: false,
|
||||
},
|
||||
isAdmin: "${@shiro.hasAnyRoles('sysadmin', 'A06')}" === 'true',
|
||||
unionId: "${@shiro.getPrincipalProperty('union').getId()}",
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'delete') {
|
||||
this.doDelete(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data.id)
|
||||
}
|
||||
},
|
||||
openView(row) {
|
||||
const {id} = row
|
||||
this.$refs.twoInfo.openView(id)
|
||||
this.$refs.guava.view()
|
||||
},
|
||||
async pageData() {
|
||||
const {data} = await $.post('/platform/jdh/level2/info/pageData', this.pageForm, true)
|
||||
this.tableData = data.list
|
||||
this.pageForm.totalCount = data.totalCount
|
||||
},
|
||||
openEdit(id) {
|
||||
window.location.href = '/platform/jdh/level2/info?id=' + id
|
||||
},
|
||||
async doDelete(row) {
|
||||
const {id} = row
|
||||
this.$confirm('确定要删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
callback: async (a, b) => {
|
||||
if ("confirm" == a) {//确认后再执行
|
||||
this.$set(row, "delLoading", true)
|
||||
const resp = await $.get('/platform/jdh/level2/info/doDelete', {id: id})
|
||||
this.$set(row, "delLoading", false)
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.pageData();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,570 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<style>
|
||||
.el-descriptions__table {
|
||||
table-layout: fixed !important;
|
||||
}
|
||||
|
||||
.el-descriptions-item__cell {
|
||||
text-align: center !important;
|
||||
}
|
||||
</style>
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<tree-layout style="height: calc(100vh - 50px)">
|
||||
<template #tree>
|
||||
|
||||
<div style="padding: 20px;">
|
||||
<el-input
|
||||
placeholder="输入关键字进行查找"
|
||||
v-model="filterText">
|
||||
</el-input>
|
||||
</div>
|
||||
|
||||
<el-tree ref="tree" :data="treeData" class="v-tree" node-key="id"
|
||||
:props="defaultProps"
|
||||
default-expand-all :expand-on-click-node="false"
|
||||
@node-click="handleNodeClick" accordion
|
||||
highlight-current :filter-node-method="filterNode">
|
||||
<div class="custom-tree-node" slot-scope="{ node, data }">
|
||||
|
||||
<div v-if="node.level==1" style="font-size: 16px;" class="v-node"><i
|
||||
class="el-icon-s-home"></i>
|
||||
{{ data.unionname }}
|
||||
</div>
|
||||
|
||||
<div v-if="node.level==2"
|
||||
style="font-size: 15px" :title="data.name" class="v-node">
|
||||
<i class="el-icon-star-on" v-if="checkData.name==data.name"></i>
|
||||
<i class="el-icon-star-off" v-else></i>
|
||||
{{ data.unionname }}
|
||||
<span style="color: #f76c6c">{{ '(' + data.zlCount + ')'}}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-tree>
|
||||
</template>
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button">
|
||||
<el-date-picker
|
||||
placeholder="选择年度" style="width: 100%"
|
||||
type="year"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<!--<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 v-model="pageForm.jdhid" filterable placeholder="请选择教代会"
|
||||
@change="addButtonIsDisabled">
|
||||
<el-option
|
||||
v-for="item in jdhList"
|
||||
:key="item.id"
|
||||
:label="item.jdhallname"
|
||||
:value="item.jdhallname">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<!--<div class="btn-group tool-button" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}">
|
||||
<el-select clearable v-model="pageForm.union_id" filterable placeholder="请选择工会" @change="unionChange">
|
||||
<el-option
|
||||
v-for="item in unionOptions"
|
||||
:key="item.id"
|
||||
:label="item.unionname"
|
||||
: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" :disabled="addDisabled" @click="openAdd"><i
|
||||
class="ti-plus"></i> 添加工作资料
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="mt10">
|
||||
<vi-title2 title="资料列表">
|
||||
<template #func>
|
||||
<el-button v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}" type="primary"
|
||||
size="small" @click="oneAudit">一键审核
|
||||
</el-button>
|
||||
</template>
|
||||
</vi-title2>
|
||||
<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="jdhid" 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="unionname" 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 sortable prop="state" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.state === 0" class="text-primary">待审核</span>
|
||||
<span v-if="scope.row.state === 1" class="text-danger">审核拒绝</span>
|
||||
<span v-if="scope.row.state === 2" class="text-success">审核通过</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userOnline" label="操作" width="100px">
|
||||
<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:'view',data:scope.row}">
|
||||
预览
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="(${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}) || scope.row.state == 0"
|
||||
:command="{type:'edit',data:scope.row}">
|
||||
编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="(${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')}) || scope.row.state == 0"
|
||||
: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>
|
||||
</template>
|
||||
</tree-layout>
|
||||
</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.jdhallname">
|
||||
</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.jdhallname"
|
||||
:value="item.jdhallname">
|
||||
</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-descriptions class="margin-top" title="" :column="2" border>
|
||||
<el-descriptions-item span="2">
|
||||
<template slot="label">资料名称</template>
|
||||
<div v-html="formData.zlname"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">上传人</template>
|
||||
<div v-html="formData.username"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">上传时间</template>
|
||||
<div v-html="formData.time"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">所属工会</template>
|
||||
<div v-html="formData.unionname"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">教代会届次</template>
|
||||
<div v-html="formData.jdhid"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">资料类型</template>
|
||||
<div v-html="formData.lxname"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">是否通过</template>
|
||||
<div>{{formData.ispass?'通过':'不通过'}}</div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item span="2">
|
||||
<template slot="label">附件</template>
|
||||
<div>
|
||||
<file-upload :files.sync="formData.files" view></file-upload>
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<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'),
|
||||
'tree-layout': httpVueLoader('/components/plugins/TreeLayout.vue'),
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
filterText: '',
|
||||
treeData: [],
|
||||
defaultProps: {
|
||||
children: 'child',
|
||||
label: 'unionname',
|
||||
},
|
||||
addDialogVisible: false,
|
||||
editDialogVisible: false,
|
||||
viewDialogVisible: false,
|
||||
tableData: [],
|
||||
jdhList: [],
|
||||
filelxList: [],
|
||||
fileList: [],
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
pageOrderName: "",
|
||||
pageOrderBy: "",
|
||||
zlname: "",
|
||||
union_id: ""
|
||||
},
|
||||
formData: {},
|
||||
rules: {
|
||||
jdhid: [{required: true, message: '请填写所属教代会', trigger: ['blur', 'change']}],
|
||||
zlname: [{required: true, message: '请填写所属教代会', trigger: ['blur', 'change']}],
|
||||
zllx: [{required: true, message: '请填写资料类型', trigger: ['blur', 'change']}],
|
||||
},
|
||||
delFiles: [],
|
||||
unionOptions: [],
|
||||
checkData: {},
|
||||
checkNode: {},
|
||||
addDisabled: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
addButtonIsDisabled(val) {
|
||||
const obj = this.jdhList.find(o => o.jdhallname === val)
|
||||
this.addDisabled = obj.audit_state === 500
|
||||
},
|
||||
async oneAudit() {
|
||||
this.$confirm('您确定要一键审核吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(async () => {
|
||||
const ids = this.tableData.map(o => o.id)
|
||||
const resp = await $.post('/platform/jdh2/gzzlgl/oneAudit', {
|
||||
ids: JSON.stringify(ids),
|
||||
jdhid: this.pageForm.jdhid
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.$message.success(resp.msg)
|
||||
}
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
async handleNodeClick(data, node) {
|
||||
this.checkData = data
|
||||
this.checkNode = node
|
||||
this.pageData()
|
||||
},
|
||||
filterNode(value, data, node) {
|
||||
if (!value) return true;
|
||||
return data.unionname.indexOf(value) !== -1
|
||||
},
|
||||
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 == 'view') {
|
||||
this.openView(data)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
} else if (type == 'delete') {
|
||||
this.doDelete(data.id)
|
||||
}
|
||||
},
|
||||
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) {
|
||||
this.$confirm('确定要删除吗', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
$.post(base + '/platform/jdh2/gzzlgl/doDelete', {id: id}).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('/platform/jdh2/gzzlgl/doEdit', formData)
|
||||
if (resp.code===0){
|
||||
this.editDialogVisible = false
|
||||
this.doSearch()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.loadTree()
|
||||
},
|
||||
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()
|
||||
this.pageForm.unionId = this.checkData.id
|
||||
$.post(base + '/platform/jdh2/gzzlgl/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 = {ispass: true, 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('/platform/jdh2/gzzlgl/doAdd', formData)
|
||||
if (resp.code===0){
|
||||
this.addDialogVisible = false
|
||||
this.doSearch()
|
||||
loading.close()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
async getJdh2(val) {
|
||||
const {data} = await $.post('/platform/jdh2/gzzlgl/getJdh2', {unionId: val})
|
||||
return data
|
||||
},
|
||||
async unionChange(val) {
|
||||
this.jdhList = await this.getJdh2(val)
|
||||
},
|
||||
async loadTree() {
|
||||
const res = await $.post('/platform/jdh2/gzzlgl/getTreeData', this.pageForm)
|
||||
if (res.code === 0) {
|
||||
this.treeData = res.data
|
||||
const isAdmin = "${@shiro.hasAnyRoles('sysadmin', 'A06')}" === 'true'
|
||||
if (isAdmin) {
|
||||
const data = res.data[0].children && res.data[0].children.length > 0 ? {id: res.data[0].children[0].id} : {id: ''}
|
||||
await this.handleNodeClick({data}, {level: 2})
|
||||
} else {
|
||||
const data = res.data[0].children && res.data[0].children.length > 0 ? {id: res.data[0].children[0].id} : {id: ''}
|
||||
await this.handleNodeClick(data, {level: 2})
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
async created() {
|
||||
this.jdhList = await this.getJdh2(null)
|
||||
if (this.jdhList && this.jdhList.length > 0) {
|
||||
this.pageForm.jdhid = this.jdhList[0].jdhallname
|
||||
this.addButtonIsDisabled(this.pageForm.jdhid)
|
||||
}
|
||||
this.filelxList = await getJdh2Gzzllx()
|
||||
this.unionOptions = await getUnions()
|
||||
const isAdmin = "${@shiro.hasAnyRoles('sysadmin', 'A06')}" === 'true'
|
||||
if (!isAdmin) {
|
||||
const selfUnion = "${@shiro.getPrincipalProperty('union').getId()}";
|
||||
this.unionOptions = this.unionOptions.find(x => x.id === selfUnion)
|
||||
}
|
||||
this.loadTree()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
@@ -0,0 +1,217 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<div class="btn-group tool-button">
|
||||
<el-input style="width: 350px;" clearable placeholder="请输入工作资料类型名称" v-model="pageForm.lxname"></el-input>
|
||||
</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">
|
||||
<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 align="center" header-align="center" label="工作资料类型编码" prop="code"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="工作资料类型名称" prop="lxname"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="操作" width="150px">
|
||||
<template 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:'top',data:scope.row}" v-if="scope.row.xh!==1">
|
||||
上移
|
||||
</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-item :command="{type:'bottom',data:scope.row}"
|
||||
v-if="scope.row.xh!==pageForm.totalCount">
|
||||
下移
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</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="30%">
|
||||
<el-form :model="formData" ref="addForm" :rules="rules">
|
||||
<el-form-item prop="code" label="类型编码">
|
||||
<el-input v-model="formData.code" placeholder="请输入工作资料类型编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="lxname" label="类型名称">
|
||||
<el-input v-model="formData.lxname" placeholder="请输入工作资料类型名称"></el-input>
|
||||
</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" width="30%">
|
||||
<el-form :model="formData" ref="editForm" :rules="rules">
|
||||
<el-form-item prop="code" label="类型编码">
|
||||
<el-input v-model="formData.code" placeholder="请输入工作资料类型编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="lxname" label="类型名称">
|
||||
<el-input v-model="formData.lxname" placeholder="请输入工作资料类型名称"></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>
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
lxname: ''
|
||||
},
|
||||
addDialogVisible: false,
|
||||
editDialogVisible: false,
|
||||
formData: {},
|
||||
rules: {
|
||||
lxname: [{required: true, message: '请输入工作资料类型名称', trigger: ['change', 'blur']}],
|
||||
code: [{required: true, message: '请输入工作资料类型编码', trigger: ['change', 'blur']}]
|
||||
},
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type == 'top') {
|
||||
this.rowChange(data, false)
|
||||
} else if (type == 'edit') {
|
||||
this.openEdit(data)
|
||||
} else if (type == 'delete') {
|
||||
this.doDelete(data.id)
|
||||
} else if (type == 'bottom') {
|
||||
this.rowChange(data, true)
|
||||
}
|
||||
},
|
||||
rowChange(row, toDown) {
|
||||
$.post(base + '/platform/jdh2/gzzllx/xhChange', {id: row.id, xh: row.xh, toDown}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
},
|
||||
openAdd() {
|
||||
this.formData = {}
|
||||
this.addDialogVisible = true
|
||||
if (this.$refs["addForm"])
|
||||
this.$refs["addForm"].resetFields()
|
||||
},
|
||||
doAdd() {
|
||||
this.$refs['addForm'].validate(valid => {
|
||||
if (valid) {
|
||||
$.post(base + '/platform/jdh2/gzzllx/doAdd', this.formData).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.addDialogVisible = false
|
||||
this.pageData()
|
||||
this.$message.success(res.msg)
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
sublime.showLoadingbar()
|
||||
$.post(base + '/platform/jdh2/gzzllx/pageData', this.pageForm).then(res => {
|
||||
sublime.closeLoadingbar()
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
this.pageForm.totalCount = res.data.totalCount
|
||||
}
|
||||
})
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageData()
|
||||
},
|
||||
pageNumberChange(val) {
|
||||
this.pageForm.pageNumber = val
|
||||
this.pageData()
|
||||
},
|
||||
openEdit(obj) {
|
||||
this.formData = JSON.parse(JSON.stringify(obj))
|
||||
this.editDialogVisible = true
|
||||
},
|
||||
doEdit() {
|
||||
this.$refs['editForm'].validate(valid => {
|
||||
if (valid) {
|
||||
$.post(base + '/platform/jdh2/gzzllx/doEdit', this.formData).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.editDialogVisible = false
|
||||
this.pageData()
|
||||
this.$message.success(res.msg)
|
||||
} else {
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
doDelete(id) {
|
||||
this.$confirm('此操作将删除工作资料类型,确认删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
$.post(base + '/platform/jdh2/gzzllx/doDelete', {id: id}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.doSearch()
|
||||
this.$message.success(res.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user