345 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			345 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
	<view class="todo-page">
 | 
						|
		<view class="status-bar" :style="{'width': screenWidth + 'px'}"></view>
 | 
						|
		<view class="main">
 | 
						|
			<view class="swiper-wrap">
 | 
						|
				<u-swiper :list="banners" height="110" radius="8" circular indicator indicatorActiveColor="#004F9D"
 | 
						|
					indicatorInactiveColor="#D7D7D7" indicatorMode="dot" indicatorStyle="right: 20px;"
 | 
						|
					@change="e => currentBanner = e.current">
 | 
						|
				</u-swiper>
 | 
						|
			</view>
 | 
						|
			<view class="tabs-bar">
 | 
						|
				<view @click="handleTab(0)" class="tab">
 | 
						|
					<view class="t">
 | 
						|
						<text class="name" :style="{color: currentTab === 0 ? '#004F9D' : ''}">任务</text>
 | 
						|
						<u-badge type="error" absolute max="99" :value="0" :offset="[-6, -10]"></u-badge>
 | 
						|
					</view>
 | 
						|
					<view v-if="currentTab === 0" class="bottom-widget"></view>
 | 
						|
				</view>
 | 
						|
				<view @click="handleTab(1)" class="tab">
 | 
						|
					<view class="t">
 | 
						|
						<text class="name" :style="{color: currentTab === 1 ? '#004F9D' : ''}">消息</text>
 | 
						|
						<u-badge type="error" absolute max="99" :value="88" :offset="[-6, -10]"></u-badge>
 | 
						|
					</view>
 | 
						|
					<view v-if="currentTab === 1" class="bottom-widget"></view>
 | 
						|
				</view>
 | 
						|
			</view>
 | 
						|
			<view v-if="!lists.length" class="empty-wrap">
 | 
						|
				<u-empty text="暂无任务" icon="/static/empty@2x.png">
 | 
						|
				</u-empty>
 | 
						|
			</view>
 | 
						|
			<view v-else class="content-list">
 | 
						|
				<common-card :key="key" :dataSource="item" v-for="(item, key) in lists" icon @click="taskClisk">
 | 
						|
				</common-card>
 | 
						|
			</view>
 | 
						|
 | 
						|
		</view>
 | 
						|
	</view>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
	import {
 | 
						|
		getOrgList,
 | 
						|
		getTodoData,
 | 
						|
		FullGet
 | 
						|
	} from '../../services/app'
 | 
						|
	import {
 | 
						|
		initFilter,
 | 
						|
		extendRule,
 | 
						|
		extendInclude
 | 
						|
	} from '../../utils/common'
 | 
						|
	export default {
 | 
						|
		data() {
 | 
						|
			return {
 | 
						|
				currentTab: 0,
 | 
						|
				lists: [],
 | 
						|
				banners: [
 | 
						|
					'https://shaxian.0598qq.com/assets/img_cate/img_zhuanti@2x.png',
 | 
						|
					'https://shaxian.0598qq.com/assets/img_cate/img_zhuanti@2x.png',
 | 
						|
					'https://shaxian.0598qq.com/assets/img_cate/img_zhuanti@2x.png'
 | 
						|
				],
 | 
						|
				currentBanner: 0,
 | 
						|
				text: '',
 | 
						|
				statusBar: '54px',
 | 
						|
				IsBrush: true,
 | 
						|
				pageIndex: 1,
 | 
						|
				comPickerInfo: {
 | 
						|
					showPicker: false,
 | 
						|
					columns: [],
 | 
						|
					title: '',
 | 
						|
					name: ''
 | 
						|
				}
 | 
						|
			}
 | 
						|
		},
 | 
						|
		onShow() {
 | 
						|
			// let allPages=getCurrentPages()
 | 
						|
			// let lastPage=allPages-1
 | 
						|
			// let option =allPages[lastPage].options
 | 
						|
			// debugger
 | 
						|
			// 判断刷新
 | 
						|
			this.handleGetTodoData()
 | 
						|
		},
 | 
						|
		onLoad() {
 | 
						|
			uni.getSystemInfo({
 | 
						|
				success: e => {
 | 
						|
					this.screenWidth = e.screenWidth
 | 
						|
					// #ifndef H5
 | 
						|
					this.statusBar = e.statusBarHeight
 | 
						|
					// #endif
 | 
						|
				}
 | 
						|
			})
 | 
						|
			// this.handleGetTodoData()
 | 
						|
			// 设置tab红点
 | 
						|
			// uni.showTabBarRedDot({
 | 
						|
			//   index: 0
 | 
						|
			// })
 | 
						|
 | 
						|
			// getOrgList({
 | 
						|
			//   Sort: 'CODE',
 | 
						|
			//   Order: 0,
 | 
						|
			// Parameter10: window.location.host,
 | 
						|
			//   Parameter11: '0'
 | 
						|
			// }).then(res => {
 | 
						|
			//   console.log('org list:', res)
 | 
						|
			// })
 | 
						|
		},
 | 
						|
		methods: {
 | 
						|
			handleTab(t) {
 | 
						|
				this.currentTab = t
 | 
						|
			},
 | 
						|
			handleGetTodoData() {
 | 
						|
				const orgId = uni.getStorageSync('orgId')
 | 
						|
				const json = initFilter(orgId, "", "", '', this.pageIndex)
 | 
						|
				// TODO: 这个参数待定
 | 
						|
				json.Parameter1 = 1; // 1.待办事项 2.已办事项 3.今日新增 4.待办超时
 | 
						|
				getTodoData(json).then(res => {
 | 
						|
					// this.lists = (res.newData || []).map(i => {
 | 
						|
					// 	return {
 | 
						|
					// 		...i,
 | 
						|
					// 		title: i.NOTICE_TITLE,
 | 
						|
					// 		startTime: i.TASK_STARTDT,
 | 
						|
					// 		endTime: i.TASK_ENDDT,
 | 
						|
					// 		status: i.NOTICE_STATUS,
 | 
						|
					// 	}
 | 
						|
					// })
 | 
						|
					this.total = res.TotalCount
 | 
						|
					const newRes = (res.newData || []).map(i => {
 | 
						|
						return {
 | 
						|
							...i,
 | 
						|
							title: i.NOTICE_TITLE,
 | 
						|
							startTime: i.TASK_STARTDT,
 | 
						|
							endTime: i.TASK_ENDDT,
 | 
						|
							status: i.NOTICE_STATUS,
 | 
						|
							textStatus: i.OVER_TIME
 | 
						|
						}
 | 
						|
					})
 | 
						|
					this.lists = this.lists.concat(newRes)
 | 
						|
				})
 | 
						|
			},
 | 
						|
			// 动态设置tabBar
 | 
						|
			// onSetTabBar() {
 | 
						|
			//   uni.setTabBarItem({
 | 
						|
			//     index: 2,
 | 
						|
			//     text: 'text',
 | 
						|
			//     pagePath: 'pages/my/index',
 | 
						|
			//     iconPath: 'static/tabbar_user@2x.png',
 | 
						|
			//     selectedIconPath: 'static/tabbar_user_activited@2x.png'
 | 
						|
			//   })
 | 
						|
			// }
 | 
						|
 | 
						|
			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
 | 
						|
						switch (res.APPROVE_CODE) {
 | 
						|
							case 'BS032_SHOWPRINT': //制表审批
 | 
						|
								linkToUrl = '/pages/apply/subPages/BS/checkPlanNotice'
 | 
						|
								break;
 | 
						|
							case 'BS034_SHOWPRINT': //检查确认
 | 
						|
								linkToUrl = '/pages/apply/subPages/BS/safeCheckCheck'
 | 
						|
								break;
 | 
						|
						}
 | 
						|
 | 
						|
						//特殊处理
 | 
						|
						if (okApi === 'BS/BSSafeCheck/CheckAuditEnd' || okApi === 'BS/BSRiskSubmit/Notice' ||
 | 
						|
							okApi === 'BS/BSRiskSubmit/DealEnd' || okApi ===
 | 
						|
							'BS/BSRiskSubmitDelayApply/DealEnd' || okApi === 'FO/FOJobEventRecord/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')
 | 
						|
						}
 | 
						|
					})
 | 
						|
				} else {
 | 
						|
					switch (item.SOURCE_FORMCODE) {
 | 
						|
						case 'BS032_SHOWPRINT': //检查通知 确认
 | 
						|
							linkToUrl = '../apply/subPages/BS/checkPlanNotice'
 | 
						|
							break;
 | 
						|
						case 'BS057': //检查登记
 | 
						|
							linkToUrl = '../apply/subPages/BS/safeCheckSign'
 | 
						|
							break;
 | 
						|
						case 'BS034': //检查确认
 | 
						|
							linkToUrl = '../apply/subPages/BS/safeCheckCheck'
 | 
						|
							break;
 | 
						|
						case 'FO003_SHOWPRINT': //检查确认
 | 
						|
							linkToUrl = '../apply/subPages/FO/2preShiftMeetingShow'
 | 
						|
							break;
 | 
						|
						case 'BS006': //检查 隐患上报
 | 
						|
							linkToUrl = '../apply/subPages/BS/riskSumbit'
 | 
						|
							break;
 | 
						|
						case 'FO003_SHOWPRINT': //班前会议签到
 | 
						|
							linkToUrl = '../apply/subPages/1preShiftMeetingShow'
 | 
						|
							break;
 | 
						|
						case 'FO003': //班前会议编辑
 | 
						|
							linkToUrl = '../apply/subPages/1preShiftMeetingEdit'
 | 
						|
							break;
 | 
						|
						case 'FO005_SHOWPRINT': //岗位当班签到
 | 
						|
							linkToUrl = '../apply/subPages/2currentShiftClassShow'
 | 
						|
							break;
 | 
						|
						case 'FO005': //岗位当班编辑
 | 
						|
							linkToUrl = '../apply/subPages/2currentShiftClassEdit'
 | 
						|
							break;
 | 
						|
						case 'FO013_SHOWPRINT': //岗位交接班签到
 | 
						|
							linkToUrl = '../apply/subPages/3changeShiftRecordShow'
 | 
						|
							break;
 | 
						|
						case 'FO012': //岗位交接班编辑
 | 
						|
							linkToUrl = '../apply/subPages/3changeShiftRecordEdit'
 | 
						|
							break;
 | 
						|
						case 'HM124': //文件发布表
 | 
						|
							linkToUrl = '../apply/subPages/HM2/filePublishEdit'
 | 
						|
							break;
 | 
						|
						case 'HM123_SHOWPRINT': //文件发布表
 | 
						|
							linkToUrl = '../apply/subPages/HM2/filePublishShow'
 | 
						|
							break;
 | 
						|
						case 'PT014_SHOWPRINT': //安全生产方针征集表
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/policyCollectShow'
 | 
						|
							break;
 | 
						|
						case 'PT020': //安全生产目标与指标
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/formulationDepartmentEdit'
 | 
						|
							break;
 | 
						|
						case 'PT020_SHOWPRINT': //安全生产目标与指标
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/formulationDepartmentShow'
 | 
						|
							break;
 | 
						|
						case 'PT024': //考核方案审核
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/PlanAuditEdit'
 | 
						|
							break;
 | 
						|
						case 'PT024_SHOWPRINT': //考核方案审核
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/PlanAuditShow'
 | 
						|
							break;
 | 
						|
						case 'PT029': //监测与考核记录
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/monitorAssessmentEdit'
 | 
						|
							break;
 | 
						|
						case 'PT029_SHOWPRINT': //监测与考核记录
 | 
						|
							linkToUrl = '../apply/subPages/SCPT/monitorAssessmentShow'
 | 
						|
							break;
 | 
						|
					}
 | 
						|
 | 
						|
					if (linkToUrl != '') {
 | 
						|
						uni.navigateTo({
 | 
						|
							url: linkToUrl + "?tableKey=1&ID=" + item.SOURCE_DATA_ID + "&taskID=" + item.ID
 | 
						|
						})
 | 
						|
					} else {
 | 
						|
						uni.$showMsg('功能待完善!', 'error')
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
 | 
						|
				// else {  //对于App端不开发的页面 提示
 | 
						|
				// 	uni.$showMsg('请移至电脑端操作!', 'error')
 | 
						|
				// }
 | 
						|
			},
 | 
						|
		},
 | 
						|
 | 
						|
		onReachBottom() {
 | 
						|
			if (this.total >= this.pageIndex * 10) {
 | 
						|
				this.pageIndex++
 | 
						|
				this.handleGetTodoData()
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
</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: 62px 8px;
 | 
						|
		position: relative;
 | 
						|
		z-index: 10;
 | 
						|
		background-size: 100% 120px;
 | 
						|
		background-repeat: no-repeat;
 | 
						|
	}
 | 
						|
 | 
						|
	.todo-page .swiper-wrap {
 | 
						|
		margin-bottom: 16px;
 | 
						|
	}
 | 
						|
 | 
						|
	.tabs-bar {
 | 
						|
		display: flex;
 | 
						|
		flex-direction: row;
 | 
						|
	}
 | 
						|
 | 
						|
	.tabs-bar .tab {
 | 
						|
		display: flex;
 | 
						|
		align-items: center;
 | 
						|
		position: relative;
 | 
						|
		margin-right: 20px;
 | 
						|
		padding-bottom: 6px;
 | 
						|
	}
 | 
						|
 | 
						|
	.tabs-bar .tab .t {
 | 
						|
		position: relative
 | 
						|
	}
 | 
						|
 | 
						|
	.tabs-bar .tab .t .name {
 | 
						|
		font-size: 18px;
 | 
						|
		line-height: 22px;
 | 
						|
		color: #999;
 | 
						|
	}
 | 
						|
 | 
						|
	.tabs-bar .tab .bottom-widget {
 | 
						|
		width: 20px;
 | 
						|
		height: 3px;
 | 
						|
		background-color: #004F9D;
 | 
						|
	}
 | 
						|
 | 
						|
	.empty-wrap {
 | 
						|
		margin-top: 60px;
 | 
						|
	}
 | 
						|
 | 
						|
	.content-list {
 | 
						|
		padding: 10px 0;
 | 
						|
	}
 | 
						|
</style>
 |