<template>
|
<up-sticky bgColor="#fff">
|
<view class="coreshop-ff content c-p-10">
|
<view class="coreshop-ff content c-p-l-10 c-p-t-10 c-p-r-10">
|
<up-search placeholder="请点击选择日期" @click='clickTime' :show-action="false" @clear='init' disabled
|
v-model="workTime" search-icon="calendar" @search='init'></up-search>
|
</view>
|
<view class="coreshop-ff content c-p-10 chuany-flex chuany-justify-between">
|
<!-- <view class="chuany-width82"> -->
|
<up-search placeholder="请点击选择司机" @click="clickAction('driver7')" @clear='init' disabled @change='init'
|
action-text="查询" v-model="deliverKeyName" @search='init' @custom='init'></up-search>
|
<!-- </view>
|
<up-text align="right" text='送货安排' size='14' @click="() => show7 = true"></up-text> -->
|
</view>
|
</view>
|
<up-subsection :list="list" current='1' activeColor="#f9ae3d" @change="sectionChange"></up-subsection>
|
</up-sticky>
|
<view class="c-p-b-100">
|
<view class="c-p-l-20 c-p-r-20" v-if="orderList&&orderList.length>0">
|
<view class="listrecord c-p-t-20" v-for="(item,index) in orderList" :key="item.keyid"
|
>
|
<view class="coreshop-ff chuany-bradius20">
|
<view class="chuany-font26">
|
<view class="chuany-flex chuany-justify-between">
|
<text class="chuany-width7">{{index+1}}</text>
|
<view class="chuany-width15">
|
{{$util.formatDate(item.deliverTime,'riqi')}}
|
</view>
|
<view class="chuany-width73" @click='goDetail(item)'>
|
<u-text size='14' :text="item.remark||item.companyName" lines="1">
|
</u-text>
|
</view>
|
<!-- <view class="chuany-width5" @tap.stop='editOrder(item)'>
|
<up-icon name="edit-pen"></up-icon>
|
</view> -->
|
</view>
|
</view>
|
</view>
|
</view>
|
<up-loadmore :status="loadStatus" />
|
</view>
|
<view v-else>
|
<up-empty text='暂无' icon="/static/order.png">
|
</up-empty>
|
</view>
|
<up-modal title="送货安排" :show="show7" showCancelButton @confirm="confirmSave" @cancel='cancelModal'
|
:asyncClose="true">
|
<up-form labelPosition="left" :model="arrangeInfo" ref="formRef" labelWidth='140rpx'>
|
<up-form-item label="送货日期" prop="deliverTime" required :borderBottom='false' ref="item1"
|
@click="clickShouTime">
|
<!-- <up-input v-model="arrangeInfo.deliverTime" readonly border="none"
|
placeholder="点击选择工作日期"></up-input> -->
|
<up-datetime-picker hasInput @confirm='confirmDate' :show="shougHuoshow" v-model="deliverTime"
|
mode="date" placeholder="点击选择工作日期" :minDate='Number(new Date(minDate))'
|
@cancel='() => shougHuoshow = false'></up-datetime-picker>
|
</up-form-item>
|
<up-form-item label="司机" prop="driverId" required :borderBottom='false' @click="clickAction('driver')"
|
ref="item1">
|
<up-input v-model="driverName" disabled border="none" disabledColor="#ffffff"
|
placeholder="请选择司机"></up-input>
|
</up-form-item>
|
<up-form-item label="收货单位" prop="buyerId" required :borderBottom='false' ref="item1">
|
<up-input v-model="arrangeInfo.companyName" placeholder="请选择收货单位" border="none">
|
<template #suffix>
|
<up-button @tap="clickAction" text="点击选择" type="primary" size="mini"></up-button>
|
</template>
|
</up-input>
|
</up-form-item>
|
<up-form-item label="联系人" prop="lianxiren" :borderBottom='false' ref="item1">
|
<up-input v-model="arrangeInfo.lianxiren" border="none" placeholder="请输入联系人"></up-input>
|
</up-form-item>
|
<up-form-item label="联系电话" prop="dianhua" required :borderBottom='false' ref="item1">
|
<up-input v-model="arrangeInfo.dianhua" border="none" placeholder="请输入联系电话"></up-input>
|
</up-form-item>
|
<up-form-item label="送货地址" prop="dizhi" required :borderBottom='false' ref="item1">
|
<up-input v-model="arrangeInfo.dizhi" border="none" placeholder="请输入送货地址"></up-input>
|
</up-form-item>
|
<up-form-item label="送货事由" prop="remark" required :borderBottom='false' ref="item1">
|
<up-textarea v-model="arrangeInfo.remark" border="none" placeholder="请输入送货事由"></up-textarea>
|
</up-form-item>
|
</up-form>
|
</up-modal>
|
<fui-date-picker :show="datePickerShow" :value="getFirstDayOfMonth()" type="3" zIndex="10000"
|
@change="changePicker" :minDate='minDate' :maxDate='maxDate' @cancel="clickTime"></fui-date-picker>
|
<up-action-sheet :show="showActions" :actions="actions" title="请选择" @close="showActions = false"
|
wrapMaxHeight='500px' @select="selectItem">
|
</up-action-sheet>
|
</view>
|
</template>
|
|
<script>
|
import {
|
mapGetters
|
} from 'vuex'
|
export default {
|
data() {
|
return {
|
list: ['全部', '未送', '已送'],
|
datePickerShow: false,
|
shougHuoshow: false,
|
workTime: this.$util.formatDate(new Date()),
|
orderList: [],
|
loadStatus: 'loadmore',
|
pageIndex: 1,
|
pageSize: 30,
|
contentVal: '',
|
customerList: [],
|
isEdit: false,
|
editItem: {},
|
isLoading: false,
|
show7: false,
|
showActions: false,
|
driverName: '',
|
actions: [],
|
selectAc: '',
|
deliveredState: 'Undeliver',
|
minDate: this.$util.formatDate(new Date(), null, -7),
|
maxDate: this.$util.formatDate(new Date(), null, 7),
|
deliverTime: Number(new Date(this.$util.formatDate(new Date(), null, 1))),
|
arrangeInfo: {
|
deliverTime: this.$util.formatDate(new Date(), null, 1),
|
driverId: '',
|
buyerId: '',
|
dianhua: '',
|
remark: '',
|
lianxiren: '',
|
dizhi: '',
|
companyName: ''
|
},
|
rules: {
|
'deliverTime': {
|
type: 'string',
|
required: true,
|
message: '请选择日期',
|
trigger: ['blur', 'change']
|
},
|
'arrangeInfo.driverId': {
|
type: 'string',
|
max: 1,
|
required: true,
|
message: '请选择司机',
|
trigger: ['blur', 'change']
|
},
|
'arrangeInfo.dianhua': {
|
type: 'string',
|
max: 1,
|
required: true,
|
message: '请输入联系电话',
|
trigger: ['blur', 'change']
|
},
|
'arrangeInfo.dizhi': {
|
type: 'string',
|
max: 1,
|
required: true,
|
message: '请输入送货地址',
|
trigger: ['blur', 'change']
|
},
|
'arrangeInfo.remark': {
|
type: 'string',
|
max: 1,
|
required: true,
|
message: '请输入送货事由',
|
trigger: ['blur', 'change']
|
},
|
},
|
radio: '',
|
switchVal: false,
|
driverList: [],
|
buyerName: '',
|
timeStart: new Date(),
|
timeEnd: new Date(),
|
sevenDaysDriver: [],
|
deliverKeyID: '',
|
deliverKeyName: ''
|
}
|
},
|
|
computed: {
|
...mapGetters(['userInfo']),
|
isAdmin() {
|
if (this.userInfo.oaPermissions) {
|
return this.userInfo.oaPermissions.bF_IsDeliverManage ? true : false
|
}
|
return false
|
},
|
},
|
onShow() {
|
this.init()
|
},
|
onReady() {
|
this.$refs.formRef.setRules(this.rules);
|
},
|
onLoad(options) {
|
// this.isAdmin = options.isAdmin
|
// console.log(options);
|
this.Getdrivers()
|
this.getCustomer()
|
this.GetDriversOfWithin7days()
|
},
|
onReachBottom() {
|
if (this.loadStatus != 'nomore') {
|
this.getList()
|
}
|
},
|
onPullDownRefresh() {
|
this.timeStart = new Date()
|
this.timeEnd = new Date()
|
this.workTime = this.$util.formatDate(new Date())
|
this.deliverKeyName = ''
|
this.init()
|
uni.stopPullDownRefresh();
|
},
|
methods: {
|
sectionChange(val) {
|
switch (val) {
|
case 0:
|
this.deliveredState = null
|
break;
|
case 1:
|
this.deliveredState = 'Undeliver'
|
break;
|
case 2:
|
this.deliveredState = 'Delivered'
|
break;
|
}
|
this.init()
|
},
|
goDetail(item) {
|
uni.navigateTo({
|
url: `/pages/delivergoods/querydetail?KeyId=${item.keyid}&isAdmin=${this.isAdmin}`
|
});
|
},
|
GetDriversOfWithin7days() {
|
this.$api.GetDriversOfWithin7days().then(res => {
|
if (res.code == 1) {
|
this.sevenDaysDriver = res.data
|
}
|
})
|
},
|
changePicker(val) {
|
console.log(val);
|
this.workTime = val.result
|
this.timeStart = new Date(val.result) //工作开始时间
|
this.timeEnd = new Date(val.result)
|
this.datePickerShow = !this.datePickerShow
|
this.init()
|
},
|
confirmDate(val) {
|
console.log(val);
|
this.arrangeInfo.deliverTime = val
|
this.shougHuoshow = false
|
},
|
getCustomer() {
|
this.$api.GeCorporateClients().then(res => {
|
if (res.code == 1) {
|
this.customerList = res.data
|
this.customerList.forEach(item => {
|
item.name = item.companyName
|
})
|
}
|
})
|
},
|
selectItem(item) {
|
if (this.selectAc == 'driver') {
|
this.driverName = item.name
|
this.arrangeInfo.driverId = item.keyid
|
} else if (this.selectAc == 'driver7') {
|
this.deliverKeyID = item.keyid
|
this.deliverKeyName = item.name
|
this.init()
|
} else {
|
this.buyerName = item.name
|
this.arrangeInfo.buyerId = item.keyid
|
this.arrangeInfo.dizhi = item.adder
|
this.arrangeInfo.dianhua = item.companyPhone
|
this.arrangeInfo.lianxiren = item.businessManagers
|
this.arrangeInfo.companyName = item.companyName
|
}
|
this.selectAc = ''
|
},
|
getFirstDayOfMonth() {
|
var currentDate = new Date();
|
// currentDate.setDate(1); // 将日期设为1
|
return this.$util.formatDate(currentDate);
|
},
|
clickTime() {
|
this.datePickerShow = !this.datePickerShow
|
},
|
clickShouTime() {
|
this.shougHuoshow = !this.shougHuoshow
|
},
|
clickAction(val) {
|
switch (val) {
|
case 'driver':
|
this.actions = this.driverList
|
break
|
case 'driver7':
|
this.actions = this.sevenDaysDriver
|
break
|
default:
|
this.actions = this.customerList
|
break
|
}
|
this.selectAc = val
|
this.showActions = true
|
uni.hideKeyboard()
|
},
|
editOrder(item) {
|
this.isEdit = true
|
this.arrangeInfo = {
|
deliverTime: this.$util.formatDate(new Date(), null, 1),
|
driverId: item.driverId,
|
buyerId: item.buyerId,
|
dianhua: item.dianhua,
|
remark: item.remark,
|
lianxiren: item.lianxiren,
|
dizhi: item.dizhi,
|
keyid: item.keyid,
|
companyName: item.companyName
|
}
|
this.show7 = true
|
this.driverName = item.driver && item.driver.name
|
// let obj = this.customerList.find(ite => {
|
// return ite.keyid == item.buyerId
|
// })
|
// this.buyerName = obj.companyName
|
},
|
delOrder(item) {
|
let that = this
|
uni.showModal({
|
title: '提示',
|
content: '确认删除该送货吗?',
|
success: function(res) {
|
if (res.confirm) {
|
// 执行确认后的操作
|
that.$api.DelAppointmentDeliver({
|
keyid: item.keyid
|
}).then(req => {
|
if (req.code == 1) {
|
that.$util.showToast({
|
title: '删除成功!'
|
})
|
that.init()
|
} else {
|
that.$util.showToast({
|
title: req.error
|
})
|
}
|
})
|
} else {
|
// 执行取消后的操作
|
}
|
}
|
})
|
},
|
init() {
|
this.pageIndex = 1
|
this.pageSize = 30
|
this.loadStatus = 'loadmore'
|
this.orderList = []
|
this.contentVal = ''
|
this.getList()
|
},
|
confirmSave() {
|
this.$refs.formRef.validate().then(res => {
|
if (this.isEdit) {
|
this.$api.UpDataDeliverPlans(this.arrangeInfo).then(res => {
|
if (res.code == 1) {
|
this.isEdit = false
|
this.arrangeInfo = {
|
deliverTime: this.$util.formatDate(new Date(), null, 1),
|
driverId: '',
|
buyerId: '',
|
dianhua: '',
|
remark: '',
|
lianxiren: '',
|
dizhi: '',
|
}
|
this.show7 = false
|
this.driverName = ''
|
this.buyerName = ''
|
this.init()
|
} else {
|
this.$util.showToast({
|
title: res.error
|
})
|
}
|
this.isLoading = false
|
})
|
return
|
}
|
this.$api.CreatDeliverPlan(this.arrangeInfo).then(res => {
|
if (res.code == 1) {
|
this.arrangeInfo = {
|
deliverTime: this.$util.formatDate(new Date(), null, 1),
|
driverId: '',
|
buyerId: '',
|
dianhua: '',
|
remark: '',
|
lianxiren: '',
|
dizhi: '',
|
}
|
this.show7 = false
|
this.driverName = ''
|
this.buyerName = ''
|
this.init()
|
} else {
|
this.$util.showToast({
|
title: res.error
|
})
|
}
|
this.isLoading = false
|
})
|
})
|
|
},
|
cancelModal() {
|
this.arrangeInfo = {
|
deliverTime: this.$util.formatDate(new Date(), null, 1),
|
driverId: '',
|
buyerId: '',
|
dianhua: '',
|
remark: '',
|
lianxiren: '',
|
dizhi: '',
|
}
|
this.show7 = false
|
this.driverName = ''
|
this.buyerName = ''
|
},
|
Getdrivers() {
|
this.$api.Getdrivers().then(res => {
|
if (res.code == 1) {
|
this.driverList = res.data
|
}
|
})
|
},
|
getList() {
|
this.deliverKeyName == '' ? this.deliverKeyID = '' : null
|
let data = {
|
deliveredState: this.deliveredState,
|
page: {
|
pageIndex: this.pageIndex,
|
pageSize: this.pageSize,
|
}
|
}
|
if (this.timeStart) {
|
data.timeStart = this.timeStart
|
}
|
if (this.timeEnd) {
|
data.timeEnd = this.timeEnd
|
}
|
if (this.deliverKeyID) {
|
data.deliverKeyID = this.deliverKeyID
|
}
|
console.log(this.isAdmin);
|
let getListApi = null
|
if (this.isAdmin) {
|
getListApi = this.$api.GetDeliverPlans
|
} else {
|
getListApi = this.$api.workerGetDeliverPlans
|
}
|
getListApi(data).then(res => {
|
if (res.code == 1) {
|
if (this.pageIndex == 1) {
|
this.orderList = res.data.data
|
} else {
|
this.orderList = this.orderList.concat(...res.data.data)
|
}
|
console.log(this.orderList, 'orderList’');
|
// totalPages = res.data.totalCount
|
// 根据count数量判断是否还有数据
|
if (res.data.page.totalCount > this.orderList.length) {
|
this.loadStatus = 'loadmore'
|
this.pageIndex++
|
} else {
|
// 数据已加载完毕
|
this.loadStatus = 'nomore'
|
}
|
} else {
|
// _that.$refs.uToast.show({ message: res.msg, type: 'error' });
|
}
|
})
|
},
|
accept(item) {
|
let that = this
|
uni.showModal({
|
title: '提示',
|
content: '确认受理该送货吗?',
|
success: function(res) {
|
if (res.confirm) {
|
// 执行确认后的操作
|
that.$api.AcceptAppointmentDeliver(item.keyid).then(req => {
|
if (req.code == 1) {
|
that.$util.showToast({
|
title: '受理成功!'
|
})
|
that.init()
|
} else {
|
that.$util.showToast({
|
title: req.error
|
})
|
}
|
})
|
} else {
|
// 执行取消后的操作
|
}
|
}
|
})
|
},
|
actionClick(item, e) {
|
console.log(e);
|
if (e.index == 0) {
|
this.contentVal = item.remark
|
}
|
}
|
}
|
}
|
</script>
|
|
<style>
|
.u-textarea {
|
padding: 0 !important;
|
}
|
|
.u-form-item__body {
|
padding: 5px 0 !important;
|
}
|
</style>
|