Files
2026-09-08 19:49:21 +08:00

294 lines
15 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.zb_reply_card {
border-top: 5px solid #106898;
}
.xb_reply_card {
border-top: 5px solid #156c20;
}
.reply_card .el-form-item {
margin-bottom: 0 !important;
}
.reply_card .el-card__body {
padding: 5px !important;
}
.text-overflow {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
.el-table .hover-row {
background-color: unset !important;
}
.searchCard .el-card__body {
padding: 0 20px !important;
}
.query-row {
height: 70px;
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
}
.query-row:not(:last-child) {
border-bottom: 1px dashed rgb(230, 230, 230);
}
.query-row-title {
width: 120px;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
<template>
<proposal-search :audit="false" :page="pageForm" @finished="searchFinished"
@search="doSearch"></proposal-search>
<el-card class="mt10 searchCard" shadow="never">
<el-row class="query-row" type="flex">
<el-col class="query-row-title">征集状态:</el-col>
<el-col class="query-row-content">
<el-tag :effect="pageForm.stateCnd.includes(item)?'dark':'plain'"
@click="tagClick(item)"
style="margin: 5px;min-width: 120px;text-align: center;cursor: pointer"
v-for="item in searchCnd">
{{item}}
</el-tag>
</el-col>
</el-row>
</el-card>
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="提案信息"></table-tool>
<el-table :data="tableData" :size="tableSize"
@sort-change="pageOrder"
header-align="center"
:row-class-name="tableRowClassName">
<el-table-column type="expand">
<template scope="scope">
<el-card shadow="never">
<el-table :data="scope.row.replyInfo" header-align="center" size="mini">
<el-table-column label="承办单位" prop="unitName" width="200"></el-table-column>
<el-table-column label="承办类型" prop="unitName" width="100">
<template scope="{row}">
<span v-if="row.underTakeType===1" style="color: #106898">主办</span>
<span v-else style="color: #156c20">协办</span>
</template>
</el-table-column>
<el-table-column label="答复次数" prop="replyNumber" width="100"></el-table-column>
<el-table-column label="负责人" prop="fzrxx" show-overflow-tooltip></el-table-column>
<el-table-column label="答复情况" prop="isReply" width="100">
<template scope="{row}">
<span v-if="row.isReply" class="text-success">已答复</span>
<span v-else class="text-danger">未答复</span>
</template>
</el-table-column>
<el-table-column label="分管领导" prop="xldxx"></el-table-column>
<el-table-column label="审批情况" prop="isLeaderAudit" width="100px">
<template scope="{row}">
<span v-if="row.isLeaderAudit" class="text-success">已审批</span>
<span v-else class="text-danger">未审批</span>
</template>
</el-table-column>
</el-table>
</el-card>
<!-- <el-row :gutter="20" justify="start" style="flex-wrap: wrap" type="flex"-->
<!-- v-if="scope.row.replyInfo && scope.row.replyInfo.length>0">-->
<!-- <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"-->
<!-- v-for="reply in scope.row.replyInfo">-->
<!-- <el-card class="mb10 reply_card" shadow="hover"-->
<!-- :class="reply.underTakeType===1?'zb_reply_card':'xb_reply_card'">-->
<!-- <el-form label-width="80px">-->
<!-- <el-form-item label="承办单位">{{reply.unitName}}</el-form-item>-->
<!-- <el-form-item label="承办类型">-->
<!-- <span v-if="reply.underTakeType===1" style="color: #106898">主办</span>-->
<!-- <span v-else style="color: #156c20">协办</span>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="答复次数">-->
<!-- {{reply.replyNumber}}-->
<!-- </el-form-item>-->
<!-- <el-form-item label="负责人">-->
<!-- <el-popover-->
<!-- placement="top-start"-->
<!-- title="标题"-->
<!-- width="200"-->
<!-- trigger="hover">-->
<!-- <div #content v-html="reply.fzrxx && reply.fzrxx.split(',').join('</br>')"></div>-->
<!-- <div slot="reference" class="text-overflow">{{reply.fzrxx}}</div>-->
<!-- </el-popover>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="答复情况">-->
<!-- <span v-if="reply.isReply" class="text-success">已答复</span>-->
<!-- <span v-else class="text-danger">未答复</span>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="分管领导">{{reply.xldxx}}</el-form-item>-->
<!-- <el-form-item label="审批情况">-->
<!-- <span v-if="reply.isLeaderAudit" class="text-success">已审批</span>-->
<!-- <span v-else class="text-danger">未审批</span>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-card>-->
<!-- </el-col>-->
<!-- </el-row>-->
</template>
</el-table-column>
<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
:align="column.align?column.align:'center'"
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
:width="column.width"
header-align="center"
show-overflow-tooltip
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=='resultName'">
<el-link type="primary">
{{row.resultName ? row.resultName:'暂未审核'}}
</el-link>
</template>
<template v-else-if="column.prop=='isConjoin'" scope="{row}">
<span :style="row.isConjoin === 1 ? 'color: #236eb4' : ''">{{[proposal.CASE].includes(row.stateCode) ? '暂无' : row.isConjoin === 1 ? '是' : '否'}}</span>
</template>
<template v-else-if="column.prop=='laLevelName'" scope="{row}">
<span>
{{[proposal.CASE].includes(row.stateCode) ? '暂无' : !row.determineTypeCode ? '否' : row.determineTypeCode === 'emphasis' ? '重点' : '普通'}}
</span>
</template>
</el-table-column>
<!-- <el-table-column align="center" header-align="center" label="操作" fixed="right" width="200px">-->
<!-- <template scope="{row}">-->
<!-- <el-button size="mini" @click="openView(row)">查看</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>
var vue = new Vue({
el: '#app',
mixins: [initTableMixins],
components: {
'proposal-info': httpVueLoader('/components/proposal/ProposalInfo.vue'),
'proposal-search': httpVueLoader('/components/proposal/ProposalSearch.vue'),
},
data() {
return {
tableColumns: [
{prop: 'proposalCode', label: '提案编号', width: "120", sortable: true, disabled: true},
{prop: 'proposalName', label: '提案名称', width: "300", disabled: true},
{prop: 'username', label: '提案人', disabled: true},
{prop: 'typeCode', label: '提案类型编码', sortable: true, checked: 0},
{prop: 'typeName', label: '提案类型', sortable: true},
{prop: 'meetingName', label: '届次', sortable: true},
{prop: 'delegationCode', label: '代表团编码', sortable: true, checked: 0},
{prop: 'delegationName', label: '代表团', sortable: true},
{prop: 'resultName', label: '立案结果', sortable: true},
{prop: 'isConjoin', label: '是否并案', sortable: true},
// {prop: 'laLevelName', label: '是否重点', sortable: true},
{prop: 'stateName', label: '提案状态', sortable: true}
],
pageForm: {
searchName: 'proposalName',
meetingId: '',
stateCnd: []
},
searchCnd: []
}
},
methods: {
openView(row) {
this.$refs.guava.view()
this.$refs.info.openView(row.id)
},
searchFinished() {
this.pageData()
},
async pageData() {
const pageForm = clone(this.pageForm)
pageForm.stateCnd = JSON.stringify(pageForm.stateCnd)
const resp = await $.post(loc() + '/pageData', pageForm)
if (resp.code === 0) {
this.tableData = resp.data.list
this.pageForm.totalCount = resp.data.totalCount
} else {
this.notifyError(resp.msg)
}
},
tagClick(item) {
const item_index = this.pageForm.stateCnd.findIndex(v => v === item)
if (item_index > -1) {
this.pageForm.stateCnd.splice(item_index, 1)
} else {
this.pageForm.stateCnd.push(item)
}
this.doSearch()
},
async initSearchCnd() {
this.searchCnd = ['主办已答复', '主办未答复', '主办领导已审批', '主办领导未审批']
const config = await proposal.getProposalConfig()
if (config.slaveUnitConfig && config.slaveUnitConfig.isNeedReply) {
this.searchCnd = this.searchCnd.concat(['协办已答复', '协办未答复', '协办领导已审批', '协办领导未审批',])
}
},
tableRowClassName({rowIndex}) {
/*if (rowIndex % 2 === 0) {
return 'warning-row';
} else {
return 'success-row';
}*/
return '';
}
},
async created() {
this.initSearchCnd()
}
})
</script>
<!--#
}
#-->