176 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			176 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
	<view class="todo-page">
 | 
						|
		<view class="main">
 | 
						|
			<view class="empty-wrap" v-if="!lists.length">
 | 
						|
				<u-empty text="暂无任务" icon="/static/empty@2x.png">
 | 
						|
				</u-empty>
 | 
						|
			</view>
 | 
						|
			<view class="content-list" v-else>
 | 
						|
				<common-card :dataSource="item" v-for="(item, key) in lists" :key="key" icon @click="taskClisk">
 | 
						|
				</common-card>
 | 
						|
			</view>
 | 
						|
		</view>
 | 
						|
 | 
						|
	</view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
	import CommonCard from '@/components/custom/common-card2.nvue';
 | 
						|
 | 
						|
	import {
 | 
						|
		userToDo
 | 
						|
	} from '../../services/app'
 | 
						|
	import {
 | 
						|
		ApproveCode,
 | 
						|
		SourceFormcode
 | 
						|
	} from '../../utils/common'
 | 
						|
 | 
						|
	export default {
 | 
						|
		components: {
 | 
						|
			CommonCard,
 | 
						|
		},
 | 
						|
		data() {
 | 
						|
			return {
 | 
						|
				nameID: '',
 | 
						|
				lists: [],
 | 
						|
				timingGet: undefined,
 | 
						|
				affairType: '1'
 | 
						|
			}
 | 
						|
		},
 | 
						|
		onLoad(options) {
 | 
						|
			this.nameID = options.sameData
 | 
						|
			this.getUserToDo()
 | 
						|
			uni.setNavigationBarTitle({
 | 
						|
				title: options.name + '-岗位任务' //将参数作为标题
 | 
						|
			})
 | 
						|
		},
 | 
						|
		onShow() {
 | 
						|
			this.getUserToDo()
 | 
						|
			this.timingGet = setInterval(() => {
 | 
						|
				this.getUserToDo()
 | 
						|
			}, 1500000)
 | 
						|
		},
 | 
						|
		onHide() {
 | 
						|
			clearInterval(this.timingGet)
 | 
						|
		},
 | 
						|
		methods: {
 | 
						|
			getUserToDo() {
 | 
						|
				const orgId = uni.getStorageSync('orgId')
 | 
						|
				const json = {
 | 
						|
					Parameter1: this.nameID,
 | 
						|
					orgid: orgId
 | 
						|
				}
 | 
						|
				userToDo(json).then(res => {
 | 
						|
					const newRes = (res || []).map(i => {
 | 
						|
						const obj = {
 | 
						|
							...i,
 | 
						|
							title: i.NOTICE_TITLE,
 | 
						|
							startTime: i.TASK_STARTDT,
 | 
						|
							endTime: i.TASK_ENDDT,
 | 
						|
						}
 | 
						|
						obj.status = i.OVER_TIME === '正常' ? 0 : 1
 | 
						|
						obj.statusText = i.OVER_TIME
 | 
						|
						return obj
 | 
						|
					})
 | 
						|
					this.lists = newRes
 | 
						|
 | 
						|
				})
 | 
						|
			},
 | 
						|
			taskClisk(item) {
 | 
						|
				let linkToUrl = ''
 | 
						|
				if (item.SOURCE_FORMCODE == 'PF119') {
 | 
						|
					const orgId = uni.getStorageSync('orgId')
 | 
						|
					const json = initFilter(orgId)
 | 
						|
					extendRule(json, 'ID', 1, item.SOURCE_DATA_ID);
 | 
						|
					extendInclude(json, "Nav_ApproveDetails")
 | 
						|
					extendInclude(json, "Nav_ApproveDetails.Nav_ApproveUser")
 | 
						|
					FullGet(json).then(res => {
 | 
						|
						let okApi = res.CALLBACK_INTERFACE
 | 
						|
						// api 请求 获取  APPROVE_CODE ID
 | 
						|
						linkToUrl = ApproveCode(res.APPROVE_CODE)
 | 
						|
						if (okApi && okApi.indexOf('New') > -1) {
 | 
						|
							okApi = res.CALLBACK_INTERFACE
 | 
						|
						} else {
 | 
						|
							okApi = 'PF/Approve/Submit'
 | 
						|
						}
 | 
						|
						// //特殊处理
 | 
						|
						// if (okApi === 'BS/BSSafeCheck/CheckAuditEnd' || okApi ===
 | 
						|
						// 	'BS/BSSafeCheck/CheckPlanAuditEnd' || okApi === 'BS/BSRiskSubmit/Notice' ||
 | 
						|
						// 	okApi === 'BS/BSRiskSubmit/DealEnd' || okApi ===
 | 
						|
						// 	'BS/BSRiskSubmitDelayApply/DealEnd' || okApi === 'FO/FOJobEventRecord/BackUpdate'|| 
 | 
						|
						// 	okApi === 'FO/FOCrucialLicenseJob/BackUpdate'||okApi ==='FO/FOCrucialLicenseJobOutsource/BackUpdate') {
 | 
						|
						// 	okApi = res.CALLBACK_INTERFACE + 'New'
 | 
						|
						// } else {
 | 
						|
						// 	okApi = 'PF/Approve/Submit'
 | 
						|
						// }
 | 
						|
						if (linkToUrl != '') {
 | 
						|
							linkToUrl += "?tableKey=1&ID=" + res.DATA_ID + "&ApproveID=" + item
 | 
						|
								.SOURCE_DATA_ID + "&taskID=" +
 | 
						|
								item.ID + '&isAudit=true&okApi=' + okApi + '&refuseApi=' + res
 | 
						|
								.REJECT_INTERFACE
 | 
						|
							this.$store.commit('updateAuditModel', res)
 | 
						|
							uni.navigateTo({
 | 
						|
								url: linkToUrl
 | 
						|
							})
 | 
						|
						} else {
 | 
						|
							// uni.$showMsg('此任务请到电脑上操作!', 'error')
 | 
						|
							this.showToast()
 | 
						|
						}
 | 
						|
					})
 | 
						|
				} else {
 | 
						|
					linkToUrl = SourceFormcode(item.SOURCE_FORMCODE)
 | 
						|
					if (linkToUrl != '') {
 | 
						|
						linkToUrl += "?tableKey=" + this.affairType + "&ID=" + item.SOURCE_DATA_ID + "&taskID=" + item.ID
 | 
						|
 | 
						|
						if (item.SOURCE_FORMCODE == 'SC034' || item.SOURCE_FORMCODE == 'SC030' ||item.SOURCE_FORMCODE =='SE050_SHOWPRINT') {
 | 
						|
							linkToUrl += "&FORMCODE=" + item.SOURCE_FORMCODE //会议 纪要 load时 添加标识
 | 
						|
						}
 | 
						|
 | 
						|
						uni.navigateTo({
 | 
						|
							url: linkToUrl
 | 
						|
						})
 | 
						|
					} else {
 | 
						|
						// uni.$showMsg('此任务请到电脑上操作!', 'error')
 | 
						|
						this.showToast()
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
</script>
 | 
						|
 | 
						|
<style>
 | 
						|
	.todo-page {
 | 
						|
		/* position: relative; */
 | 
						|
	}
 | 
						|
 | 
						|
	/* .todo-page .status-bar {
 | 
						|
		height: 120px;
 | 
						|
		background-image: linear-gradient(to right, #CFECFF, #6EB6FF);
 | 
						|
		position: absolute;
 | 
						|
		top: 0;
 | 
						|
		left: 0;
 | 
						|
		z-index: -10;
 | 
						|
	} */
 | 
						|
 | 
						|
	.todo-page .main {
 | 
						|
		padding: 10px 8px 62px 8px;
 | 
						|
		position: relative;
 | 
						|
		z-index: 10;
 | 
						|
		background-size: 100% 120px;
 | 
						|
		background-repeat: no-repeat;
 | 
						|
	}
 | 
						|
 | 
						|
	.todo-page .swiper-wrap {
 | 
						|
		margin-bottom: 16px;
 | 
						|
	}
 | 
						|
 | 
						|
	.empty-wrap {
 | 
						|
		margin-top: 60px;
 | 
						|
	}
 | 
						|
 | 
						|
	.content-list {
 | 
						|
		padding: 10px 0;
 | 
						|
		/* position: relative; */
 | 
						|
	}
 | 
						|
</style> |