267 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Vue
		
	
	
		
		
			
		
	
	
			267 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Vue
		
	
	
| 
								 | 
							
								<template>
							 | 
						|||
| 
								 | 
							
									<view>
							 | 
						|||
| 
								 | 
							
										<cu-custom ref="cuCustom" bgColor="bg-gradual-blueness" :isBack="true" :isRingt="true" :backUrl="backUrl">
							 | 
						|||
| 
								 | 
							
											<block slot="backText">返回</block>
							 | 
						|||
| 
								 | 
							
											<block slot="content">我的任务</block>
							 | 
						|||
| 
								 | 
							
										</cu-custom>
							 | 
						|||
| 
								 | 
							
										<scroll-view scroll-x class="bg-white nav">
							 | 
						|||
| 
								 | 
							
											<view class="flex text-center">
							 | 
						|||
| 
								 | 
							
												<view class="cu-item flex-sub" :class="index==TabCur?'text-orange cur':''"
							 | 
						|||
| 
								 | 
							
													v-for="(item,index) in tabNav" :key="index" @tap="tabSelect" :data-id="index">
							 | 
						|||
| 
								 | 
							
													{{tabNav[index]}}
							 | 
						|||
| 
								 | 
							
												</view>
							 | 
						|||
| 
								 | 
							
											</view>
							 | 
						|||
| 
								 | 
							
										</scroll-view>
							 | 
						|||
| 
								 | 
							
										<block>
							 | 
						|||
| 
								 | 
							
											<mescroll-body ref="mescrollRef" @init="mescrollInit"  @down="downCallback" @up="upCallback" :down="downOption" :up="upOption">
							 | 
						|||
| 
								 | 
							
												<block v-if="TabCur==0">
							 | 
						|||
| 
								 | 
							
													<uni-collapse :accordion="true">
							 | 
						|||
| 
								 | 
							
														<uni-collapse-item :title="period" v-for="(period,index) in periodList" :key="index">
							 | 
						|||
| 
								 | 
							
															<view class="tasks-warp" v-if="item.PERIOD_NAME==period" v-for="(item,index) in equipList" :key="item.SPECIALEQUIPMENT_ID">
							 | 
						|||
| 
								 | 
							
																<view class="tasks-item">
							 | 
						|||
| 
								 | 
							
																	<view class="title">
							 | 
						|||
| 
								 | 
							
																		设备名称:{{item.EQUIPMENTNAME}}
							 | 
						|||
| 
								 | 
							
																	</view>
							 | 
						|||
| 
								 | 
							
																	<view class="tasks-state">
							 | 
						|||
| 
								 | 
							
																		设备类型:{{item.EQUIPMENTTYPENAME}}
							 | 
						|||
| 
								 | 
							
																	</view>
							 | 
						|||
| 
								 | 
							
																	<view class="tasks-state">
							 | 
						|||
| 
								 | 
							
																		巡检周期:{{item.PERIOD_NAME}}
							 | 
						|||
| 
								 | 
							
																	</view>
							 | 
						|||
| 
								 | 
							
																	<view class="flex">
							 | 
						|||
| 
								 | 
							
																		<view class="tasks-time">
							 | 
						|||
| 
								 | 
							
																			{{handleIsChecked(item)}}
							 | 
						|||
| 
								 | 
							
																		</view>
							 | 
						|||
| 
								 | 
							
																		<view class="">
							 | 
						|||
| 
								 | 
							
																			<button class="cu-btn bg-orange round sm" @click="$noMultipleClicks(goToAdd, item)">立即巡检</button>
							 | 
						|||
| 
								 | 
							
																		</view>
							 | 
						|||
| 
								 | 
							
																	</view>
							 | 
						|||
| 
								 | 
							
																</view>
							 | 
						|||
| 
								 | 
							
															</view>
							 | 
						|||
| 
								 | 
							
														</uni-collapse-item>
							 | 
						|||
| 
								 | 
							
													</uni-collapse>
							 | 
						|||
| 
								 | 
							
												</block>
							 | 
						|||
| 
								 | 
							
												<view class="tasks-warp" v-if="TabCur==1 && equipList.length>0" v-for="(item,index) in equipList" :key="item.SPECIALEQUIPMENT_ID">
							 | 
						|||
| 
								 | 
							
													<view class="tasks-item">
							 | 
						|||
| 
								 | 
							
														<view class="title">
							 | 
						|||
| 
								 | 
							
															设备名称:{{item.EQUIPMENTNAME}}
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
														<view class="tasks-state">
							 | 
						|||
