| | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | id: '', |
| | | dto: {}, |
| | | showSales: false, |
| | | submitForm: {}, |
| | | timer: undefined, |
| | | type: '', |
| | | // #ifdef PUB_CUSTOMER |
| | | type: 'customer', |
| | | // #endif |
| | | // #ifdef PUB_PARTNER |
| | | type: 'partner', |
| | | // #endif |
| | | salesTypeDef: 0, |
| | | salesTypeList: [], |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | this.timer && clearTimeout(this.timer) |
| | | }, |
| | | async onLoad(options) { |
| | | console.log('options', options) |
| | | export default { |
| | | data() { |
| | | return { |
| | | id: '', |
| | | dto: {}, |
| | | showSales: false, |
| | | submitForm: {}, |
| | | timer: undefined, |
| | | type: '', |
| | | // #ifdef PUB_CUSTOMER |
| | | type: 'customer', |
| | | // #endif |
| | | // #ifdef PUB_PARTNER |
| | | type: 'partner', |
| | | // #endif |
| | | salesTypeDef: 0, |
| | | salesTypeList: [], |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | this.timer && clearTimeout(this.timer) |
| | | }, |
| | | async onLoad(options) { |
| | | console.log('options', options) |
| | | |
| | | this.id = options.id || '' |
| | | if (this.id) { |
| | | this.id = options.id || '' |
| | | if (this.id) { |
| | | |
| | | await this.getDetail() |
| | | await this.getItemList() |
| | | this.submitForm = { |
| | | orderId: this.id, |
| | | // imageList: [], |
| | | videoList: [], |
| | | salesType: '', |
| | | reason: '', |
| | | // orderItems: [], |
| | | orderItemId: options.flowerId || '', |
| | | num: 0, |
| | | pictureList: [] |
| | | } |
| | | this.showSales = options.showsales && true || false |
| | | await this.getDetail() |
| | | await this.getItemList() |
| | | this.submitForm = { |
| | | orderId: this.id, |
| | | // imageList: [], |
| | | videoList: [], |
| | | salesType: '', |
| | | reason: '', |
| | | // orderItems: [], |
| | | orderItemId: options.flowerId || '', |
| | | num: 0, |
| | | pictureList: [] |
| | | } |
| | | this.showSales = options.showsales && true || false |
| | | |
| | | if (this.dto.statusBackend === 'PENDING' || this.dto.status === 'PENDING') { |
| | | if (this.dto.statusBackend === 'PENDING' || this.dto.status === 'PENDING') { |
| | | |
| | | |
| | | this.timer = setInterval(async () => { |
| | | //倒计时,修改成 |
| | | // var nowdate = new Date().getTime() - 1000 * 60 * 15 |
| | | let res = await this.$http.request('get', `/api/order/time/now`, { |
| | | params: {} |
| | | }) |
| | | let serverTime=res.data; |
| | | |
| | | //倒计时 |
| | | var nowdate = serverTime - 1000 * 60 * 15 |
| | | |
| | | var change = false |
| | | this.timer = setInterval(async () => { |
| | | //倒计时,修改成 |
| | | // var nowdate = new Date().getTime() - 1000 * 60 * 15 |
| | | let res = await this.$http.request('get', `/api/order/time/now`, { |
| | | params: {} |
| | | }) |
| | | let serverTime = res.data; |
| | | |
| | | //计算倒计时 |
| | | var diff = new Date(this.dto.createTime).getTime() - nowdate |
| | | console.log('diff', diff) |
| | | if (diff <= 2000 && true) { |
| | | //超过了5分钟 |
| | | this.dto.statusBackend = 'CANCEL' |
| | | this.dto.statusBackendStr = '已取消' |
| | | this.dto.status = 'CANCEL' |
| | | this.dto.statusStr = '已取消' |
| | | //倒计时 |
| | | var nowdate = serverTime - 1000 * 60 * 15 |
| | | |
| | | this.dto.bctime = '' |
| | | // console.log('change cancel', this.dto) |
| | | change = true |
| | | clearInterval(this.timer) |
| | | this.timer = undefined |
| | | var change = false |
| | | |
| | | //计算倒计时 |
| | | var diff = new Date(this.dto.createTime).getTime() - nowdate |
| | | console.log('diff', diff) |
| | | if (diff <= 2000 && true) { |
| | | //超过了5分钟 |
| | | this.dto.statusBackend = 'CANCEL' |
| | | this.dto.statusBackendStr = '已取消' |
| | | this.dto.status = 'CANCEL' |
| | | this.dto.statusStr = '已取消' |
| | | |
| | | this.dto.bctime = '' |
| | | // console.log('change cancel', this.dto) |
| | | change = true |
| | | clearInterval(this.timer) |
| | | this.timer = undefined |
| | | } else { |
| | | //相差 |
| | | var alltime = parseInt(diff / 1000) |
| | | var tt = 0 |
| | | if (alltime > 60) { |
| | | tt = alltime - parseInt(alltime / 60) * 60 |
| | | } else { |
| | | //相差 |
| | | var alltime = parseInt(diff / 1000) |
| | | var tt = 0 |
| | | if (alltime > 60) { |
| | | tt = alltime - parseInt(alltime / 60) * 60 |
| | | } else { |
| | | tt = alltime |
| | | } |
| | | // this.dto.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}` |
| | | this.dto.bctime = `${parseInt(alltime / 60) < 10 ? '0' : ''}${parseInt(alltime / 60)}:${tt < 10 ? '0' : ''}${tt}` |
| | | |
| | | change = true |
| | | |
| | | tt = alltime |
| | | } |
| | | // this.dto.bctime = `0${parseInt(alltime / 60)}:${tt<10?'0':''}${tt}` |
| | | this.dto.bctime = `${parseInt(alltime / 60) < 10 ? '0' : ''}${parseInt(alltime / 60)}:${tt < 10 ? '0' : ''}${tt}` |
| | | |
| | | change = true |
| | | |
| | | } |
| | | |
| | | |
| | | if (change) |
| | | this.$forceUpdate() |
| | | }, 1000) |
| | | } |
| | | |
| | | |
| | | if (change) |
| | | this.$forceUpdate() |
| | | }, 1000) |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | this.$http.request('get', '/api/code/value', { |
| | | params: { |
| | | type: 'after_sale_type' |
| | | } |
| | | }).then(res => { |
| | | var data = res.data; |
| | | |
| | | let tmpData = data.map(item => ({ |
| | | value: item.value, |
| | | label: item.label |
| | | })); |
| | | |
| | | // 将 '全部' 选项插入到 tmpData 的开头 |
| | | this.salesTypeList = tmpData; |
| | | this.salesTypeList.unshift({ |
| | | label: '全部', |
| | | value: '' |
| | | }); |
| | | |
| | | }) |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | // 商品评论 |
| | | commentButtonClick() { |
| | | // 跳转的到评论列表 |
| | | uni.navigateTo({ |
| | | url: '/pages/order/comment/order-comment?orderId=' + this.id |
| | | }) |
| | | }, |
| | | openbrand(item) { |
| | | //也要判断一下是否重复进入 |
| | | //判断堆栈,如果是店铺,就直接返回 |
| | | //或者是:从商铺到列表再到详情,再到商铺,这种也不行 |
| | | const pages = getCurrentPages(); |
| | | console.log('toShopping', pages) |
| | | if (pages && pages.length >= 2) { |
| | | if (pages[pages.length - 2].route === "sub_pages/customer/shop/shop") { |
| | | uni.navigateBack() |
| | | return |
| | | } |
| | | } |
| | | if (pages && pages.length >= 3) { |
| | | if (pages[pages.length - 3].route === "sub_pages/customer/shop/shop" && |
| | | pages[pages.length - 2].route === "sub_pages/customer/trade/list" |
| | | ) { |
| | | uni.navigateBack({ |
| | | delta: 2 |
| | | }) |
| | | return |
| | | } |
| | | } |
| | | |
| | | if (pages.length >= 10) { |
| | | //直接强制购物车 |
| | | uni.reLaunch({ |
| | | url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '') |
| | | }) |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '') |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | |
| | | toFlowerDetail(item) { |
| | | console.log(item) |
| | | uni.navigateTo({ |
| | | url: `/sub_pages/customer/trade/detail?id=${item.flowerId}` |
| | | }) |
| | | }, |
| | | salesTypeChange(e) { |
| | | this.submitForm.salesType = e.value |
| | | }, |
| | | |
| | | async getDetail() { |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', `/api/${this.type}/order/list/view`, { |
| | | params: { |
| | | id: this.id |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | console.log('getDetail', data) |
| | | if (code === 0) { |
| | | this.dto = { |
| | | ...this.dto, |
| | | ...data, |
| | | // pointGoodsList: [{ |
| | | // name: '1', |
| | | // num: 1, |
| | | // description: 'descriptiondescriptiondescriptiondescriptiondescription' |
| | | // }] |
| | | } |
| | | if (this.dto.statusBackend === 'PENDING') { |
| | | let res = await this.$http.request('get', `/api/order/time/now`, { |
| | | params: {} |
| | | }) |
| | | let serverTime = res.data; |
| | | //先判断要不要字节变成已取消 |
| | | var nowdate = serverTime - 1000 * 60 * 15 |
| | | // var nowdate = new Date().getTime() - 1000 * 60 * 5 |
| | | var diff = new Date(this.dto.createTime).getTime() - nowdate |
| | | |
| | | if (diff <= 2000 && true) { |
| | | //超过了5分钟 |
| | | this.dto.statusBackend = 'CANCEL' |
| | | this.dto.statusBackendStr = '已取消' |
| | | this.dto.status = 'CANCEL' |
| | | this.dto.statusStr = '已取消' |
| | | this.dto.bctime = '' |
| | | this.$forceUpdate() |
| | | } |
| | | } |
| | | |
| | | } |
| | | }, |
| | | async callTel() { |
| | | await this.$message.confirm('是否拨打客服电话') |
| | | uni.makePhoneCall({ |
| | | phoneNumber: '19288780072' |
| | | }); |
| | | }, |
| | | |
| | | async getTelNum() { |
| | | this.$http.request('get', '/api/code/value', { |
| | | params: { |
| | | type: 'after_sale_type' |
| | | type: 'customer_service_hotline' |
| | | } |
| | | }).then(res => { |
| | | var data = res.data; |
| | | |
| | | let tmpData = data.map(item => ({ |
| | | value: item.value, |
| | | label: item.label |
| | | })); |
| | | |
| | | // 将 '全部' 选项插入到 tmpData 的开头 |
| | | this.salesTypeList = tmpData; |
| | | this.salesTypeList.unshift({ |
| | | label: '全部', |
| | | value: '' |
| | | }); |
| | | console.log(data) |
| | | |
| | | }) |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | // 商品评论 |
| | | commentButtonClick(){ |
| | | // 跳转的到评论列表 |
| | | uni.navigateTo({ |
| | | url: '/pages/order/comment/order-comment?orderId='+this.id |
| | | }) |
| | | }, |
| | | openbrand(item) { |
| | | //也要判断一下是否重复进入 |
| | | //判断堆栈,如果是店铺,就直接返回 |
| | | //或者是:从商铺到列表再到详情,再到商铺,这种也不行 |
| | | const pages = getCurrentPages(); |
| | | console.log('toShopping', pages) |
| | | if (pages && pages.length >= 2) { |
| | | if (pages[pages.length - 2].route === "sub_pages/customer/shop/shop") { |
| | | uni.navigateBack() |
| | | return |
| | | } |
| | | |
| | | async getItemList() { |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', `/api/${this.type}/order/item/list`, { |
| | | params: { |
| | | id: this.id |
| | | } |
| | | if (pages && pages.length >= 3) { |
| | | if (pages[pages.length - 3].route === "sub_pages/customer/shop/shop" && |
| | | pages[pages.length - 2].route === "sub_pages/customer/trade/list" |
| | | ) { |
| | | uni.navigateBack({ |
| | | delta: 2 |
| | | }) |
| | | return |
| | | } |
| | | } |
| | | |
| | | if (pages.length >= 10) { |
| | | //直接强制购物车 |
| | | uni.reLaunch({ |
| | | url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '') |
| | | }) |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: '/sub_pages/customer/shop/shop?id=' + (item.supplierId || '') |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | |
| | | toFlowerDetail(item) { |
| | | console.log(item) |
| | | uni.navigateTo({ |
| | | url: `/sub_pages/customer/trade/detail?id=${item.flowerId}` |
| | | }) |
| | | }, |
| | | salesTypeChange(e) { |
| | | this.submitForm.salesType = e.value |
| | | }, |
| | | |
| | | async getDetail() { |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', `/api/${this.type}/order/list/view`, { |
| | | params: { |
| | | id: this.id |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | console.log('getDetail', data) |
| | | if (code === 0) { |
| | | this.dto = { |
| | | ...this.dto, |
| | | ...data, |
| | | // pointGoodsList: [{ |
| | | // name: '1', |
| | | // num: 1, |
| | | // description: 'descriptiondescriptiondescriptiondescriptiondescription' |
| | | // }] |
| | | } |
| | | if (this.dto.statusBackend === 'PENDING') { |
| | | let res = await this.$http.request('get', `/api/order/time/now`, { |
| | | params: {} |
| | | }) |
| | | let serverTime=res.data; |
| | | //先判断要不要字节变成已取消 |
| | | var nowdate = serverTime - 1000 * 60 * 15 |
| | | // var nowdate = new Date().getTime() - 1000 * 60 * 5 |
| | | var diff = new Date(this.dto.createTime).getTime() - nowdate |
| | | |
| | | if (diff <= 2000 && true) { |
| | | //超过了5分钟 |
| | | this.dto.statusBackend = 'CANCEL' |
| | | this.dto.statusBackendStr = '已取消' |
| | | this.dto.status = 'CANCEL' |
| | | this.dto.statusStr = '已取消' |
| | | this.dto.bctime = '' |
| | | this.$forceUpdate() |
| | | }) |
| | | this.$message.hideLoading() |
| | | console.log('getItemList', data) |
| | | if (code === 0) { |
| | | this.list = data || [] |
| | | console.log('data', this.list) |
| | | } |
| | | }, |
| | | async buttonClick(buttontype) { |
| | | switch (buttontype) { |
| | | case 'refund': { |
| | | await this.$message.confirm('是否确定申请退款') |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await this.$http.request('get', '/api/customer/order/refund', { |
| | | params: { |
| | | id: this.id, |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | this.getDetail() |
| | | } |
| | | |
| | | } |
| | | }, |
| | | async callTel() { |
| | | await this.$message.confirm('是否拨打客服电话') |
| | | uni.makePhoneCall({ |
| | | phoneNumber: '19288780072' |
| | | }); |
| | | }, |
| | | break |
| | | case 'confirm': { |
| | | await this.$message.confirm('是否确定收货') |
| | | |
| | | async getTelNum(){ |
| | | this.$http.request('get', '/api/code/value', { |
| | | params: { |
| | | type: 'customer_service_hotline' |
| | | var tryCallWx = false |
| | | // #ifdef MP |
| | | let tmp = this |
| | | if (wx.openBusinessView && tmp.dto && tmp.dto.paymentTrId) { |
| | | tryCallWx = true |
| | | wx.openBusinessView({ |
| | | businessType: 'weappOrderConfirm', |
| | | extraData: { |
| | | // merchant_id: '', |
| | | // merchant_trade_no: '', |
| | | // merchant_id: '1661512517', |
| | | // merchant_trade_no: tmp.id || '', |
| | | transaction_id: tmp.dto && tmp.dto.paymentTrId || '' |
| | | }, |
| | | async success(info) { |
| | | console.log('info', info) |
| | | //dosomething |
| | | // 发送请求 |
| | | if (info.extraData && info.extraData.status === 'fail') { |
| | | tmp.$message.showToast('支付和确认收货需要是同一微信号,请联系实际支付人登录确认') |
| | | |
| | | } else if (info.extraData && info.extraData.status === 'cancel') { |
| | | |
| | | } else { |
| | | tmp.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await tmp.$http.request('get', |
| | | '/api/customer/order/receive/confirm', { |
| | | params: { |
| | | id: tmp.id, |
| | | } |
| | | }) |
| | | tmp.$message.hideLoading() |
| | | if (code === 0) { |
| | | tmp.getDetail() |
| | | tmp.$store.dispatch('getCurrentInfo') |
| | | } |
| | | |
| | | } |
| | | |
| | | }, |
| | | fail(e) { |
| | | //dosomething |
| | | console.log('error fail', e) |
| | | tmp.$message.showToast('收货失败') |
| | | }, |
| | | complete() { |
| | | //dosomething |
| | | } |
| | | }); |
| | | } |
| | | }).then(res => { |
| | | var data = res.data; |
| | | |
| | | console.log(data) |
| | | |
| | | }) |
| | | }, |
| | | // #endif |
| | | |
| | | async getItemList() { |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', `/api/${this.type}/order/item/list`, { |
| | | params: { |
| | | id: this.id |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | console.log('getItemList', data) |
| | | if (code === 0) { |
| | | this.list = data || [] |
| | | console.log('data', this.list) |
| | | } |
| | | }, |
| | | async buttonClick(buttontype) { |
| | | switch (buttontype) { |
| | | case 'refund': { |
| | | await this.$message.confirm('是否确定申请退款') |
| | | if (!tryCallWx) { |
| | | |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await this.$http.request('get', '/api/customer/order/refund', { |
| | | } = await this.$http.request('get', '/api/customer/order/receive/confirm', { |
| | | params: { |
| | | id: this.id, |
| | | } |
| | |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | this.getDetail() |
| | | this.$store.dispatch('getCurrentInfo') |
| | | this.$message.showToast('收货成功') |
| | | } |
| | | } |
| | | |
| | | } |
| | | break |
| | | case 'confirm': { |
| | | await this.$message.confirm('是否确定收货') |
| | | |
| | | var tryCallWx = false |
| | | // #ifdef MP |
| | | let tmp = this |
| | | if (wx.openBusinessView && tmp.dto && tmp.dto.paymentTrId) { |
| | | tryCallWx = true |
| | | wx.openBusinessView({ |
| | | businessType: 'weappOrderConfirm', |
| | | extraData: { |
| | | // merchant_id: '', |
| | | // merchant_trade_no: '', |
| | | // merchant_id: '1661512517', |
| | | // merchant_trade_no: tmp.id || '', |
| | | transaction_id: tmp.dto && tmp.dto.paymentTrId || '' |
| | | }, |
| | | async success(info) { |
| | | console.log('info', info) |
| | | //dosomething |
| | | // 发送请求 |
| | | if (info.extraData && info.extraData.status === 'fail') { |
| | | tmp.$message.showToast('支付和确认收货需要是同一微信号,请联系实际支付人登录确认') |
| | | |
| | | } else if (info.extraData && info.extraData.status === 'cancel') { |
| | | |
| | | } else { |
| | | tmp.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await tmp.$http.request('get', |
| | | '/api/customer/order/receive/confirm', { |
| | | params: { |
| | | id: tmp.id, |
| | | } |
| | | }) |
| | | tmp.$message.hideLoading() |
| | | if (code === 0) { |
| | | tmp.getDetail() |
| | | tmp.$store.dispatch('getCurrentInfo') |
| | | } |
| | | |
| | | } |
| | | |
| | | }, |
| | | fail(e) { |
| | | //dosomething |
| | | console.log('error fail', e) |
| | | tmp.$message.showToast('收货失败') |
| | | }, |
| | | complete() { |
| | | //dosomething |
| | | } |
| | | }); |
| | | case 'payAgain': { |
| | | await this.$message.confirm('是否确定重新支付') |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', '/api/customer/order/payAgain', { |
| | | params: { |
| | | id: this.id, |
| | | } |
| | | }) |
| | | |
| | | // #endif |
| | | |
| | | if (!tryCallWx) { |
| | | |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await this.$http.request('get', '/api/customer/order/receive/confirm', { |
| | | params: { |
| | | id: this.id, |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | this.getDetail() |
| | | this.$store.dispatch('getCurrentInfo') |
| | | this.$message.showToast('收货成功') |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | //微信接口 |
| | | let that = this |
| | | wx.requestPayment({ |
| | | ...data, |
| | | async success(res) { |
| | | console.log('pay success', res) |
| | | await that.$message.showToast('支付成功') |
| | | that.getDetail() |
| | | }, |
| | | fail(err) { |
| | | console.error('pay fail', err) |
| | | that.$message.showToast('支付失败') |
| | | } |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | } |
| | | break |
| | | case 'payAgain': { |
| | | await this.$message.confirm('是否确定重新支付') |
| | | case 'evaluate': { |
| | | const res = await this.$message.confirm('', { |
| | | editable: true, |
| | | title: '请输入评价信息' |
| | | }) |
| | | if (res.content && res.confirm) { |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('get', '/api/customer/order/payAgain', { |
| | | params: { |
| | | code |
| | | } = await this.$http.request('post', '/api/customer/order/evaluate', { |
| | | data: { |
| | | id: this.id, |
| | | evaluate: res.content |
| | | } |
| | | }) |
| | | |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | //微信接口 |
| | | let that = this |
| | | wx.requestPayment({ |
| | | ...data, |
| | | async success(res) { |
| | | console.log('pay success', res) |
| | | await that.$message.showToast('支付成功') |
| | | that.getDetail() |
| | | }, |
| | | fail(err) { |
| | | console.error('pay fail', err) |
| | | that.$message.showToast('支付失败') |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | } |
| | | break |
| | | case 'evaluate': { |
| | | const res = await this.$message.confirm('', { |
| | | editable: true, |
| | | title: '请输入评价信息' |
| | | }) |
| | | if (res.content && res.confirm) { |
| | | // 发送请求 |
| | | this.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await this.$http.request('post', '/api/customer/order/evaluate', { |
| | | data: { |
| | | id: this.id, |
| | | evaluate: res.content |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | this.getDetail() |
| | | } |
| | | this.getDetail() |
| | | } |
| | | } |
| | | } |
| | | break |
| | | // case 'sales': { |
| | | // //新增售后单 |
| | | // //去新的页面加上这些选择? |
| | | // this.submitForm = { |
| | | // orderId: this.id, |
| | | // imageList: [], |
| | | // videoList: [], |
| | | // reason: '', |
| | | // orderItems: [], |
| | | // } |
| | | // this.showSales = true |
| | | // case 'sales': { |
| | | // //新增售后单 |
| | | // //去新的页面加上这些选择? |
| | | // this.submitForm = { |
| | | // orderId: this.id, |
| | | // imageList: [], |
| | | // videoList: [], |
| | | // reason: '', |
| | | // orderItems: [], |
| | | // } |
| | | // this.showSales = true |
| | | |
| | | // } |
| | | default: |
| | | break |
| | | } |
| | | }, |
| | | changeSalesOrderItem(dto) { |
| | | if (this.submitForm.orderItems.indexOf(dto.id) < 0) { |
| | | this.submitForm.orderItems.push(dto.id) |
| | | } else { |
| | | this.submitForm.orderItems.splice(this.submitForm.orderItems.indexOf(dto.id), 1) |
| | | } |
| | | }, |
| | | deleteCheckImage(key, index) { |
| | | this.submitForm[key].splice(index, 1) |
| | | this.$forceUpdate() |
| | | }, |
| | | uploadIcon(key) { |
| | | console.log('that dto key', key) |
| | | const that = this |
| | | if (key === 'video') { |
| | | uni.chooseVideo({ |
| | | maxDuration: 30, |
| | | sourceType: ['camera', 'album'], |
| | | success: function(res) { |
| | | if (res.size > 1024 * 1024 * 50) { |
| | | that.$message.confirm('视频最多支持50M大小,超出大小限制') |
| | | return |
| | | } |
| | | if (res.tempFilePath) { |
| | | console.log('res.tempFilePath', res.tempFilePath) |
| | | that.$message.showLoading() |
| | | that.$http.upload(res.tempFilePath).then(async res => { |
| | | var pic = res.data && res.data.length > 0 && res.data[ |
| | | 0] |
| | | .url || '' |
| | | that.$message.hideLoading() |
| | | that.submitForm.videoList.push(pic || '') |
| | | |
| | | that.$forceUpdate() |
| | | }).catch(res => { |
| | | that.$message.hideLoading() |
| | | console.error(res) |
| | | }) |
| | | } |
| | | // } |
| | | default: |
| | | break |
| | | } |
| | | }, |
| | | changeSalesOrderItem(dto) { |
| | | if (this.submitForm.orderItems.indexOf(dto.id) < 0) { |
| | | this.submitForm.orderItems.push(dto.id) |
| | | } else { |
| | | this.submitForm.orderItems.splice(this.submitForm.orderItems.indexOf(dto.id), 1) |
| | | } |
| | | }, |
| | | deleteCheckImage(key, index) { |
| | | this.submitForm[key].splice(index, 1) |
| | | this.$forceUpdate() |
| | | }, |
| | | uploadIcon(key) { |
| | | console.log('that dto key', key) |
| | | const that = this |
| | | if (key === 'video') { |
| | | uni.chooseVideo({ |
| | | maxDuration: 30, |
| | | sourceType: ['camera', 'album'], |
| | | success: function (res) { |
| | | if (res.size > 1024 * 1024 * 50) { |
| | | that.$message.confirm('视频最多支持50M大小,超出大小限制') |
| | | return |
| | | } |
| | | }); |
| | | } else { |
| | | if (res.tempFilePath) { |
| | | console.log('res.tempFilePath', res.tempFilePath) |
| | | that.$message.showLoading() |
| | | that.$http.upload(res.tempFilePath).then(async res => { |
| | | var pic = res.data && res.data.length > 0 && res.data[ |
| | | 0] |
| | | .url || '' |
| | | that.$message.hideLoading() |
| | | that.submitForm.videoList.push(pic || '') |
| | | |
| | | that.$forceUpdate() |
| | | }).catch(res => { |
| | | that.$message.hideLoading() |
| | | console.error(res) |
| | | that.$message.showToast('文件上传失败,请联系管理员') |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | |
| | | // uni.chooseImage({ |
| | | // count: 9, // 最多可以选择的图片张数,默认9 |
| | | // sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有 |
| | | // sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 |
| | | // success: function(res) { |
| | | // debugger; |
| | | // let errMsg = res.errMsg |
| | | // let tempFiles = res.tempFiles |
| | | // if (errMsg === 'chooseImage:ok') { |
| | | // // console.log(tempFiles[0]) |
| | | // if (tempFiles[0].size > 1024 * 1024 * 5) { |
| | | // that.$message.confirm('图片最多支持5M大小,超出大小限制') |
| | | // return |
| | | // } |
| | | // that.$message.showLoading() |
| | | |
| | | // let filePaths = tempFiles.map(file => file.path); |
| | | // that.$http.upload(tempFiles[0].path).then(async res => { |
| | | // console.log('res1', res) |
| | | // var pic = res.data && res.data.length > 0 && res.data[ |
| | | // 0] |
| | | // .url || '' |
| | | // that.$message.hideLoading() |
| | | // that.submitForm.pictureList.push(pic) |
| | | |
| | | // that.$forceUpdate() |
| | | // }).catch(res => { |
| | | // that.$message.hideLoading() |
| | | // console.error(res) |
| | | // // console.log("文件上传失败,请联系管理员") |
| | | // that.$message.showToast('文件上传失败,请联系管理员') |
| | | |
| | | // }) |
| | | // } |
| | | // } |
| | | // }) |
| | | |
| | | // uni.chooseImage({ |
| | | // count: 9, // 最多可以选择的图片张数,默认9 |
| | | // sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有 |
| | | // sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 |
| | | // success: async function(res) { |
| | | |
| | | // let errMsg = res.errMsg |
| | | // let tempFiles = res.tempFiles |
| | | // if (errMsg === 'chooseImage:ok') { |
| | | // // console.log(tempFiles[0]) |
| | | // if (tempFiles[0].size > 1024 * 1024 * 5) { |
| | | // that.$message.confirm('图片最多支持5M大小,超出大小限制') |
| | | // return |
| | | // } |
| | | // that.$message.showLoading() |
| | | |
| | | // let filePaths = tempFiles.map(file => file.path); |
| | | // const resImages=[] |
| | | // for (let i = 0; i < filePaths.length; i++) { |
| | | // try { |
| | | // const res = await that.$http.upload(filePaths[i]); |
| | | // var pic = res.data && res.data.length > 0 && res.data[0].url || ''; |
| | | // if (pic) { |
| | | // // that.submitForm.pictureList.push(pic); |
| | | // resImages.push(pic); |
| | | // } |
| | | // } catch (err) { |
| | | // console.error(err); |
| | | // that.$message.showToast('文件上传失败,请联系管理员'); |
| | | // } |
| | | // } |
| | | // if(filePaths.length==resImages.length){ |
| | | // // that.submitForm.pictureList = resImages; |
| | | // that.submitForm.pictureList.push(...resImages); |
| | | // // 隐藏加载提示 |
| | | // that.$message.hideLoading(); |
| | | // that.$forceUpdate(); |
| | | // }else{ |
| | | // that.$message.showToast('文件上传失败,请联系管理员'); |
| | | // } |
| | | |
| | | // } |
| | | // } |
| | | // }) |
| | | |
| | | if(this.submitForm.pictureList?.length>=9){ |
| | | that.$message.confirm('图片最多上传9张!'); |
| | | return |
| | | } |
| | | |
| | | uni.chooseImage({ |
| | | count: 1, // 最多可以选择的图片张数,默认9 |
| | | sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有 |
| | | sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 |
| | | success: function(res) { |
| | | let errMsg = res.errMsg |
| | | let tempFiles = res.tempFiles |
| | | if (errMsg === 'chooseImage:ok') { |
| | | // console.log(tempFiles[0]) |
| | | if (tempFiles[0].size > 1024 * 1024 * 5) { |
| | | that.$message.confirm('图片最多支持5M大小,超出大小限制') |
| | | return |
| | | } |
| | | that.$message.showLoading() |
| | | that.$http.upload(tempFiles[0].path).then(async res => { |
| | | console.log('res1', res) |
| | | var pic = res.data && res.data.length > 0 && res.data[ |
| | | 0] |
| | | .url || '' |
| | | that.$message.hideLoading() |
| | | that.submitForm.pictureList.push(pic) |
| | | count: 9, // 最多可以选择的图片张数,默认9 |
| | | sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有 |
| | | sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项 |
| | | success: async function(res) { |
| | | let errMsg = res.errMsg; |
| | | let tempFiles = res.tempFiles; |
| | | if (errMsg === 'chooseImage:ok') { |
| | | // 检查文件大小 |
| | | let oversizedFile = tempFiles.find(file => file.size > 1024 * 1024 * 5); |
| | | if (oversizedFile) { |
| | | that.$message.confirm('图片最多支持5M大小,超出大小限制'); |
| | | return; |
| | | } |
| | | |
| | | that.$forceUpdate() |
| | | }).catch(res => { |
| | | that.$message.hideLoading() |
| | | console.error(res) |
| | | }) |
| | | // 显示加载提示 |
| | | that.$message.showLoading(); |
| | | |
| | | console.log("tempFiles") |
| | | console.log(tempFiles) |
| | | |
| | | // 获取所有文件的 path 数组 |
| | | let filePaths = tempFiles.map(file => file.path); |
| | | console.log("filePaths") |
| | | console.log(filePaths) |
| | | |
| | | // 创建上传请求的数组 |
| | | const uploadPromises = filePaths.map(path => { |
| | | return that.$http.upload(path) |
| | | .then(res => { |
| | | let pic = res.data && res.data.length > 0 && res.data[0].url || ''; |
| | | return pic; |
| | | }) |
| | | .catch(err => { |
| | | console.error(err); |
| | | return null; // 上传失败时返回 null |
| | | }); |
| | | }); |
| | | |
| | | // 使用 Promise.all 并发上传 |
| | | try { |
| | | const resImages = await Promise.all(uploadPromises); |
| | | |
| | | // 检查上传结果 |
| | | const successfulImages = resImages.filter(pic => pic !== null); |
| | | that.submitForm.pictureList.push(...successfulImages); |
| | | that.$message.hideLoading(); |
| | | that.$forceUpdate(); |
| | | if (successfulImages.length !== filePaths.length) { |
| | | // 部分上传失败 |
| | | that.$message.showToast('部分文件上传失败,请重新尝试!'); |
| | | } |
| | | } catch (err) { |
| | | console.error(err); |
| | | that.$message.showToast('文件上传失败,请联系管理员'); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | async submitSales() { |
| | | // if (this.submitForm.orderItems.length < 1) { |
| | | // this.$message.showToast('未选择需要售后的商品') |
| | | // return |
| | | // } |
| | | // if (this.submitForm.orderItems.length < 1) { |
| | | // this.$message.showToast('未选择需要售后的商品') |
| | | // return |
| | | // } |
| | | if (isNaN(parseInt(this.submitForm.num)) || this.submitForm.num <= 0 || parseInt(this.submitForm |
| | | .num) <= 0) { |
| | | this.$message.showToast('售后数量需要大于0') |
| | | return |
| | | } |
| | | this.submitForm.num = parseInt(this.submitForm.num) || 1 |
| | | |
| | | if (!this.submitForm.salesType) { |
| | | this.$message.showToast('未填写售后类型') |
| | | return |
| | | } |
| | | if (!this.submitForm.reason) { |
| | | this.$message.showToast('未填写理由') |
| | | return |
| | | } |
| | | if (!this.submitForm.pictureList || this.submitForm.pictureList.length < 1) { |
| | | this.$message.showToast('未上传图片') |
| | | return |
| | | } |
| | | await this.$message.confirm('确定申请售后吗') |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('post', '/api/customer/sales/add', { |
| | | data: { |
| | | ...this.submitForm |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | await this.$message.showToast('提交成功') |
| | | uni.navigateBack() |
| | | // this.showSales = false |
| | | // this.$forceUpdate() |
| | | // setTimeout(() => { |
| | | // uni.navigateBack() |
| | | // }, 1200) |
| | | } |
| | | }, |
| | | }); |
| | | |
| | | } |
| | | }, |
| | | } |
| | | |
| | | async submitSales() { |
| | | // if (this.submitForm.orderItems.length < 1) { |
| | | // this.$message.showToast('未选择需要售后的商品') |
| | | // return |
| | | // } |
| | | // if (this.submitForm.orderItems.length < 1) { |
| | | // this.$message.showToast('未选择需要售后的商品') |
| | | // return |
| | | // } |
| | | if (isNaN(parseInt(this.submitForm.num)) || this.submitForm.num <= 0 || parseInt(this.submitForm |
| | | .num) <= 0) { |
| | | this.$message.showToast('售后数量需要大于0') |
| | | return |
| | | } |
| | | this.submitForm.num = parseInt(this.submitForm.num) || 1 |
| | | |
| | | if (!this.submitForm.salesType) { |
| | | this.$message.showToast('未填写售后类型') |
| | | return |
| | | } |
| | | if (!this.submitForm.reason) { |
| | | this.$message.showToast('未填写理由') |
| | | return |
| | | } |
| | | if (!this.submitForm.pictureList || this.submitForm.pictureList.length < 1) { |
| | | this.$message.showToast('未上传图片') |
| | | return |
| | | } |
| | | await this.$message.confirm('确定申请售后吗') |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('post', '/api/customer/sales/add', { |
| | | data: { |
| | | ...this.submitForm |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | await this.$message.showToast('提交成功') |
| | | uni.navigateBack() |
| | | // this.showSales = false |
| | | // this.$forceUpdate() |
| | | // setTimeout(() => { |
| | | // uni.navigateBack() |
| | | // }, 1200) |
| | | } |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <image src="/static/common/icon-order-status-SEND.png" class="icon-car m-r-6 img100"></image> |
| | | <view> |
| | | <view>{{ |
| | | dto.status === 'SEND' && '商家已发货,正在通知取货' |
| | | || dto.status === 'PENDING' && '订单还未支付,立即去支付' |
| | | || dto.status === 'RECEIVE' && '待签收' |
| | | || ('订单状态: ' + dto.statusStr) |
| | | }} |
| | | dto.status === 'SEND' && '商家已发货,正在通知取货' |
| | | || dto.status === 'PENDING' && '订单还未支付,立即去支付' |
| | | || dto.status === 'RECEIVE' && '待签收' |
| | | || ('订单状态: ' + dto.statusStr) |
| | | }} |
| | | </view> |
| | | <view class="desc-gray">支付时间:{{dto.paymentTime || '-'}}</view> |
| | | <view class="desc-gray">支付时间:{{ dto.paymentTime || '-' }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="address-container bg-white br-4 m-t-12" v-if="!showSales"> |
| | |
| | | <view class="info"> |
| | | <view class="title"> |
| | | {{ dto.customer }} |
| | | <view class="tel">{{ dto.customerTel || ''}}</view> |
| | | <view class="tel">{{ dto.customerTel || '' }}</view> |
| | | </view> |
| | | <view class="content">{{ dto.customerAddress || ''}}</view> |
| | | <view class="content">{{ dto.customerAddress || '' }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view v-for="(item,index) of list" :key="index"> |
| | | <view v-for="(item, index) of list" :key="index"> |
| | | <view class="flower-info m-b-20 m-t-12 br-4" |
| | | v-if="!showSales||showSales&&(submitForm.orderItemId == item.id)"> |
| | | <view class="supplier-name " > |
| | | <view @click.stop="openbrand(item)" style="display: inline-block;"> |
| | | v-if="!showSales || showSales && (submitForm.orderItemId == item.id)"> |
| | | <view class="supplier-name "> |
| | | <view @click.stop="openbrand(item)" style="display: inline-block;"> |
| | | <image class="icon-dp br-4" src="/static/common/icon-dp.png"></image> |
| | | {{ item.supplierName|| '' }} > |
| | | {{ item.supplierName || '' }} > |
| | | </view> |
| | | </view> |
| | | <!-- submitForm.orderItemId:{{submitForm.orderItemId}} --> |
| | |
| | | <!-- :checked="submitForm.orderItems.indexOf(item.id)>=0" --> |
| | | |
| | | <!-- <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover" @click="previewImg(item.flowerCover)"></image> --> |
| | | <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover" @click="toFlowerDetail(item)"></image> |
| | | <image class="flower-img img100 br-4 m-r-6" :src="item.flowerCover" @click="toFlowerDetail(item)"> |
| | | </image> |
| | | <view class="flex1" @click.stop="toFlowerDetail(item)"> |
| | | <view class=" flex"> |
| | | <view class="title"><span class="level">{{ item.flowerCategory || ''}}</span><span |
| | | class="level">{{ item.flowerLevelStr || ''}}</span>{{ item.flowerName || ''}} |
| | | <view class="title"><span class="level">{{ item.flowerCategory || '' }}</span><span |
| | | class="level">{{ item.flowerLevelStr || '' }}</span>{{ item.flowerName || '' }} |
| | | </view> |
| | | </view> |
| | | <view class="each-list"> |
| | | <view class="each-item"> |
| | | <view class="label">货位号</view> |
| | | <view class="value"> |
| | | {{ item.warehouseLocationCode || dto.warehouseLocationCode || '-' }} |
| | | {{ item.warehouseLocationCode || dto.warehouseLocationCode || '-' }} |
| | | </view> |
| | | </view> |
| | | |
| | |
| | | <view class="label">下单日期:</view> |
| | | <view class="value">{{ dto.createTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.cancelTime&&(dto.status==='CANCEL'||dto.status==='REFUND')"> |
| | | <view class="form-item" v-if="dto.cancelTime && (dto.status === 'CANCEL' || dto.status === 'REFUND')"> |
| | | <view class="label">取消时间:</view> |
| | | <view class="value">{{ dto.cancelTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.evaluateTime&&(dto.status==='COMPLETED')"> |
| | | <view class="form-item" v-if="dto.evaluateTime && (dto.status === 'COMPLETED')"> |
| | | <view class="label">评价时间:</view> |
| | | <view class="value">{{ dto.evaluateTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="(dto.status==='REFUND')"> |
| | | <view class="form-item" v-if="(dto.status === 'REFUND')"> |
| | | <view class="label">退款金额:</view> |
| | | <view class="value">{{ dto.refundAmount || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.refundNo&&(dto.status==='REFUND')"> |
| | | <view class="form-item" v-if="dto.refundNo && (dto.status === 'REFUND')"> |
| | | <view class="label">退款单号:</view> |
| | | <view class="value">{{ dto.refundNo || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.refundTime&&(dto.status==='REFUND')"> |
| | | <view class="form-item" v-if="dto.refundTime && (dto.status === 'REFUND')"> |
| | | <view class="label">退款时间:</view> |
| | | <view class="value">{{ dto.refundTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.receiveTime&&(dto.status==='EVALUATE')"> |
| | | <view class="form-item" v-if="dto.receiveTime && (dto.status === 'EVALUATE')"> |
| | | <view class="label">收货时间:</view> |
| | | <view class="value">{{ dto.receiveTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.completeTime&&(dto.status==='COMPLETED')"> |
| | | <view class="form-item" v-if="dto.completeTime && (dto.status === 'COMPLETED')"> |
| | | <view class="label">完成时间:</view> |
| | | <view class="value">{{ dto.completeTime || '-' }}</view> |
| | | </view> |
| | | <view class="form-item" v-if="dto.transferTime&&(dto.status==='REFUND')"> |
| | | <view class="form-item" v-if="dto.transferTime && (dto.status === 'REFUND')"> |
| | | <view class="label">转账时间:</view> |
| | | <view class="value">{{ dto.transferTime || '-' }}</view> |
| | | </view> |
| | |
| | | </view> --> |
| | | </view> |
| | | <view class="info-container bg-white br-4 m-t-12" |
| | | v-if="!showSales&& dto.pointGoodsList&& dto.pointGoodsList.length>0"> |
| | | <view v-for="(item,j) of dto.pointGoodsList" :key="j" class="m-b-12"> |
| | | v-if="!showSales && dto.pointGoodsList && dto.pointGoodsList.length > 0"> |
| | | <view v-for="(item, j) of dto.pointGoodsList" :key="j" class="m-b-12"> |
| | | <view class="flower-info br-4"> |
| | | <view class="flex flex-wrap-normal"> |
| | | <image class="flower-img img100 br-4 m-r-6" :src="item.cover" @click="previewImg(item.cover)"> |
| | |
| | | <view class="flex1"> |
| | | <view class=" flex"> |
| | | <view class="title"> |
| | | {{ item.name || ''}} |
| | | {{ item.name || '' }} |
| | | </view> |
| | | </view> |
| | | <view class="each-list" style="display: contents;"> |
| | |
| | | <view class="t-red" @click="uploadIcon('image')">上传</view> |
| | | </view> |
| | | </view> |
| | | <view class="flex p20" v-if="submitForm.pictureList&&submitForm.pictureList.length>0"> |
| | | <view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.pictureList" :key="index"> |
| | | <view class="flex p20" v-if="submitForm.pictureList && submitForm.pictureList.length > 0"> |
| | | <view class="m-t-12 m-r-10 " v-for="(timg, index) of submitForm.pictureList" :key="index"> |
| | | <image class="check-img" :src="timg" @click.stop="previewImg(timg)"> |
| | | </image> |
| | | <view class="t-red text-center" @click.stop="deleteCheckImage('pictureList',index)">删除</view> |
| | | <view class="t-red text-center" @click.stop="deleteCheckImage('pictureList', index)">删除</view> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | |
| | | <view class="t-red" @click="uploadIcon('video')">上传</view> |
| | | </view> |
| | | </view> |
| | | <view class="flex p20" v-if="submitForm.videoList&&submitForm.videoList.length>0"> |
| | | <view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.videoList" :key="index"> |
| | | <view class="flex p20" v-if="submitForm.videoList && submitForm.videoList.length > 0"> |
| | | <view class="m-t-12 m-r-10 " v-for="(timg, index) of submitForm.videoList" :key="index"> |
| | | <video :src="timg" style="display: block;margin: 0 auto;"></video> |
| | | |
| | | <view class="t-red text-center" @click.stop="deleteCheckImage('videoList',index)">删除</view> |
| | | <view class="t-red text-center" @click.stop="deleteCheckImage('videoList', index)">删除</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <view class="buttons-bottom flex" v-if="!showSales"> |
| | | <view class="button button-1" @click="buttonClick('refund')" v-if="dto.couldRefund">申请退款 |
| | | </view> |
| | | <view class="button button-1" @click="buttonClick('confirm')" v-if="dto.status ==='RECEIVE'"> 确认收货 |
| | | <view class="button button-1" @click="buttonClick('confirm')" v-if="dto.status === 'RECEIVE'"> 确认收货 |
| | | </view> |
| | | <view class="button button-1" @click="buttonClick('payAgain')" v-if=" dto.status === 'PENDING'"> 重新支付<span |
| | | v-if="dto.bctime">({{dto.bctime}})</span> |
| | | <view class="button button-1" @click="buttonClick('payAgain')" v-if="dto.status === 'PENDING'"> 重新支付<span |
| | | v-if="dto.bctime">({{ dto.bctime }})</span> |
| | | </view> |
| | | <view class="button button-1" @click="buttonClick('evaluate')" v-if=" dto.status === 'EVALUATE'"> 评价 |
| | | <view class="button button-1" @click="buttonClick('evaluate')" v-if="dto.status === 'EVALUATE'"> 评价 |
| | | </view> |
| | | <!-- ||dto.status=='COMPLETED' --> |
| | | <!-- 在外面申请了,里面不允许了 --> |
| | |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .order-detail-page { |
| | | background: #F7F7F7; |
| | | padding: 30rpx; |
| | | .order-detail-page { |
| | | background: #F7F7F7; |
| | | padding: 30rpx; |
| | | |
| | | .check-img { |
| | | width: 96rpx; |
| | | height: 96rpx; |
| | | border-radius: 4rpx; |
| | | border: 2rpx dashed #CECECE; |
| | | .check-img { |
| | | width: 96rpx; |
| | | height: 96rpx; |
| | | border-radius: 4rpx; |
| | | border: 2rpx dashed #CECECE; |
| | | } |
| | | |
| | | .bottom-price { |
| | | position: fixed; |
| | | background-color: #ffffff; |
| | | left: 0rpx; |
| | | padding: 20rpx; |
| | | padding-bottom: 40rpx; |
| | | right: 0rpx; |
| | | bottom: 0rpx; |
| | | |
| | | .button-green-1 { |
| | | min-width: 400rpx; |
| | | padding-left: 20rpx; |
| | | padding-right: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .bottom-price { |
| | | position: fixed; |
| | | background-color: #ffffff; |
| | | left: 0rpx; |
| | | padding: 20rpx; |
| | | padding-bottom: 40rpx; |
| | | right: 0rpx; |
| | | bottom: 0rpx; |
| | | .button-space { |
| | | min-height: 140rpx; |
| | | } |
| | | |
| | | .button-green-1 { |
| | | min-width: 400rpx; |
| | | padding-left: 20rpx; |
| | | padding-right: 20rpx; |
| | | } |
| | | } |
| | | .buttons-bottom { |
| | | position: fixed; |
| | | left: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | height: 120rpx; |
| | | background-color: #FFFFFF; |
| | | box-shadow: 0 2rpx 30rpx rgba(0, 0, 0, .3); |
| | | |
| | | .button-space { |
| | | min-height: 140rpx; |
| | | } |
| | | |
| | | .buttons-bottom { |
| | | position: fixed; |
| | | left: 0; |
| | | bottom: 0; |
| | | right: 0; |
| | | height: 120rpx; |
| | | .button { |
| | | border-radius: 42rpx; |
| | | border: 2rpx solid #CECECE; |
| | | font-weight: 400; |
| | | font-size: 30rpx; |
| | | color: #999999; |
| | | text-align: center; |
| | | line-height: 60rpx; |
| | | height: 60rpx; |
| | | padding: 10rpx 30rpx; |
| | | background-color: #FFFFFF; |
| | | box-shadow: 0 2rpx 30rpx rgba(0, 0, 0, .3); |
| | | margin: 0 auto; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | margin-top: 20rpx; |
| | | min-width: 120rpx; |
| | | } |
| | | |
| | | .button { |
| | | border-radius: 42rpx; |
| | | border: 2rpx solid #CECECE; |
| | | font-weight: 400; |
| | | font-size: 30rpx; |
| | | color: #999999; |
| | | text-align: center; |
| | | line-height: 60rpx; |
| | | height: 60rpx; |
| | | padding: 10rpx 30rpx; |
| | | background-color: #FFFFFF; |
| | | margin: 0 auto; |
| | | .button-1 {} |
| | | } |
| | | |
| | | .info-container { |
| | | |
| | | |
| | | .icon-kf { |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | } |
| | | |
| | | .icon-call { |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | } |
| | | |
| | | .icon-view { |
| | | line-height: 40rpx; |
| | | |
| | | .icon { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | margin-top: 20rpx; |
| | | min-width: 120rpx; |
| | | } |
| | | |
| | | .button-1 {} |
| | | } |
| | | |
| | | .info-container { |
| | | |
| | | |
| | | .icon-kf { |
| | | width: 44rpx; |
| | | height: 44rpx; |
| | | } |
| | | |
| | | .icon-call { |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | } |
| | | |
| | | .icon-view { |
| | | line-height: 40rpx; |
| | | |
| | | .icon { |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .info-container { |
| | | padding: 28rpx; |
| | | |
| | | .form-item { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #666666; |
| | | line-height: 60rpx; |
| | | display: flex; |
| | | |
| | | .label { |
| | | min-width: 140rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .value { |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | |
| | | .line { |
| | | height: 2rpx solid #EEEEEE; |
| | | } |
| | | } |
| | | |
| | | .top-tip { |
| | | .icon-car { |
| | | width: 52rpx; |
| | | height: 52rpx; |
| | | } |
| | | } |
| | | |
| | | .address-container { |
| | | padding: 28rpx; |
| | | |
| | | .image { |
| | | // background-color: #20613D; |
| | | border-radius: 50%; |
| | | margin-top: 8rpx; |
| | | margin-left: 8rpx; |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | // padding: 8rpx; |
| | | } |
| | | |
| | | .info { |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | |
| | | .tel { |
| | | display: inline-block; |
| | | margin-left: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .flower-info { |
| | | padding: 28rpx; |
| | | |
| | | background: #FFFFFF; |
| | | border-radius: 8rpx; |
| | | |
| | | .supplier-name { |
| | | border-bottom: 2rpx solid #EEEEEE; |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | padding-bottom: 10rpx; |
| | | line-height: 40rpx; |
| | | |
| | | .icon-dp { |
| | | width: 27rpx; |
| | | height: 27rpx; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | |
| | | .level { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #20613D; |
| | | line-height: 40rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .flower-img { |
| | | width: 128rpx; |
| | | height: 118rpx; |
| | | min-width: 128rpx; |
| | | min-height: 118rpx; |
| | | } |
| | | |
| | | .each-list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-top: 6rpx; |
| | | |
| | | .each-item { |
| | | min-width: 30%; |
| | | max-width: 40%; |
| | | text-align: center; |
| | | margin-left: 0rpx; |
| | | margin-right: auto; |
| | | display: flex; |
| | | |
| | | .label { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | text-align: left; |
| | | padding-right: 10rpx; |
| | | } |
| | | |
| | | .label::after { |
| | | content: ": " |
| | | } |
| | | |
| | | .value { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | .info-container { |
| | | padding: 28rpx; |
| | | |
| | | .form-item { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #666666; |
| | | line-height: 60rpx; |
| | | display: flex; |
| | | |
| | | .label { |
| | | min-width: 140rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .value { |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | |
| | | .line { |
| | | height: 2rpx solid #EEEEEE; |
| | | } |
| | | } |
| | | |
| | | .top-tip { |
| | | .icon-car { |
| | | width: 52rpx; |
| | | height: 52rpx; |
| | | } |
| | | } |
| | | |
| | | .address-container { |
| | | padding: 28rpx; |
| | | |
| | | .image { |
| | | // background-color: #20613D; |
| | | border-radius: 50%; |
| | | margin-top: 8rpx; |
| | | margin-left: 8rpx; |
| | | width: 32rpx; |
| | | height: 32rpx; |
| | | // padding: 8rpx; |
| | | } |
| | | |
| | | .info { |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | |
| | | .tel { |
| | | display: inline-block; |
| | | margin-left: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .flower-info { |
| | | padding: 28rpx; |
| | | |
| | | background: #FFFFFF; |
| | | border-radius: 8rpx; |
| | | |
| | | .supplier-name { |
| | | border-bottom: 2rpx solid #EEEEEE; |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | padding-bottom: 10rpx; |
| | | line-height: 40rpx; |
| | | |
| | | .icon-dp { |
| | | width: 27rpx; |
| | | height: 27rpx; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | |
| | | .level { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #20613D; |
| | | line-height: 40rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .flower-img { |
| | | width: 128rpx; |
| | | height: 118rpx; |
| | | min-width: 128rpx; |
| | | min-height: 118rpx; |
| | | } |
| | | |
| | | .each-list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-top: 6rpx; |
| | | |
| | | .each-item { |
| | | min-width: 30%; |
| | | max-width: 40%; |
| | | text-align: center; |
| | | margin-left: 0rpx; |
| | | margin-right: auto; |
| | | display: flex; |
| | | |
| | | .label { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | text-align: left; |
| | | padding-right: 10rpx; |
| | | } |
| | | |
| | | .label::after { |
| | | content: ": " |
| | | } |
| | | |
| | | .value { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | </style> |