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