阅行客电子档案
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

212 lines
7.0 KiB

<template>
<el-dialog class="detail-dialog" :title="overDetialTitle" :visible.sync="overDetialVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose" @opened="opened">
<div class="setting-dialog">
<div class="detail-tab tab-content">
<ul class="tab-nav" style="padding: 0;">
<li :class="{'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">流程表单</li>
<li :class="{'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">流程图</li>
</ul>
<div v-if="activeIndex == 0">
<el-form ref="form" :model="form" :rules="rules" inline label-width="110px">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" style="width: 280px;" />
</el-form-item>
<el-form-item label="申请时间" prop="date">
<el-input v-model="form.date" style="width: 280px;" disabled />
</el-form-item>
<el-form-item label="申请人" prop="applicant">
<el-input v-model="form.applicant" style="width: 280px;" disabled />
</el-form-item>
<el-form-item label="申请人部门" prop="dept">
<el-input v-model="form.dept" style="width: 280px;" disabled />
</el-form-item>
<el-form-item label="申请理由" prop="reason">
<el-input v-model="form.reason" type="textarea" style="width: 660px;" :rows="4" />
</el-form-item>
</el-form>
<ArchivesListModule v-if="activeIndex == 0" ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
</div>
<div v-if="activeIndex == 1" class="tab-img">
<img :src="'data:image/jpeg;base64,'+ srcImg" alt="" :onerror="defaultImg">
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitHandOverForm">提交</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import { FetchFondsDetail } from '@/api/system/fonds'
import { FetchBusinessFlowTitle } from '@/api/collect/collect'
import { FetchIntoFlowBusiness } from '@/api/archivesManage/library'
import { mapGetters } from 'vuex'
import ArchivesListModule from '@/views/components/archivesListModule/index'
import { getCurrentTime } from '@/utils/index'
export default {
name: 'HandOverForm',
components: { ArchivesListModule },
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
},
collectLevel: {
type: Number,
default: function() {
return null
}
},
selections: {
type: Array,
default: () => []
},
isHandOver: {
type: Boolean,
default: false
}
},
data() {
return {
overType: 3,
targetFondsNo: null,
overDetialTitle: '',
activeIndex: 0,
overDetialVisible: false,
form: {
title: null,
date: null,
applicant: null,
dept: null,
reason: null,
fondsNo: null
},
rules: {
title: [
{ required: true, message: '标题不可为空', trigger: 'blur' }
]
},
defaultImg: 'this.src="' + require('@/assets/images/system/default-img.jpg') + '"',
srcImg: null
}
},
computed: {
...mapGetters([
'user',
'baseApi'
])
},
created() {
},
methods: {
opened() {
if (this.activeIndex === 0) {
this.form.applicant = this.user.username
this.form.dept = this.user.dept.deptsName
this.form.date = getCurrentTime().split(' ')[0]
this.getFondsDetail()
this.$refs.archivesListModule.getViewTable()
}
},
getFondsDetail() {
FetchFondsDetail({ id: this.user.fonds.id }).then((res) => {
this.form.fondsNo = res.fondsNo
if (res.fondsNo) {
this.getBusinessFlowTitle()
}
}).catch(err => {
console.log(err)
})
},
changeActiveTab(data) {
this.activeIndex = data
if (this.activeIndex === 0) {
console.log('流程表单')
} else if (this.activeIndex === 1) {
console.log('流程图')
}
},
getBusinessFlowTitle() {
const params = {
'username': this.user.username,
'fondsNo': this.form.fondsNo,
'businessType': this.isHandOver ? 6 : this.overType
}
FetchBusinessFlowTitle(params).then((res) => {
if (res.code !== 500) {
console.log(res)
this.form.title = res
} else {
this.$message({ message: '失败', type: 'error', offset: 8 })
}
}).catch(err => {
console.log(err)
})
},
submitHandOverForm() {
this.$refs['form'].validate((valid) => {
if (valid) {
const archivesIds = []
this.selections.forEach(val => {
archivesIds.push(val.id)
})
const params = {
'title': this.form.title, // 流程名称
'applicant': this.user.username, // 申请人
'archivesIds': archivesIds,
'businessType': this.isHandOver ? 6 : this.overType,
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'reason': this.form.reason,
'fondsNo': this.form.fondsNo, // 原始全宗
'targetFondsNo': this.targetFondsNo ? this.targetFondsNo.fondsId : null// 目标全宗号
// 'targetPosition': 'string', // 目的位置
// 'startPosition': 'string', // 开始位置
// 'giveStartTime': null, // 赋权开始时间
// 'giveEndTime': null // 赋权结束时间
}
console.log(params)
FetchIntoFlowBusiness(params).then((res) => {
if (res.code !== 5001) {
this.$message({ message: '操作提交成功', type: 'success', offset: 8 })
this.$emit('close-dialog')
} else {
// const message = JSON.parse(res.message)
// this.$message.error(message.fail.join(',') + '操作提交失败')
this.$message({ message: res.message, type: 'error', offset: 8 })
}
this.handleClose()
}).catch(err => {
console.log(err)
})
} else {
console.log('error submit!!')
return false
}
})
},
// dialog - close
handleClose(done) {
this.form.title = ''
this.form.reason = ''
this.overDetialVisible = false
this.$refs['form'].resetFields()
done()
}
}
}
</script>
<style lang="scss" scoped>
.tab-img{
height: 440px;
overflow: hidden;
img{
display: block;
width: 100%;
// height: 100%;
}
}
</style>