<template>
|
<scroll-view class="full-page" scroll-y using-sticky>
|
<up-sticky bgColor="#fff">
|
<view class="coreshop-ff content c-p-10">
|
<!-- <up-search placeholder="请点击选择日期" @clear='clear' @clickIcon='clickTime' @custom='search'
|
v-model="workTime" search-icon="calendar" @search='search'></up-search> -->
|
<up-search placeholder="请输入工作名称" @clear='clear' @custom='PostMyListPageCompany'
|
v-model="state.orderName" @search='PostMyListPageCompany'></up-search>
|
</view>
|
<up-subsection :list="list" current="1" activeColor="#f9ae3d" @change="sectionChange"></up-subsection>
|
</up-sticky>
|
<view class="full-page-content">
|
<view class="c-p-l-20 c-p-r-20" v-if="listO.orderList&&listO.orderList.length>0">
|
<view class="listrecord c-p-t-20" v-for="(item,index) in listO.orderList" :key="item.id"
|
@click="pageToDetail(item)">
|
<view class="coreshop-ff chuany-bradius20 ">
|
<view class="c-p-24">
|
<view class="chuany-flex chuany-justify-between">
|
<text class="chuany-font32">
|
{{item.orderName}}
|
</text>
|
<view class="chuany-flex chuany-justify-between">
|
<!-- 招工人数:{{item.worderCount}}人 -->
|
<!-- <text class="c-p-r-20">
|
|
</text> -->
|
<!-- <up-tag class='c-m-r-10' :text="item.orderStatusName" shape="circle" type="success"
|
plain plainFill size='mini'></up-tag> -->
|
<up-text :type="item.orderStatus==0?'primary':'success'" :text="item.orderStatusName" size='12'></up-text>
|
<!-- <up-button class='c-m-r-10' :text="item.isEn?'下架':'上架'" disabled shape="circle"
|
v-if="item.orderStatus==0" :type="item.isEn?'error':'primary'" size='mini'
|
@click.stop="manageOrder(item)"></up-button> -->
|
</view>
|
</view>
|
<view class="text-69 chuany-font28">
|
<view class="">
|
日期:{{$util.formatDate(item.wordStartTime)}} 至 {{$util.formatDate(item.wordEndTime)}}
|
</view>
|
<view class="chuany-flex chuany-justify-between chuany-flex-wrap">
|
<view class="chuany-width50" v-if="item.zixinganpai">
|
时间:{{item.zixinganpaiName}}
|
</view>
|
<view class="chuany-width50" v-else>
|
时间:{{item.startTimeName}} 至 {{item.endTimeName}}
|
</view>
|
<view class="chuany-width50">
|
<text>
|
方式:{{item.workerType==0?'计时':'计件'}}
|
</text>
|
</view>
|
<view class="chuany-width50">
|
工价:{{item.workPrice}}{{item.workerType==0?'元/小时':'元/件'}}
|
<text></text>
|
</view>
|
<view class="">
|
<up-button hoverStopPropagation :text="item.isEn?'下架':'上架'" shape="circle" :loading='item.isLoading' :loadingText="item.isEn?'下架中':'上架中'"
|
v-if="item.orderStatus==0" :type="item.isEn?'error':'primary'" size='mini'
|
@tap.stop="manageOrder(item)"></up-button>
|
</view>
|
</view>
|
</view>
|
|
</view>
|
</view>
|
</view>
|
<up-loadmore :status="loadStatus" />
|
</view>
|
<view v-else>
|
<up-empty text='暂无' icon="/static/order.png">
|
</up-empty>
|
</view>
|
</view>
|
<fui-date-picker range :show="datePickerShow" type="5" @change="changePicker"
|
@cancel="cancel"></fui-date-picker>
|
</scroll-view>
|
</template>
|
|
<script setup>
|
import {
|
onLoad,
|
onShow,
|
onReachBottom,
|
onPullDownRefresh
|
} from "@dcloudio/uni-app";
|
import {
|
reactive,
|
ref,
|
getCurrentInstance
|
} from 'vue';
|
const {
|
$upload,
|
$api,
|
$util,
|
$db
|
} = getCurrentInstance().appContext.config.globalProperties
|
let state = reactive({
|
pageIndex: 1,
|
pageSize: 20,
|
orderName: ''
|
})
|
let workTime = ref('')
|
let datePickerShow = ref(false)
|
let loadStatus = ref('loadmore')
|
let totalPages = ref(0)
|
let isEn = ref(true)
|
let listO = reactive({
|
orderList: []
|
})
|
onReachBottom(() => {
|
if (loadStatus.value != 'nomore') {
|
PostMyListPageCompany();
|
}
|
})
|
onShow(() => {
|
PostMyListPageCompany()
|
})
|
onPullDownRefresh(() => {
|
state.pageIndex = 1
|
state.pageSize = 20
|
loadStatus.value = 'loadmore'
|
PostMyListPageCompany()
|
uni.stopPullDownRefresh();
|
})
|
const current4 = ref(0);
|
const list = ref(['全部', '已上架', '已下架']);
|
const changePicker = (val) => {
|
console.log(val);
|
workTime.value = val.startDate.result + '至' + val.endDate.result
|
state.wordStartTime = new Date(val.startDate.result) //工作开始时间
|
state.wordEndTime = new Date(val.endDate.result)
|
}
|
const clear = () => {
|
state.orderName = ''
|
state.wordStartTime = ""
|
state.wordEndTime = ""
|
PostMyListPageCompany()
|
}
|
const clickTime = () => {
|
datePickerShow.value = !datePickerShow.value
|
}
|
const PostMyListPageCompany = () => {
|
let data = {
|
pageIndex: state.pageIndex,
|
pageSize: state.pageSize,
|
isEn: isEn.value
|
}
|
if (state.wordStartTime) {
|
data.wordStartTime = state.wordStartTime
|
}
|
if (state.wordEndTime) {
|
data.wordEndTime = state.wordEndTime
|
}
|
if (state.orderName) {
|
data.orderName = state.orderName
|
}
|
loadStatus.value = 'loading';
|
$api.PostMyListPageCompany(data).then(res => {
|
console.log(res, res.code, '-----------123’');
|
if (res.code == 1) {
|
if (state.pageIndex == 1) {
|
listO.orderList = res.data.items
|
} else {
|
listO.orderList = listO.orderList.concat(...res.data.items)
|
}
|
listO.orderList.forEach(item => {
|
item.isLoading = false
|
})
|
console.log(listO.orderList, 'listO.orderList’');
|
// totalPages.value = res.data.totalCount
|
// 根据count数量判断是否还有数据
|
if (res.data.totalCount > listO.orderList.length) {
|
loadStatus.value = 'loadmore'
|
state.pageIndex++
|
} else {
|
// 数据已加载完毕
|
loadStatus.value = 'nomore'
|
}
|
} else {
|
// _that.$refs.uToast.show({ message: res.msg, type: 'error' });
|
}
|
})
|
}
|
const sectionChange = (val) => {
|
switch (val) {
|
case 0:
|
isEn.value = null
|
break;
|
case 1:
|
isEn.value = true
|
break;
|
case 2:
|
isEn.value = false
|
break;
|
}
|
PostMyListPageCompany()
|
}
|
const manageOrder = (item) => {
|
let obj = {
|
orderId: item.id
|
}
|
console.log(obj);
|
item.isLoading = true
|
if (item.isEn) {
|
$api.deleteOrder(obj).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: '下架成功!'
|
})
|
PostMyListPageCompany()
|
} else {
|
$util.showToast({
|
title: res.error
|
})
|
}
|
item.isLoading = false
|
})
|
} else {
|
$api.saveOrder(item).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "上架成功!",
|
icon: "success"
|
})
|
PostMyListPageCompany()
|
} else {
|
$util.showToast({
|
title: res.msg
|
})
|
}
|
item.isLoading = false
|
})
|
}
|
}
|
const pageToDetail = (item) => {
|
uni.navigateTo({
|
url: `/pages/order/detail?orderid=${item.id}`
|
});
|
// $db.set('detailItem',JSON.stringify(item))
|
}
|
</script>
|
|
<style>
|
.content {
|
/* width: 100%; */
|
box-sizing: border-box;
|
}
|
|
.bgblue {
|
background-color: #4e96f5;
|
border-radius: 20rpx 20rpx 0 0;
|
color: #fff;
|
}
|
|
.listrecord {
|
width: 100%;
|
box-sizing: border-box;
|
}
|
</style>
|