first commit

This commit is contained in:
2026-09-09 09:14:28 +08:00
commit 5343198112
5199 changed files with 1052895 additions and 0 deletions
@@ -0,0 +1,232 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style>
.el-table {
margin-top: 0 !important;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
<template>
<el-card shadow="never">
<el-row justify="space-between" type="flex">
<el-col>
<el-select @change="meetingChange" filterable placeholder="请选择教代会"
v-model="pageForm.meetingId">
<el-option
:label="item.jdhallname"
:value="item.id"
v-for="item in meetingOptions">
</el-option>
</el-select>
<el-select @change="pageData()" clearable filterable placeholder="请选择代表团"
v-model="pageForm.delegationId">
<el-option :key="item.id" :label="item.dbtname" :value="item.id"
v-for="item in delegationOptions">
</el-option>
</el-select>
<el-select @change="pageData()" clearable filterable
placeholder="请选择承办单位" v-model="pageForm.undertakeId">
<el-option
:label="item.unitName"
:value="item.id"
v-for="item in undertakeOptions">
</el-option>
</el-select>
<el-select @change="pageData()" clearable filterable placeholder="请选择提案类型"
v-model="pageForm.typeId">
<el-option
:key="item.id"
:label="item.typeName"
:value="item.id"
v-for="item in typeOptions">
</el-option>
</el-select>
<el-select @change="pageData()" clearable filterable placeholder="请选择提案状态"
v-model="pageForm.stateCode">
<el-option :key="item.stateCode"
:label="item.stateName"
:value="item.stateCode"
v-for="item in stateOptions">
</el-option>
</el-select>
</el-col>
</el-row>
</el-card>
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="提案列表">
<template #func>
<el-button :disabled="!pageForm.meetingId" @click="sessionExport" icon="el-icon-printer"
size="medium"
type="primary">
按条件导出提案
</el-button>
</template>
</table-tool>
<el-table :data="tableData" :row-key="()=>{new Date().getTime()}" :size="tableSize"
@sort-change="pageOrder"
class="vi-table" style="width: 100%;margin-bottom: 20px" v-loading="tableLoading">
<el-table-column :index="indexMethod" align="center" header-align="center" label="序号" type="index"
width="80px"></el-table-column>
<el-table-column
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
align="center"
header-align="center"
v-for="column in tableColumns"
>
<template scope="{row}" v-if="column.prop=='proposalName'">
<el-link @click="$refs.info.openView(row.id);$refs.guava.view()" type="primary">
{{row.proposalName}}
</el-link>
</template>
<template scope="{row}" v-else-if="column.prop=='stateId'">
<span :style="'color:'+row.stateColor"
v-if="(!row.isReplyPass||!row.isCommitteePass)&&row.isAudit&&!row.isMake&&!row.isReply">退回修改</span>
<vi-table-state :state="row" v-else></vi-table-state>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" header-align="center" label="操作" width="100px">
<template scope="{row}">
<el-button @click="oneProposalExport(row.id)" size="mini" type="primary">
导出
</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</template>
<template #view>
<proposal-info ref="info"></proposal-info>
</template>
</guava>
</div>
<script>
const vue = new Vue({
el: '#app',
mixins: [initTableMixins],
data() {
return {
stateOptions: [],
undertakeOptions: [],
meetingOptions: [],
delegationOptions: [],
typeOptions: [],
proposalIds: [],
pageForm: {
delegationId: "",
stateCode: "",
typeId: ""
},
tableColumns: [
{prop: 'proposalCode', label: '提案编号'},
{prop: 'proposalName', label: '提案名称'},
{prop: 'username', label: '提案人'},
{prop: 'createTime', label: '提案时间'},
{prop: 'typeName', label: '提案类型'},
{prop: 'meetingName', label: '教代会届次'},
{prop: 'delegationName', label: '所属代表团'},
{prop: 'stateId', label: '提案状态'},
],
}
},
components: {
'guava': httpVueLoader('/components/plugins/Guava.vue'),
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
},
methods: {
dropdownCommand(command) {
const {type, data} = command
if (type === 'undertake') {
this.undertakeExport()
} else if (type === 'session') {
this.sessionExport()
} else if (type === 'proposal') {
this.proposalExport(data.id)
} else if (type === 'info') {
this.oneProposalExport(data.id)
}
},
async meetingChange(val) {
this.undertakeOptions = await proposal.getUndertakeByMeeting(val)
this.pageData()
},
openView(row) {
this.$refs.guava.view()
this.$refs.info.openView(row.id)
},
/**
* 按届次导出提案
*/
sessionExport() {
const {meetingId, undertakeId, stateCode, delegationId} = this.pageForm
let props = {}
this.tableColumns.forEach(v => {
props[v.prop] = v.label
})
if (meetingId) {
window.location.href = loc() + "/sessionExport?meetingId=" + meetingId + "&stateCode=" + stateCode + "&delegationId=" + delegationId + "&props=" + JSON.stringify(props)
}
/* if (undertakeId && meetingId) {
window.location.href = loc() + "/undertakeExport?meetingId=" + meetingId + "&undertakeId=" + undertakeId
}
*/
},
/**
* 按承办单位导出
*/
undertakeExport() {
const {meetingId, undertakeId} = this.pageForm
if (!undertakeId) {
this.$notify.warning({title: '警告', message: '请选择承办单位'});
return
}
window.location.href = loc() + "/undertakeExport?meetingId=" + meetingId + "&undertakeId=" + undertakeId
},
/**
* 按提案导出承办
*/
proposalExport(id) {
window.location.href = loc() + "/proposalExport?proposalId=" + id
},
/**
* 导出单个提案信息
*/
oneProposalExport(id) {
window.location.href = loc() + "/oneProposalExport?proposalId=" + id
}
},
async created() {
this.meetingOptions = await getAllJdh()
this.pageForm.meetingId = this.meetingOptions.length ? this.meetingOptions[0].id : ''
this.undertakeOptions = await proposal.getUndertakeByMeeting(this.pageForm.meetingId)
this.stateOptions = await proposal.getOpenProposalState()
this.delegationOptions = await proposal.getDelegation(this.pageForm.meetingId)
this.typeOptions = await proposal.getProposalType()
this.pageData()
}
})
</script>
<!--#
}
#-->