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
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>
|