xytSk-App/pages/xcrw/index.vue

204 lines
4.9 KiB
Vue
Raw Normal View History

2024-10-15 15:05:52 +08:00
<template>
<view :style="{height:'100vh',overflow:'hidden'}">
<u-status-bar></u-status-bar>
2024-11-08 15:46:52 +08:00
<u-navbar title="巡查任务" :autoBack="true" :titleStyle="{
2024-10-15 15:05:52 +08:00
fontSize:'18px'
}" :height='44' :safeAreaInsetTop=true leftIconSize='20' leftIconColor='rgb(153, 153, 153)'>
</u-navbar>
<view style="padding:0 10px; margin-top:50px">
2024-11-08 15:11:23 +08:00
<view class="time-ranger">
<view class="start-time">
<text>开始时间</text>
2024-11-14 17:54:35 +08:00
<text @click="showTime=true" style="margin-left:10%;color:#3399ef">{{stm}}</text>
2024-11-08 15:11:23 +08:00
</view>
<view class="end-time">
<text>结束时间</text>
2024-11-14 17:54:35 +08:00
<text @click="showTime1=true" style="margin:0 10%;color:#3399ef">{{etm}}</text>
2024-11-08 15:11:23 +08:00
<view class="search-btn" @click="searchHandle">
搜索
2024-10-15 15:05:52 +08:00
</view>
</view>
2024-11-08 15:11:23 +08:00
</view>
<view class="" style='overflow: auto;height:calc(100vh - 150px)' v-if="list.length !== 0">
2024-11-11 13:33:29 +08:00
<view class="" v-for="(item,i) in list" :key="i" @click="toDetail(item)" style="background-color: #fff;margin-top:10px;padding: 10px;">
2024-11-08 15:11:23 +08:00
<view class="item">
<!-- {{item.title}} -->
<view class="title">
{{item.taskTitle}}
</view>
2024-11-11 13:33:29 +08:00
<view class="titleRight" >
2024-11-08 15:11:23 +08:00
<view class="border">
{{status[item.status]}}
</view>
<u-icon name="arrow-right" size="20"></u-icon>
</view>
2024-10-15 15:05:52 +08:00
</view>
2024-11-08 15:11:23 +08:00
<view class="contentItem">
<view class="itemC">
<text>开始日期</text>
<text>{{item.startDate}}</text>
</view>
<view class="itemC">
<text>结束日期</text>
<text>{{item.endDate}}</text>
</view>
2024-10-15 15:05:52 +08:00
</view>
</view>
</view>
2024-11-08 15:11:23 +08:00
<view
style="height:calc(100vh - 150px);display: flex;align-items: center;justify-content: center;background-color: #fff;"
v-else>
<image src="../../static/empty.png" mode=""></image>
2024-11-07 16:40:56 +08:00
</view>
2024-10-15 15:05:52 +08:00
</view>
2024-11-08 15:11:23 +08:00
<u-datetime-picker :show="showTime" v-model="startTime" mode="date" @confirm="handleStartTime"
@cancel="showTime=false"></u-datetime-picker>
<u-datetime-picker :show="showTime1" v-model="endTime" mode="date" @confirm="handleEndTime"
@cancel="showTime1=false"></u-datetime-picker>
2024-10-15 15:05:52 +08:00
</view>
</template>
<script>
import moment from 'moment'
2024-11-08 15:11:23 +08:00
const stm = moment().subtract(7, 'months').add(1, 'hour').set({
minute: 0,
second: 0
}).format("YYYY-MM-DD");
const etm = moment().add(1, 'hour').set({
minute: 0,
second: 0
}).format("YYYY-MM-DD");
2024-10-15 15:05:52 +08:00
export default {
data() {
return {
2024-11-08 15:11:23 +08:00
status: {
0: '开始任务',
1: '继续任务',
2: '已完成'
2024-11-07 16:40:56 +08:00
},
2024-11-08 15:11:23 +08:00
startTime: stm,
endTime: etm,
stm,
etm,
showTime: false,
showTime1: false,
list: []
2024-10-15 15:05:52 +08:00
};
},
mounted() {
2024-11-08 15:11:23 +08:00
2024-11-08 18:00:54 +08:00
2024-10-15 15:05:52 +08:00
},
methods: {
2024-11-08 15:11:23 +08:00
searchHandle() {
this.getData()
},
handleStartTime(e) {
let time = moment(e.value).format("YYYY-MM-DD")
this.stm = time
this.showTime = false
},
handleEndTime(e) {
let time = moment(e.value).format("YYYY-MM-DD")
this.etm = time;
this.showTime1 = false
},
async getData() {
2024-10-15 15:05:52 +08:00
const userId = uni.getStorageSync('value')?.userId
const params = {
2024-11-08 15:11:23 +08:00
dateRangeSo: {
2024-11-08 18:00:54 +08:00
start: moment(this.stm).format("YYYY-MM-DD 00:00:00"),
end: moment(this.etm).format("YYYY-MM-DD 23:59:59"),
2024-10-15 15:05:52 +08:00
},
2024-11-08 15:11:23 +08:00
inspectUserId: userId,
statusList: [0, 1]
2024-10-15 15:05:52 +08:00
}
try {
2024-11-08 15:11:23 +08:00
const res = await uni.$http.post("/gunshiApp/xyt/inspect/task/list", params)
this.list = [...res.data.data];
2024-10-15 15:05:52 +08:00
} catch (error) {
uni.$showMsg();
}
},
2024-11-08 15:11:23 +08:00
toDetail(record) {
2024-11-07 16:40:56 +08:00
console.log(record);
2024-10-15 15:05:52 +08:00
uni.navigateTo({
2024-11-08 15:11:23 +08:00
url: `/pages/xcrw/detail/index?taskTitle=${record.taskTitle}&taskType=${record.taskType}&taskContent=${record.taskContent}&startDate=${record.startDate}&endDate=${record.endDate}&status=${record.status}&id=${record.id}`
2024-10-15 15:05:52 +08:00
})
}
},
onShow(){
2024-11-08 18:00:54 +08:00
this.getData()
const timer =uni.getStorageSync('timer');
if(timer){
clearInterval(timer);
uni.removeStorageSync('timer');
}
2024-10-15 15:05:52 +08:00
}
}
</script>
<style lang="scss" scoped>
2024-11-08 15:11:23 +08:00
2024-10-15 15:05:52 +08:00
.myTitleStyle {
font-size: 30px;
background-color: red;
height: 200px;
}
.tabsClass {
margin-top: 44px;
height: 44px;
padding: 0 40px;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
.item {
border-bottom: 1px solid #f0f0f0;
padding-bottom: 10px;
display: flex;
justify-content: space-between;
.title {
border-width: 0px;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑', sans-serif;
font-weight: 700;
font-style: normal;
font-size: 15px;
color: #666666
}
.titleRight {
display: flex;
2024-11-08 15:11:23 +08:00
2024-10-15 15:05:52 +08:00
.border {
border-width: 0px;
background-color: rgba(236, 245, 255, 1);
box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: rgba(187, 220, 255, 1);
border-radius: 5px;
box-shadow: none;
width: 75px;
height: 25px;
color: #689FFF;
text-align: center;
}
}
}
2024-11-08 15:11:23 +08:00
.contentItem {
.itemC {
2024-10-15 15:05:52 +08:00
display: flex;
justify-content: space-between;
display: flex;
color: #666666;
padding: 10px;
}
}
</style>