Commit bb4017f6 authored by haitao's avatar haitao

Merge branch 'dev' of http://rungit.jxdsy.cn:10000/xys/lumastoreapp into dev

parents b8ad755c d599302f
......@@ -3,8 +3,8 @@
//"appid" : "__UNI__FC9419E",
"appid" : "__UNI__1EA80F1", //这个是 web
"description" : "商家",
"versionName" : "1.0.99",
"versionCode" : 199,
"versionName" : "1.1.01",
"versionCode" : 1101,
"transformPx" : false,
"compatible" : {
"ignoreVersion" : true, //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持
......@@ -126,9 +126,9 @@
},
"splashscreen" : {
"android" : {
"hdpi" : "C:/Users/Administrator/Desktop/证书/d0abce82961b508e6a0b9924d15fe86.png",
"xhdpi" : "C:/Users/Administrator/Desktop/证书/d0abce82961b508e6a0b9924d15fe86.png",
"xxhdpi" : "C:/Users/Administrator/Desktop/证书/d0abce82961b508e6a0b9924d15fe86.png"
"hdpi" : "C:/Users/Administrator/Desktop/da/6b51802bba0a32ac69392831b1fc324.png",
"xhdpi" : "C:/Users/Administrator/Desktop/da/6b51802bba0a32ac69392831b1fc324.png",
"xxhdpi" : "C:/Users/Administrator/Desktop/da/6b51802bba0a32ac69392831b1fc324.png"
},
"ios" : {
"iphone" : {
......
......@@ -419,7 +419,35 @@
"enablePullDownRefresh":true
}
} ],
},{
"path" : "pages/order/shoprefundorderdetail/shoprefundorderdetail",
"style" :
{
"navigationBarTitleText": "商城售后订单详情",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/order/shopExamine/shopExamine",
"style" :
{
"navigationBarTitleText": "订单退款",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/order/ExamineDelivery/ExamineDelivery",
"style" :
{
"navigationBarTitleText": "立即发货",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
......
<template>
<!-- yocode 物流信息 -->
<view class="content ViewLogistics yocode">
<!-- 地图呀 -->
<!-- <view class="page-body">
<view class="page-section page-section-gap">
......@@ -11,64 +10,64 @@
</view> -->
<view class="wuliuboxss flex ali-c">
<image class="imgs" :src="statictowUrl+'/static/applet5'+logisticLogo" mode=""></image>
<image class="imgs" :src="statictowUrl + '/static/applet5' + logisticLogo" mode=""></image>
<view class="rightinfos">
<view class="wuliutype">{{shipperName}}</view>
<view class="wuliucode">运单号: {{logisticCode}}</view>
<view class="wuliutel">官方电话: {{phone}}</view>
<view class="wuliutype">{{ shipperName }}</view>
<view class="wuliucode">运单号: {{ logisticCode }}</view>
<view class="wuliutel">官方电话: {{ phone }}</view>
</view>
</view>
<!-- 查看物流的组件 alidata2.state -->
<ali :state="3" :datas="list" :ways="information"></ali>
</view>
</template>
<script>
import ali from '@/components/WuLiu-step/WuLiu-step.vue';
import {checkLogistics} from "@/utils/api/api.js";
import { checkLogistics,viewLogistics} from '@/utils/api/api.js';
export default {
components: {
ali
},
computed: {
staticUrl () {//静态资源地址
staticUrl() {
//静态资源地址
return this.$store.state.staticUrl;
},
staticUrl1(){
staticUrl1() {
return this.$store.state.staticUrl1;
},
statictowUrl(){
statictowUrl() {
return this.$store.state.statictowUrl;
},
uploadurl(){
uploadurl() {
return this.$store.state.uploadurl;
}
},
data() {
return {
//地图的东西
title: 'map',
latitude: 39.909,
longitude: 116.39742,
covers: [{
covers: [
{
latitude: 39.909,
longitude: 116.39742,
iconPath: '/static/news/address.png'
}, {
latitude: 39.90,
},
{
latitude: 39.9,
longitude: 116.39,
iconPath: '/static/news/address.png'
}],
}
],
alidata: {
state: 2,
uptime: '2019-05-23 17:52:06',
data: [
],
data: [],
information: {
no: '231880744913',
sName: 'SF',
......@@ -81,9 +80,7 @@ export default {
alidata2: {
state: 3,
uptime: '2019-05-24 10:58:24',
data: [
],
data: [],
information: {
no: '70939995911523',
sName: 'HTKY',
......@@ -95,10 +92,10 @@ export default {
},
list: [],
logisticCode: "",
shipperName: "",
logisticLogo: "",
phone: "",
logisticCode: '',
shipperName: '',
logisticLogo: '',
phone: '',
information: {
no: '',
sName: '',
......@@ -110,61 +107,79 @@ export default {
};
},
onLoad(options) {
// console.log(options)
this.init();
var that = this;
console.log(options);
// 判断为正常订单
if (options.order_id) {
let params = {
order_id: options.order_id,
action: options.action,
vendor_id:options.vendor,
vendor_id: options.vendor
};
checkLogistics(params).then(res => {
console.log(res);
if (res.code == 0) {
let data = res.data;
let list = this.checkArray(data.Traces) ? data.Traces : [];
let logistics_info = this.getLogisticsConfig(data.ShipperCode)
this.list=list.reverse();
this.logisticCode=data.LogisticCode;
this.shipperName=logistics_info.name;
this.logisticLogo= logistics_info.img_url;
this.phone=logistics_info.phone;
let logistics_info = this.getLogisticsConfig(data.ShipperCode);
this.list = list.reverse();
this.logisticCode = data.LogisticCode;
this.shipperName = logistics_info.name;
this.logisticLogo = logistics_info.img_url;
this.phone = logistics_info.phone;
}
});
// 如果为售后订单
} else if (options.refund_id) {
let refundParams = {
refund_id: options.refund_id,
type: 2
};
viewLogistics(refundParams).then(res => {
console.log(res)
if (res.code == 0) {
this.list = res.data.list;
let logistics_info = this.getLogisticsConfig(res.data.shipperCode);
this.list.reverse();
this.logisticCode = res.data.logisticCode;
this.shipperName = logistics_info.name;
this.logisticLogo = logistics_info.img_url;
this.phone = logistics_info.phone;
}
});
}
})
},
methods: {
init() {
},
init() {},
/**
* 获取快递公司信息
*/
getLogisticsConfig(shipperCode) {
let config = {
'YTO': { 'name': '圆通速递', 'phone': '95554', 'img_url': '/images/delivery_icon/YTO.png' },
'HTKY': { 'name': '百世快递', 'phone': '95320', 'img_url': '/images/delivery_icon/HTKY.png' },
'ZTO': { 'name': '中通快递', 'phone': '95311', 'img_url': '/images/delivery_icon/ZTO.png' },
'STO': { 'name': '申通快递', 'phone': '95543', 'img_url': '/images/delivery_icon/STO.png' },
'SF': { 'name': '顺丰速运', 'phone': '95338', 'img_url': '/images/delivery_icon/SF.png' },
'YD': { 'name': '韵达速递', 'phone': '95546', 'img_url': '/images/delivery_icon/YD.png' },
'YZPY': { 'name': '邮政快递包裹', 'phone': '11185', 'img_url': '/images/delivery_icon/EMS.png' },
'EMS': { 'name': 'EMS', 'phone': '11183', 'img_url': '/images/delivery_icon/EMS.png' },
'HHTT': { 'name': '天天快递', 'phone': '400-188-8888', 'img_url': '/images/delivery_icon/HHTT.png' },
'JD': { 'name': '京东快递', 'phone': '950616', 'img_url': '/images/delivery_icon/JD.png' },
'UC': { 'name': '优速快递', 'phone': '95349', 'img_url': '/images/qishou@2x.png' },
'DBL': { 'name': '德邦快递', 'phone': '95353', 'img_url': '/images/delivery_icon/DBL.png' },
'ZJS': { 'name': '宅急送', 'phone': '400-678-9000', 'img_url': '/images/qishou@2x.png' },
'TNT': { 'name': 'TNT快递', 'phone': '400-820-9868', 'img_url': '/images/qishou@2x.png' },
'UPS': { 'name': 'UPS', 'phone': '400-820-8388', 'img_url': '/images/qishou@2x.png' },
'DHL': { 'name': 'DHL', 'phone': '95380', 'img_url': '/images/qishou@2x.png' },
'FEDEX': { 'name': 'FEDEX联邦(国内件)', 'phone': '400-886-1888', 'img_url': '/images/qishou@2x.png' },
'FEDEX_GJ': { 'name': 'FEDEX联邦(国际件)', 'phone': '400-886-1888', 'img_url': '/images/qishou@2x.png' },
}
YTO: { name: '圆通速递', phone: '95554', img_url: '/images/delivery_icon/YTO.png' },
HTKY: { name: '百世快递', phone: '95320', img_url: '/images/delivery_icon/HTKY.png' },
ZTO: { name: '中通快递', phone: '95311', img_url: '/images/delivery_icon/ZTO.png' },
STO: { name: '申通快递', phone: '95543', img_url: '/images/delivery_icon/STO.png' },
SF: { name: '顺丰速运', phone: '95338', img_url: '/images/delivery_icon/SF.png' },
YD: { name: '韵达速递', phone: '95546', img_url: '/images/delivery_icon/YD.png' },
YZPY: { name: '邮政快递包裹', phone: '11185', img_url: '/images/delivery_icon/EMS.png' },
EMS: { name: 'EMS', phone: '11183', img_url: '/images/delivery_icon/EMS.png' },
HHTT: { name: '天天快递', phone: '400-188-8888', img_url: '/images/delivery_icon/HHTT.png' },
JD: { name: '京东快递', phone: '950616', img_url: '/images/delivery_icon/JD.png' },
UC: { name: '优速快递', phone: '95349', img_url: '/images/qishou@2x.png' },
DBL: { name: '德邦快递', phone: '95353', img_url: '/images/delivery_icon/DBL.png' },
ZJS: { name: '宅急送', phone: '400-678-9000', img_url: '/images/qishou@2x.png' },
TNT: { name: 'TNT快递', phone: '400-820-9868', img_url: '/images/qishou@2x.png' },
UPS: { name: 'UPS', phone: '400-820-8388', img_url: '/images/qishou@2x.png' },
DHL: { name: 'DHL', phone: '95380', img_url: '/images/qishou@2x.png' },
FEDEX: { name: 'FEDEX联邦(国内件)', phone: '400-886-1888', img_url: '/images/qishou@2x.png' },
FEDEX_GJ: { name: 'FEDEX联邦(国际件)', phone: '400-886-1888', img_url: '/images/qishou@2x.png' }
};
return config[shipperCode] || {};
},
checkArray (obj) {
checkArray(obj) {
if (obj != undefined && obj != null && obj[0] != undefined) {
return true;
} else {
......@@ -176,5 +191,5 @@ export default {
</script>
<style lang="scss">
@import "./ViewLogistics.scss";
@import './ViewLogistics.scss';
</style>
......@@ -341,6 +341,7 @@
},
data() {
return {
linkage_id:'',
is_datashow:true,
bools:'',
......@@ -430,6 +431,12 @@
],
isShow:false,
chindformList:[],
myProps:{
label:'cate_name',
value: 'cate_id',
children: '',
},
//上传图片相关的
c_pics: [],
c_pics1:[],
......@@ -611,6 +618,7 @@
}
},
async findEleProduct(results){
console.log('查找商品')
uni.showLoading({title:'请稍后'});
let res=await findEleProduct({code:results.code});
......@@ -662,6 +670,8 @@
this.codeDisabled=true;//条形码输入框是否禁止输入
this.c_pics=[{code:0,data:res.data.photo,msg:"success",time:"1587101904"}];
// console.log(this.chindformList);
for(var i = 0; i < this.chindformList.length; i++) {
if(this.chindformList[i].cate_id==res.data.cate_id){
this.cate_name=this.chindformList[i].cate_name;
......@@ -669,6 +679,9 @@
}
}
}
},
myProps(){
},
saoma(e){
uni.scanCode({
......@@ -725,11 +738,11 @@
},
confirm(e){
console.log(e)
this.cate_name = e.item.cate_name;
this.form.cate_id =e.item.cate_id;
this.index = e.index;
},
pickerone(){
this.$refs.picker.show() // 显示
},
......@@ -742,6 +755,7 @@
//分类选中
bindPickerChange(e){
console.info(e.detail.value);
console.log(this.chindformList)
this.cate_name = this.chindformList[e.detail.value].cate_name;
this.form.cate_id = this.chindformList[e.detail.value].cate_id;
this.index = e.detail.value;
......@@ -761,6 +775,7 @@
},
//修改的时候赋初始值
async eleProductInfofun(){
let that=this;
let res = await eleProductInfo({
product_id:this.product_id,
});
......@@ -800,24 +815,32 @@
this.form.commission = res.data.commission, //返佣比例
this.form.sell_type = res.data.sell_type, // 售卖类型
this.form.mandatory = res.data.mandatory
if(typeof res.data.video_photos == 'object'){
this.video_photos=res.data.video_photos;//轮播
this.detail_photos=res.data.detail_photos;//详情
res.data.video_photos.map(item=>{ //轮播
for(let i in res.data.video_photos){
this.c_pics1.push({
code:0,
data:item,
data:res.data.video_photos[i],
msg:"success",
time:"1587101904"
})
})
res.data.detail_photos.map(item=>{ //详情
});
}
}
if(typeof res.data.detail_photos == 'object'){
this.detail_photos=res.data.detail_photos;//详情
for(let i in res.data.detail_photos){
this.c_pics2.push({
code:0,
data:item,
data:res.data.detail_photos[i],
msg:"success",
time:"1587101904"
})
})
});
}
}
//下拉分类 初始值
this.chindformList.forEach((item,index)=>{
if(item.cate_id==res.data.cate_id){
......@@ -826,6 +849,8 @@
}
});
if(res.data.commodity_type == 'ordinary') {
this.ordinary.map(item=>{
if(this.linkage_product_id == item.product_id){
......@@ -890,6 +915,7 @@
// this.$api.msg("秒杀库存或限购数量不能为小数");
// return false;
// }
let can = {
action:this.product_id==''?'add':'edit',
linkage_id:this.linkage_id,
......@@ -983,6 +1009,7 @@
let res = await typeManager({});
if(res.code==0){
this.chindformList = res.data;
if(this.product_id!=undefined && this.product_id!=""){
this.eleProductInfofun();
}
......
......@@ -230,9 +230,11 @@
this.goods_list = [];
this.page = 1;
this.isallshow=false;
this.tabactive = 1,
// this.goods_product_list();
this.searchProduct();
},
computed: {
staticUrl () {//静态资源地址
return this.$store.state.staticUrl;
......
......@@ -368,15 +368,6 @@
}
},
onLoad() {
getskipShop({
type: 'bld'
}).then(res => {
if (res.code == 0) {
this.is_bld = res.data.is_bld
// this.is_bld = 1
}
})
//显示欢迎回来~
setTimeout(() => {
this.$refs.Welcome.show();
......@@ -410,6 +401,16 @@
// uni.stopPullDownRefresh();//结束下拉刷新
},
onShow() {
getskipShop({
type: 'bld'
}).then(res => {
if (res.code == 0) {
this.is_bld = res.data.is_bld
// this.is_bld = 1
}
})
this.storeIndexfun();
......@@ -439,7 +440,15 @@
activity_nucleus(param).then(res => {
if (res.code == 0) {
this.$api.msg(res.msg);
uni.showModal({
title:'提示',
content:res.msg,
showCancel:false,
confirmText:'确定',
success() {
}
})
}else{
this.$api.msg(res.msg);
}
......
//快速发货
.delivery{
min-height: 100vh;
background: #F2F3F3;
padding: 20upx 0;
}
.fahuobox{
margin: 0 24upx;
padding: 0 20upx;
padding-bottom: 60upx;
background: #FFFFFF;
.selectcell{
height: 107upx;
line-height: 107upx;
border-bottom: 1px solid #F4F4F4;
.names{
font-size:30upx;
color:rgba(0,0,0,1);
}
.icons1{
width:48upx;
height:38upx;
margin-right: 26upx;
}
.icons2{
width:10upx;
height:18upx;
}
.icons3{
width:39upx;
height:42upx;
margin-right: 26upx;
}
.tosaomaboxs{
width: 50px;
text-align: right;
}
.icons4{
width:25upx;
height:25upx;
}
}
}
.btnsbox{
margin-top: 60upx;
.btns{
width:300upx;
height:90upx;
line-height: 90upx;
text-align: center;
border:1px solid rgba(160,160,160,1);
border-radius:6upx;
font-size:32upx;
color:rgba(0,0,0,1);
}
.btns1{
border:0;
background: #FF6600;
color:#FFFFFF;
}
}
\ No newline at end of file
<template>
<!-- 商家发货 -->
<view class="delivery fahuo yocode">
<view class="fahuobox">
<!-- <picker @change="bindPickerChange" :value="index" :range="logsitslist"> -->
<view class="selectcell flex ali-c jus-b" @tap='pickerone'>
<view class="flex ali-c">
<image class="icons1" src="/static/news/fahuo.png" mode=""></image>
<view class="names">{{chindtext==''?'选择快递公司':chindtext}}</view>
</view>
<image class="icons2" src="/static/news/xiala.png" mode=""></image>
</view>
<lb-picker ref="picker" :list="logsitslist" :value='chindtext' range-key="label" :props="myProps" @confirm='confirm'></lb-picker>
<!-- </picker> -->
<view class="selectcell flex ali-c jus-b">
<view class="flex ali-c">
<image class="icons3" src="/static/news/dindhao.png" mode=""></image>
<input class="names" type="text" value="" v-model="logscode" placeholder="输入快递单号" />
</view>
<view @tap="tosaoyisao" class="tosaomaboxs">
<image class="icons4" src="/static/news/saoma.png" mode=""></image>
</view>
</view>
<view class="btnsbox flex ali-c jus-a">
<view class="btns">取消</view>
<view class="btns btns1" @tap="oneKeyShipmentsfun">确定发货</view>
</view>
</view>
</view>
</template>
<script>
import { logisticsList,setDeliverGoods } from '@/utils/api/api.js';
export default{
data(){
return{
myProps: {
label: 'value',
value: 'cate_id',
},
logsitslist:[
"圆通速递",
"百世快递",
"中通快递",
"申通快递",
"顺丰速运",
"韵达速递",
"邮政快递包裹",
"EMS",
"天天快递",
"京东快递",
"优速快递",
"德邦快递",
"宅急送",
"TNT快递",
"UPS",
"DHL",
"FEDEX联邦(国内件)",
"FEDEX联邦(国际件)"
],
index:0,
chindtext:"",
logscode:"",
refund_id: '',//订单id
}
},
onLoad(options) {
this.refund_id = options.refund_id;
// console.log(this.refund_id)
this.logisticsListfun();
},
methods:{
confirm(e){
console.log(e)
this.chindtext=e.value;
},
pickerone(){
this.$refs.picker.show() // 显示
},
async logisticsListfun(){
let res = await logisticsList({
});
if(res.code==0){
this.logsitslist =res.data;
}else{
this.$api.msg(res.msg);
}
},
//快速发货 确认发货
async oneKeyShipmentsfun(){
if(this.chindtext==""){
this.$api.msg("请选中快速公司");
return false;
}
if(this.logscode==""){
this.$api.msg("物流单号不能为空");
return false;
}
let res = await setDeliverGoods({
logisticCode:this.logscode,//物流号 快递单号 订单号
shipperCode:this.chindtext,//名称 快递公司编号 名称
refund_id:this.refund_id,//订单id 订单id
shop_id:'',
});
if(res.code==0){
uni.showModal({
title: '提示',
content: res.msg,
showCancel: false,
success(res) {
uni.$emit("isDelorder",{action: 'setDeliverGoods'});
uni.navigateBack({}); //返回上一页
}
})
}else{
this.$api.msg(res.msg);
}
},
//请求end
bindPickerChange(e){
console.log(e.detail.value,'哈哈哈');
this.chindtext = this.logsitslist[e.detail.value];
},
//扫码方法
tosaoyisao(){
uni.scanCode({
success: (res)=> {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
// let qrcodecon =
this.logscode = res.result;
}
});
}
}
}
</script>
<style lang="scss">
@import "ExamineDelivery.scss"
</style>
......@@ -333,6 +333,6 @@
}
.orderlist{
padding: 100upx 24upx 0 24upx;box-sizing: border-box;
padding: 40upx 24upx 0 24upx;box-sizing: border-box;
}
</style>
<template>
<!-- 添加收获地址 OK -->
<!-- 添加收货地址呀 -->
<view class="content addddd yicode">
<view class="row b-b">
<text class="tit">收货人</text>
<input class="input" type="text" v-model="name" placeholder="请填写收货人姓名" placeholder-class="placeholder" />
</view>
<view class="row b-b">
<text class="tit">手机号码</text>
<input class="input" type="number" v-model="mobile" placeholder="请填写手机号码" placeholder-class="placeholder" />
</view>
<view class="row b-b">
<text class="tit">收货地址</text>
<input class="input" type="text" v-model="address" placeholder="请填写详细地址" placeholder-class="placeholder s24" @input="doorplate" />
</view>
<view class="submitbtn active" @tap="refundExamine">确定</view>
</view>
</template>
<script>
import { shopExamine } from '@/utils/api/api.js';
export default {
data() {
return {
name: '',
mobile: '',
address: '',
type: 1,//同意
refund_id: ''
}
},
onShow() {
},
onHide() {
},
onUnload(){
},
onLoad(option){
console.log(option)
this.refund_id = option.refund_id;
},
methods: {
refundExamine(){//提交
if(!this.name){
this.$api.msg('请填写收货人姓名');
return;
}
if(!/(^1[3|4|5|7|8|9][0-9]{9}$)/.test(this.mobile)){
this.$api.msg('请输入正确的手机号码');
return;
}
if(!this.address){
this.$api.msg('请输入详细收货地址');
return;
}
// 参数
let params = {
contacts: this.name,//收货联系人
contact_number : this.mobile,//收货联系电话
addr: this.address,//收货地址
type: this.type,
refund_id: this.refund_id,
}
shopExamine(params).then(res=>{
// console.log(res)
if(res.code == 0){
uni.$emit('isDelorder', { action: 'shopExamine' });//监听操作成功后跳回上一页自动刷新列表
uni.showToast({
title: '退款审核成功',
duration: 2000,
icon: 'none'
});
uni.navigateBack({})
}else{
this.$api.msg(res.msg);
}
})
},
}
}
</script>
<style lang="scss">
page {
background: $page-color-base;
padding-top: 16upx;
// margin-top: 20upx;
}
.row {
display: flex;
align-items: center;
position: relative;
padding: 0 30upx;
height: 88upx;
background: #fff;
.immgs {
width: 13upx;
height: 24upx;
opacity: 0.5;
}
.tit {
flex-shrink: 0;
//width: 120upx;
width: 200upx;
font-size: 30upx;
color: $font-color-dark;
}
.input {
flex: 1;
font-size: 30upx;
color: $font-color-dark;
}
.icon-shouhuodizhi {
font-size: 36upx;
color: $font-color-light;
}
}
.default-row {
margin-top: 16upx;
.tit {
flex: 1;
}
switch {
transform: translateX(16upx) scale(0.9);
}
}
.add-btn {
display: flex;
align-items: center;
justify-content: center;
width: 690upx;
height: 80upx;
margin: 60upx auto;
font-size: $font-lg;
color: #fff;
background-color: $base-color;
border-radius: 10upx;
box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
}
.addddd{
// margin-top: 40upx;
}
</style>
......@@ -164,3 +164,39 @@
.mt-20{
margin-top: 20upx;
}
.setSelect{
width:601upx;
height:660upx;
background:rgba(255,255,255,1);
border-radius:10upx;
.titelsf{
height: 88upx;
line-height: 88upx;
text-align: center;
font-size:32upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
}
.selectbottom{
background: #FFFFFF;
padding: 0 24upx;
}
.setbtns{
margin: 0 auto;
margin-top: 90upx;
width:501upx;
height:88upx;
line-height:88upx;
text-align: center;
background:rgba(255,105,0,1);
border-radius:10upx;
font-size:32upx;
color:rgba(255,255,255,1);
}
}
.textarea{
font-size: 34upx;
padding: 30upx;
}
\ No newline at end of file
......@@ -4,210 +4,342 @@
<!-- order 订单 -->
<view class="storeOrder yocode">
<view class="ordertab flex ali-c">
<view class="tabitem flex1" @tap="taggletab" v-for="(item,index) in order_status_list" :key="index" data-current="1" :data-statusTab="item.status_id" :data-status="item.status" :data-is_dianping="item.is_dianping" :data-sale_status="item.sale_status" >
<view class="title" :class="{active:tabactive==item.status_id}" >{{item.status_name}}</view>
<view
class="tabitem flex1"
@tap="taggletab"
v-for="(item, index) in order_status_list"
:key="index"
data-current="1"
:data-statusTab="item.status_id"
:data-status="item.status"
:data-is_dianping="item.is_dianping"
:data-sale_status="item.sale_status"
>
<view class="title" :class="{ active: tabactive == item.status_id }">{{ item.status_name }}</view>
</view>
</view>
<!-- v-if="tabactive==1" -->
<view class="listorder" >
<view class="orderItem" v-for="(item,indexMax) in order" :key="indexMax">
<!-- 正常订单 -->
<view class="listorder">
<view class="orderItem" v-for="(item, indexMax) in order" :key="indexMax">
<view class="order_head flex ali-c jus-b">
<view class="headl flex ali-c">
<image class="storeicon" src="/static/news/storeicon.png" mode=""></image>
<!-- <image class="storeicon" :src="staticUrl+item.photo" mode="" ></image> -->
<view class="storename">{{item.shop_name}}</view>
<view class="storename">{{ item.shop_name }}</view>
</view>
<view class="headr">
<!-- 订单状态 -->
<view >{{item.order_status}}</view>
</view>
<view>{{ item.order_status }}</view>
</view>
<view class="cretime mt-10">
下单时间:{{item.create_time}}
</view>
<view class="cretime mt-10">下单时间:{{ item.create_time }}</view>
<view>
<!-- 列表 -->
<view class="order_body " v-for="(productList,index1) in item.products" :key="index1" >
<view class="flex mb-20" v-for="(product,index) in productList.orderGoods" :key="index">
<view class="order_body " v-for="(productList, index1) in item.products" :key="index1">
<view class="flex mb-20" v-for="(product, index) in productList.orderGoods" :key="index">
<!-- <image class="imgs" src="" mode=""></image> -->
<image class="imgs" :src="staticUrl+product.photo" v-if="product.photo" mode=""></image>
<image class="imgs" :src="staticUrl+item.photo" mode="" v-else ></image>
<image class="imgs" :src="staticUrl + product.photo" v-if="product.photo" mode=""></image>
<image class="imgs" :src="staticUrl + item.photo" mode="" v-else></image>
<view class="body_r flex1 ">
<view class="title twoline">{{product.goods_name}}</view>
<view class="title twoline">{{ product.goods_name }}</view>
<view class="prices">
<text class="text">价格{{product.fprice}}</text>
<text class="text">价格{{ product.fprice }}</text>
<!-- <text class="text">充值价{{product.recprice}}</text> -->
</view>
<view class="specs">
<text class="text">规格:{{product.sku_name}}</text>
<text class="text">规格:{{ product.sku_name }}</text>
<!-- <text class="text">包装:2袋装</text> -->
<view>数量: x {{product.goodsnum}}</view>
<view>数量: x {{ product.goodsnum }}</view>
</view>
</view>
</view>
<view v-if="productList.operation!=''" class="order_foot bodbod flex jus-e mb-20 mt-20">
<block v-for="(action,index) in productList.operation" :key="index">
<view class='btnss' :data-index="indexMax" :data-orderid='item.order_id' :data-vendor='index1' @tap.stop="operation" :data-action='action.way' :data-is_ld='item.buytype'>{{action.name}}</view>
<view v-if="productList.operation != ''" class="order_foot bodbod flex jus-e mb-20 mt-20">
<block v-for="(action, index) in productList.operation" :key="index">
<view
class="btnss"
:data-index="indexMax"
:data-orderid="item.order_id"
:data-vendor="index1"
@tap.stop="operation"
:data-action="action.way"
:data-is_ld="item.buytype"
>
{{ action.name }}
</view>
</block>
</view>
</view>
</view>
<view class="order_foot flex jus-e mb-20 " >
<view class="heji"><text class="fuhao">{{item.username_tel}}</text></view>
<view class="order_foot flex jus-e mb-20 ">
<view class="heji">
<text class="fuhao">{{ item.username_tel }}</text>
</view>
</view>
<view class="pricebox flex ali-c jus-b" style="margin-top: 20upx;">
<!-- 剩余时间 只有待支付的时候有 未付款的时候才有 -->
<view class="titme oneline flex1" v-if="item.status==4">退款原因:{{item.refund_details}}</view>
<view class="titme oneline flex1" v-if="item.status == 4">退款原因:{{ item.refund_details }}</view>
<view v-else></view>
<view class="heji">合计<text class="fuhao">¥</text><text class="shuzi">{{item.total}}</text></view>
<view class="heji">
合计
<text class="fuhao">¥</text>
<text class="shuzi">{{ item.total }}</text>
</view>
</view>
<view class="order_foot flex jus-e">
<!-- 已发货 -->
<block v-for="(action,index) in item.order_operation" :key="index">
<view class='btnss' :data-index="indexMax" :data-orderid='item.order_id' @tap.stop="operation" :data-action='action.way' :data-is_ld='item.buytype'>{{action.name}}</view>
<block v-for="(action, index) in item.order_operation" :key="index">
<view class="btnss" :data-index="indexMax" :data-orderid="item.order_id" @tap.stop="operation" :data-action="action.way" :data-is_ld="item.buytype">
{{ action.name }}
</view>
</block>
</view>
</view>
</view>
<!-- 售后/退款订单 -->
<view class="listorder">
<view class="orderItem" v-for="(item, indexMax) in refundOrder" :key="indexMax">
<view class="order_head flex ali-c jus-b">
<view class="headl flex ali-c">
<image class="storeicon" src="/static/news/storeicon.png" mode=""></image>
<!-- <image class="storeicon" :src="staticUrl+item.photo" mode="" ></image> -->
<view class="storename">{{ item.shop_name }}</view>
</view>
<view class="headr">
<!-- 订单状态 -->
<view>{{ item.status_text }}</view>
</view>
</view>
<view class="cretime mt-10">下单时间:{{ item.create_time }}</view>
<view>
<!-- 列表 -->
<view class="order_body " v-for="(product, index1) in item.ordergoods" :key="index1">
<view class="flex mb-20">
<!-- <image class="imgs" src="" mode=""></image> -->
<image class="imgs" :src="staticUrl + product.photo" v-if="product.photo" mode=""></image>
<image class="imgs" :src="staticUrl + item.photo" mode="" v-else></image>
<view class="body_r flex1 ">
<view class="title twoline">{{ product.goods_name }}</view>
<view class="prices">
<text class="text">价格{{ product.price }}</text>
<!-- <text class="text">充值价{{product.recprice}}</text> -->
</view>
<view class="specs">
<text class="text">规格:{{ product.sku_name }}</text>
<!-- <text class="text">包装:2袋装</text> -->
<view>数量: x {{ product.num }}</view>
</view>
</view>
</view>
</view>
</view>
<view class="order_foot flex jus-e mb-20 ">
<view class="heji">
<text class="fuhao">{{ item.username_tel }}</text>
</view>
</view>
<view class="pricebox flex ali-c jus-e" style="margin-top: 20upx;">
<!-- <view class="titme oneline flex1" v-if="item.status==4">退款原因:{{item.refund_details}}</view> -->
<!-- <view v-else></view> -->
<view class="heji">
合计
<text class="fuhao">¥</text>
<text class="shuzi">{{ item.refund_price }}</text>
</view>
</view>
<view class="order_foot flex jus-e">
<!-- shop_button 按钮 -->
<block v-for="(action, index) in item.shop_button" :key="index">
<view
class="btnss"
:data-index="indexMax"
:data-refundid="item.refund_id"
@tap.stop="operation"
:data-action="action.way"
:data-name="action.name"
:data-type="item.type"
>
{{ action.name }}
</view>
</block>
</view>
</view>
</view>
<pageScrollTo v-if="isshowtop" ></pageScrollTo>
<pageScrollTo v-if="isshowtop"></pageScrollTo>
<!-- 返回顶部 -->
<!-- 拒绝退款弹窗填写拒绝原因 -->
<uni-popup :show="showReasonRefusal" :mask-click="false" type="center">
<view class="setSelect">
<view class="titelsf">拒绝退款</view>
<view class="inputfboxs flex ali-c"><textarea class="textarea" value="" placeholder="请填写拒绝退款原因" selection-start="-1" @input="HandleReasonRefusal" /></view>
<view class="setbtns" @tap="saveReason">确定</view>
</view>
</uni-popup>
</view>
</template>
<script>
// import { StoreorderStatus, orderGoodsList } from '@/utils/api/order.js';
// import { StoreorderStatus, orderGoodsList } from '@/utils/api/order.js';
import uniPopup from '@/components/uni-popup/uni-popup.vue';
import { orderStatus, orderList, oneKeyCancel, consentRefund, refuseRefund, getRefundOrderList, setReceivingGoods, shopExamine } from '@/utils/api/api.js';
import {orderStatus,orderList,oneKeyCancel,consentRefund,refuseRefund} from "@/utils/api/api.js";
import pageScrollTo from "@/components/pageScrollTo/pageScrollTo.vue"
export default {
components:{
import pageScrollTo from '@/components/pageScrollTo/pageScrollTo.vue';
export default {
components: {
pageScrollTo,
uniPopup
},
data(){
return{
tabactive:"all",
statusTab:"all",
status:"",
is_dianping:"",
order_status_list:[],
order:[],
is_loading_done:false,
pageNum:0,
currentTab:0,
sale_status:"",
isshowtop:false,
action:'',
}
data() {
return {
tabactive: 'all',
statusTab: 'all',
status: '',
is_dianping: '',
order_status_list: [],
order: [], //正常订单
refundOrder: [], //售后订单
is_loading_done: false,
pageNum: 0,
currentTab: 0,
sale_status: '',
isshowtop: false,
action: '',
ReasonRefusal: '', //拒绝退款原因
showReasonRefusal: false //拒绝退款弹窗
};
},
computed: {
staticUrl () {//静态资源地址
staticUrl() {
//静态资源地址
return this.$store.state.staticUrl;
}
},
//下拉刷新
onPullDownRefresh(){
this.is_loading_done=false;
onPullDownRefresh() {
this.is_loading_done = false;
this.pageNum = 0;
this.order = [];
this.refundOrder=[];
this.initializedata();
},
onUnload(){ //页面卸载的时候
uni.setStorageSync('obj',{order_id:'',index:-1});
onUnload() {
//页面卸载的时候
uni.setStorageSync('obj', { order_id: '', index: -1 });
uni.$off('isDelorder'); //取消监听
uni.setStorageSync('scrollTop',0);
uni.setStorageSync('scrollTop', 0);
},
onPageScroll(e){ //监听滚动
uni.setStorageSync('scrollTop',e.scrollTop);
onPageScroll(e) {
//监听滚动
uni.setStorageSync('scrollTop', e.scrollTop);
//处理返回顶部
if(e.scrollTop>400){
if (e.scrollTop > 400) {
this.isshowtop = true;
}else{
} else {
this.isshowtop = false;
}
},
onReachBottom(){ //滚动到最底部
if(!this.is_loading_done){
onReachBottom() {
//滚动到最底部
if (!this.is_loading_done) {
this.initializedata();
}
},
onLoad(options) {
// console.log(options)
var that = this;
this.statusTab=options.current ? options.current : "all";// 订单状态
this.status= options.status ? options.status : "all";
this.is_dianping= options.is_dianping ? options.is_dianping : 0;
this.statusTab = options.current ? options.current : 'all'; // 订单状态
this.status = options.status ? options.status : 'all';
this.is_dianping = options.is_dianping ? options.is_dianping : 0;
let params = {};
orderStatus(params).then(res => {
if (res.code == 0) {
let order_status_list = res.data;
this.order_status_list = order_status_list;
}
})
});
this.initializedata();
},
onShow() {
this.action='';
uni.$on("isDelorder", res => {
let index=uni.getStorageSync('obj').index;
let order=this.order;
this.action=res.action;
if(res.action=="oneKeyShipments"){ //确认发货
if(this.status!='all'){ //只有不是在全部订单下才删除这一项
order.splice(index,1); //删除某项
this.$set(this,'order',order);
}else{
this.action = '';
uni.$on('isDelorder', res => {
let index = uni.getStorageSync('obj').index;
let order = this.order;
this.action = res.action;
if (res.action == 'oneKeyShipments') {
//确认发货
if (this.status != 'all') {
//只有不是在全部订单下才删除这一项
order.splice(index, 1); //删除某项
this.$set(this, 'order', order);
} else {
this.listDeal();
}
} else if (res.action == 'setReceivingGoods' || res.action == 'shopExamine' || res.action == 'setDeliverGoods') {
//确认收货、商家审核、立即发货
this.listDeal2();
}
uni.$off('isDelorder'); //取消监听
})
});
if(this.action==''){
if (this.action == '') {
this.listDeal();
}
},
methods:{
listDeal(){
let order_id=uni.getStorageSync('obj').order_id;
let index=uni.getStorageSync('obj').index;
uni.showLoading({title:"请稍后..."});
methods: {
// 重新刷新正常订单列表
listDeal() {
let order_id = uni.getStorageSync('obj').order_id;
let index = uni.getStorageSync('obj').index;
uni.showLoading({ title: '请稍后...' });
orderList({
status: this.status,
is_dianping: this.is_dianping,
sale_status: this.sale_status,
page: Math.ceil((index+1)/10)
page: Math.ceil((index + 1) / 10)
}).then(res => {
uni.hideLoading();
for(let item of res.data){
if(item.order_id==order_id){
this.$set(this.order,index,item);
for (let item of res.data) {
if (item.order_id == order_id) {
this.$set(this.order, index, item);
break;
}
}
})
});
},
totkxq(data){
// 重新刷新售后订单列表
listDeal2() {
let refund_id = uni.getStorageSync('refund').refund_id;
let index = uni.getStorageSync('refund').index;
uni.showLoading({
title: '请稍后...'
});
getRefundOrderList({
page: Math.ceil((index + 1) / 20),
pagesize: 20
}).then(res => {
console.log(res);
uni.hideLoading(); //结束加载
for (let item of res.data) {
if (item.refund_id == refund_id) {
this.$set(this.refundOrder, index, item);
break;
}
}
});
},
totkxq(data) {
uni.showModal({
title: '退款原因',
content: data,
showCancel:false,
confirmText:"我知道了",
confirmColor:"#ff6900",
success: (res)=> {
showCancel: false,
confirmText: '我知道了',
confirmColor: '#ff6900',
success: res => {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
......@@ -217,157 +349,244 @@
});
},
//点击切换
taggletab(event){
taggletab(event) {
let that = this;
let statusTab = event.currentTarget.dataset.statustab;
let status = event.currentTarget.dataset.status;
let is_dianping = event.currentTarget.dataset.is_dianping;
let sale_status = event.currentTarget.dataset.sale_status;
this.order= [];
this.statusTab= statusTab;
this.order = [];
this.refundOrder=[];
this.statusTab = statusTab;
this.tabactive = statusTab;
this.status = status;
this.is_dianping= is_dianping;
this.sale_status= sale_status;
this.is_loading_done=false;
this.currentTab=event.target.dataset.current;
this.pageNum=0;
this.is_dianping = is_dianping;
this.sale_status = sale_status;
this.is_loading_done = false;
this.currentTab = event.target.dataset.current;
this.pageNum = 0;
console.log(this.refundOrder,'aaaa');
this.initializedata();
},
// 拒绝退款原因关闭弹窗
saveReason(e) {
this.showReasonRefusal = false; //关闭弹窗
let refund_id = uni.getStorageSync('refund').refund_id;
let params = {
examine_reason: this.ReasonRefusal,
refund_id: refund_id,
shop_id: '',
type: 2 //拒绝
};
if (!this.ReasonRefusal) {
this.$api.msg('请填写拒绝原因');
return;
}
shopExamine(params).then(res => {
// console.log(res)
if (res.code == 0) {
uni.$emit('isDelorder', { action: 'shopExamine' });
this.$api.msg('退款审核成功');
} else {
this.$api.msg(res.msg);
}
});
this.showReasonRefusal = false; //关闭弹窗
},
// 获取拒绝退款原因
HandleReasonRefusal(e) {
this.ReasonRefusal = e.detail.value;
},
/**
* 初始化数据
*/
initializedata () {
initializedata() {
this.pageNum++;
uni.showLoading({
title: '加载中...'
});
var that = this;
// 点击售后/退款请求新接口
if (that.statusTab == 7) {
let params = {
page: that.pageNum,
shop_id: ''
};
getRefundOrderList(params).then(res => {
uni.stopPullDownRefresh();
uni.hideLoading(); //结束加载
if (res.data == null || res.data.length == 0) {
this.is_loading_done = true;
this.$api.msg('没有更多了~');
} else {
this.refundOrder = res.data;
}
uni.pageScrollTo({
scrollTop: uni.getStorageSync('scrollTop'),
duration: 0
});
});
return;
}
// 正常订单列表
let params = {
status: that.status,
is_dianping: that.is_dianping,
sale_status: that.sale_status,
page: this.pageNum,
page: this.pageNum
};
uni.showLoading({
title: '加载中...'
});
orderList(params).then(res => {
uni.stopPullDownRefresh();
uni.hideLoading();//结束加载
uni.hideLoading(); //结束加载
if (res.data == null || res.data.length == 0) {
this.is_loading_done= true;
this.$api.msg("没有更多了~");
this.is_loading_done = true;
this.$api.msg('没有更多了~');
} else {
this.order = [...this.order,...res.data]
this.order = [...this.order, ...res.data];
}
uni.pageScrollTo({
scrollTop: uni.getStorageSync('scrollTop'),
duration: 0
});
})
});
},
/**
* 订单操作
*/
operation (event) {
operation(event) {
let that = this;
let action = event.currentTarget.dataset.action;
let order_id = event.currentTarget.dataset.orderid;
let vendor = event.currentTarget.dataset.vendor;
let index = Number(event.currentTarget.dataset.index);;
uni.setStorageSync('obj',{order_id,index});
let index = Number(event.currentTarget.dataset.index);
let refund_id = event.currentTarget.dataset.refundid;
let name = event.currentTarget.dataset.name;
let type = event.currentTarget.dataset.type;
uni.setStorageSync('obj', { order_id, index });
uni.setStorageSync('refund', { refund_id, index });
switch (action) {
case 'oneKeyCancel': //一键核销 OK
that.requestOrder(order_id, action);
console.info("一键核销");
console.info('一键核销');
break;
case 'oneKeyShipments': //一键发货 OK
console.info("一键发货");
that.express(order_id, action,vendor);
console.info('一键发货');
that.express(order_id, action, vendor);
break;
case 'checkLogistics': //查看物流
that.logistics(order_id, action,vendor);
console.info("查看物流");
that.logistics(order_id, action, vendor);
console.info('查看物流');
break;
case 'orderDetails': //订单详情
console.info("订单详情");
that.orderDetails(order_id,order_id);
console.info('订单详情');
that.orderDetails(order_id, order_id);
break;
case 'consentRefund': //同意退款
this.clrefund(1, order_id, index);
break;
case 'refuseRefund': //拒绝退款
this.clrefund(2, order_id, index);
break;
case 'consentRefund'://同意退款
this.clrefund(1,order_id,index);
// 售后/退款新接口
case 'getRefundDetail': //订单详情
that.getRefundDetail(refund_id);
break;
case 'refuseRefund'://拒绝退款
this.clrefund(2,order_id,index);
case 'viewLogistics': //查看物流
that.viewLogistics(refund_id);
break;
case 'setReceivingGoods': //确认收货
that.requestRefundOrder(refund_id, action);
break;
case 'shopExamine': //同意&拒绝
that.shopExamine(refund_id, name, type);
break;
case 'setDeliverGoods': //立即发货
that.setDeliverGoods(refund_id, action);
break;
default:
//其他的 退款啥的 处理ok了
console.info("1111",action);
// console.info('1111', action);
break;
}
},
// 正常订单
//处理退款
clrefund(type,orderid,index){
clrefund(type, orderid, index) {
uni.showModal({
title: '提示',
content:type==1?'是否确定退款?':'是否拒绝退款',
success:(res)=> {
if(res.confirm){
new Promise((reslove, reject) =>{
if(type==1){ //同意退款
consentRefund({order_id:orderid}).then(res=>{
reslove(res)
}).catch(err=>{
reject(err)
content: type == 1 ? '是否确定退款?' : '是否拒绝退款',
success: res => {
if (res.confirm) {
new Promise((reslove, reject) => {
if (type == 1) {
//同意退款
consentRefund({ order_id: orderid })
.then(res => {
reslove(res);
})
}else{ //拒绝退款
refuseRefund({order_id:orderid}).then(res=>{
.catch(err => {
reject(err);
});
} else {
//拒绝退款
refuseRefund({ order_id: orderid })
.then(res => {
reslove(res);
}).catch(err=>{
reject(err)
})
.catch(err => {
reject(err);
});
}
}).then((res)=>{
if(res.code==0){
if(this.status!="all"){
let order=this.order;
order.splice(index,1); //删除某项
this.$set(this,'order',order);
}else{
})
.then(res => {
if (res.code == 0) {
if (this.status != 'all') {
let order = this.order;
order.splice(index, 1); //删除某项
this.$set(this, 'order', order);
} else {
this.listDeal();
}
}else{
} else {
this.$api.msg(returnRes.msg);
}
}).catch((err)=>{
console.log(err,'失败了');
//this.$api.msg(err.msg)
})
.catch(err => {
console.log(err, '失败了');
//this.$api.msg(err.msg)
});
}
}
})
});
},
//查看物流
logistics: function (order_id, action,vendor) {
logistics: function(order_id, action, vendor) {
uni.navigateTo({
url: '/pages/ViewLogistics/ViewLogistics?order_id=' + order_id + '&action=' + action + '&vendor=' + vendor
})
});
},
//跳转订单详情 商家查看店铺的订单详情
orderDetails: function (order_id) {
orderDetails: function(order_id) {
uni.navigateTo({
url:`/pages/order/shoporderdetail/shoporderdetail?order_id=${order_id}`,
})
url: `/pages/order/shoporderdetail/shoporderdetail?order_id=${order_id}`
});
},
// 跳转发快递订单 ok 发货
express (order_id, action,vendor) {
express(order_id, action, vendor) {
uni.navigateTo({
url: '/pages/order/delivery/delivery?order_id=' + order_id + '&action=' + action + '&vendor=' + vendor
})
});
},
//请求后台操作订单 一键核销
requestOrder(order_id, action) {
var that = this;
let params = {
order_id: order_id,
order_id: order_id
//action: action,
};
//一键核销方法
......@@ -379,20 +598,99 @@
showCancel: false,
success(res) {
uni.redirectTo({
url: '/pages/order/shopOrder?status=' + that.status + "&current=" + that.statusTab,
})
url: '/pages/order/shopOrder?status=' + that.status + '&current=' + that.statusTab
});
}
})
});
} else {
this.$api.msg(res.msg);
}
})
});
},
// 售后/退款订单
// 订单详情
getRefundDetail: function(refund_id) {
uni.navigateTo({
url: `/pages/order/shoprefundorderdetail/shoprefundorderdetail?refund_id=${refund_id}`
});
},
//查看物流
viewLogistics: function(refund_id) {
uni.navigateTo({
url: `/pages/ViewLogistics/ViewLogistics?refund_id=${refund_id}`
});
},
//立即发货
setDeliverGoods:function(refund_id) {
uni.navigateTo({
url: '/pages/order/ExamineDelivery/ExamineDelivery?refund_id=' + refund_id
});
},
// 请求后台操作售后订单确认收货
requestRefundOrder: function(refund_id, action) {
let params = {
refund_id: refund_id,
shop_id: ''
};
setReceivingGoods(params).then(res => {
// console.log(res);
if (res.code == 0) {
uni.$emit('isDelorder', { action: 'setReceivingGoods' });
uni.showToast({
title: '收货成功',
duration: 2000,
icon: 'none'
});
// this.listDeal2(); //确认收货成功自动刷新售后列表
} else {
this.$api.msg(res.msg);
}
});
},
// 请求后台操作售后订单同意&拒绝
shopExamine: function(refund_id, name, type) {
if (name == '同意') {
if (type == 3) {
//直接退款
var params = {
refund_id: refund_id,
shop_id: '',
type: 1
};
uni.showModal({
title: '提示',
content: '请问是否确认同意退款?',
success: res => {
if (res.confirm) {
shopExamine(params).then(res => {
if (res.code == 0) {
uni.$emit('isDelorder', { action: 'shopExamine' });
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'none'
});
this.listDeal2(); //同意退款后自动刷新售后列表
}
});
}
}
});
} else if (type == 1 || type == 2) {
//退款退货 换货refund_id, name, type
uni.navigateTo({
url: `/pages/order/shopExamine/shopExamine?refund_id=${refund_id}&type=${type}`
});
}
} else if (name == '拒绝') {
this.showReasonRefusal = true;
}
}
}
};
</script>
<style lang="scss">
@import "./shopOrder.scss"
@import './shopOrder.scss';
</style>
......@@ -36,10 +36,10 @@
</view>
<view class="bt_min flex1">{{detail.shop_name}}</view>
</view>
<view class="flex mt-30" v-for='(item,index) in detail.products' :key='index' >
<view class="flex mt-30" v-for='(item,index) in detail.products' :key='index'>
<view class="tuimg br_10 ov">
<image class="imgs" :src="staticUrl+item.photo" v-if="item.photo"></image>
<image class="imgs" :src="staticUrl+detail.photo" v-else ></image>
<image class="imgs" :src="staticUrl+detail.photo" v-else></image>
</view>
<view class="flex1 ml-25 goodsboxs">
<view class="sz_30 bt_hei twoline names" style="height:65upx">{{item.goods_name}}</view>
......@@ -78,6 +78,7 @@
<view class="name">订单编号</view>
<view class="vlas">{{logs.order_sn}}</view>
</view>
<view class="cellitems flex ali-c jus-b">
<view class="name">创建时间</view>
<view class="vlas">{{logs.createtime}}</view>
......@@ -87,10 +88,14 @@
<view class="vlas">{{detail.refund_details}}</view>
</view>
<view class="cellitems flex ali-c jus-b" >
<view class="name" style="width: 30%;">订单备注:</view>
<view class="vlas" style="text-align: left;">{{detail.message==''?'':detail.message}}</view>
</view>
</view>
<!-- 订单信息 -->
<!-- 联系客服 -->
<view class="ordertelbox flex ">
<view class="itemboxss flex1 flex flexc" @tap="xlsj" :data-tel='detail.addr.mobile'>
......@@ -111,17 +116,23 @@
</template>
<script>
import { orderDetails } from "@/utils/api/api.js";
import {
orderDetails
} from "@/utils/api/api.js";
export default {
data(){
data() {
return {
order_id:"",
detail:{addr:{mobile:""}},
logs:{},
order_id: "",
detail: {
addr: {
mobile: ""
}
},
logs: {},
}
},
computed: {
staticUrl () {//静态资源地址
staticUrl() { //静态资源地址
return this.$store.state.staticUrl;
}
},
......@@ -129,14 +140,14 @@
this.order_id = options.order_id;
this.initializedata();
},
methods:{
xlsj(){//联系客户
methods: {
xlsj() { //联系客户
uni.makePhoneCall({
phoneNumber: this.detail.addr.mobile //仅为示例
});
},
//联系平台
lxpt(){
lxpt() {
uni.makePhoneCall({
phoneNumber: '15907083784' //仅为示例
});
......@@ -148,10 +159,10 @@
};
orderDetails(params).then(res => {
console.log(res);
if(res.code<0){
if (res.code < 0) {
// app.showToast({title: res.msg});
this.$api.msg(res.msg);
}else{
} else {
// that.setData({
// detail: res.data.detail,
// logs:res.data.logs,
......@@ -164,7 +175,7 @@
}
})
},
callTel: function (e) {
callTel: function(e) {
uni.makePhoneCall({
phoneNumber: e.currentTarget.dataset.tel // 仅为示例,并非真实的电话号码
})
......@@ -178,26 +189,32 @@
<style lang="scss">
/* pages/shop//order/weidianorder/weidianLine_item/weidianLine_item.wxss */
.ml-20{
.ml-20 {
margin-left: 20upx;
}
.mt-20{
.mt-20 {
margin-top: 20upx;
}
.mr-20{
.mr-20 {
margin-right: 20upx;
}
.mt-30{
.mt-30 {
margin-top: 30upx;
}
.ml-25{
.ml-25 {
margin-left: 25upx;
}
.sz_30{
.sz_30 {
font-size: 30upx;
}
.beijingimg {
background: linear-gradient(#FF5A03,#FF4216);
background: linear-gradient(#FF5A03, #FF4216);
width: 100%;
height: 300upx;
position: absolute;
......@@ -205,140 +222,164 @@
z-index: 1;
padding-left: 20upx;
padding-top: 25px;
.onetitle{
color:#FFFFFF;
.onetitle {
color: #FFFFFF;
font-size: 30upx;
}
.twotitle{
color:#FFFFFF;
.twotitle {
color: #FFFFFF;
font-size: 28upx;
}
}
.addresone{
.addresone {
margin-top: 20px;
}
.boxs {
position: relative;
z-index:2;
z-index: 2;
width: 100%;
padding: 24upx;
box-sizing: border-box;
}
.bt_min{
.bt_min {
font-size: 30upx;
}
.addrnamesv{
.addrnamesv {
font-size: 30upx;
}
.topbox_20 {
width: 100%;
background: rgba(255,255,255,1);
background: rgba(255, 255, 255, 1);
border-radius: 14rpx;
padding: 20upx;
box-sizing: border-box;
font-size: 30upx;
}
.skunames{
.skunames {
font-size: 24upx;
}
page{
page {
position: relative;
padding-bottom: 100upx;
background: #F5F5F5;
}
.weizhiimg{
.weizhiimg {
width: 30upx;
height: 46upx;
.imgs{
.imgs {
width: 30upx;
height: 46upx;
}
}
.shuwuimg{
width:67upx;
height:67upx;
border-radius:4upx;
.shuwuimg {
width: 67upx;
height: 67upx;
border-radius: 4upx;
overflow: hidden;
}
.btbox{
width:190upx;
height:77upx;
background:rgba(255,255,255,1);
border-radius:4upx;
.btbox {
width: 190upx;
height: 77upx;
background: rgba(255, 255, 255, 1);
border-radius: 4upx;
}
.xiangyouimg{
width:14upx;
height:24upx;
.xiangyouimg {
width: 14upx;
height: 24upx;
}
.dianhuimg{
width:42upx;
height:42upx;
.dianhuimg {
width: 42upx;
height: 42upx;
}
.kuai{
width:40upx;
height:40upx;
.kuai {
width: 40upx;
height: 40upx;
text-align: center;
line-height: 40upx;
font-size:24upx;
font-weight:500;
color:rgba(255,255,255,1);
font-size: 24upx;
font-weight: 500;
color: rgba(255, 255, 255, 1);
}
.dibu_qr{
.dibu_qr {
position: fixed;
bottom: 0;
width:100%;
background:rgba(255,255,255,1);
width: 100%;
background: rgba(255, 255, 255, 1);
padding: 10upx 24upx;
box-sizing: border-box;
}
.beizhu{
.beizhu {
width: 150upx;
text-align: right;
}
.tubiimg{
width:27upx;
height:24upx;
.imgs{
width:27upx;
height:24upx;
.tubiimg {
width: 27upx;
height: 24upx;
.imgs {
width: 27upx;
height: 24upx;
}
}
.tuimg{
width:183upx;
height:183upx;
.imgs{
width:183upx;
height:183upx;
.tuimg {
width: 183upx;
height: 183upx;
.imgs {
width: 183upx;
height: 183upx;
}
}
view{
view {
line-height: 112%;
letter-spacing:3upx
letter-spacing: 3upx
}
.dianhuimg{
width:43upx;
height:43upx;
.dianhuimg {
width: 43upx;
height: 43upx;
}
.shuxian{
width:1px;
height:100upx;
background:rgba(242,242,242,1);
.shuxian {
width: 1px;
height: 100upx;
background: rgba(242, 242, 242, 1);
}
.duanxian{
width:45upx;
height:1px;
background: rgba(181,181,181,1);
.duanxian {
width: 45upx;
height: 1px;
background: rgba(181, 181, 181, 1);
}
.cptjimg{
width:100%;
height:310upx;
.cptjimg {
width: 100%;
height: 310upx;
}
/* 取消弹窗 */
.zan-dialog__mask {
position: fixed;
......@@ -373,91 +414,106 @@
display: block;
}
.goodsboxs{
.goodsboxs {
font-size: 30upx;
.names{
.names {
font-size: 30upx;
}
.prices{
.prices {
font-size: 30upx;
}
.sumns{
color:rgb(192, 190, 190);
.sumns {
color: rgb(192, 190, 190);
}
}
//联系kefu 客服
.ordertelbox{
.ordertelbox {
margin: 0 24upx;
margin-top: 20upx;
height:89upx;
background:rgba(255,255,255,1);
border-radius:0px 0px 14upx 14upx;
.itemboxss{
height: 89upx;
background: rgba(255, 255, 255, 1);
border-radius: 0px 0px 14upx 14upx;
.itemboxss {
position: relative;
height: 89upx;
line-height: 89upx;
.img{
width:43upx;
height:43upx;
.img {
width: 43upx;
height: 43upx;
margin-right: 20upx;
}
.name{
font-size:30upx;
color:rgba(0,0,0,1);
.name {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
}
.itemboxss:nth-child(1):after{
.itemboxss:nth-child(1):after {
content: "";
width:1px;
height:89px;
background:rgba(242,242,242,1);
width: 1px;
height: 89px;
background: rgba(242, 242, 242, 1);
position: absolute;
top:0;
top: 0;
right: 0;
}
}
//客服end
//价格明细列表
.cellboxs{
.cellboxs {
margin: 20upx 0;
margin-top: 20upx;
.cellitems{
.cellitems {
padding: 0 20upx;
height: 88upx;
line-height: 88upx;
border-bottom: 1px solid #F5F1F1;
background: #FFFFFF;
.name{
font-size:30upx;
color:rgba(0,0,0,1);
.name {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
.vlas{
font-size:30upx;
color:rgba(0,0,0,1);
.vlas {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
}
.cellitems:nth-last-child(1){
border:0;
.cellitems:nth-last-child(1) {
border: 0;
}
.subsbox{
.name{
font-size:30upx;
font-family:PingFang SC;
font-weight:bold;
color:rgba(0,0,0,1);
.subsbox {
.name {
font-size: 30upx;
font-family: PingFang SC;
font-weight: bold;
color: rgba(0, 0, 0, 1);
}
.vlas{
color:#FF6900;
.fuhao{
.vlas {
color: #FF6900;
.fuhao {
font-size: 30upx;
}
.shuzi{
font-family:PingFang SC;
font-weight:bold;
.shuzi {
font-family: PingFang SC;
font-weight: bold;
font-size: 36upx;
}
}
......
<template>
<!-- 商家查看自己店铺的售后订单详情 -->
<!-- 订单 order -->
<view class="shoporderdetale xiangq yocode">
<view class="beijingimg">
<image src="https://luma.jxdsy.cn/static/applet5/2020/index/group_img/defeated.png" mode="" style="width: 100%;height: 240upx;"></image>
<view class="twotitle">{{detail.desc}}</view>
</view>
<view class="boxs">
<view class="topbox_20 mt-20">
<view class="ali-c">
<view class="weizhiimg"><image class="imgs" src="/static/news/address.png"></image></view>
<view class="flex1 ml-20 addrnamesv">
<view class="sz_30 bt_hei">{{ detail.adress.name }} {{ detail.adress.mobile }}</view>
<view class="sz_30 bt_hei mt-10">{{ detail.adress.addr }}</view>
</view>
</view>
</view>
<!-- 退款进度及图片 -->
<!-- <view class="topbox_20 mt-20">
<view class="ali-z sz_30 flexv jus-c ali-c" style="height: 200upx;">
<image src="https://luma.jxdsy.cn/static/applet5/images/refund/tuikuan2.png" mode="" style="width: 530upx;height: 76upx;"></image>
<view style="color: #F64F15;margin-top: 40upx;">{{ detail.status_text }}</view>
</view>
</view> -->
<!-- 售后说明 -->
<view class="topbox_20 mt-20" v-if="detail.refund_datail != '' || detail.refund_pics.length>0 ">
<view style="font-size: 30upx;font-weight: 500;">售后说明</view>
<view class="mt-20 refund_datail">{{ detail.refund_datail }}</view>
<view class="datail_img">
<image
:src="staticUrl + item"
mode=""
v-for="(item, index) in detail.refund_pics"
style="width: 220upx;height: 196upx;flex-grow: 1;padding: 4upx;"
></image>
</view>
</view>
<view class="topbox_20 mt-20">
<view class="ali-c">
<view class="tubiimg mr-20"><image class="imgs" src="/static/news/storeicon.png"></image></view>
<view class="bt_min flex1">{{ detail.shop_name }}</view>
</view>
<view class="flex mt-30" v-for="(item, index) in detail.ordergoods" :key="index">
<view class="tuimg br_10 ov">
<image class="imgs" :src="staticUrl + item.photo" v-if="item.photo"></image>
<image class="imgs" :src="staticUrl + detail.photo" v-else></image>
</view>
<view class="flex1 ml-25 goodsboxs">
<view class="sz_30 bt_hei twoline names" style="height:65upx">{{ item.goods_name }}</view>
<view class="sz_26 bt_hei mt-10 prices">
价格{{ item.price }}
<!-- <text class="ml-20 prices" v-if="detail.buytype==0 && item.recprice >0">充值价{{item.recprice}}</text> -->
</view>
<view class="sz_26 inp_hui mt-10 skunames">
规格:{{ item.sku_name }}
<text class="ml-20"></text>
</view>
<view class="sz_26 inp_hui mt-10 sumns">数量: x {{ item.num }}</view>
</view>
</view>
</view>
<view class="topbox_20 mt-20 ">
<view class="ali-z sz_30 bt_hei flex ali-c jus-b">
<view>总计:</view>
<view style="color: red;">¥{{ detail.need_pay }}</view>
</view>
</view>
<!-- 第二排 -->
<view class="cellboxs cellboxstow">
<view class="subsbox cellitems flex ali-c jus-b"><view class="name">订单信息</view></view>
<view class="cellitems flex ali-c jus-b">
<view class="name">订单编号</view>
<view class="vlas">{{ detail.order_sn }}</view>
</view>
<view class="cellitems flex ali-c jus-b">
<view class="name">创建时间</view>
<view class="vlas">{{ detail.create_time }}</view>
</view>
<!-- <view class="cellitems flex ali-c jus-b">
<view class="name">退款原因</view>
<view class="vlas">{{ detail.refund_datail }}</view>
</view> -->
<!-- <view class="cellitems flex ali-c jus-b">
<view class="name">退款图片</view>
<view class="vlas">{{ detail.refund_pics }}</view>
</view> -->
</view>
<!-- 订单信息 -->
<!-- 联系客服 -->
<view class="ordertelbox flex ">
<view class="itemboxss flex1 flex flexc" @tap="xlsj" :data-tel="detail.adress.mobile">
<image class="img" src="/static/news/telicon1.png" mode=""></image>
<view class="name">联系客户</view>
</view>
<view class="itemboxss flex1 flex flexc" @tap="lxpt">
<image class="img" src="/static/news/kefuicon.png" mode=""></image>
<view class="name">联系平台</view>
</view>
</view>
</view>
<!-- 底部按钮 -->
<!-- <view class="flexfootsubbtn flex jus-e ali-c order_foot" style="border-top: 1px solid #DEDEDE;" v-if="detail.buttons != ''">
<view
:class="[item.way == 'shopExamine' ? 'btnitemTow' : 'btnitem', item.class_name]"
@tap.stop="operation(item.way)"
v-for="(item, index) in detail.buttons"
:key="index"
>
{{ item.name }}
</view>
</view> -->
</view>
</template>
<script>
import { getRefundDetail } from '@/utils/api/api.js';
export default {
data() {
return {
refund_id: '',
detail: {adress:{}} //售后详情
// logs:{},
};
},
computed: {
staticUrl() {
//静态资源地址
return this.$store.state.staticUrl;
}
},
onLoad(options) {
this.refund_id = options.refund_id;
this.initializedata();
},
methods: {
xlsj() {
//联系客户
uni.makePhoneCall({
phoneNumber: this.detail.addr.mobile //仅为示例
});
},
//联系平台
lxpt() {
uni.makePhoneCall({
phoneNumber: '15907083784' //仅为示例
});
},
initializedata() {
var that = this;
let params = {
refund_id: that.refund_id
};
getRefundDetail(params).then(res => {
// console.log(res);
if (res.code < 0) {
// app.showToast({title: res.msg});
this.$api.msg(res.msg);
} else {
this.detail = res.data;
// this.logs = res.data.logs;
//this.CONFIG =
}
});
},
callTel: function(e) {
uni.makePhoneCall({
phoneNumber: e.currentTarget.dataset.tel // 仅为示例,并非真实的电话号码
});
}
}
};
</script>
<style lang="scss">
/* pages/shop//order/weidianorder/weidianLine_item/weidianLine_item.wxss */
.ml-20 {
margin-left: 20upx;
}
.mt-20 {
margin-top: 20upx;
}
.mr-20 {
margin-right: 20upx;
}
.mt-30 {
margin-top: 30upx;
}
.ml-25 {
margin-left: 25upx;
}
.sz_30 {
font-size: 30upx;
}
.beijingimg {
// background: linear-gradient(#ff5a03, #ff4216);
width: 100%;
// padding: 30upx 24upx;
position: relative;
.twotitle {
position: absolute;
z-index: 99;
top: 60upx;
color: rgba(255, 255, 255, 1);
font-size: 38upx;
font-weight: 500;
line-height: 40upx;
margin-left: 40upx;
}
}
.addresone {
margin-top: 20px;
}
.boxs {
position: relative;
z-index: 2;
width: 100%;
padding: 0upx 24upx;
// margin-top: 60upx;
box-sizing: border-box;
}
.bt_min {
font-size: 30upx;
}
.addrnamesv {
font-size: 30upx;
}
.topbox_20 {
width: 100%;
background: rgba(255, 255, 255, 1);
border-radius: 14rpx;
padding: 20upx;
box-sizing: border-box;
font-size: 30upx;
}
.skunames {
font-size: 24upx;
}
page {
position: relative;
padding-bottom: 100upx;
background: #f5f5f5;
}
.weizhiimg {
width: 30upx;
height: 46upx;
.imgs {
width: 30upx;
height: 46upx;
}
}
.shuwuimg {
width: 67upx;
height: 67upx;
border-radius: 4upx;
overflow: hidden;
}
.btbox {
width: 190upx;
height: 77upx;
background: rgba(255, 255, 255, 1);
border-radius: 4upx;
}
.xiangyouimg {
width: 14upx;
height: 24upx;
}
.dianhuimg {
width: 42upx;
height: 42upx;
}
.kuai {
width: 40upx;
height: 40upx;
text-align: center;
line-height: 40upx;
font-size: 24upx;
font-weight: 500;
color: rgba(255, 255, 255, 1);
}
.dibu_qr {
position: fixed;
bottom: 0;
width: 100%;
background: rgba(255, 255, 255, 1);
padding: 10upx 24upx;
box-sizing: border-box;
}
.beizhu {
width: 150upx;
text-align: right;
}
.tubiimg {
width: 27upx;
height: 24upx;
.imgs {
width: 27upx;
height: 24upx;
}
}
.tuimg {
width: 183upx;
height: 183upx;
.imgs {
width: 183upx;
height: 183upx;
}
}
view {
line-height: 112%;
letter-spacing: 3upx;
}
.dianhuimg {
width: 43upx;
height: 43upx;
}
.shuxian {
width: 1px;
height: 100upx;
background: rgba(242, 242, 242, 1);
}
.duanxian {
width: 45upx;
height: 1px;
background: rgba(181, 181, 181, 1);
}
.cptjimg {
width: 100%;
height: 310upx;
}
/* 取消弹窗 */
.zan-dialog__mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10;
background: rgba(0, 0, 0, 0.5);
display: none;
}
.zan-dialog__container {
position: fixed;
bottom: 400upx;
width: 650upx;
height: 350upx;
margin-left: 50upx;
background: #f8f8f8;
transform: translateY(300%);
transition: all 0.4s ease;
z-index: 12;
border-radius: 20upx;
/* box-shadow: 0px 3px 3px 2px gainsboro; */
}
.zan-dialog--show .zan-dialog__container {
transform: translateY(0);
}
.zan-dialog--show .zan-dialog__mask {
display: block;
}
.goodsboxs {
font-size: 30upx;
.names {
font-size: 30upx;
}
.prices {
font-size: 30upx;
}
.sumns {
color: rgb(192, 190, 190);
}
}
//联系kefu 客服
.ordertelbox {
margin: 0 24upx;
margin-top: 20upx;
height: 89upx;
background: rgba(255, 255, 255, 1);
border-radius: 0px 0px 14upx 14upx;
.itemboxss {
position: relative;
height: 89upx;
line-height: 89upx;
.img {
width: 43upx;
height: 43upx;
margin-right: 20upx;
}
.name {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
}
.itemboxss:nth-child(1):after {
content: '';
width: 1px;
height: 89px;
background: rgba(242, 242, 242, 1);
position: absolute;
top: 0;
right: 0;
}
}
//客服end
//价格明细列表
.cellboxs {
margin: 20upx 0;
margin-top: 20upx;
.cellitems {
padding: 0 20upx;
height: 88upx;
line-height: 88upx;
border-bottom: 1px solid #f5f1f1;
background: #ffffff;
.name {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
.vlas {
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
}
.cellitems:nth-last-child(1) {
border: 0;
}
.subsbox {
.name {
font-size: 30upx;
font-family: PingFang SC;
font-weight: bold;
color: rgba(0, 0, 0, 1);
}
.vlas {
color: #ff6900;
.fuhao {
font-size: 30upx;
}
.shuzi {
font-family: PingFang SC;
font-weight: bold;
font-size: 36upx;
}
}
}
}
.datail_img{
// width: 100%;
display: flex;
flex-direction: row;
justify-content: start;
align-items: center;
flex-wrap: wrap;
}
.refund_datail{
margin-top: 20upx;
}
</style>
<template>
<view>
<view class="projuctTab flex">
<view class="tabitems flex1" :class="{active:tabactive==1}" @tap="taggletab(1)">
<view class="tabtitle">参与人员</view>
<!-- ({{count[0]}}) -->
</view>
<view class="tabitems flex1" :class="{active:tabactive==2}" @tap="taggletab(2)">
<view class="tabtitle">核销人员</view>
<!-- ({{count[1]}}) -->
</view>
</view>
<view class="" style="margin-top:90upx ;" :hidden="!(tabactive==1)">
<view class="">
<view class="" style="text-align: center;height: 120upx;line-height: 120upx;font-weight: bold;font-size: 32upx;">
已有 <text style="color: #21B94C;font-size: 60upx;">{{receivePeopleNumber}}</text>人领取 还剩{{unreceivePeopleNumber}}人未核销
已有 <text style="color: #21B94C;font-size: 60upx;">{{receivePeopleNumber}}</text>人参与
</view>
</view>
<view class="" style="height: 100upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 2upx;"v-for="(item,index) in getAllDetail">
<view class="fx " style="justify-content: space-between;background-color: #fff; align-items: center;height: 100%">
<view class="fx" style="width: 75%;align-items: center;">
<view style="height: 80upx;width: 80upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;">
<image :src="item.face" style="display: inline;"></image>
</view>
<view style="margin:0 0 0 10upx;width: 75%;padding: 20upx 10upx;">
<view style="font: 34upx 微软雅黑;padding-bottom:10upx ;" class="oneline">{{item.nickname}}</view>
<view style="font-size:20upx;color:rgb(116, 113, 113);padding-top: 10upx;">{{item.create_time}}</view>
</view>
</view>
<view style="width: 15%;height: 104upx;">
<!-- <image src="/static/lingqu.png" mode="" style="width:100% ;height: 100%;display: inline;"></image> -->
</view>
<!-- 关注插槽 -->
<!-- <slot name="before"></slot> -->
</view>
<!-- <slot name="content"> </slot> -->
</view>
<view v-if="getAllDetail.length <= 0" style="text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;">
<image src="https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png" mode=""></image>
</view>
</view>
<view class="" style="height: 160upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 20upx;" v-if="getDetail.length > 0 " v-for="(item,index) in getDetail">
<view class="" style="margin-top:90upx ;" :hidden="tabactive==1">
<view class="">
<view class="" style="text-align: center;height: 120upx;line-height: 120upx;font-weight: bold;font-size: 32upx;">
已有 <text style="color: #21B94C;font-size: 60upx;">{{enterPeopleNumber}}</text>人核销
</view>
</view>
<view class="" style="height: 100upx;padding: 0 24upx;background-color: rgb(255, 255, 255);margin-bottom: 2upx;"
v-for="(item,index) in getScanDetail">
<view class="fx " style="justify-content: space-between;background-color: #fff; align-items: center;
height: 100%">
<view class="fx" style="width: 75%;align-items: center;" >
<view style="height: 120upx;width: 120upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;">
<view class="fx" style="width: 75%;align-items: center;">
<view style="height: 80upx;width: 80upx;border-radius: 120upx;text-align: center;line-height: 80upx;overflow: hidden;">
<image :src="item.face" style="display: inline;"></image>
</view>
......@@ -20,10 +80,8 @@
</view>
<view style="width: 15%;height: 104upx;">
<!-- <text style="color:#DC143C;padding: 0 12upx;border-radius: 10upx;font-size: 32upx;">
<view style="width: 10%;height: 70upx;">
</text> -->
<image src="/static/lingqu.png" mode="" style="width:100% ;height: 100%;display: inline;"></image>
</view>
<!-- 关注插槽 -->
......@@ -33,11 +91,12 @@
<!-- <slot name="content"> </slot> -->
</view>
<view v-if="getScanDetail.length <= 0" style="text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;">
<image src="https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png" mode=""></image>
</view>
</view>
<view v-if="getDetail.length <= 0" style="text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;">
还没有人领取~~
</view>
</view>
</template>
......@@ -46,82 +105,263 @@
activity_user
} from '@/utils/api/merchant.js';
export default {
data(){
data() {
return {
shop_id:'',
activity_id:'',
getDetail:[],
page:1,
receivePeopleNumber:0,
unreceivePeopleNumber:0,
shop_id: '',
activity_id: '',
getAllDetail: [], // 参与人员列表
getScanDetail: [], //核销人员列表
allpage: 0, // 参与人员分页数
scanpage: 0, //核销人员分页数
enterPeopleNumber:0,//核销人数
receivePeopleNumber: 0, //参与人数
// unreceivePeopleNumber: 0,
tabactive: 1,
}
},
onLoad(options) {
let that = this
that.activity_id = options.activity_id
uni.getStorage({
key: 'userInfo',
success(res) {
that.shop_id = res.data.shop_id
}
})
this.activityUserAll(that.shop_id, that.activity_id); //获取参与人员
},
/**
* 触底事件
*/
onReachBottom() {
// console.log('触底了',this.tabactive)
if (this.tabactive == 1) {
this.allpage++
// this.activityUserAll(this.shop_id, this.activity_id, 0, this.allpage)
activity_user({
shop_id:this.shop_id,
activity_id:this.activity_id,
nucleus:1,
page:this.page
}).then(res=>{
if(res.code==0&&res.data.list.length>0){
this.page++
this.getDetail = res.data.list;
this.receivePeopleNumber=res.data.receivePeopleNumber;
this.unreceivePeopleNumber=res.data.unreceivePeopleNumber;
uni.stopPullDownRefresh();
}else{
uni.$api.msg('没有更多数据了')
shop_id: shop_id,
activity_id: activity_id,
nucleus: 0,
page: this.allpage
}).then(res => {
if (res.code == 0) {
this.getScanDetail =[...this.getScanDetail,...res.data.list]
this.receivePeopleNumber = res.data.receivePeopleNumber;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
} else if (this.tabactive == 2) {
this.scanpage++
activity_user({
shop_id: shop_id,
activity_id: activity_id,
nucleus: 1,
page: this.scanpage
}).then(res => {
if (res.code == 0) {
this.getScanDetail =[this.getScanDetail,...res.data.list]
this.enterPeopleNumber = res.data.receivePeopleNumber;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
// this.activityUserScan(this.shop_id, this.activity_id, 1, this.scanpage)
} else {
return false;
}
},
/**
* 下拉刷新
*/
onPullDownRefresh() {
this.page = 1
activity_user({
shop_id:this.shop_id,
activity_id:this.activity_id,
nucleus:1
}).then(res=>{
if(res.code==0){
this.getDetail = res.data.list
this.receivePeopleNumber=res.data.receivePeopleNumber;
this.unreceivePeopleNumber=res.data.unreceivePeopleNumber;
this.allpage = 1
this.scanpage = 1
this.activityUserAll(this.shop_id, this.activity_id, )
this.activityUserScan(this.shop_id, this.activity_id)
uni.stopPullDownRefresh();
},
methods: {
taggletab(index) {
this.tabactive = index;
if (index == 1) {
this.activityUserAll(this.shop_id, this.activity_id, )
} else if (index == 2) {
this.activityUserScan(this.shop_id, this.activity_id)
}
})
},
onLoad(options) {
let that = this
that.activity_id = options.activity_id
uni.getStorage({
key: 'userInfo',
success(res) {
that.shop_id = res.data.shop_id
/**
* @param {Number} nucleus
* @param {Number} activity_id
* @param {Number} shop_id
*/
activityUserAll(shop_id, activity_id, nucleus = 0, pages = 0) {
activity_user({
shop_id: shop_id,
activity_id: activity_id,
nucleus: nucleus,
page: pages
}).then(res => {
if (res.code == 0) {
this.getAllDetail =res.data.list
this.receivePeopleNumber = res.data.receivePeopleNumber;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
},
/**
* @param {Number} nucleus
* @param {Number} activity_id
* @param {Number} shop_id
*/
activityUserScan(shop_id, activity_id, nucleus = 1, pages = 0) {
activity_user({
shop_id:that.shop_id,
activity_id:that.activity_id,
nucleus:1
}).then(res=>{
if(res.code==0){
this.getDetail = res.data.list;
this.receivePeopleNumber=res.data.receivePeopleNumber;
this.unreceivePeopleNumber=res.data.unreceivePeopleNumber;
shop_id: shop_id,
activity_id: activity_id,
nucleus: nucleus,
page: pages
}).then(res => {
if (res.code == 0) {
this.getScanDetail =res.data.list
this.enterPeopleNumber = res.data.receivePeopleNumber;
// this.unreceivePeopleNumber = res.data.unreceivePeopleNumber;
}
})
}
},
}
</script>
<style>
page{
background-color: #EEEEEE;
<style lang="scss">
.projuctlist {
margin: 130upx 24upx;
padding-top: 18upx;
background: rgba(255, 255, 255, 1);
border-radius: 14upx;
.itempro {
position: relative;
border-bottom: 1px solid rgba(220, 220, 220, 1);
padding: 20upx;
.thumbnail {
width: 170upx;
height: 170upx;
border-radius: 6upx;
margin-right: 27upx;
margin-left: 20upx;
}
.infobox {
.title {
font-size: 34upx;
color: rgba(51, 51, 51, 1);
//margin-bottom: 5upx;
}
.time {
//margin-bottom: 5upx;
}
.time,
.price {
font-size: 30upx;
color: rgba(153, 153, 153, 1);
}
}
.btnbox {
position: absolute;
bottom: 5px;
right: 5px;
.btns {
width: 100upx;
height: 60upx;
line-height: 60upx;
text-align: center;
border: 1upx solid rgba(160, 160, 160, 1);
border-radius: 4upx;
font-size: 30upx;
color: rgba(0, 0, 0, 1);
}
.btnboxdel {
margin-left: 16upx;
}
.btnboxxj {
background: #FF6900;
color: #FFFFFF;
border: 0;
margin-left: 16upx;
}
}
}
}
.projuctTab {
background: #FFFFFF;
width: 100%;
height: 98upx;
line-height: 98upx;
position: fixed;
top: 0;
/* #ifdef H5 */
top: 86upx;
/* #endif */
left: 0;
z-index: 99;
.tabitems {
text-align: center;
.tabtitle {
text-align: center;
height: 98upx;
line-height: 98upx;
font-size: 30upx;
display: inline-block;
box-sizing: border-box;
color: #333333;
}
}
.tabitems.active {
.tabtitle {
font-family: PingFang SC;
font-weight: bold;
color: #FF6900;
border-bottom: 1px solid #FF6900;
}
}
}
.fx {
display: flex;
}
......
......@@ -15,7 +15,7 @@
<view class="projuctlist" :hidden="!(tabactive==1)">
<view class="" v-if="start_activity.length>0">
<checkbox-group >
<checkbox-group>
<!-- 单个商品 -->
<view class="itempro flex " v-for="(item,index) in start_activity" :key="index" @click="jumpDetail(item.activity_id)">
<!-- <label class="ali-c">
......@@ -23,22 +23,25 @@
</label> -->
<image class="thumbnail" :src="staticUrl + item.picture" mode=""></image>
<view class="infobox" style="width: 70%;">
<view class="title oneline" style="height:45upx ;">{{item.goods_name}}</view>
<!-- <view class="time">上架时间:{{item.create_time}}</view> -->
<view>
<view style="font-size:26rpx;font-weight:bold;">领取时间:</view>
<view style="font-size:24rpx;color:#656565">{{item.start}}{{item.end}}</view>
</view>
</view>
<view class="btnbox flex" >
<view class="btnbox flex">
<!-- <view class="btns btnboxdel" @tap="deleteEleProductfun(item,index)">删 除</view> -->
<!-- <view class="btns btnboxxj" @tap="Selectiondata(item)" v-if="tabactive==1 && isselect==1">加入活动</view> -->
<!-- <view class="btns btnboxxj" @tap="sold_outfun(item.id,1,index)" v-else-if="tabactive==1">下 架</view> -->
<!-- <view class="btns btnboxxj" @tap="sold_outfun(item.id,0,index)" v-show="tabactive==2">上 架</view> -->
<!-- <view class="btns btnboxxj" @click="setSpecs(item.product_id)" >规格</view> -->
<view >
<view>
<view class="btnboxdel flex" style="align-items: center;" @click.stop="switch1Change">
活动开关:<switch :data-activity_id="item.activity_id" :checked="item.state==1" @change="switch1Change" />
活动开关:
<switch :data-activity_id="item.activity_id" :checked="item.state==1" @change="switch1Change" />
<view class="btns btnboxdel" @tap.stop="tochanges(item,index)">修 改</view>
</view>
</view>
......@@ -49,14 +52,14 @@
</view>
<view v-if="start_activity.length <= 0" style="text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;">
还没有人领取~~
<image src="https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png" mode=""></image>
</view>
</view>
<view class="projuctlist" :hidden="!(tabactive==2)">
<view class="" v-if="end_activity.length > 0">
<checkbox-group >
<checkbox-group>
<!-- 单个商品 -->
<view class="itempro flex " v-for="(item,index) in end_activity" :key="index" @click="jumpDetail(item.activity_id)">
<!-- <label class="ali-c">
......@@ -86,7 +89,7 @@
</checkbox-group>
</view>
<view v-if="end_activity.length <= 0" style="text-align: center;width: 100%;height:1000upx;line-height: 1000upx;font-size: 50upx;color:#8C8C8C ;">
还没有人领取~~
<image src="https://luma.jxdsy.cn//static/applet5/images/uts/meiyoule.png" mode=""></image>
</view>
</view>
......@@ -109,8 +112,8 @@
page: 0,
start_activity: [],
end_activity: [],
endpages:0,
startpages:0
endpages: 0,
startpages: 0
}
},
......@@ -130,8 +133,8 @@
})
},
//下拉刷新
onPullDownRefresh(){
if(this.tabactive == 1){
onPullDownRefresh() {
if (this.tabactive == 1) {
this.startpages = 0
activity_select({
shop_id: this.shop_id,
......@@ -144,7 +147,7 @@
}
})
}else if(this.tabactive == 2){
} else if (this.tabactive == 2) {
this.endpages = 0
activity_select({
shop_id: this.shop_id,
......@@ -161,7 +164,7 @@
},
//上拉触底
onReachBottom(){
onReachBottom() {
if (this.tabactive == 1) {
activity_select({
shop_id: this.shop_id,
......@@ -169,7 +172,7 @@
is_date: 2
}).then(res => {
if (res.code == 0) {
this.start_activity = [...this.start_activity,...res.data.data]
this.start_activity = [...this.start_activity, ...res.data.data]
}
})
......@@ -180,7 +183,7 @@
is_date: 1
}).then(res => {
if (res.code == 0) {
this.end_activity = [...this.this.end_activity,...res.data.data]
this.end_activity = [...this.end_activity, ...res.data.data]
}
})
}
......@@ -215,9 +218,9 @@
methods: {
jumpDetail(activity_id){
jumpDetail(activity_id) {
uni.navigateTo({
url:`/pages/publishActivities/activityDetail/activityDetail?activity_id=${activity_id}`
url: `/pages/publishActivities/activityDetail/activityDetail?activity_id=${activity_id}`
})
},
//修改活动
......@@ -229,12 +232,12 @@
},
// 查找产品
findEleProduct(){
findEleProduct() {
},
switch1Change(e) {
if(e.type=='change'){
if (e.type == 'change') {
console.log(e)
if (e.detail.value) {
activity_close({
......@@ -258,8 +261,8 @@
}
})
}
}else{
return ;
} else {
return;
}
},
......
......@@ -164,6 +164,7 @@
const d = await getSharePoster({
// backgroundImage:"/static/news/sjrwm.png",
backgroundImage:this.statictowUrl+"static/applet5/images/uts/sjrwm.png",
//暂时使用这个
......@@ -239,16 +240,23 @@
// Context.setFillStyle('black');
// Context.setGlobalAlpha(0.3);
// Context.fillRect(0, bgObj.height - bgObj.height*0.2, bgObj.width, bgObj.height*0.2);
}
},
});
console.log('海报生成成功, 临时路径: ' + d.poster.tempFilePath)
this.poster.finalPath = d.poster.tempFilePath;
console.log(this.poster.finalPath)
}
this.qrShow = true;
} catch (e) {
_app.hideLoading();
_app.showToast(JSON.stringify(e));
console.log(JSON.stringify(e));
console.log('海报生成成功, 临时路径: ' + d.poster.tempFilePath)
}
},
saveImage() {
......@@ -280,6 +288,8 @@
}
</script>
<style lang="scss">
.hideCanvasView {
position: relative;
......
......@@ -300,12 +300,22 @@ export function orderList(data)
return request.post("order/orderList",data,{ noAuth : true});
}
// 商城退款/售后列表(新接口)
export function getRefundOrderList(data) {
return request.post("RefundOrder/getRefundOrderList",data, { noAuth: false });
}
//商城订单详情
export function orderDetails(data)
{
return request.post("order/orderDetails",data,{ noAuth : true});
}
// 商城退款/售后订单详情页面(新接口)
export function getRefundDetail(data) {
return request.post("RefundOrder/getRefundDetail",data, { noAuth: false });
}
//商城订单一键核销
export function oneKeyCancel(data)
{
......@@ -331,6 +341,26 @@ export function checkLogistics(data)
return request.post("order/checkLogistics",data,{ noAuth : true});
}
// 商城退款/售后 查看物流
export function viewLogistics(data) {
return request.post("RefundOrder/viewLogistics",data, { noAuth: false });
}
// 商城退款/售后 确认收货
export function setReceivingGoods(data) {
return request.post("RefundOrder/setReceivingGoods",data, { noAuth: false });
}
// 商城退款/售后 商家审核
export function shopExamine(data) {
return request.post("RefundOrder/shopExamine",data, { noAuth: false });
}
// 商城退款/售后 立即发货
export function setDeliverGoods(data) {
return request.post("RefundOrder/setDeliverGoods",data, { noAuth: false });
}
//商城订单同意退款
export function consentRefund(data)
{
......
......@@ -38,12 +38,12 @@ export function getActivityList(data){
//判断商家类型 商品入库
export function getskipShop(data){
return request.post("/user/skipShop", data, { noAuth: true});
return request.post("user/skipShop", data, { noAuth: true});
}
//获取分类 列表
export function getshopclass(data){
return request.post("/ele/weigh", data, { noAuth: true});
return request.post("ele/weigh", data, { noAuth: true});
}
......@@ -52,7 +52,7 @@ export function getshopclass(data){
*/
//获取分类 列表
export function activity_nucleus(data){
return request.post("/ele/activity_nucleus", data, { noAuth: true});
return request.post("ele/activity_nucleus", data, { noAuth: true});
}
/**
......@@ -60,7 +60,7 @@ export function activity_nucleus(data){
* @param {Object} data
*/
export function activity_add(data){
return request.post("/ele/activity_add", data, { noAuth: true});
return request.post("ele/activity_add", data, { noAuth: true});
}
/**
......@@ -68,7 +68,7 @@ export function activity_add(data){
* @param {Object} data
*/
export function activity_select(data){
return request.post("/ele/activity_select", data, { noAuth: true});
return request.post("ele/activity_select", data, { noAuth: true});
}
/**
......@@ -76,7 +76,7 @@ export function activity_select(data){
* @param {Object} data
*/
export function activity_close(data){
return request.post("/ele/activity_close", data, { noAuth: true});
return request.post("ele/activity_close", data, { noAuth: true});
}
/**
......@@ -84,7 +84,7 @@ export function activity_close(data){
* @param {} data
*/
export function activity_find(data){
return request.post("/ele/activity_find", data, { noAuth: true});
return request.post("ele/activity_find", data, { noAuth: true});
}
......@@ -93,7 +93,7 @@ export function activity_find(data){
* @param {} data
*/
export function activity_user(data){
return request.post("/ele/activity_user", data, { noAuth: true});
return request.post("ele/activity_user", data, { noAuth: true});
}
......@@ -102,5 +102,5 @@ export function activity_user(data){
* @param {} data
*/
export function activity_update(data){
return request.post("/ele/activity_update", data, { noAuth: true});
return request.post("ele/activity_update", data, { noAuth: true});
}
\ No newline at end of file
......@@ -10,12 +10,8 @@ module.exports = {
// xqdebug:false,//正式权限
xqdebug:true,//发布审核权限 也是测试环境的 主要用于ios
// #ifdef APP-PLUS
// isdebug:false,//正式 APP里面绝对是正式
// #endif
/**
* PS
*
* 正式环境 选 false !
* 本地开发环境 选 true
*
* */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment