Files
cashier_admin_app/pageWorkControl/index/index.vue
2024-09-10 10:49:47 +08:00

372 lines
9.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="top fixed-top bg-fff">
<my-tabs :list="tabs.list" @change="tabsChange"></my-tabs>
<view class="u-flex color-main u-m-t-32 " v-if="tabs.current===1">
<view class="u-flex u-p-l-20 " @tap="showJiaobanPickerView">
<view class=" u-flex u-row-between ">
<view>
<text class="" v-if="filters.jiaobanSelItem===''">暂未选择</text>
<text v-else>
{{filters.jiaobanSelItem.name}}
</text>
</view>
<view class="u-flex u-p-l-20 u-flex-1">
<image src="/pageWorkControl/static/images/icon-arrow-down-fill.svg"
class="icon-arrow-down-fill " mode=""></image>
</view>
</view>
</view>
<view class="u-flex u-p-l-20 u-flex-1 u-row-center">
<view @tap="timeToggle">
<view class=" u-font-24 color-main u-flex" v-if="filters.time.start&&filters.time.end">
<uni-dateformat format="yyyy-MM-dd" :date="filters.time.start"></uni-dateformat>
<text class="u-p-l-10 u-p-r-10"></text>
<uni-dateformat format="yyyy-MM-dd" :date="filters.time.end"></uni-dateformat>
<!-- <view class="u-m-l-10 u-flex" @tap="clearTime">
<uni-icons type="clear" size="18" :color="color.ColorMain"></uni-icons>
</view> -->
</view>
<view class="" v-else>所有时间</view>
</view>
<view class="u-flex u-m-l-12">
<image src="/pageWorkControl/static/images/icon-arrow-down-fill.svg" class="icon-arrow-down-fill "
mode=""></image>
</view>
</view>
</view>
</view>
<template v-if="tabs.current===0">
<view class="color-333 u-font-28 min-page bg-gray default-box-padding" style="padding-top: 83px;">
<view class="bg-fff border-r-12 default-box-padding">
<view>
<view class="font-bold">班次</view>
<view class="u-m-t-16 u-flex u-row-between u-p-b-24 border-bottom" @tap="showJiaobanPickerView">
<view>
<text class="color-999" v-if="banci.selItem===''">暂未选择</text>
<text v-else>
{{banci.selItem.name}}
</text>
</view>
<view class="u-flex">
<uni-icons type="right" color="#999" size="16"></uni-icons>
</view>
</view>
<!-- <picker @change="banciChange" :value="banci.current" range-key="name" :range="banci.list">
<view class="u-m-t-16 u-flex u-row-between u-p-b-24 border-bottom">
<view>
<text class="color-999" v-if="banci.current===''">暂未选择</text>
<text v-else>
{{banci.list[banci.current].name}}
</text>
</view>
<view class="u-flex">
<uni-icons type="right" color="#999" size="16"></uni-icons>
</view>
</view>
</picker> -->
</view>
<view class="u-m-t-24">
<view class="font-bold">开班时间</view>
<view class="u-m-t-16 u-flex u-row-between u-p-b-24 border-bottom" @tap="jiaobanStartShow">
<view>
<uni-dateformat format="yyyy-MM-dd hh:mm:ss" :date="form.kaibanTime"></uni-dateformat>
<text></text>
</view>
<view class="u-flex">
<uni-icons type="right" color="#999" size="16"></uni-icons>
</view>
</view>
</view>
<view class="u-m-t-24">
<view class="font-bold">交班时间</view>
<view class="u-m-t-16 u-flex u-row-between u-p-b-24 border-bottom">
<view>
<uni-dateformat format="yyyy-MM-dd hh:mm:ss" :date="form.jiaobanTime"></uni-dateformat>
<text></text>
</view>
<!-- <view class="u-flex">
<uni-icons type="right" color="#999" size="16"></uni-icons>
</view> -->
</view>
</view>
</view>
</view>
</template>
<template v-if="tabs.current===1">
<view class="color-333 u-font-28 min-page bg-gray default-box-padding" style="padding-top: 116px;">
<scroll-view :scroll-x="true" class="bg-fff table u-text-center">
<view class="bg-fff border-r-12 u-flex no-wrap u-col-top">
<view class="">
<view class="head">班次号</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">10002</view>
</view>
<view class="">
<view class="head">班次</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">早班</view>
</view>
<view class="">
<view class="head">交班人</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">交班人</view>
</view>
<view class="">
<view class="head">开班时间</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">2024-05-29 11:15:18</view>
</view>
<view class="">
<view class="head">交班时间</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">2024-05-29 11:15:18</view>
</view>
<view class="">
<view class="head">订单数</view>
<view class="item" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">0</view>
</view>
<view class="">
<view class="head">订单金额</view>
<view class="item u-flex u-row-between" @tap="toDetail(item)" v-for="(item,index) in 10" :key="index">
<text>0.00</text>
<uni-icons type="right" color="#999" size="16"></uni-icons>
</view>
</view>
</view>
</scroll-view>
<uni-load-more :status="table.status"></uni-load-more>
<view style="height: 100px;"></view>
</view>
</template>
<view class="u-fixed bottom u-flex bg-fff ">
<view class="u-flex-1">
<my-button bgColor="#333" color="#fff" borderRadius="100rpx 0 0 100rpx" shape="circle" plain type="primary"
@tap="toSetting">设置</my-button>
</view>
<view class="u-flex-1">
<my-button borderRadius="0 100rpx 100rpx 0" shape="circle" type="primary" @tap="jiaoban">开始交班</my-button>
</view>
</view>
<!-- 交班开班时间选择 -->
<my-date-pickerview @confirm="jiaobanPickerConfirm" :defaultTime="jiaobanDateIndex" :isArea="false"
ref="jiaobanDatePicker"></my-date-pickerview>
<!-- 交班记录时间筛选 -->
<my-date-pickerview @confirm="datePickerConfirm" mode="date" ref="datePicker"></my-date-pickerview>
<!-- 班次选择 -->
<my-pickerview autoClear @confirm="banciConfirm" :showTitle="false" range-key="name" ref="jiaobanPickerView"
:list="banci.list"></my-pickerview>
</template>
<script setup>
import {
onLoad,
onReady,
onHide,
onShow,
onPageScroll,
onPullDownRefresh
} from '@dcloudio/uni-app';
import {
computed,
reactive,
ref,
watch
} from 'vue';
import myButton from '@/components/my-components/my-button';
import myTabs from '@/components/my-components/my-tabs';
import color from '@/commons/color.js';
import myDatePickerview from '@/components/my-components/my-date-pickerview'
import myPickerview from '@/components/my-components/my-pickerview'
import go from '@/commons/utils/go.js'
function toDetail(){
go.to('PAGES_WORK_HANDOVER_DETAIL')
}
function toSetting() {
go.to('PAGES_WORK_SETTING')
}
function jiaoban() {
if (banci.selItem === '') {
return uni.showToast({
title: '请选择班次',
icon: 'none'
})
}
go.to('PAGES_WORK_HANDOVER_CONFIRM')
}
const jiaobanDatePicker = ref(null)
function jiaobanStartShow() {
jiaobanDatePicker.value.open()
}
const jiaobanPickerView = ref(null)
function showJiaobanPickerView() {
jiaobanPickerView.value.open()
}
function jiaobanPickerConfirm(e) {
form.kaibanTime = e
}
const form = reactive({
kaibanTime: new Date(),
jiaobanTime: new Date()
})
const jiaobanDateIndex = ref([
form.kaibanTime.getFullYear(),
form.kaibanTime.getMonth(),
form.kaibanTime.getDate(),
form.kaibanTime.getHours(),
form.kaibanTime.getMinutes(),
form.kaibanTime.getSeconds(),
])
let timer = null
function updateJiaoban() {
clearInterval(timer)
timer = setInterval(() => {
form.jiaobanTime = new Date()
}, 1000)
}
const banci = reactive({
list: [{
name: '早班',
value: 1
},
{
name: '中班',
value: 2
},
{
name: '晚班',
value: 3
},
],
selItem: '',
current: ''
})
function banciConfirm(e) {
if (tabs.current) {
filters.jiaobanSelItem = e[0]
} else {
banci.selItem = e[0]
}
}
function banciChange(e) {
banci.current = e.detail.value
}
const tabs = reactive({
list: ['交班', '交班记录'],
current: 0
})
function tabsChange(i) {
tabs.current = i
}
const table = reactive({
status: 'noMore'
})
const filters = reactive({
jiaobanCurrent: '',
jiaobanSelItem: '',
time: {
start: '',
end: ''
}
})
function clearTime() {
filters.time.start = ''
filters.time.end = ''
}
function timeToggle() {
datePicker.value.toggle()
}
const datePicker = ref(null)
function datePickerConfirm(e) {
console.log(e);
filters.time.start = e.start
filters.time.end = e.end
}
function filterBanciChange(e) {
filters.jiaobanCurrent = e.detail.value
}
onShow(() => {
form.jiaobanTime = new Date()
updateJiaoban()
})
onHide(() => {
clearInterval(timer)
})
watch(() => tabs.current, (newval) => {
if (newval) {
clearInterval(timer)
filters.jiaobanSelItem = ''
} else {
banci.selItem = ''
updateJiaoban()
}
})
</script>
<style lang="scss" scoped>
.min-page {}
.fixed-top {
padding: 32rpx 28rpx;
z-index: 100;
}
.bottom {
background-color: transparent;
bottom: 84rpx;
left: 28rpx;
right: 28rpx;
}
.table {
border-radius: 12rpx 12rpx 0rpx 0rpx;
overflow: hidden;
font-size: 24rpx;
.head {
padding: 24rpx;
background: #AEBAD2;
color: #fff;
font-size: 24rpx;
}
.item {
padding: 24rpx;
}
.item:nth-of-type(2n+1) {
background-color: rgb(249, 249, 249);
}
}
</style>