| 
								 | 
							
															设备类型:{{item.EQUIPMENTTYPENAME}}
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
														<view class="tasks-state">
							 | 
						|||
| 
								 | 
							
															巡检周期:{{item.PERIOD_NAME}}
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
														<view class="flex">
							 | 
						|||
| 
								 | 
							
															<view class="tasks-time">
							 | 
						|||
| 
								 | 
							
																巡检次数: {{item.XJCOUNT}}
							 | 
						|||
| 
								 | 
							
															</view>
							 | 
						|||
| 
								 | 
							
															<view class="">
							 | 
						|||
| 
								 | 
							
																<button class="cu-btn bg-orange round sm" @click="$noMultipleClicks(goToRecordList, item)">巡检记录</button>
							 | 
						|||
| 
								 | 
							
															</view>
							 | 
						|||
| 
								 | 
							
														</view>
							 | 
						|||
| 
								 | 
							
													</view>
							 | 
						|||
| 
								 | 
							
												</view>
							 | 
						|||
| 
								 | 
							
												<view v-if="equipList.length<1" class="dy-null">
							 | 
						|||
| 
								 | 
							
													<view class="dy-null-img">
							 | 
						|||
| 
								 | 
							
														<image src="../../../static/null.png" mode=""></image>
							 | 
						|||
| 
								 | 
							
													</view>
							 | 
						|||
| 
								 | 
							
													<view class="dy-null-title">
							 | 
						|||
| 
								 | 
							
														暂无数据
							 | 
						|||
| 
								 | 
							
													</view>
							 | 
						|||
| 
								 | 
							
												</view>
							 | 
						|||
| 
								 | 
							
												<view class="cu-tabbar-height"></view>
							 | 
						|||
| 
								 | 
							
											</mescroll-body>
							 | 
						|||
| 
								 | 
							
										</block>
							 | 
						|||
| 
								 | 
							
									</view>
							 | 
						|||
| 
								 | 
							
								</template>
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
									import {
							 | 
						|||
| 
								 | 
							
										basePath,baseImgPath,corpinfoId,loginSession,loginUser,formatDate
							 | 
						|||
| 
								 | 
							
									} from '@/common/tool.js';
							 | 
						|||
| 
								 | 
							
									import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js"
							 | 
						|||
| 
								 | 
							
									import writingBoard from "@/components/writing-board/writing-board.vue"
							 | 
						|||
