<template>
|
<view class="">
|
<scroll-view enable-flex="true">
|
<view class="list chuany-flex chuany-flex-direction chuany-align-center c-p-b-30" @click='toEdit'>
|
<view class="content c-p-b-18">
|
<view
|
class="bgblue c-p-l-18 c-p-r-18 c-p-b-10 c-p-t-10 chuany-flex chuany-justify-between chuany-font30">
|
<view class="chuany-flex chuany-flex-direction">
|
<text class=''>
|
{{$util.formatDate(detailItem.startTime)}}
|
</text>
|
</view>
|
<text>
|
招{{detailItem.worderCounted}}/{{detailItem.worderCount}}人
|
</text>
|
</view>
|
<view class="c-p-l-18 c-p-t-5 c-p-r-18 chuany-font32">
|
{{detailItem.orderName}}
|
</view>
|
<!-- <view class="chuany-flex c-p-l-18">
|
<up-tag class='c-p-r-14' :text="item" plain v-for="(item,index) in item.tags" :key="index">
|
</up-tag>
|
</view> -->
|
<view class="chuany-flex chuany-flex-direction chuany-font28">
|
<text class='c-p-l-18 c-p-r-18 text-69'>
|
日期:{{detailItem.wordStartTimeName}} 至 {{detailItem.wordEndTimeName}}
|
</text>
|
<view class="c-p-l-18 c-p-r-18 text-69" v-if="detailItem.zixinganpai">
|
时间:{{detailItem.zixinganpaiName}}
|
</view>
|
<view class="c-p-l-18 c-p-r-18 text-69" v-else>
|
时间:{{detailItem.startTimeName}} 至 {{detailItem.endTimeName}}
|
</view>
|
</view>
|
<view class="chuany-flex chuany-flex-direction chuany-font28">
|
<text class='c-p-l-18 c-p-r-18 text-69'>
|
要求:{{detailItem.demand}}
|
</text>
|
<text class='c-p-l-18 c-p-r-18 text-69'>
|
地址:{{detailItem.worderAddress}}
|
</text>
|
</view>
|
<view class='chuany-flex chuany-justify-between c-p-l-18 c-p-r-18 c-p-t-6 chuany-align-center'>
|
<view class="redcla">
|
<text class="chuany-font40">
|
{{detailItem.workPrice}}<template
|
v-if="detailItem.workPriceMax">~{{detailItem.workPriceMax}}</template>
|
</text>
|
<text class='chuany-font20'>
|
{{detailItem.workerType==0?'元/小时':'元/件'}}
|
</text>
|
<!-- <text class="chuany-font40">
|
{{detailItem.workPrice}}
|
</text>
|
<text class='chuany-font20'>
|
{{detailItem.workerType==0?'元/小时':'元/件'}}
|
</text> -->
|
</view>
|
<view class="" @click.stop="manageOrder(detailItem)">
|
<!-- <up-tag class='c-m-r-10' text="下架" shape="circle" type="error" size='mini'
|
v-if="detailItem.orderStatus==0" @click.stop="deleteOrder(detailItem)"></up-tag> -->
|
<up-button class='c-m-r-10' :text="detailItem.isEn?'下架':'上架'" shape="circle"
|
:loading='isLoading' :loadingText="detailItem.isEn?'下架中':'上架中'"
|
v-if="detailItem.orderStatus==0" :type="detailItem.isEn?'error':'primary'"
|
size='mini'></up-button>
|
<!-- <up-tag text="去抢活" type="warning" shape="circle"></up-tag> -->
|
<!-- <up-tag text="去抢活" type="warning" shape="circle"></up-tag> -->
|
</view>
|
</view>
|
</view>
|
</view>
|
<view class="coreshop-ff" v-if="detailItem.orderBidding">
|
<up-list v-if="detailItem.orderBidding.length>0">
|
<up-list-item v-for="(item,index) in detailItem.orderBidding" :key="item.id"
|
@click.stop="toWorkDetail">
|
<up-cell :title="item.workerName" :border='false'>
|
<template #icon>
|
<up-avatar shape="square" size="35" :src="item.workerAvatar"
|
@click='toWorkerDetail(item)' customStyle="margin: -3px 5px -3px 0"></up-avatar>
|
</template>
|
<!-- <template #right-icon v-if="item.isSelected">
|
<up-button class="button-layout__item" text="查看" size="mini" type="primary" @click="toView(item)"></up-button>
|
</template> -->
|
<template #right-icon v-if="!item.isSelected" class="chuany-flex">
|
<up-tag class="button-layout__item" text="录用" size="mini" type="success"
|
@click="selectBtn(item,true)"></up-tag>
|
<up-tag class="button-layout__item c-m-l-18" text="拒绝" size="mini" type="error"
|
@click="selectBtn(item,false)"></up-tag>
|
</template>
|
|
<template #right-icon v-else class="chuany-flex">
|
<template class="" v-if="item.workPrice&&!item.showEdit">
|
<up-text type="error"
|
:text="detailItem.workerType==0?`${item.workPrice}元/小时`:`${item.workPrice}元/件` "
|
size='14'></up-text>
|
<up-icon name="edit-pen" @click='isShow(item)'></up-icon>
|
<up-icon name="trash" @click='deleteWorker(item)'></up-icon>
|
</template>
|
<up-input v-model="item.workPrice" border="none" v-else type="digit">
|
<template #suffix>
|
<up-button @tap="saveWorkPrice(item)" text="保存" type="success"
|
form-type="submit" size="mini"></up-button>
|
</template>
|
<!-- <template #suffix v-else>
|
<up-icon name="edit-pen" @click='isShow'></up-icon>
|
</template> -->
|
</up-input>
|
<!-- <up-text type="error" v-else text="已拒绝" size='14'></up-text> -->
|
<!-- <up-tag class="button-layout__item" text="录用" size="mini" type="success"
|
@click="selectBtn(item,true)"></up-tag>
|
<up-tag class="button-layout__item c-m-l-18" text="拒绝" size="mini" type="error"
|
@click="selectBtn(item,false)"></up-tag> -->
|
</template>
|
</up-cell>
|
</up-list-item>
|
<!-- <up-list-item>
|
<up-cell title="李先生">
|
<template #icon>
|
<up-avatar shape="square" size="35" src="https://uview-plus.jiangruyi.com/album/2.jpg"
|
customStyle="margin: -3px 5px -3px 0"></up-avatar>
|
</template>
|
<template #right-icon>
|
<up-button class="button-layout__item" text="确认" size="mini" type="success"></up-button>
|
</template>
|
</up-cell>
|
</up-list-item>
|
<up-list-item>
|
<up-cell title="王先生">
|
<template #icon>
|
<up-avatar shape="square" size="35" src="https://uview-plus.jiangruyi.com/album/3.jpg"
|
customStyle="margin: -3px 5px -3px 0"></up-avatar>
|
</template>
|
<template #right-icon>
|
<up-button class="button-layout__item" text="确认" size="mini" type="success"></up-button>
|
</template>
|
</up-cell>
|
</up-list-item> -->
|
</up-list>
|
<up-list v-else>
|
<up-list-item>
|
<up-cell title="暂无投递" class="u-cell__title-text_wu" :border='false'>
|
<!-- <template #icon>
|
<up-avatar shape="square" size="35" src="https://uview-plus.jiangruyi.com/album/1.jpg"
|
customStyle="margin: -3px 5px -3px 0"></up-avatar>
|
</template>
|
<template #right-icon>
|
<up-button class="button-layout__item" text="查看" size="mini" type="primary"></up-button>
|
</template> -->
|
</up-cell>
|
</up-list-item>
|
</up-list>
|
</view>
|
</scroll-view>
|
<up-modal :show="modalShow" :asyncClose="true" showCancelButton closeOnClickOverlay :content="content"
|
@confirm="modalConfirm" @cancel="modalCancel">
|
</up-modal>
|
</view>
|
</template>
|
|
<script setup>
|
import {
|
onLoad,
|
onShow,
|
onReachBottom
|
} from "@dcloudio/uni-app";
|
import {
|
reactive,
|
ref,
|
getCurrentInstance
|
} from 'vue';
|
const {
|
$upload,
|
$api,
|
$util,
|
$db
|
} = getCurrentInstance().appContext.config.globalProperties
|
const detailItem = ref({})
|
const workerItem = ref({})
|
let selectVal = ref(false)
|
let orderIdVal = ref('')
|
let isLoading = ref(false)
|
let showEdit = ref(false)
|
onLoad((option) => {
|
let {
|
orderid
|
} = option
|
orderIdVal = orderid
|
// detailItem.value = JSON.parse($db.get('detailItem'))
|
})
|
onShow(() => {
|
getOrder(orderIdVal)
|
})
|
const click = () => {
|
|
}
|
const isShow = (item) => {
|
item.showEdit = true
|
}
|
const deleteWorker = (item) => {
|
uni.showModal({
|
title: '提示',
|
content: `确认删除${item.workerName}?`,
|
success: function(res) {
|
if (res.confirm) {
|
// 执行确认后的操作
|
isLoading.value = true
|
$api.saveDeltoudi({
|
orderBiddingId: item.id
|
}).then(req => {
|
if (req.code == 1) {
|
$util.showToast({
|
title: '删除成功!'
|
})
|
getOrder(orderIdVal)
|
} else {
|
$util.showToast({
|
title: req.error
|
})
|
}
|
isLoading.value = false
|
})
|
} else {
|
// 执行取消后的操作
|
}
|
}
|
})
|
}
|
const saveWorkPrice = (item) => {
|
let obj = {
|
orderBiddingId: item.id,
|
workPrice: item.workPrice
|
}
|
console.log(item, obj);
|
if (!item.workPrice) {
|
$util.showToast({
|
title: "请输入工价!",
|
icon: "success"
|
})
|
return
|
}
|
$api.saveWorkPrice(obj).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "工价保存成功!",
|
icon: "success"
|
})
|
getOrder(orderIdVal, item.id)
|
item.showEdit = false
|
} else {
|
$util.showToast({
|
title: res.error
|
})
|
}
|
})
|
}
|
let modalShow = ref(false)
|
let content = ref('')
|
const toView = (item) => {
|
uni.navigateTo({
|
url: `/pages/company/index?workerid=${item.WorkerUserId}&workname=${item.WorkerName}`
|
})
|
}
|
const toWorkerDetail = (item) => {
|
$db.set('toudiItem', item)
|
uni.navigateTo({
|
url: `/pages/worker/worker?workerid=${item.workerUserId}`
|
})
|
}
|
const toWorkDetail = (e) => {
|
uni.navigateTo({
|
url: '/pages/order/worker'
|
})
|
}
|
const selectBtn = (item, val) => {
|
workerItem.value = item
|
modalShow.value = true
|
selectVal.value = val
|
if (val) {
|
content.value = `确定录用${item.workerName}吗?`
|
} else {
|
content.value = `确定拒绝${item.workerName}吗?`
|
}
|
}
|
const modalConfirm = () => {
|
if (selectVal.value) {
|
console.log('3333333333');
|
$api.saveQueRen({
|
orderBiddingId: workerItem.value.id
|
}).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "录用成功!",
|
icon: "success"
|
})
|
getOrder(orderIdVal)
|
} else {
|
$util.showToast({
|
title: res.error ? res.error : '失败!'
|
})
|
}
|
modalShow.value = false
|
})
|
|
} else {
|
console.log('444444');
|
$api.saveBuLuYong({
|
orderBiddingId: workerItem.value.id
|
}).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "拒绝成功!",
|
icon: "success"
|
})
|
getOrder(orderIdVal)
|
} else {
|
$util.showToast({
|
title: res.error ? res.error : '失败!'
|
})
|
}
|
modalShow.value = false
|
})
|
}
|
}
|
const modalCancel = () => {
|
modalShow.value = false
|
workerItem.value = {}
|
}
|
const getOrder = (orderid, id) => {
|
$api.getOrder(orderid).then(res => {
|
if (res.code == 1) {
|
res.data.orderBidding.forEach(item => {
|
item.showEdit = false
|
if (id == item.id) {
|
toWorkerDetail(item)
|
}
|
})
|
detailItem.value = res.data
|
}
|
})
|
}
|
const manageOrder = (item) => {
|
|
let obj = {
|
orderId: item.id
|
}
|
if (item.isEn) {
|
uni.showModal({
|
title: '提示',
|
content: '确认下架该工作吗?下架后将删除相关数据!',
|
success: function(res) {
|
if (res.confirm) {
|
// 执行确认后的操作
|
isLoading.value = true
|
$api.deleteOrder(obj).then(req => {
|
if (req.code == 1) {
|
$util.showToast({
|
title: '下架成功!'
|
})
|
getOrder(orderIdVal)
|
} else {
|
$util.showToast({
|
title: req.error
|
})
|
}
|
isLoading.value = false
|
})
|
} else {
|
// 执行取消后的操作
|
}
|
}
|
})
|
} else {
|
item.OldId = item.id
|
item.id = 0
|
$api.saveOrder(item).then(res => {
|
if (res.code == 1) {
|
$util.showToast({
|
title: "上架成功!",
|
icon: "success"
|
})
|
getOrder(orderIdVal)
|
} else {
|
$util.showToast({
|
title: res.msg
|
})
|
}
|
isLoading.value = false
|
})
|
}
|
}
|
const toEdit = () => {
|
$db.set('editItem', detailItem.value)
|
uni.navigateTo({
|
url: `/pages/release/index`
|
})
|
}
|
</script>
|
|
<style lang='scss'>
|
.list {
|
background-color: #fff;
|
padding: 30rpx 30rpx 0 30rpx;
|
}
|
|
.content {
|
min-height: 200rpx;
|
width: 100%;
|
background-color: #fff;
|
border-radius: 20rpx;
|
/* margin: 30rpx 30rpx 0 30rpx; */
|
box-shadow: 0rpx 4rpx 12rpx 3rpx rgba(85, 85, 85, 0.10);
|
}
|
|
.bgblue {
|
background-color: #4e96f5;
|
border-radius: 20rpx 20rpx 0 0;
|
color: #fff;
|
}
|
|
.redcla {
|
color: #f05348;
|
}
|
|
.u-cell__title-text_wu {
|
text-align: center;
|
}
|
</style>
|