first commit
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
.el-table-container {
|
||||
padding-top: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<el-row type="flex">
|
||||
<el-col>
|
||||
<span>教代会:</span>
|
||||
<el-select @change="meetingChange" filterable placeholder="请选择教代会"
|
||||
style="width: 80%;margin-right: 20px" v-model="pageForm.meetingId">
|
||||
<el-option
|
||||
:label="item.jdhallname"
|
||||
:value="item.id"
|
||||
v-for="item in meetingOptions">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
|
||||
<el-col>
|
||||
<span>承办单位:</span>
|
||||
<el-select @change="pageData()" clearable
|
||||
filterable
|
||||
placeholder="请选择承办单位" style="width: 80%" v-model="pageForm.undertakeId">
|
||||
<el-option
|
||||
:label="item.unitName"
|
||||
:value="item.id"
|
||||
v-for="item in undertakeOptions">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-table :data="tableData" class="mt20" show-summary>
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="单位名称" prop="unitName">
|
||||
<template scope="{row}">
|
||||
<el-link @click="selectProposalByUnit(row)" type="primary">{{ row.unitName }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" label="提案总数" prop="totalCount" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="主办提案">
|
||||
<el-table-column align="center" header-align="center" label="提案数量"
|
||||
prop="masterTotalCount"
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="已答复"
|
||||
prop="masterHasReplyCount" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="未答复"
|
||||
prop="masterNotReplyCount" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="已结案"
|
||||
prop="masterFinishCount" sortable></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="协办提案" v-if="showSlaveTableColumn">
|
||||
<el-table-column align="center" header-align="center" label="提案数量"
|
||||
prop="slaveTotalCount"
|
||||
sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="已答复"
|
||||
prop="slaveHasReplyCount" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="未答复"
|
||||
prop="slaveNotReplyCount" sortable></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="已结案"
|
||||
prop="slaveFinishCount" sortable></el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-dialog :title="dialogTitle" :visible.sync="undertakeVisible" width="70%">
|
||||
<el-table :data="undertakeTableData" :size="tableSize" align="center" header-align="center">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
|
||||
<template scope="scope">
|
||||
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template scope="{row}" v-if="column.prop=='proposalName'">
|
||||
<el-link @click="openView(row)" type="primary">{{ row.proposalName }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
<proposal-info ref="info"></proposal-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
dialogTitle: '',
|
||||
undertakeVisible: false,
|
||||
undertakeOptions: [],
|
||||
meetingOptions: [],
|
||||
undertakeTableData: [],
|
||||
pageForm: {},
|
||||
tableColumns: [
|
||||
{prop: 'proposalCode', label: '提案编号', width: "120", sortable: true, disabled: true},
|
||||
{prop: 'proposalName', label: '提案名称', width: "300", disabled: true},
|
||||
{prop: 'username', label: '提案人', disabled: true},
|
||||
{prop: 'typeName', label: '提案类型', sortable: true},
|
||||
{prop: 'meetingName', label: '届次', sortable: true},
|
||||
{prop: 'delegationName', label: '代表团', sortable: true},
|
||||
{prop: 'resultName', label: '立案结果', sortable: true},
|
||||
{prop: 'stateName', label: '提案状态', sortable: true}],
|
||||
showSlaveTableColumn: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
|
||||
'proposal-table': httpVueLoader('/components/proposal/ProposalTable.vue'),
|
||||
},
|
||||
methods: {
|
||||
async meetingChange() {
|
||||
this.undertakeOptions = await proposal.getUndertakeByMeeting(this.pageForm.meetingId)
|
||||
await this.pageData()
|
||||
},
|
||||
async selectProposalByUnit(row) {
|
||||
const resp = await $.get(loc() + '/selectProposalByUnit', {
|
||||
meetingId: this.pageForm.meetingId,
|
||||
underTakeId: row.id
|
||||
})
|
||||
this.dialogTitle = row.unitName + '所承办提案'
|
||||
this.undertakeVisible = true
|
||||
if (resp.code === 0) {
|
||||
this.undertakeTableData = resp.data
|
||||
}
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.view()
|
||||
this.$refs.info.openView(row.id)
|
||||
this.undertakeVisible = false
|
||||
},
|
||||
async pageData() {
|
||||
sublime.showLoadingbar()
|
||||
this.tableLoading = true
|
||||
const resp = await $.post(loc() + "/pageData", this.pageForm)
|
||||
sublime.closeLoadingbar()
|
||||
this.tableLoading = false
|
||||
if (resp.code === 0) {
|
||||
resp.data.forEach(v => {
|
||||
v.satisfiedRate = isNaN((v.satisfied / v.total) * 100) ? 0 : ((v.satisfied / v.total) * 100).toFixed(1)
|
||||
})
|
||||
this.tableData = resp.data
|
||||
} else {
|
||||
this.$notify.error({title: '失败', message: resp.msg});
|
||||
}
|
||||
},
|
||||
async initTableSlaveColumns() {
|
||||
const config = await proposal.getProposalConfig()
|
||||
this.showSlaveTableColumn = config.slaveUnitConfig && config.slaveUnitConfig.isNeedReply
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.meetingOptions = await getAllJdh()
|
||||
this.pageForm.meetingId = this.meetingOptions.length ? this.meetingOptions[0].id : ''
|
||||
this.undertakeOptions = await proposal.getUndertakeByMeeting(this.pageForm.meetingId)
|
||||
await this.pageData()
|
||||
this.initTableSlaveColumns()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user