| | |
| | | <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" |
| | | @click='goDetail(item)'> |
| | | <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.createTime,'riqi')}} |
| | | </view> |
| | | <view class="chuany-width73"> |
| | | <u-text size='14' :text="item.remark" 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 range :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: '', |
| | | orderList: [], |
| | | loadStatus: 'loadmore', |
| | | pageIndex: 1, |
| | | pageSize: 20, |
| | | 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: '', |
| | | timeEnd: '', |
| | | sevenDaysDriver: [], |
| | | deliverKeyID: '', |
| | | deliverKeyName: '' |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.init() |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['userInfo']), |
| | | isAdmin() { |
| | | return this.userInfo.userCompany ? this.userInfo.userCompany.isAdmin : false |
| | | }, |
| | | }, |
| | | onReady() { |
| | | this.$refs.formRef.setRules(this.rules); |
| | | }, |
| | | onLoad() { |
| | | this.Getdrivers() |
| | | this.getCustomer() |
| | | this.GetDriversOfWithin7days() |
| | | }, |
| | | onReachBottom() { |
| | | if (this.loadStatus != 'nomore') { |
| | | this.getList() |
| | | } |
| | | }, |
| | | onPullDownRefresh() { |
| | | this.startDate = '' |
| | | this.endDate = '' |
| | | this.workTime = '' |
| | | 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.startDate.result + '至' + val.endDate.result |
| | | this.timeStart = new Date(val.startDate.result) //工作开始时间 |
| | | this.timeEnd = new Date(val.endDate.result) |
| | | this.datePickerShow = !this.datePickerShow |
| | | this.getList() |
| | | }, |
| | | 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.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 = 20 |
| | | 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 |
| | | } |
| | | let getListApi = null |
| | | if (this.isAdmmin) { |
| | | 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> |