<template>
|
<div>
|
<!-- <zt-table-wraper ref="tableObj" query-url="/newPlan/taskCenter/page" :paging="false" :lazy="true" v-slot="{ table }"
|
paging-layout="total, prev, pager, next">-->
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getQuery()">
|
<el-input type="text" v-model="dataForm.djxlSystem" v-if="false"/>
|
</el-form>
|
<el-table ref="table"
|
:height="getTransformHeight()"
|
v-loading="dataLoading"
|
:data="dataList"
|
style='margin-top:10px;transition: .5s;'
|
class="alreadyTaskPushTable table-is__left-tz"
|
border highlight-current-row>
|
<el-table-column prop="index" width="60" label="序号" align="center">
|
<template slot-scope="scope">
|
<span v-html="indexFormat(scope.$index)"></span>
|
</template>
|
</el-table-column>
|
<el-table-column align="left" prop="topic" label="工程" width="150"/>
|
<!-- <el-table-column align="left" prop="title" label="流程名称" width="180"/>-->
|
<el-table-column align="left" prop="remark" label="摘要"/>
|
|
<el-table-column align="center" prop="stepName" label="当前环节" width="150px"/>
|
<el-table-column align="center" prop="receiveTime" label="上一环节办理时间" width="180px"/>
|
<el-table-column align="center" prop="senderName" label="上一环节办理人" width="160px"/>
|
<el-table-column align="center" prop="finishTime" label="计划完成时间" width="160px"/>
|
<!-- <el-table-column align="center" prop="statusName" label="状态" width="100px"/>-->
|
<el-table-column align="center" prop="idleDays" label="停留时间(天)" width="150px"/>
|
<zt-table-column-handle fixed="right" :table="table" :has-edit="false" :has-delete="false" :has-view="false"
|
width="120px">
|
<template v-slot="{ row }">
|
<zt-table-button
|
v-if="row.stepMarker!='hxsy_czsp'&&row.stepMarker!='hxsy_bzsp'&&row.stepMarker!='xbsy_czsp'&&row.stepMarker!='xbsy_bzsp'"
|
@click="createTask(row)">办理
|
</zt-table-button>
|
<zt-table-button
|
v-if="row.stepMarker=='hxsy_czsp'||row.stepMarker=='hxsy_bzsp'||row.stepMarker=='xbsy_czsp'||row.stepMarker=='xbsy_bzsp'"
|
@click="createTask(row)">查阅
|
</zt-table-button>
|
<zt-table-button @click="flowChart(row)">流程图</zt-table-button>
|
<zt-table-button v-if="row.flowCode === 'yearPlan2'" @click="getFlowTrack (row)">流程轨迹</zt-table-button>
|
</template>
|
</zt-table-column-handle>
|
<infinite-loading
|
spinner="bubbles"
|
distance="200"
|
slot="append"
|
identifier="infiniteId"
|
@infinite="infiniteHandler"
|
ref="infiniteLoading"
|
force-use-infinite-wrapper=".alreadyTaskPushTable .el-table__body-wrapper">
|
<div slot="no-more" style="margin-top: 10px;margin-bottom: 10px;"><span v-if="dataListAll.length > pageSize">没有更多了</span>
|
</div>
|
</infinite-loading>
|
</el-table>
|
<!-- 待办任务弹窗弹窗, 新增 / 修改 -->
|
<ItemCirculatOrder ref="itemCirculatOrder" @refreshDataList="getQuery()"></ItemCirculatOrder>
|
<!-- </zt-table-wraper>-->
|
</div>
|
</template>
|
|
<script>
|
import Cookies from "js-cookie";
|
import InfiniteLoading from 'vue-infinite-loading'
|
import ItemCirculatOrder from '@/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate'
|
|
export default {
|
data() {
|
return {
|
page: 1,
|
pageSize: 30,
|
dataLoading: false,
|
dataList: [],
|
dataListAll: [],
|
dataForm: {
|
djxlSystem: ''
|
},
|
dialogVisible: false,
|
existConstructionInfo: false
|
}
|
},
|
props: {
|
system: {
|
type: String
|
},
|
transformHeight: {
|
type: Boolean,
|
default: false
|
}
|
},
|
watch: {
|
'$route.params.projectId'() {
|
//this.dataForm.projectId = this.$route.params.projectId
|
// this.getIsExistConstructionInfo()
|
this.getQuery()
|
},
|
'tableBottomOffset'() {
|
console.log(this.tableBottomOffset, 'tableBottomOffset')
|
}
|
},
|
computed: {},
|
components: {
|
InfiniteLoading,
|
ItemCirculatOrder
|
},
|
created() {
|
if (this.$route.path.indexOf('taskCenter') > 0 || this.system == 'smj') {
|
this.transformHeight = true
|
} else {
|
this.transformHeight = false
|
}
|
},
|
mounted() {
|
if (this.$route.params.projectId) {
|
this.dataForm.projectId = this.$route.params.projectId
|
}
|
this.dataForm.djxlSystem = Cookies.get('djxlSystem')
|
this.getQuery()
|
this.$EventBus.$on('newProject', () => {
|
this.getQuery()
|
})
|
},
|
methods: {
|
async infiniteHandler($state) {
|
console.log('in infiniteHandler--------')
|
if ((this.page * this.pageSize) < this.dataListAll.length) {
|
this.page++
|
// let begin = (this.page - 1) * this.pageSize
|
let end = this.page * this.pageSize
|
if (end > this.dataListAll.length) {
|
end = this.dataListAll.length
|
}
|
this.dataList = this.dataListAll.slice(0, end)
|
console.log(this.dataList.length, 'infiniteHandler:this.dataList.length')
|
console.log(this.page, 'infiniteHandler:this.page')
|
setTimeout(() => {
|
$state.loaded()
|
}, 100)
|
} else {
|
$state.loaded()
|
console.log("$state.complete()", this.page)
|
this.page = 1;
|
$state.complete()
|
console.log(this.page, 'infiniteHandler:this.page')
|
}
|
},
|
handleInfiniteLoadingBeforeGet() {
|
this.page = 1;
|
this.dataListAll = []
|
this.dataList = []
|
},
|
handleInfiniteLoadingAfterGet(res) {
|
this.dataListAll = res.data
|
console.log(this.dataListAll.length, 'handleInfiniteLoadingAfterGet:this.dataListAll.length')
|
// let begin = (this.page - 1) * this.pageSize
|
let end = this.page * this.pageSize
|
if (end > this.dataListAll.length) {
|
end = this.dataListAll.length
|
}
|
this.dataList = this.dataListAll.slice(0, end)
|
console.log(this.dataList.length, 'handleInfiniteLoadingAfterGet:this.dataList.length')
|
console.log(this.page, 'handleInfiniteLoadingAfterGet:this.page')
|
this.$nextTick(() => {
|
this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');
|
});
|
},
|
async getQuery() {
|
this.handleInfiniteLoadingBeforeGet()
|
this.dataLoading = true
|
let params = {
|
djxlSystem: this.dataForm.djxlSystem,
|
}
|
let res = await this.$http.get(`/task/taskCenter/page`, {
|
params: params
|
})
|
if (res.success) {
|
this.dataLoading = false
|
this.handleInfiniteLoadingAfterGet(res)
|
console.log(this.dataList, 'getQuery:this.dataList')
|
} else {
|
this.dataLoading = true
|
}
|
},
|
getTransformHeight() {
|
let Height = document.documentElement.clientHeight
|
return Height - (650 - 403)
|
},
|
async reCall(row) {
|
if (await this.$tip.confirm('确定要进行撤回吗?')) {
|
this.$http.get(`/wf/reCallFlow`, {params: row}).then(a => {
|
})
|
}
|
},
|
getStayTask() {
|
this.getQuery()
|
},
|
flowChart(row) {
|
this.$emit('fatherMethod', row)
|
},
|
async getFlowTrack(row) {
|
console.log(row, 'getFlowTrack row')
|
if (row) {
|
let params = {
|
flowCode: row.flowCode,
|
bizId: row.bizId
|
}
|
this.$refs.processTrajectory.$refs.dialog.init(params)
|
}
|
},
|
async createTask(row) {
|
console.log(row, "task row");
|
if (row.flowCode === 'wplz') {
|
this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId, row)
|
} else if (row.flowCode === 'aaa') {
|
//this.$refs.itemCirculatOrder.$refs.dialog.init(row)
|
} else {
|
if (row.stepRouterId === null) {
|
this.$tip.alert("没有配置菜单id")
|
return;
|
}
|
let route = window.SITE_CONFIG['dynamicMenuRoutes'].filter(item => item.meta.menuId === row.stepRouterId)[0]
|
if (route === undefined) {
|
this.$tip.alert("没有配置菜单权限")
|
return;
|
}
|
let params = {
|
id: row.bizId,
|
projectId: row.bizGroupId,
|
pageCode: row.stepMarker,
|
pageRead: 'no',
|
productId: row.productId,
|
approveType: ''
|
}
|
console.log(route.meta.params, 'route.meta.params')
|
|
if (Object.keys(route.meta.params).length > 0) {
|
params = Object.assign(params, route.meta.params);
|
}
|
console.log(params, 'params')
|
this.$router.push({
|
name: row.stepRouterId,
|
params: params
|
})
|
}
|
},
|
indexFormat(index) {
|
let indexs = index + 1
|
return '<span>' + indexs + '</span>'
|
},
|
},
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|