first commit
This commit is contained in:
@@ -0,0 +1,185 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava>
|
||||
<el-card shadow="never">
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="12">
|
||||
<el-select @change="getData()" filterable placeholder="请选择教代会"
|
||||
style="width: 100%" v-model="meetingId">
|
||||
<el-option
|
||||
:label="item.jdhallname"
|
||||
:value="item.id"
|
||||
v-for="item in meetingOptions">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="6" class="text-center">
|
||||
<el-radio-group v-model="analysisType">
|
||||
<el-radio-button :label="1">按征集分析</el-radio-button>
|
||||
<el-radio-button :label="2">按办理分析</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="6" class="text-center">
|
||||
<el-radio-group @change="displayTypeChange" v-model="displayType">
|
||||
<el-radio-button :label="1">显示数量</el-radio-button>
|
||||
<el-radio-button :label="2">显示占比</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
</el-card>
|
||||
<el-card class="mt20" shadow="never">
|
||||
<el-table :data="displayType===1?tableData:tableData2" show-summary v-loading="loading">
|
||||
<el-table-column align="center" header-align="center" label="序号" type="index"
|
||||
width="50"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="提案类型" prop="typeName">
|
||||
<template scope="{row}">
|
||||
<el-link @click="selectProposalByType(row)" type="primary">{{ row.typeName }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="数量" prop="totalCount"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="占比" prop="proportion"></el-table-column>
|
||||
|
||||
<el-table-column align="center" header-align="center" label="立案情况" v-if="analysisType==2">
|
||||
<el-table-column align="center" header-align="center" label="立案" prop="laCount"></el-table-column>
|
||||
<!-- <el-table-column align="center" header-align="center" label="重点提案" prop="zdCount"></el-table-column>-->
|
||||
<el-table-column align="center" header-align="center" label="意见建议" prop="jyCount"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="不予立案" prop="caCount"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="代表反馈情况" v-if="analysisType===2">
|
||||
<el-table-column align="center" header-align="center" label="满意" prop="myCount"
|
||||
v-if="feedBackNames.includes('满意')"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="比较满意" prop="bjmyCount"
|
||||
v-if="feedBackNames.includes('比较满意')"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="基本满意" prop="jbmyCount"
|
||||
v-if="feedBackNames.includes('基本满意')"></el-table-column>
|
||||
<el-table-column align="center" header-align="center" label="不满意" prop="bmyCount"
|
||||
v-if="feedBackNames.includes('不满意')"></el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<template #view>
|
||||
<proposal-info ref="info"></proposal-info>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog :title="typeDialogTitle" :visible.sync="typeDialogVisible" width="70%">
|
||||
<el-table :data="typeTableData" :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>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
meetingOptions: [],
|
||||
meetingId: '',
|
||||
tableData: [],
|
||||
tableData2: [],
|
||||
loading: false,
|
||||
analysisType: 1,
|
||||
displayType: 1,
|
||||
feedBackNames: [],
|
||||
typeDialogVisible: false,
|
||||
typeDialogTitle: null,
|
||||
typeTableData: [],
|
||||
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}],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async getData() {
|
||||
this.loading = true
|
||||
const {data} = await $.post(loc() + '/getData', {teacherMeetingId: this.meetingId})
|
||||
this.tableData = data
|
||||
|
||||
const data2 = JSON.parse(JSON.stringify(data))
|
||||
|
||||
this.tableData2 = data2.map(v => {
|
||||
v.zdCount = (isNaN((v.zdCount / v.laCount * 100).toFixed(2)) ? '0.00' : (v.zdCount / v.laCount * 100).toFixed(2)) + "%"
|
||||
v.jyCount = (v.jyCount / v.totalCount * 100).toFixed(2) + "%"
|
||||
v.caCount = (v.caCount / v.totalCount * 100).toFixed(2) + "%"
|
||||
|
||||
v.laCount = (v.laCount / v.totalCount * 100).toFixed(2) + "%"
|
||||
return v
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
this.loading = false
|
||||
}, 200)
|
||||
},
|
||||
displayTypeChange(val) {
|
||||
|
||||
},
|
||||
async getFeedBackNames() {
|
||||
const data = await getDictOptions("proposal_feedback")
|
||||
this.feedBackNames = data.map(v => v.name)
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.view()
|
||||
this.$refs.info.openView(row.id)
|
||||
this.typeDialogVisible = false
|
||||
},
|
||||
async selectProposalByType(row) {
|
||||
const resp = await $.get(loc() + '/selectProposalByType', {
|
||||
meetingId: this.meetingId,
|
||||
typeId: row.typeId
|
||||
})
|
||||
this.typeDialogTitle = '<' + row.typeName + '>类型提案'
|
||||
this.typeDialogVisible = true
|
||||
if (resp.code === 0) {
|
||||
this.typeTableData = resp.data
|
||||
}
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.meetingOptions = await proposal.getAllMeeting()
|
||||
this.meetingId = this.meetingOptions.length ? this.meetingOptions[0].id : null
|
||||
if (this.meetingId != null) {
|
||||
this.getData()
|
||||
}
|
||||
this.getFeedBackNames()
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user