| 
								 | 
							
									export default {
							 | 
						|||
| 
								 | 
							
										mixins: [MescrollMixin], // 使用mixin
							 | 
						|||
| 
								 | 
							
										components: {
							 | 
						|||
| 
								 | 
							
											writingBoard
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										data() {
							 | 
						|||
| 
								 | 
							
											return {
							 | 
						|||
| 
								 | 
							
								        initflag:false,
							 | 
						|||
| 
								 | 
							
												baseImgPath: baseImgPath,
							 | 
						|||
| 
								 | 
							
												CustomBar: this.CustomBar,
							 | 
						|||
| 
								 | 
							
												backUrl: '/pages/index/index',
							 | 
						|||
| 
								 | 
							
												sTop: 0,
							 | 
						|||
| 
								 | 
							
												totalHeight: 0,
							 | 
						|||
| 
								 | 
							
												downOption: {
							 | 
						|||
| 
								 | 
							
													use: true,
							 | 
						|||
| 
								 | 
							
													auto: false
							 | 
						|||
| 
								 | 
							
												},
							 | 
						|||
| 
								 | 
							
												upOption: {
							 | 
						|||
| 
								 | 
							
													use: true,
							 | 
						|||
| 
								 | 
							
													auto: false,
							 | 
						|||
| 
								 | 
							
													noMoreSize: 1,
							 | 
						|||
| 
								 | 
							
													textNoMore: '--已经没有更多了--'
							 | 
						|||
| 
								 | 
							
												},
							 | 
						|||
| 
								 | 
							
												periodList:['每日','每周','每旬','每月'],
							 | 
						|||
| 
								 | 
							
												scrollLeft: 0,
							 | 
						|||
| 
								 | 
							
												equipList: [], //任务列表返回数据
							 | 
						|||
| 
								 | 
							
												currentPage: 1, //分页参数--页数
							 | 
						|||
| 
								 | 
							
												showCount: 100, //分页参数--每页数据条数
							 | 
						|||
| 
								 | 
							
												totalCount: 0, //分页参数--初始化页数
							 | 
						|||
| 
								 | 
							
												isEnd: false, //防止多次刷新
							 | 
						|||
| 
								 | 
							
												totalPage: 0, //分页参数--分页数量
							 | 
						|||
| 
								 | 
							
												noClick: true,
							 | 
						|||
| 
								 | 
							
												TabCur: 0,
							 | 
						|||
| 
								 | 
							
												tabNav: ['开始巡检', '巡检记录'],
							 | 
						|||
| 
								 | 
							
												UNCHECK:'1'
							 | 
						|||
| 
								 | 
							
											};
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
										onLoad() {
							 | 
						|||
| 
								 | 
							
											//页面显示或从后台跳回小程序时显示此页面时触发,从跳转页面返回时触发,不能传递参数
							 | 
						|||
| 
								 | 
							
											var _this = this
							 | 
						|||
| 
								 | 
							
											_this.background = require('@/common/background.json')
							 | 
						|||
| 
								 | 
							
											_this.currentPage = 1
							 | 
						|||
| 
								 | 
							
											_this.isEnd = false
							 | 
						|||
| 
								 | 
							
											_this.getEquipInit()
							 | 
						|||
| 
								 | 
							
											loginSession();
							 | 
						|||
| 
								 | 
							
										},
							 | 
						|||
| 
								 | 
							
								    onShow(e) {
							 | 
						|||
| 
								 | 
							
								      var _this = this;
							 | 
						|||
| 
								 | 
							
								      if (_this.initflag) {
							 | 
						|||
| 
								 | 
							
								        _this.initflag = false;
							 | 
						|||
| 
								 | 
							
								        _this.currentPage = 1
							 | 
						|||
| 
								 | 
							
								        _this.isEnd = false
							 | 
						|||
| 
								 | 
							
								        this.getEquipInit()
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    },
							 | 
						|||
| 
								 | 
							
										methods: {
							 | 
						|||
| 
								 | 
							
											tabSelect(e) {
							 | 
						|||
| 
								 | 
							
												this.TabCur = e.currentTarget.dataset.id;
							 | 
						|||
| 
								 | 
							
												this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
							 | 
						|||
| 
								 | 
							
												if (this.TabCur == 0) {
							 | 
						|||
| 
								 | 
							
													this.equipList = []
							 | 
						|||
| 
								 | 
							
													this.UNCHECK = '1'
							 | 
						|||
| 
								 | 
							
													this.getEquipInit()
							 | 
						|||
| 
								 | 
							
												} else if (this.TabCur == 1){
							 | 
						|||
| 
								 | 
							
													this.equipList = []
							 | 
						|||
| 
								 | 
							
													this.UNCHECK = ''
							 | 
						|||
| 
								 | 
							
													this.getEquipInit()
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//重置分页
							 | 
						|||
| 
								 | 
							
											initPageData() {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.currentPage = 1;
							 | 
						|||
| 
								 | 
							
												_this.isEnd = false;
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//翻页
							 | 
						|||
| 
								 | 
							
											turnPage() {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.currentPage = _this.currentPage + 1;
							 | 
						|||
| 
								 | 
							
												_this.isEnd = false;
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//跳转事件
							 | 
						|||
| 
								 | 
							
											downCallback(page) { //搜索按钮事件
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.getEquipQuery(page)
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											// 滑动到底方法
							 | 
						|||
| 
								 | 
							
											upCallback(page) {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.scrolltolowerEquip(page)
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//切换选项卡初始化任务列表
							 | 
						|||
| 
								 | 
							
											getEquipInit() { //搜索按钮事件
							 | 
						|||
| 
								 | 
							
												var _this = this
							 | 
						|||
| 
								 | 
							
												_this.initPageData()
							 | 
						|||
| 
								 | 
							
												_this.equipList = []
							 | 
						|||
| 
								 | 
							
												_this.getEquipData();
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//下拉刷新任务列表
							 | 
						|||
| 
								 | 
							
											getEquipQuery(page) {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.initPageData()
							 | 
						|||
| 
								 | 
							
												_this.equipList = [];
							 | 
						|||
| 
								 | 
							
												_this.getEquipData();
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											//  上滑加载更多
							 | 
						|||
| 
								 | 
							
											scrolltolowerEquip(page) {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												_this.turnPage()
							 | 
						|||
| 
								 | 
							
												if (_this.totalPage >= _this.currentPage) {
							 | 
						|||
| 
								 | 
							
													_this.getTaskData(); //开始分页查询
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											getEquipData() {
							 | 
						|||
| 
								 | 
							
												var _this = this;
							 | 
						|||
| 
								 | 
							
												if (_this.isEnd) {
							 | 
						|||
| 
								 | 
							
													return
							 | 
						|||
| 
								 | 
							
												} else {
							 | 
						|||
| 
								 | 
							
													this.isEnd = true;
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												uni.showLoading({
							 | 
						|||
| 
								 | 
							
													title: "加载中..."
							 | 
						|||
| 
								 | 
							
												}); //加载中动画
							 | 
						|||
| 
								 | 
							
												uni.request({
							 | 
						|||
| 
								 | 
							
													url: basePath + '/app/specialequipmentaqxj/list?showCount=' + _this.showCount + '¤tPage=' + _this.currentPage,
							 | 
						|||
| 
								 | 
							
													method: 'POST',
							 | 
						|||
| 
								 | 
							
													dataType: 'json',
							 | 
						|||
| 
								 | 
							
													header: {
							 | 
						|||
| 
								 | 
							
														'Content-type': 'application/x-www-form-urlencoded'
							 | 
						|||
| 
								 | 
							
													},
							 | 
						|||
| 
								 | 
							
													data: {
							 | 
						|||
| 
								 | 
							
														UNCHECK: _this.UNCHECK,
							 | 
						|||
| 
								 | 
							
														tm: new Date().getTime(),
							 | 
						|||
| 
								 | 
							
								            CORPINFO_ID:loginUser.CORPINFO_ID,
							 | 
						|||
| 
								 | 
							
								            USER_ID:loginUser.USER_ID,
							 | 
						|||
| 
								 | 
							
													},
							 | 
						|||
| 
								 | 
							
													success: (res) => {
							 | 
						|||
| 
								 | 
							
														uni.hideLoading(); //结束加载中动画
							 | 
						|||
| 
								 | 
							
														if (res.data != null) {
							 | 
						|||
| 
								 | 
							
															_this.totalPage = res.data.page.totalPage
							 | 
						|||
| 
								 | 
							
															// 从后端获取的数据,将这一步骤放到异步获取后端数据的地方,对后端返回的数据进行处理
							 | 
						|||
| 
								 | 
							
															if (_this.equipList.length == 0) {
							 | 
						|||
| 
								 | 
							
																_this.equipList = res.data.varList;
							 | 
						|||
| 
								 | 
							
															} else {
							 | 
						|||
| 
								 | 
							
																if (res.data.varList != null) {
							 | 
						|||
| 
								 | 
							
																	_this.equipList = _this.equipList.concat( res.data.varList);
							 | 
						|||
| 
								 | 
							
																}
							 | 
						|||
| 
								 | 
							
															}
							 | 
						|||
| 
								 | 
							
															_this.mescroll.endSuccess(res.data.varList.length, (res.data.page.totalPage > res.data.page.currentPage))
							 | 
						|||
| 
								 | 
							
															_this.mescroll.endUpScroll(res.data.page.totalPage == res.data.page.currentPage)
							 | 
						|||
| 
								 | 
							
														}
							 | 
						|||
| 
								 | 
							
													},
							 | 
						|||
| 
								 | 
							
													fail: () => {
							 | 
						|||
| 
								 | 
							
														//  请求失败,隐藏加载状态
							 | 
						|||
| 
								 | 
							
														_this.mescroll.endErr()
							 | 
						|||
| 
								 | 
							
													}
							 | 
						|||
| 
								 | 
							
												})
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											handleIsChecked(pd){
							 | 
						|||
| 
								 | 
							
												var date =  formatDate(new Date(), 'yyyy-MM-dd hh:mm');
							 | 
						|||
| 
								 | 
							
												if(pd.PERIOD_START_DATE > date){//如果今天在下次检查周期之前
							 | 
						|||
| 
								 | 
							
													return "已检查"
							 | 
						|||
| 
								 | 
							
												}else{
							 | 
						|||
| 
								 | 
							
													return "未检查"
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
											goToAdd(item) {
							 | 
						|||
| 
								 | 
							
												uni.navigateTo({
							 | 
						|||
| 
								 | 
							
													url: '/pages/application/speEquip/add?SPECIALEQUIPMENT_ID=' + item.SPECIALEQUIPMENT_ID
							 | 
						|||
| 
								 | 
							
												})
							 | 
						|||
| 
								 | 
							
											},
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											goToRecordList(item) {
							 | 
						|||
| 
								 | 
							
												uni.navigateTo({
							 | 
						|||
| 
								 | 
							
													url: '/pages/application/speEquip/record_list?SPECIALEQUIPMENT_ID=' + item.SPECIALEQUIPMENT_ID
							 | 
						|||
| 
								 | 
							
												})
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								</script>
							 |