weizong song 2 months ago
parent 36444be2f9
commit 7a8e7ae839

@ -16,7 +16,68 @@
:fullscreen="$store.getters.device === 'mobile'"
@input="(e) => $emit('update:isShow', e)"
>
<!-- 查看模式使用专门的展示页面 -->
<div v-if="type === 'view'" class="view-container">
<el-descriptions :column="1" border>
<el-descriptions-item label="会议纪要标题">
<span style="font-weight: 500;">{{ form.title || '-' }}</span>
</el-descriptions-item>
<el-descriptions-item label="关联上会审议流程">
<div v-if="relatedFlows && relatedFlows.length > 0">
<el-tag
v-for="flow in relatedFlows"
:key="flow.id"
type="info"
style="margin-right: 8px; margin-bottom: 4px;"
>
{{ flow.title || flow.no || ('流程' + flow.id) }}
<span v-if="flow.no" style="color: #909399; margin-left: 4px;">({{ flow.no }})</span>
</el-tag>
</div>
<span v-else style="color: #909399;">未关联</span>
</el-descriptions-item>
<el-descriptions-item label="附件">
<div v-if="fileList.length > 0">
<div v-for="(file, index) in fileList" :key="index" style="margin-bottom: 8px;">
<el-link
type="primary"
style="margin-right: 10px; cursor: pointer;"
@click="previewFile(file)"
>
<i class="el-icon-view"></i> {{ file.name }}
</el-link>
<el-link
type="primary"
style="cursor: pointer;"
@click="downloadFile(file)"
>
<i class="el-icon-download"></i> 下载
</el-link>
</div>
</div>
<span v-else style="color: #909399;">无附件</span>
</el-descriptions-item>
<el-descriptions-item label="内容清单">
<div v-if="form.items && form.items.length > 0">
<div
v-for="(item, index) in form.items"
:key="index"
style="margin-bottom: 12px; padding: 12px; background-color: #f5f7fa; border-radius: 4px;"
>
<div style="margin-bottom: 4px;">
<el-tag size="small" type="primary">{{ item.type || '未分类' }}</el-tag>
</div>
<div style="color: #606266; line-height: 1.6;">{{ item.content || '-' }}</div>
</div>
</div>
<span v-else style="color: #909399;">无内容清单</span>
</el-descriptions-item>
</el-descriptions>
</div>
<!-- 编辑/新增模式使用表单 -->
<el-form
v-else
ref="elForm"
:model="form"
:rules="rules"
@ -33,7 +94,6 @@
filterable
placeholder="请选择要关联的上会审议流程"
style="width: 100%;"
:disabled="type === 'view'"
@focus="loadFlows"
>
<el-option
@ -50,7 +110,7 @@
提示可以关联多个上会审议审批流程
</div>
</el-form-item>
<el-form-item label="附件上传" prop="files" v-if="type !== 'view'">
<el-form-item label="附件上传" prop="files">
<el-upload
:action="action"
:headers="{
@ -71,24 +131,6 @@
</div>
</el-upload>
</el-form-item>
<el-form-item label="附件" v-if="type === 'view' && fileList.length > 0">
<div v-for="(file, index) in fileList" :key="index" style="margin-bottom: 8px;">
<el-link
type="primary"
style="margin-right: 10px; cursor: pointer;"
@click="previewFile(file)"
>
<i class="el-icon-view"></i> {{ file.name }}
</el-link>
<el-link
type="primary"
style="cursor: pointer;"
@click="downloadFile(file)"
>
<i class="el-icon-download"></i> 下载
</el-link>
</div>
</el-form-item>
<el-form-item label="内容清单" prop="items">
<div v-for="(item, index) in form.items" :key="index" style="margin-bottom: 15px; padding: 15px; border: 1px solid #e4e7ed; border-radius: 4px;">
<el-row :gutter="20">
@ -97,9 +139,8 @@
v-model="item.type"
placeholder="请选择类型"
style="width: 100%;"
:disabled="type === 'view'"
>
<el-option label="“三重一大”事项" value="“三重一大”事项"></el-option>
<el-option label="""" value=""""></el-option>
<el-option label="资金申请" value="资金申请"></el-option>
<el-option label="资金支付" value="资金支付"></el-option>
<el-option label="其他" value="其他"></el-option>
@ -111,10 +152,9 @@
type="textarea"
:autosize="{ minRows: 2 }"
placeholder="请输入内容"
:disabled="type === 'view'"
/>
</el-col>
<el-col :span="2" v-if="type !== 'view'">
<el-col :span="2">
<el-button
type="danger"
icon="el-icon-delete"
@ -126,7 +166,6 @@
</el-row>
</div>
<el-button
v-if="type !== 'view'"
type="primary"
icon="el-icon-plus"
size="small"
@ -191,6 +230,7 @@ export default {
action: process.env.VUE_APP_UPLOAD_API,
fileList: [],
availableFlows: [],
relatedFlows: [], //
rules: {
files: [
{ validator: this.validateFiles, trigger: 'change' }
@ -209,6 +249,7 @@ export default {
} else {
this.fileList = []
this.availableFlows = []
this.relatedFlows = []
}
}
},
@ -232,6 +273,7 @@ export default {
}
this.fileList = []
this.uploadingFile = false
this.relatedFlows = []
if (this.$refs.elForm) {
this.$refs.elForm.resetFields()
}
@ -294,6 +336,12 @@ export default {
//
if (data.flows && data.flows instanceof Array) {
this.form.flow_ids = data.flows.map(i => i.id)
//
if (this.type === 'view') {
this.relatedFlows = data.flows
}
} else {
this.relatedFlows = []
}
//
this.fileList = (data['files_details'] && data['files_details'] instanceof Array)
@ -493,6 +541,14 @@ export default {
return null
}).filter(i => !!i)
// flow_ids使
//
if (!Array.isArray(this.form.flow_ids)) {
this.form.flow_ids = []
}
// ID
this.form.flow_ids = [...new Set(this.form.flow_ids)]
//
this.form.items = this.form.items.filter(item => item.type && item.content)
if (this.form.items.length === 0) {

@ -19,9 +19,9 @@
<!-- 关联流程组件 -->
<RelatedFlows
v-model="form.related_flow_ids"
:readonly="/\/detail/.test($route.path) || !!$route.query.flow_id"
:readonly="/\/detail/.test($route.path) || (!!$route.query.flow_id && !isFirstNode)"
:flow-id="$route.query.flow_id"
:collapsible="!$route.query.flow_id && !/\/detail/.test($route.path)"
:collapsible="(!/\/detail/.test($route.path)) && (!$route.query.flow_id || isFirstNode)"
style="margin-bottom: 20px;"
></RelatedFlows>

Loading…
Cancel
Save