first commit

This commit is contained in:
2026-09-08 19:49:21 +08:00
commit ebffbab428
7320 changed files with 1477614 additions and 0 deletions
@@ -0,0 +1,753 @@
<template>
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
<el-tab-pane label="提案基础信息" name="1">
<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="签&emsp;&emsp;字" 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>
</el-tab-pane>
<el-tab-pane label="提案并案信息" name="99" v-if="viewData.isConjoin !== 0">
<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>
</el-tab-pane>
<el-tab-pane label="附议信息" name="2" v-if="viewData.seconded">
<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>
</el-tab-pane>
<!-- <el-tab-pane label="二级单位审核" name="2.1"-->
<!-- v-if="viewData.secondaryUnitOpinions.length>0 && proposal.enableState.some(v=>v.stateCode===160)">-->
<!-- <template v-for="(o,i) in viewData.secondaryUnitOpinions">-->
<!-- <el-descriptions border :column="2">-->
<!-- <el-descriptions-item label="审核人">{{ o.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>-->
<!-- &lt;!&ndash; <el-descriptions-item label="建议立案结果">{{ viewData.secondaryUnitOpinion.dictName }}</el-descriptions-item>&ndash;&gt;-->
<!-- <el-descriptions-item label="审核意见" :span="2">{{-->
<!-- o.opinion-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="签字" :span="2">-->
<!-- <el-image v-if="o.auditSign"-->
<!-- :src="o.auditSign"-->
<!-- fit="contain"-->
<!-- style="width: 300px; height: 100px"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- </el-tab-pane>-->
<!-- <el-tab-pane label="院级党组织审核" name="2.2"-->
<!-- v-if="viewData.partyOrganizationOpinions.length>0 && proposal.enableState.some(v=>v.stateCode===170)">-->
<!-- <template v-for="(o,i) in viewData.partyOrganizationOpinions">-->
<!-- <el-descriptions border :column="2">-->
<!-- <el-descriptions-item label="审核人">{{ o.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>-->
<!-- &lt;!&ndash; <el-descriptions-item label="建议立案结果">{{ viewData.secondaryUnitOpinion.dictName }}</el-descriptions-item>&ndash;&gt;-->
<!-- <el-descriptions-item label="审核意见" :span="2">{{-->
<!-- o.opinion-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="签字" :span="2">-->
<!-- <el-image v-if="o.auditSign"-->
<!-- :src="o.auditSign"-->
<!-- fit="contain"-->
<!-- style="width: 300px; height: 100px"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="团长审核" name="3" v-if="viewData.delegationAudit&&viewData.delegationAudit.length>0">
<el-descriptions border class="wrap-table">
<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>
</el-tab-pane>
<template v-if="proposal.enableState.some(v=>v.stateCode===proposal.SECRETART)">
<el-tab-pane label="提案工作委员会秘书审核" name="3.1" v-if="viewData.preAudit && viewData.preAudit.length>0">
<el-descriptions border>
<template v-for="(o,i) in viewData.preAudit">
<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>
</el-tab-pane>
</template>
<el-tab-pane v-if="viewData.membersOpinions&&viewData.membersOpinions.length>0" label="提案案委员会成员意见" name="4">
<el-descriptions :column="2" border class="wrap-table">
<template v-for="(o,i) in viewData.membersOpinions">
<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.dictName }}
</el-descriptions-item>
<el-descriptions-item label="审核意见" span="4">{{ o.opinion }}</el-descriptions-item>
<el-descriptions-item label="委员会签字" span="4">
<template>
<image v-if="o.auditSign" :src="o.auditSign " class="item-sign" fit="contain"></image>
<span v-else>暂无</span>
</template>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane v-if="viewData.caseAuditId && viewData.caseAudit" label="提案工作委员会主任审核" name="5">
<template v-for="(o,i) in viewData.caseAudit">
<el-descriptions border :column="2">
<el-descriptions-item label="审核人">
{{ o.username + '-' + o.loginName }}
</el-descriptions-item>
<!-- <el-descriptions-item label="立案结果">
{{ viewData.resultName ? viewData.resultName : '暂无' }}
&lt;!&ndash; {{ viewData.determineTypeCode ? '(' + viewData.laLevelName + ')' : '' }}&ndash;&gt;
</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核结果">-->
<!-- {{ o.flag ? '通过' : '退回修改' }}-->
<!-- </el-descriptions-item>-->
<el-descriptions-item label="审核时间">{{ o.auditTime }}</el-descriptions-item>
<!-- <el-descriptions-item label="承办单位" span="3" v-if="hostUnit!=''">
{{ hostUnit }}(主办),
{{ helpUnit }}(协办)
</el-descriptions-item>
<el-descriptions-item v-if="viewData.resultCode!=='notGive'" label="承办单位" span="3">
<template v-for="(item,index) in viewData.undertake">
{{ item.unitName }}
({{ item.undertakeType === 1 ? '主办' : '协办' }})
{{ index + 1 === viewData.undertake.length ? '' : '、' }}
</template>
</el-descriptions-item>-->
<el-descriptions-item label="审核意见" span="2">{{ o.opinion }}</el-descriptions-item>
<el-descriptions-item v-if="hostUnit!=''" label="承办单位" span="2">
{{ hostUnit }}(主办)
<template v-if="helpUnit&&helpUnit.length>0">
{{ helpUnit }}(协办)
</template>
</el-descriptions-item>
<el-descriptions-item label="签字" span="2">
<el-image v-if="o.auditSign"
style="width: 300px; height: 100px"
:src="o.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</template>
</el-tab-pane>
<!-- <el-tab-pane label="承办单位初步意见" name="6"-->
<!-- v-if="viewData.underTakeFirstOpinion&&viewData.underTakeFirstOpinion.length>0">-->
<!-- <el-descriptions border>-->
<!-- <template v-for="(o,i) in viewData.underTakeFirstOpinion">-->
<!-- <el-descriptions-item label="承办单位">{{ o.underTakeName }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="时间">{{ o.opionTime }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核结果">-->
<!-- {{ o.canTake ? '可以承办' : '无法承办' }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item span="3" label="意见">{{ o.opinion }}</el-descriptions-item>-->
<!-- </template>-->
<!-- </el-descriptions>-->
<!-- </el-tab-pane>-->
<!--是否开启执委会建议环节-->
<template v-if="proposal.enableState.some(v=>v.stateCode===310)">
<el-tab-pane v-if="viewData.executorReadOpinion" label="教代会执行委员会主任审核" name="7">
<template v-if="viewData.executorReadOpinion ">
<el-descriptions border :column="3">
<el-descriptions-item label="审核人">{{ viewData.executorReadOpinion.username }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ viewData.executorReadOpinion.auditTime }}</el-descriptions-item>
<el-descriptions-item label="建议立案结果">{{
viewData.executorReadOpinion.dictName
}}
</el-descriptions-item>
<el-descriptions-item label="审核意见" span="4">{{
viewData.executorReadOpinion.opinion
}}
</el-descriptions-item>
<el-descriptions-item label="执委会签字" span="4">
<el-image v-if="viewData.executorReadOpinion.auditSign"
:src="viewData.executorReadOpinion.auditSign"
fit="contain"
style="width: 300px; height: 100px"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</template>
<template v-else>
null~
</template>
</el-tab-pane>
</template>
<!-- &lt;!&ndash;是否开启校领导建议环节&ndash;&gt;-->
<!-- <template v-if="proposal.enableState.some(v=>v.stateCode===320)">-->
<!-- <el-tab-pane label="分管校领导审批立案" name="8"-->
<!-- v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">-->
<!-- <template v-if="viewData.branchLeaderOpinion && viewData.branchLeaderOpinion.length>0">-->
<!-- <el-descriptions :column="2" border class="wrap-table">-->
<!-- <template v-for="(o,i) in viewData.branchLeaderOpinion">-->
<!-- <el-descriptions-item label="审批人">{{ o.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审批时间">{{ o.auditTime }}</el-descriptions-item>-->
<!-- &lt;!&ndash; <el-descriptions-item label="建议立案结果">{{ o.dictName }}</el-descriptions-item>&ndash;&gt;-->
<!-- <el-descriptions-item span="4" label="审批意见">{{ o.opinion }}</el-descriptions-item>-->
<!-- <el-descriptions-item span="4" label="分管校领导签字">-->
<!-- <el-image v-if="o.auditSign"-->
<!-- style="width: 300px; height: 100px"-->
<!-- :src="o.auditSign"-->
<!-- fit="contain"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </template>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- null~-->
<!-- </template>-->
<!-- </el-tab-pane>-->
<!-- </template>-->
<!-- &lt;!&ndash;是否开启书记、校长建议环节&ndash;&gt;-->
<!-- <template v-if="proposal.enableState.some(v=>v.stateCode===330)">-->
<!-- <el-tab-pane label="校长、书记审阅" name="9"-->
<!-- v-if="viewData.secretaryOpinion || viewData.secretaryOpinionsAgain">-->
<!-- <template v-if="viewData.secretaryOpinion ">-->
<!-- <el-descriptions border class="wrap-table" :column="2">-->
<!-- <template>-->
<!-- <el-descriptions-item label="校长">{{ viewData.secretaryOpinion.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审阅时间">{{ viewData.secretaryOpinion.auditTime }}</el-descriptions-item>-->
<!-- &lt;!&ndash; <el-descriptions-item label="建议立案结果">{{ o.dictName }}</el-descriptions-item>&ndash;&gt;-->
<!-- <el-descriptions-item span="4" label="审阅意见">{{-->
<!-- viewData.secretaryOpinion.opinion-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item span="4" label="校长签字">-->
<!-- <el-image v-if="viewData.secretaryOpinion.auditSign"-->
<!-- style="width: 300px; height: 100px"-->
<!-- :src="viewData.secretaryOpinion.auditSign"-->
<!-- fit="contain"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </template>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- &lt;!&ndash; null~&ndash;&gt;-->
<!-- </template>-->
<!-- <template v-if="viewData.secretaryOpinionsAgain ">-->
<!-- <el-descriptions border :column="2">-->
<!-- <template>-->
<!-- <el-descriptions-item label="书记">{{ viewData.secretaryOpinionsAgain.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审阅时间">{{-->
<!-- viewData.secretaryOpinionsAgain.auditTime-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- &lt;!&ndash; <el-descriptions-item label="建议立案结果">{{ o.dictName }}</el-descriptions-item>&ndash;&gt;-->
<!-- <el-descriptions-item span="4" label="审阅意见">{{-->
<!-- viewData.secretaryOpinionsAgain.opinion-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item span="4" label="书记签字">-->
<!-- <el-image v-if="viewData.secretaryOpinionsAgain.auditSign"-->
<!-- style="width: 300px; height: 100px"-->
<!-- :src="viewData.secretaryOpinionsAgain.auditSign"-->
<!-- fit="contain"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </template>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- &lt;!&ndash; null~&ndash;&gt;-->
<!-- </template>-->
<!-- </el-tab-pane>-->
<!-- </template>-->
<!-- &lt;!&ndash;是否开启执委会建议环节&ndash;&gt;-->
<!-- <template v-if="proposal.enableState.some(v=>v.stateCode===340)">-->
<!-- <el-tab-pane v-if="viewData.executorOpinionConfirm" label="执委会审核确认" name="9.1">-->
<!-- <template v-if="viewData.executorOpinionConfirm ">-->
<!-- <el-descriptions border :column="3">-->
<!-- <el-descriptions-item label="审核人">{{ viewData.executorOpinionConfirm.username }}</el-descriptions-item>-->
<!-- <el-descriptions-item label="审核时间">{{-->
<!-- viewData.executorOpinionConfirm.auditTime-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="建议立案结果">{{-->
<!-- viewData.executorOpinionConfirm.dictName-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="审核意见" span="4">{{-->
<!-- viewData.executorOpinionConfirm.opinion-->
<!-- }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item label="执委会签字" span="4">-->
<!-- <el-image v-if="viewData.executorOpinionConfirm.auditSign"-->
<!-- :src="viewData.executorOpinionConfirm.auditSign"-->
<!-- fit="contain"-->
<!-- style="width: 300px; height: 100px"></el-image>-->
<!-- <span v-else>暂无</span>-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<!-- </template>-->
<!-- <template v-else>-->
<!-- null~-->
<!-- </template>-->
<!-- </el-tab-pane>-->
<!-- </template>-->
<el-tab-pane label="提案工作委员会确认承办单位" name="10" v-if="viewData.caseUnitAuditId && viewData.caseUnitAudit">
<el-descriptions border>
<el-descriptions-item label="审核人">
{{ viewData.caseUnitAudit.username + '-' + viewData.caseUnitAudit.loginName }}
</el-descriptions-item>
<el-descriptions-item label="审核结果">{{ viewData.resultName }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ viewData.caseUnitAudit.auditTime }}</el-descriptions-item>
<el-descriptions-item label="承办单位" span="3" v-if="viewData.resultCode!=='notGive'">
<template v-for="(item,index) in viewData.undertake">
{{ item.unitName }}
({{ item.undertakeType === 1 ? '主办' : '协办' }})
{{ index + 1 === viewData.undertake.length ? '' : '、' }}
</template>
</el-descriptions-item>
<el-descriptions-item label="审核意见" span="3">{{ viewData.caseUnitAudit.opinion }}</el-descriptions-item>
<el-descriptions-item label="签字" span="3">
<el-image v-if="viewData.caseUnitAudit.auditSign"
style="width: 300px; height: 100px"
:src="viewData.caseUnitAudit.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="承办单位办理" name="11"
v-if="viewData.replyInfo && viewData.replyInfo.length>0 && viewData.replyInfo.some(v=>v.isReply || v.leaderCheckResult!=null)">
<el-descriptions border class="wrap-table-4" column="5">
<template v-for="(o,i) in viewData.replyInfo.filter(v=>v.isReply || v.leaderCheckResult!=null)">
<el-descriptions-item label="承办单位">{{
o.unitName
}}({{ o.undertakeType === 1 ? '主办' : '协办' }})
</el-descriptions-item>
<el-descriptions-item label="办理人">{{ o.dfrUserName }}</el-descriptions-item>
<el-descriptions-item label="办理时间">{{ o.replyTime }}</el-descriptions-item>
<el-descriptions-item label="办理次数">{{ o.replyNumber }}</el-descriptions-item>
<el-descriptions-item label="落实情况">{{ o.implementState }}</el-descriptions-item>
<el-descriptions-item label="办理内容" span="5">
<div class="text-left" v-html="o.replyContent"></div>
</el-descriptions-item>
<el-descriptions-item label="承办单位签字" span="5">
<el-image v-if="o.replySignData"
style="width: 300px; height: 100px"
:src="o.replySignData"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
<el-descriptions-item label="附件" span="5">
<file-upload v-if="JSON.parse(o.files)&&JSON.parse(o.files).length"
:files="JSON.parse(o.files)" :view="true"></file-upload>
<span v-else>无</span>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="分管校领导审批" name="12"
v-if="viewData.replyInfo && viewData.replyInfo.some(v=>v.isLeaderAudit || v.leaderCheckResult!=null)">
<el-descriptions border column="4">
<template v-for="(o,i) in viewData.replyInfo.filter(v=>v.isLeaderAudit || v.leaderCheckResult!=null)">
<el-descriptions-item label="承办单位">{{ o.unitName }}</el-descriptions-item>
<el-descriptions-item label="校领导">{{ o.xldUserName }}</el-descriptions-item>
<el-descriptions-item label="审批时间">{{ o.leaderCheckTime }}</el-descriptions-item>
<el-descriptions-item label="审批次数">{{ o.leaderCheckNumber }}</el-descriptions-item>
<el-descriptions-item label="审批内容" span="4">
<div class="text-left">
{{ o.leaderCheckOpinion }}
</div>
</el-descriptions-item>
<el-descriptions-item label="分管校领导签字" span="4">
<el-image v-if="o.leaderSignData"
style="width: 300px; height: 100px"
:src="o.leaderSignData"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="反馈评分信息" name="13" v-if="viewData.feedback&&viewData.feedback.length>0">
<el-descriptions border column="5">
<template v-for="(o,i) in viewData.feedback">
<el-descriptions-item label="反馈人">{{ o.username }}({{ o.loginname }})</el-descriptions-item>
<el-descriptions-item label="反馈时间">{{ o.feedbackTime }}</el-descriptions-item>
<el-descriptions-item label="反馈次数">{{ o.feedbackNumber }}</el-descriptions-item>
<el-descriptions-item label="对办理结果评价">{{ o.feedbackResult }}</el-descriptions-item>
<el-descriptions-item label="对承办单位办理态度评价">{{ o.feedbackCodeByUnderTake }}</el-descriptions-item>
<el-descriptions-item label="反馈意见" span="5">
<div class="text-left" v-html="o.feedbackOpinion"></div>
</el-descriptions-item>
<el-descriptions-item label="反馈人签字" span="4">
<el-image v-if="o.scoreSign"
style="width: 300px; height: 100px"
:src="o.scoreSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="提案委员会复核" name="14" v-if="viewData.caseCheckAuditId && viewData.caseCheckAudit.length>0">
<el-descriptions border>
<template v-for="i in viewData.caseCheckAudit">
<el-descriptions-item label="审核人">
{{ i.username + '-' + i.loginName }}
</el-descriptions-item>
<el-descriptions-item label="审核结果">{{ i.flag ? '不需要二次答复' : '需要二次答复' }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ i.auditTime }}</el-descriptions-item>
<el-descriptions-item label="审核意见" span="3">
<div class="text-left">
{{ i.opinion }}
</div>
</el-descriptions-item>
<el-descriptions-item label="提案委员会签字" span="4">
<el-image v-if="i.auditSign"
style="width: 300px; height: 100px"
:src="i.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane label="提案委员会归档" name="15" v-if="viewData.caseFiledAuditId && viewData.caseFiledAudit.length>0">
<el-descriptions border column="2">
<template v-for="i in viewData.caseFiledAudit">
<el-descriptions-item label="审核人">
{{ i.username + '-' + i.loginName }}
</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ i.auditTime }}</el-descriptions-item>
<el-descriptions-item label="审核意见" span="2">
<div class="text-left">
{{ i.opinion }}
</div>
</el-descriptions-item>
<el-descriptions-item label="提案委员会签字" span="2">
<el-image v-if="i.auditSign"
style="width: 300px; height: 100px"
:src="i.auditSign"
fit="contain"></el-image>
<span v-else>暂无</span>
</el-descriptions-item>
</template>
</el-descriptions>
</el-tab-pane>
<el-tab-pane v-if="handle" :label="label" name="999">
<slot name="handle"></slot>
</el-tab-pane>
</el-tabs>
</template>
<script>
module.exports = {
props: {
id: String,
handle: {
type: Boolean,
default: false,
},
label: {
type: String,
default: '审核'
},
panes: {
type: Array,
default: []
}
},
data() {
return {
hostUnit: '',
helpUnit: [],
unitOptions: [],
activeName: '1',
activeCollapse: '',
loading: true,
viewData: {},
config: {}
}
},
components: {
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
},
methods: {
hasPane(name) {
if (!this.handle) {
return true
}
return this.panes.includes(name)
},
async openView(id) {
this.loading = true
this.viewData = await proposal.getProposalInfo(id)
console.log(this.viewData)
if (!this.viewData) {
this.$notify.error({title: '失败', message: '获取提案信息失败'});
this.loading = false
return
}
const {files, feedback, caseAudit, resultCode} = this.viewData
this.helpUnit = []
if (caseAudit != null && resultCode !== "notGive" && caseAudit.length > 0 && caseAudit[0].other != null) {
const other = JSON.parse(caseAudit[0].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.loading = false
}
},
async created() {
this.config = await proposal.getProposalConfig()
this.unitOptions = await proposal.getProposalUndertake()
}
}
</script>
<style>
.el-descriptions__table {
table-layout: fixed !important;
}
.el-descriptions-item__cell {
text-align: center !important;
}
.item-center {
text-align: center;
font-weight: 700;
margin-right: 110px;
}
.item-center .el-form-item__content {
font-size: 18px;
}
.item-sign {
width: 200px;
height: 130px;
}
.item-form {
padding: 0 25px;
}
.el-collapse-item__wrap {
padding: 10px 10px;
}
.el-collapse-item__header {
border-bottom: 1px solid #eee;
font-weight: 700;
}
.item-number {
color: red;
font-weight: 600
}
.el-collapse-item__header {
position: relative;
}
.el-collapse-item__arrow {
color: #1582dc;
font-weight: 800 !important;
}
/*.el-tabs__header{*/
/* background-image: url(https://my.njucm.edu.cn/assets/17289587176453.jpg);*/
/* background-size: cover;*/
/* background-color: rgba(87,99,189,1);*/
/* background-repeat: no-repeat;*/
/* background-position: 50% 50%;*/
/* height: 60px;*/
/* !*border-top-left-radius: 4px;*!*/
/* !*border-top-right-radius: 4px;*!*/
/* !*border-bottom-left-radius: 4px;*!*/
/* !*border-bottom-right-radius: 4px;*!*/
/*}*/
/*.el-tabs__item{*/
/* height: 60px;*/
/* line-height: 60px;*/
/* font-size: 16px;*/
/* color: #FFFFFF;*/
/*}*/
/*.el-tabs__item:hover{*/
/* font-size: 16px;*/
/* color: #FFFFFF;*/
/*}*/
/*.el-tabs__item.is-active{*/
/* color: #FFFFFF;*/
/*}*/
/*.el-tabs__active-bar{*/
/* background-color:orangered;*/
/* height: 4px;*/
/* bottom: 2px;*/
/*}*/
.wrap-table tbody:nth-child(3n+3):after {
content: '';
display: block;
height: 15px;
}
.wrap-table-4 tbody:nth-child(4n+4):after {
content: '';
display: block;
height: 15px;
}
</style>
@@ -0,0 +1,184 @@
<template>
<el-card shadow="never" style="position:relative;">
<div class="d-search-item btn-group tool-button">
<el-input placeholder="请输入内容" clearable v-model="page.searchKeyword"
@keyup.enter.native="$emit('doSearch')">
<el-select v-model="page.searchName" slot="prepend" placeholder="查询类型"
style="width: 110px;">
<el-option label="提案名称" value="proposalName"></el-option>
<el-option label="提案编号" value="proposalCode"></el-option>
</el-select>
</el-input>
</div>
<div class="d-search-item btn-group tool-button">
<el-input placeholder="请输入提案人的姓名或工号" clearable v-model="page.createUser"
@keyup.enter.native="$emit('doSearch')">
</el-input>
</div>
<div class="d-search-item btn-group tool-button">
<el-select v-model="page.meetingId" filterable clearable @change="meetingChange" placeholder="根据教代会查询">
<el-option
v-for="item in allJdhOptions"
:label="item.jdhallname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="d-search-item btn-group tool-button">
<el-select v-model="page.delegationId" filterable clearable placeholder="所属代表团" @change="delegationChange">
<el-option v-for="item in delegationOptions" :key="item.id" :label="item.dbtname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="mt10">
<div class="d-search-item btn-group tool-button">
<el-select clearable v-model="page.unionId" filterable placeholder="请选择工会" @change="unionChange">
<el-option
v-for="item in unionOptions"
:key="item.id"
:label="item.unionname"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="d-search-item btn-group tool-button">
<el-select clearable v-model="page.unitId" filterable placeholder="请选择单位">
<el-option
v-for="item in unitOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
<div class="d-search-item btn-group tool-button" v-if="has_seconded">
<el-select clearable v-model="page.resultCode" filterable placeholder="请选择立案结果">
<el-option
v-for="item in resultOptions"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button" style="margin-left: 10px">
<el-button type="primary" icon="el-icon-search" @click="$emit('search')"></el-button>
</div>
</div>
<div style="position: absolute;right: 20px;top: 20px;">
<template v-if="has_add">
<el-button class="ml5" icon="el-icon-upload2" plain type="primary"
@click="$emit('import')">导入提案
</el-button>
</template>
<template v-if="has_add">
<el-button type="primary" icon="el-icon-plus" @click="$emit('add')">新建提案</el-button>
</template>
<template v-if="audit">
<el-radio-group v-model="page.isAudit" @change="$emit('search')">
<el-radio-button :label="null">全部</el-radio-button>
<el-radio-button :label="true">{{ title }}</el-radio-button>
<el-radio-button :label="false">{{ title }}</el-radio-button>
</el-radio-group>
</template>
<slot name="column"></slot>
</div>
</el-card>
</template>
<script>
module.exports = {
props: {
page: {
type: Object,
default: {}
},
has_add: {
type: Boolean,
default: false
},
has_seconded: {
type: Boolean,
default: true
},
audit: {
type: String,
default: true
},
title: {
type: String,
default: '审核'
},
},
data() {
return {
allJdhOptions: [],
delegationOptions: [],
unionOptions: [],
unitOptions: [],
resultOptions: []
}
},
methods: {
async meetingChange(val) {
this.page.delegationId = null
this.delegationOptions = await proposal.getDelegation(val)
},
async delegationChange(val) {
this.unionOptions = await getUnions(val)
},
async unionChange(val) {
this.unitOptions = await getUnits(val)
}
},
async mounted() {
this.resultOptions = await getDictByCode("proposal_result")
this.allJdhOptions = await proposal.getOpenMeeting()
this.page.meetingId = this.allJdhOptions.length > 0 ? this.allJdhOptions[0].id : null
this.delegationOptions = await proposal.getDelegation(this.page.meetingId)
this.unionOptions = await getUnions(null)
this.unitOptions = await getUnits(null)
this.$emit('finished', null)
},
async created() {
// this.resultOptions = await getDictByCode("proposal_result")
// this.allJdhOptions = await proposal.getOpenMeeting()
// this.page.meetingId = this.allJdhOptions.length > 0 ? this.allJdhOptions[0].id : null
// this.delegationOptions = await proposal.getDelegation(this.page.meetingId)
// this.unionOptions = await getUnions(null)
// this.unitOptions = await getUnits(null)
}
}
</script>
<style scoped>
.el-select {
width: 100%;
}
.navbar {
line-height: 3;
}
.btn-group {
width: 20%;
}
.d-search-item {
margin-right: 10px;
}
.search-op {
position: absolute;
top: 0;
right: 10px;
}
</style>
@@ -0,0 +1,61 @@
<template>
<el-card shadow="never" class="mt20">
<slot name="operation"></slot>
<el-table :data="data" align="center" header-align="center" :row-key="rowkeyFunc" v-loading="loading"
@sort-change="(c)=>{$emit('order',c)}" @selection-change="(s)=>{$emit('selection',s)}">
<el-table-column v-if="selection" type="selection" width="55"></el-table-column>
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
<template scope="scope">
<span>{{ scope.$index + (page.pageNumber - 1) * page.pageSize + 1 }} </span>
</template>
</el-table-column>
<el-table-column label="提案编号" prop="proposalCode" align="center" header-align="center" sortable width="120"></el-table-column>
<el-table-column label="提案名称" prop="proposalName" align="center" header-align="center" width="300px">
<template scope="{row}">
<el-link type="primary" @click="$emit('view',row)">{{ row.proposalName }}</el-link>
</template>
</el-table-column>
<el-table-column label="提案人" prop="username" align="center" header-align="center"></el-table-column>
<!-- <el-table-column label="提案时间" prop="createTime" align="center" header-align="center" sortable></el-table-column>-->
<el-table-column label="提案类型" prop="typeName" align="center" header-align="center" sortable></el-table-column>
<el-table-column label="届次" prop="meetingName" align="center" header-align="center"
sortable></el-table-column>
<el-table-column label="所属代表团" prop="delegationName" align="center" header-align="center"
sortable></el-table-column>
<el-table-column label="提案状态" prop="stateName" align="center" header-align="center" sortable></el-table-column>
<slot name="column"></slot>
</el-table>
<slot name="pagination"></slot>
</el-card>
</template>
<script>
module.exports = {
props: {
page: '',
data: {
type: Array,
default: []
},
loading: {
type: Boolean,
default: false
},
selection: {
type: Boolean,
default: false
}
},
methods: {
rowkeyFunc(row) {
return new Date().getTime()
}
}
}
</script>
@@ -0,0 +1,384 @@
<template>
<div>
<template name="提案基本信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
提案基本信息
</div>
</div>
<van-cell-group>
<van-collapse v-model="secondedActiveNames" :border="false" accordion>
<van-collapse-item name="1">
<template #title>
<div>提案名称&emsp;&emsp;{{ viewData.proposalName }}
<van-icon name="question-o"/>
</div>
</template>
<van-cell :value="viewData.proposalCode" title="提案编号"></van-cell>
<van-cell title="提案时间">{{ viewData.createTime }}</van-cell>
<van-cell title="教代会届次">{{ viewData.meetingName }}</van-cell>
<van-cell title="代表工会">{{ viewData.unionName }}</van-cell>
<van-cell title="代表团名称">{{ viewData.delegationName }}</van-cell>
<van-cell title="提案类型">{{ viewData.typeName }}</van-cell>
<van-cell title="提案方式">{{ viewData.mannerName }}</van-cell>
<van-cell title="立案结果">{{ viewData.resultName ? viewData.resultName : '暂无' }}</van-cell>
<van-cell title="建议落实部门">{{ viewData.implementUnitName || '暂无' }}</van-cell>
<van-cell title="提案状态"><span :style="'color:'+viewData.stateColor">{{ viewData.stateName }}</span>
</van-cell>
</van-collapse-item>
<van-cell title="提&emsp14;&emsp14;案&emsp14;&emsp14;人">
{{ viewData.createUserName }}({{ viewData.loginname }})
</van-cell>
<van-collapse-item v-if="viewData.undertake&&viewData.undertake.length>0" name="3" title="承办单位">
<span v-if="!viewData.undertake">暂未分配</span>
<van-cell v-for="(item,index) in viewData.undertake" v-else
:title="item.undertakeType === 1 ? '主办' : '协办'">
{{ item.unitName }}
</van-cell>
</van-collapse-item>
<van-collapse-item name="4" title="案&emsp;&emsp;由">
<span v-html="viewData.brief"></span>
</van-collapse-item>
<van-collapse-item name="5" title="建议措施">
<span v-html="viewData.measures"></span>
</van-collapse-item>
</van-collapse>
<van-collapse v-model="createUserSignNames" :border="false" v-if="viewData.createUserSign">
<van-collapse-item name="1" title="签&emsp;&emsp;字">
<van-image width="200" height="100" :src="viewData.createUserSign" v-if="viewData.createUserSign"/>
<span v-else>暂无</span>
</van-collapse-item>
</van-collapse>
<!-- <van-cell title="附件">
<div v-for="(obj,index) in viewData.files" class="text-nowrap color-puple"
@click="previewFile(obj.filepath,obj.filename,viewData.files,index)">
{{ obj.filename }}
</div>
</van-cell>-->
</van-cell-group>
</template>
<template v-if="viewData.seconded" name="附议信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
附议信息
</div>
</div>
<van-collapse v-model="secondedNames" :border="false">
<van-collapse-item name="1" title="附&emsp14;&emsp14;议&emsp14;&emsp14;人">
<van-cell v-for="(item,index) in viewData.seconded"
:value="item.isAgree === true ? '同意' : item.isAgree === false ? '拒绝' : '未附议'">
<template #title>
<span>{{ item.username }}({{ item.unitname }})</span>
</template>
</van-cell>
</van-collapse-item>
</van-collapse>
</template>
<template v-if="viewData.delegationAudit&&viewData.delegationAudit.length>0" name="团长审核信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
团长审核信息
</div>
</div>
<van-cell-group v-for="(item,index) in viewData.delegationAudit" class="info">
<van-cell title="审核时间">{{ item.auditTime }}</van-cell>
<van-cell title="审核结果">{{ item.flag ? '通过' : '退回' }}</van-cell>
<van-cell title="审核意见">{{ item.opinion }}</van-cell>
<van-cell title="签&emsp;&emsp;字" v-if="item.auditSign">
<van-image width="200" height="100" :src="item.auditSign" v-if="item.auditSign"/>
<span v-else>暂无</span>
</van-cell>
</van-cell-group>
</template>
<template v-if="viewData.secretaryAudit&&viewData.secretaryAudit.length>0" name="提案委员会立案信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
提案委员会立案信息
</div>
</div>
<van-cell-group v-for="item in viewData.secretaryAudit" class="info">
<van-cell title="审核时间">{{ item.auditTime }}</van-cell>
<van-cell title="立案编号">{{ viewData.caseCode }}</van-cell>
<van-cell title="审核结果">{{ viewData.resultName }}</van-cell>
<van-cell v-if="!viewData.undertake" title="承办单位">暂未分配</van-cell>
<van-collapse v-else v-model="undertakeActiveNames">
<van-collapse-item name="1" title="承办单位">
<van-cell v-for="(item,index) in viewData.undertake"
:title="item.undertakeType === 1 ? '主办' : '协办'">
{{ item.unitName }}
</van-cell>
</van-collapse-item>
</van-collapse>
<van-cell title="审核意见">{{ item.opinion }}</van-cell>
</van-cell-group>
</template>
<template v-if="viewData.caseAudit" name="确认承办单位">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
确认承办单位
</div>
</div>
<van-cell-group class="info">
<van-cell title="审核时间">{{ viewData.caseAudit.auditTime }}</van-cell>
<van-cell title="立案结果">{{ viewData.resultName }}</van-cell>
<van-collapse v-model="undertakeActiveNames">
<van-collapse-item name="2" title="承办单位">
<span v-if="!viewData.undertake">暂未分配</span>
<van-cell v-for="(item,index) in viewData.undertake" v-else
:title="item.undertakeType === 1 ? '主办' : '协办'">
{{ item.unitName }}
</van-cell>
</van-collapse-item>
</van-collapse>
<van-cell title="审核意见">{{ viewData.caseAudit.opinion }}</van-cell>
</van-cell-group>
</template>
<template v-if="viewData.makeLeader" name="分管校领导批示信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
分管校领导批示信息
</div>
</div>
<van-cell-group class="info">
<van-collapse v-model="undertakeActiveNames">
<van-collapse-item v-for="(v,k) in viewData.makeLeader" name="3">
<!--({{ v[0].undertakeType === 1 ? '主办' : '协办' }}) -->
<template #title>
{{ v[0].unitName }}
</template>
<template v-for="item in v">
<van-cell title="批示时间"> {{ item.auditTime }}</van-cell>
<van-cell title="批示意见"> {{ item.opinion }}</van-cell>
</template>
</van-collapse-item>
</van-collapse>
</van-cell-group>
</template>
<template v-if="viewData.replyInfo && viewData.replyInfo.length>0 && viewData.replyInfo.some(v=>v.isReply)"
name="承办单位答复">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
承办单位答复信息
</div>
</div>
<van-cell-group class="info">
<van-collapse v-model="undertakeActiveNames">
<van-collapse-item v-for="item in viewData.replyInfo" :name="item.unitName">
<template #title>
{{ item.unitName }}
</template>
<van-cell title="答复时间"> {{ item.replyTime }}</van-cell>
<van-cell title="落实情况"> {{ item.implementState }}</van-cell>
<van-cell title="答复信息">
<span v-html="item.replyContent"></span>
</van-cell>
<van-panel>
<template #header>
<div class="van-cell van-panel__header">
<div class="van-cell__title">
附件
</div>
</div>
</template>
<div style="padding: 5px 16px">
<upload v-if="item.replyFiles&&item.replyFiles.length>0" :del="false" :files.sync="item.files"
view></upload>
<span v-else>暂无</span>
</div>
</van-panel>
</van-collapse-item>
</van-collapse>
</van-cell-group>
</template>
<template v-if="viewData.feedback&&viewData.feedback.length>0" name="反馈评分信息">
<div class="van-cell-group__title">
<div class="van-sidebar-item van-sidebar-item--select">
反馈评分信息
</div>
</div>
<van-cell-group class="info">
<template v-for="item in viewData.feedback">
<van-cell title="反馈时间">{{ item.feedbackTime }}</van-cell>
<van-cell title="反馈结果">{{ item.feedbackResult }}</van-cell>
<van-cell title="反馈意见"><span v-html="item.feedbackOpinion"></span></van-cell>
<van-panel>
<template #header>
<div class="van-cell van-panel__header">
<div class="van-cell__title">
附件
</div>
</div>
</template>
<div style="padding: 5px 16px">
<upload :del="false" :files.sync="item.files" view></upload>
</div>
</van-panel>
</template>
</van-cell-group>
</template>
<template v-if="handle">
<div id="wechat_proposal_handle">
<slot name="handle"></slot>
</div>
</template>
</div>
</template>
<script>
function removeHTMLTag(str) {
str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tag
str = str.replace(/[ | ]*\n/g, '\n'); //去除行尾空白
str = str.replace(/\n[\s| | ]*\r/g, '\n'); //去除多余空行
str = str.replace(/&nbsp;/ig, '');//去掉&nbsp;
return str;
}
module.exports = {
data() {
return {
activeName: 1,
secondedActiveNames: '',
secondedNames: [],
createUserSignNames: [],
undertakeActiveNames: [],
briefActiveNames: [],
viewData: {},
}
},
props: {
handle: {
type: Boolean,
default: false,
},
title: {
type: String,
default: '审核'
},
proposal_id: String
// pid:String
},
mounted() {
},
components: {
'mobile-sign': httpVueLoader('/components/sign/mobileSign.vue'),
'upload': httpVueLoader('/components/plugins/VantFileUpload.vue'),
},
methods: {
async openView(id) {
this.viewData = await getProposalInfo(id)
if (this.viewData.files) {
this.viewData.files = JSON.parse(this.viewData.files)
}
if (this.viewData.replyInfo) {
const keys = Object.keys(this.viewData.replyInfo)
keys.map(k => {
if (this.viewData.replyInfo[k].replyFiles != null) {
this.viewData.replyInfo[k].replyFiles = JSON.parse(this.viewData.replyInfo[k].replyFiles)
}
})
if (this.viewData.feedback && this.viewData.feedback.length > 0) {
this.viewData.feedback.map(v => {
v.files = JSON.parse(v.files)
})
}
}
this.activeName = this.handle ? "999" : "1"
},
previewFile(filepath, filename, fileList, index) {
const doctype = ['doc', 'docx', 'xls', 'xlsx'];
const pictype = ['jpg', 'png', 'gif', 'jpeg'];
let filetype = filepath.substring(filepath.lastIndexOf('.') + 1, filepath.length);
if (doctype.indexOf(filetype) > -1) {
const pdfpath = 'https://' + window.location.hostname + '/assets/platform/plugins/pdf/web/viewer.html?file=' +
encodeURIComponent("/platform/base/Common/preview?filepath=" + filepath + "&filename=" + filename);
window.open(pdfpath);
} else if (pictype.indexOf(filetype) > -1) {
let ele = document.createElement("div");
fileList.forEach(v => {
let fp = v.filepath.substring(v.filepath.lastIndexOf('.') + 1, v.filepath.length);
if (pictype.indexOf(fp) > -1) {
const image = new Image();
const src = FILE_DOMAIN + v.filepath
image.src = src
image.alt = v.filename
ele.appendChild(image);
}
})
const viewer = new Viewer(ele, {
title: function (img, obj) {
return img.getAttribute("alt");
}
});
viewer.show();
} else {
alert('该文件不支持在手机端预览')
}
}
},
watch: {
'handle'(val) {
if (val === true) {
this.$nextTick(() => {
window.scrollTo(0, document.getElementById('wechat_proposal_handle').offsetTop)
})
}
}
},
async created() {
await this.openView(this.proposal_id)
if (this.handle) {
window.scrollTo(0, document.getElementById('wechat_proposal_handle').offsetTop)
}
}
}
</script>
<style>
.van-cell__value {
color: #323233 !important;
}
.van-cell-group__title {
padding-left: 0 !important;
}
.van-sidebar-item {
font-size: 16px !important;
text-indent: 4px !important;
}
.van-sidebar-item--select::before {
left: 5px !important;
}
</style>