阅行客电子档案
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.
 
 
 
 
 
 

208 lines
6.5 KiB

<template>
<!-- 开放清册 -->
<div class="app-container row-container">
<div class="connection-header collect-header" style="margin-bottom: 20px;">
<div class="head-search" style="margin-bottom: 0;">
<el-select
v-model="status"
style="margin-right: 10px; width: 110px;"
placeholder="请选择"
@change="getBusinessFlowHistory"
>
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input v-model="search" clearable size="small" placeholder="输入关键字可模糊搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="getBusinessFlowHistory" @clear="getBusinessFlowHistory" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getBusinessFlowHistory">搜索</el-button>
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
</div>
<el-button size="mini" :disabled="selections.length === 0" @click="doExport(selections)">
<i class="iconfont icon-daochu" />
导出
</el-button>
</div>
<el-table ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 330px)" @select="handleCurrentChange" @selection-change="selectionChangeHandler" @row-dblclick="handleDetail">
<el-table-column type="selection" align="center" width="55" />
<el-table-column v-if="inventType===6" prop="business_type" label="类型">
<template>
<div>内部移交</div>
</template>
</el-table-column>
<el-table-column prop="title" label="标题" min-width="180" />
<el-table-column prop="reason" label="申请理由" />
<el-table-column prop="applicant" label="申请人" />
<el-table-column prop="deptsName" label="申请部门" />
<el-table-column prop="createTime" label="申请时间">
<template slot-scope="scope">
<div>{{ scope.row.createTime }}</div>
</template>
</el-table-column>
<el-table-column prop="completeTime" label="完成时间">
<template slot-scope="scope">
<div>{{ scope.row.completeTime }}</div>
</template>
</el-table-column>
<el-table-column prop="createTime" label="状态" width="80">
<template slot-scope="scope">
<span v-if="scope.row.status === 1" class="row-state ing-state">进行中</span>
<span v-if="scope.row.status === 2" class="row-state case-cancel">已取消</span>
<span v-if="scope.row.status === 3" class="row-state end-state">已完成</span>
<span v-if="scope.row.status === 4" class="row-state cancel-state">不通过</span>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="tableData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
<Detail ref="mDetail" :invent-type="inventType" />
</div>
</template>
<script>
import Detail from './module/detail'
import { FetchBusinessFlowHistory } from '@/api/archivesManage/library'
import qs from 'qs'
import { exportFile } from '@/utils/index'
import { mapGetters } from 'vuex'
export default {
name: 'OpenInventory',
components: { Detail },
props: {
inventType: {
type: Number,
default: 3
}
},
data() {
return {
status: null,
stateOptions: [
{
value: 1,
label: '进行中'
},
{
value: 2,
label: '已取消'
},
{
value: 3,
label: '已完成'
},
{
value: 4,
label: '不通过'
}
],
businessType: this.inventType,
search: '',
tableData: [],
selections: [],
page: {
page: 0,
size: 10,
total: 0
}
}
},
computed: {
...mapGetters([
'baseApi'
])
},
created() {
},
mounted() {
this.getBusinessFlowHistory()
},
methods: {
resetQuery() {
this.search = ''
this.status = null
this.getBusinessFlowHistory()
},
getBusinessFlowHistory() {
const params = {
'status': this.status,
'search': this.search,
'businessType': this.businessType,
'page': this.page.page,
'size': this.page.size
}
FetchBusinessFlowHistory(params).then((res) => {
if (res.code !== 500) {
this.tableData = res.content
this.page.total = res.totalElements
} else {
this.$message.error('获取数据失败')
}
}).catch(err => {
console.log(err)
})
},
handleDetail(row) {
this.$refs.mDetail.rowCurrent = row
this.$refs.mDetail.detialVisible = true
},
// 触发单选
handleCurrentChange(selection, row) {
this.selections = selection
},
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
},
handleCurrentPage(val) {
this.page.page = val
},
selectionChangeHandler(val) {
this.selections = val
},
doExport(data) {
this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', {
confirmButtonText: '继续',
cancelButtonText: '取消',
type: 'warning',
dangerouslyUseHTMLString: true
}).then(() => {
const ids = []
data.forEach(val => {
ids.push(val.id)
})
const params = {
'businessIds': ids,
'businessType': this.businessType
}
exportFile(this.baseApi + '/api/control/exportBusinessFlow?' + qs.stringify(params, { indices: false }))
}).catch(() => {
})
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
.connection-header{
padding: 0 !important;
}
.case-cancel{
color: #a6adb6;
border: 1px solid #e6e8ed;
background-color: #f3f5f9;
}
</style>