245 lines
8.6 KiB
Vue
245 lines
8.6 KiB
Vue
<template>
|
|
<div>
|
|
<el-tab-plus :tabs="tabs">
|
|
<template #basic-info>
|
|
<el-descriptions border>
|
|
<el-descriptions-item label="提案名称" span="3">
|
|
<div style="font-weight:bold;">
|
|
{{ viewData.proposalName }}
|
|
</div>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="提案编号">{{ viewData.proposalCode }}</el-descriptions-item>
|
|
<el-descriptions-item label="提案人">{{
|
|
viewData.createUserName + '-' + viewData.loginname
|
|
}}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="提案时间">{{ viewData.createTime }}</el-descriptions-item>
|
|
<el-descriptions-item label="教代会届次"> {{ viewData.meetingName || '暂无' }}</el-descriptions-item>
|
|
<el-descriptions-item label="提案人工会">{{ viewData.unionName }}</el-descriptions-item>
|
|
<el-descriptions-item :label="viewData.mannerCode!=='W03'?'代表团名称':'委员会名称'">
|
|
{{ viewData.mannerCode !== 'W03' ? viewData.delegationName : viewData.committeeName }}
|
|
</el-descriptions-item>
|
|
|
|
<el-descriptions-item label="提案类型">{{ viewData.typeName }}</el-descriptions-item>
|
|
<el-descriptions-item label="立案结果" span="2"> {{
|
|
viewData.resultName ? viewData.resultName : '暂无'
|
|
}}
|
|
</el-descriptions-item>
|
|
<!-- <el-descriptions-item label="提案方式" >{{ viewData.mannerName }}</el-descriptions-item>-->
|
|
<!-- <el-descriptions-item label="建议落实部门" >{{ viewData.implementUnitName }}</el-descriptions-item>-->
|
|
|
|
<el-descriptions-item label="提案内容" span="3">
|
|
<div class="text-left" v-html="viewData.brief"></div>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="可行性分析" span="3">
|
|
<div class="text-left" v-html="viewData.measures"></div>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="签  字" span="3">
|
|
<el-image v-if="viewData.createUserSign" :src="viewData.createUserSign" class="item-sign"
|
|
fit="contain"></el-image>
|
|
<span v-else>无</span>
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
<file-upload v-if="viewData.files&&viewData.files.length"
|
|
:files="viewData.files" :view="true"></file-upload>
|
|
<slot name="seconded"></slot>
|
|
</template>
|
|
<template #conjoin-info>
|
|
<el-table :data="viewData.conJoinList" border>
|
|
<el-table-column prop="proposalCode" label="提案编号"></el-table-column>
|
|
<el-table-column prop="username" label="提案人"></el-table-column>
|
|
<el-table-column prop="proposalName" label="提案名称">
|
|
<template slot-scope="{row}">
|
|
<span @click="openView(row.id)"
|
|
style="color: #236eb4; cursor: pointer; text-decoration: underline">{{ row.proposalName }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</template>
|
|
<template #seconded-info>
|
|
<el-table :data="viewData.seconded" border>
|
|
<el-table-column prop="username" label="姓名"></el-table-column>
|
|
<el-table-column prop="unitname" label="单位"></el-table-column>
|
|
<el-table-column label="邀请时间" prop="inviteTime">
|
|
<template slot-scope="{row}">
|
|
{{ row.inviteTime }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="secondedTime" label="附议时间"></el-table-column>
|
|
<el-table-column prop="isAgree" label="附议结果">
|
|
<template slot-scope="{row}">
|
|
<template v-if="row.isAgree==null">
|
|
<span class="text-muted">未附议</span>
|
|
</template>
|
|
<template v-else>
|
|
<span v-if="row.isAgree" class="text-success">同意</span>
|
|
<span v-else class="text-danger">拒绝</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column header-align="center" align="center" prop="signData" label="附议人签字">
|
|
<template slot-scope="{row}">
|
|
<el-image class="item-sign" :src="row.signData" fit="contain" v-if="row.signData"></el-image>
|
|
<span v-else>暂无</span>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</template>
|
|
<template #delegation-audit-info>
|
|
<el-descriptions border>
|
|
<template v-for="(o,i) in viewData.delegationAudit">
|
|
<el-descriptions-item label="审核人">{{ o.username + '-' + o.loginName }}</el-descriptions-item>
|
|
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
|
|
<el-descriptions-item label="审核结果">
|
|
{{ o.flag ? '通过' : '退回' }}
|
|
</el-descriptions-item>
|
|
<el-descriptions-item span="3" label="审核意见">{{ o.opinion }}</el-descriptions-item>
|
|
<el-descriptions-item span="3" label="团长签字">
|
|
<template>
|
|
<image class="item-sign" :src="o.auditSign " fit="contain" v-if="o.auditSign"></image>
|
|
<span v-else>暂无</span>
|
|
</template>
|
|
</el-descriptions-item>
|
|
</template>
|
|
</el-descriptions>
|
|
</template>
|
|
</el-tab-plus>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
module.exports = {
|
|
name: "ProposalInfoPlus",
|
|
props: {},
|
|
components: {
|
|
'el-tab-plus': httpVueLoader('/components/plugins/ELTabPlus.vue'),
|
|
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
|
},
|
|
data() {
|
|
return {
|
|
tabs: [
|
|
{
|
|
name: '用户管理',
|
|
refName: 'one',
|
|
},
|
|
{
|
|
name: '配置管理',
|
|
refName: 'two',
|
|
},
|
|
{
|
|
name: '角色管理',
|
|
refName: 'three',
|
|
},
|
|
{
|
|
name: '角色管理2',
|
|
refName: 'four',
|
|
},
|
|
],
|
|
tabName: 'one',
|
|
hostUnit: '',
|
|
helpUnit: [],
|
|
unitOptions: [],
|
|
activeName: '1',
|
|
activeCollapse: '',
|
|
loading: true,
|
|
viewData: {},
|
|
config: {}
|
|
}
|
|
},
|
|
methods: {
|
|
async openView(id) {
|
|
this.viewData = await proposal.getProposalInfo(id)
|
|
const {files, feedback, caseAudit, resultCode} = this.viewData
|
|
this.helpUnit = []
|
|
if (caseAudit != null && resultCode !== "notGive" && caseAudit.other != null) {
|
|
const other = JSON.parse(caseAudit.other)
|
|
if (this.unitOptions.find(v => v.id === other.hostUnit)) {
|
|
this.hostUnit = this.unitOptions.find(v => v.id === other.hostUnit).unitName
|
|
if (other.helpUnit && other.helpUnit.length > 0) {
|
|
other.helpUnit.forEach((v, i) => {
|
|
const helpUnit = this.unitOptions.find(z => other.helpUnit[i] === z.id).unitName
|
|
this.helpUnit.push(helpUnit)
|
|
})
|
|
this.helpUnit = this.helpUnit.join('、')
|
|
}
|
|
}
|
|
}
|
|
|
|
if (files) {
|
|
this.viewData.files = JSON.parse(files)
|
|
}
|
|
|
|
if (feedback) {
|
|
this.viewData.feedback.map(v => {
|
|
v.files = JSON.parse(v.files)
|
|
})
|
|
}
|
|
|
|
this.activeName = this.handle ? "999" : "1"
|
|
|
|
this.formatTab()
|
|
|
|
},
|
|
formatTab() {
|
|
let tabs = []
|
|
tabs.push({name: '提案基础信息', refName: 'basic-info'})
|
|
if (this.viewData.isConjoin !== 0) {
|
|
tabs.push({name: '提案并案信息', refName: 'conjoin-info'})
|
|
}
|
|
if (this.viewData.seconded) {
|
|
tabs.push({name: '附议信息', refName: 'seconded-info'})
|
|
}
|
|
if (this.viewData.delegationAudit && this.viewData.delegationAudit.length > 0) {
|
|
tabs.push({name: '团长审核', refName: 'delegation-audit-info'})
|
|
}
|
|
|
|
|
|
this.tabs = tabs
|
|
}
|
|
},
|
|
async created() {
|
|
this.config = await proposal.getProposalConfig()
|
|
this.unitOptions = await proposal.getProposalUndertake()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.scroll-content {
|
|
overflow-x: hidden;
|
|
overflow-y: auto;
|
|
position: relative;
|
|
}
|
|
|
|
.customer-tab {
|
|
width: 100%;
|
|
height: 50px;
|
|
background-color: #f5f7fa;
|
|
padding: 4px;
|
|
display: flex;
|
|
}
|
|
|
|
.el-tabs--card > .el-tabs__header {
|
|
border-bottom: none;
|
|
margin: 0;
|
|
}
|
|
|
|
.el-tabs--card > .el-tabs__header .el-tabs__nav {
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: space-around;
|
|
border: none;
|
|
}
|
|
|
|
.el-tabs--card > .el-tabs__header .el-tabs__nav .el-tabs__item {
|
|
width: 25%;
|
|
text-align: center;
|
|
border: none;
|
|
}
|
|
|
|
.el-tabs--card > .el-tabs__header .el-tabs__nav .is-active {
|
|
border-radius: 4px;
|
|
background-color: #1867b0;
|
|
color: #fff;
|
|
}
|
|
</style> |